From 80d7c1bb9fc02367346b602f55bf468423ec3854 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 05:30:37 +0000 Subject: [PATCH] docs: Claude Code v2.1.306 - User Profiles API goes GA, org webhooks beta, sandbox nested user namespaces, REVIEW.md @includes Co-Authored-By: claude-yolo[bot] --- content/.metadata.json | 6341 +- content/CHANGELOG.md | 46 + content/claude-code-manifest.json | 39 +- .../claude/claude-science/admin-controls.md | 2 +- content/claude/claude-science/changelog.md | 8 + .../configuration-file-reference.md | 2 +- .../claude-science/corporate-networks.md | 2 +- content/claude/claude-science/get-started.md | 2 + .../run-on-remote-linux-server.md | 6 +- .../claude/claude-science/troubleshooting.md | 2 + .../claude-science/update-claude-science.md | 57 + content/claude/cowork/changelog.md | 4 + .../claude-desktop/configuration.md | 10 +- .../optimizing-for-cost-and-intelligence.md | 1 + .../agent-skills/claude-api-skill.md | 15 + content/en/agents-and-tools/mcp-connector.md | 10 +- content/en/api/beta.md | 4840 +- content/en/api/beta/agents.md | 12 + content/en/api/beta/agents/archive.md | 2 + content/en/api/beta/agents/create.md | 2 + content/en/api/beta/agents/list.md | 2 + content/en/api/beta/agents/retrieve.md | 2 + content/en/api/beta/agents/update.md | 2 + content/en/api/beta/agents/versions.md | 2 + content/en/api/beta/agents/versions/list.md | 2 + content/en/api/beta/deployment_runs.md | 4 + content/en/api/beta/deployment_runs/list.md | 2 + .../en/api/beta/deployment_runs/retrieve.md | 2 + content/en/api/beta/deployments.md | 16 + content/en/api/beta/deployments/archive.md | 2 + content/en/api/beta/deployments/create.md | 2 + content/en/api/beta/deployments/list.md | 2 + content/en/api/beta/deployments/pause.md | 2 + content/en/api/beta/deployments/retrieve.md | 2 + content/en/api/beta/deployments/run.md | 2 + content/en/api/beta/deployments/unpause.md | 2 + content/en/api/beta/deployments/update.md | 2 + content/en/api/beta/dreams.md | 10 + content/en/api/beta/dreams/archive.md | 2 + content/en/api/beta/dreams/cancel.md | 2 + content/en/api/beta/dreams/create.md | 2 + content/en/api/beta/dreams/list.md | 2 + content/en/api/beta/dreams/retrieve.md | 2 + content/en/api/beta/environments.md | 28 + content/en/api/beta/environments/archive.md | 2 + content/en/api/beta/environments/create.md | 2 + content/en/api/beta/environments/delete.md | 2 + content/en/api/beta/environments/list.md | 2 + content/en/api/beta/environments/retrieve.md | 2 + content/en/api/beta/environments/update.md | 2 + content/en/api/beta/environments/work.md | 16 + content/en/api/beta/environments/work/ack.md | 2 + .../api/beta/environments/work/heartbeat.md | 2 + content/en/api/beta/environments/work/list.md | 2 + content/en/api/beta/environments/work/poll.md | 2 + .../en/api/beta/environments/work/retrieve.md | 2 + .../en/api/beta/environments/work/stats.md | 2 + content/en/api/beta/environments/work/stop.md | 2 + .../en/api/beta/environments/work/update.md | 2 + content/en/api/beta/files.md | 10 + content/en/api/beta/files/delete.md | 2 + content/en/api/beta/files/download.md | 2 + content/en/api/beta/files/list.md | 2 + .../en/api/beta/files/retrieve_metadata.md | 2 + content/en/api/beta/files/upload.md | 2 + content/en/api/beta/memory_stores.md | 490 +- content/en/api/beta/memory_stores/archive.md | 32 +- content/en/api/beta/memory_stores/create.md | 40 +- content/en/api/beta/memory_stores/delete.md | 12 +- content/en/api/beta/memory_stores/list.md | 36 +- content/en/api/beta/memory_stores/memories.md | 272 +- .../api/beta/memory_stores/memories/create.md | 46 +- .../api/beta/memory_stores/memories/delete.md | 14 +- .../api/beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../api/beta/memory_stores/memories/update.md | 46 +- .../api/beta/memory_stores/memory_versions.md | 126 +- .../memory_stores/memory_versions/list.md | 36 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- content/en/api/beta/memory_stores/retrieve.md | 30 +- content/en/api/beta/memory_stores/update.md | 42 +- content/en/api/beta/messages.md | 350 +- content/en/api/beta/messages/batches.md | 152 +- .../en/api/beta/messages/batches/cancel.md | 2 + .../en/api/beta/messages/batches/create.md | 30 +- .../en/api/beta/messages/batches/delete.md | 2 + content/en/api/beta/messages/batches/list.md | 2 + .../en/api/beta/messages/batches/results.md | 30 + .../en/api/beta/messages/batches/retrieve.md | 2 + content/en/api/beta/messages/count_tokens.md | 4 +- content/en/api/beta/messages/create.md | 58 +- content/en/api/beta/models.md | 4 + content/en/api/beta/models/list.md | 2 + content/en/api/beta/models/retrieve.md | 2 + content/en/api/beta/organization.md | 1710 +- .../en/api/beta/organization/cost_report.md | 2 + .../beta/organization/cost_report/retrieve.md | 2 + .../en/api/beta/organization/federation.md | 26 + .../beta/organization/federation/issuers.md | 10 + .../federation/issuers/archive.md | 2 + .../organization/federation/issuers/create.md | 2 + .../organization/federation/issuers/list.md | 2 + .../federation/issuers/retrieve.md | 2 + .../organization/federation/issuers/update.md | 2 + .../api/beta/organization/federation/rules.md | 16 + .../organization/federation/rules/archive.md | 2 + .../organization/federation/rules/create.md | 2 + .../organization/federation/rules/list.md | 2 + .../organization/federation/rules/retrieve.md | 2 + .../organization/federation/rules/update.md | 2 + .../federation/rules/workspaces.md | 6 + .../federation/rules/workspaces/add.md | 2 + .../federation/rules/workspaces/list.md | 2 + .../federation/rules/workspaces/remove.md | 2 + .../en/api/beta/organization/mcp_tunnels.md | 18 + .../beta/organization/mcp_tunnels/archive.md | 2 + .../api/beta/organization/mcp_tunnels/list.md | 2 + .../beta/organization/mcp_tunnels/retrieve.md | 2 + .../organization/mcp_tunnels/reveal_token.md | 2 + .../organization/mcp_tunnels/rotate_token.md | 2 + .../mcp_tunnels/tunnel_certificates.md | 8 + .../tunnel_certificates/archive.md | 2 + .../mcp_tunnels/tunnel_certificates/create.md | 2 + .../mcp_tunnels/tunnel_certificates/list.md | 2 + .../tunnel_certificates/retrieve.md | 2 + .../beta/organization/plugin_marketplaces.md | 10 + .../organization/plugin_marketplaces/list.md | 2 + .../plugin_marketplaces/retrieve.md | 2 + .../plugin_marketplaces/update.md | 2 + .../plugin_marketplaces/validate_archive.md | 2 + .../validate_repository.md | 2 + content/en/api/beta/organization/plugins.md | 26 + .../api/beta/organization/plugins/create.md | 2 + .../api/beta/organization/plugins/delete.md | 2 + .../plugins/installation_settings.md | 6 + .../plugins/installation_settings/list.md | 2 + .../plugins/installation_settings/remove.md | 2 + .../plugins/installation_settings/set.md | 2 + .../en/api/beta/organization/plugins/list.md | 2 + .../api/beta/organization/plugins/retrieve.md | 2 + .../api/beta/organization/plugins/shares.md | 2 + .../beta/organization/plugins/shares/list.md | 2 + .../api/beta/organization/plugins/update.md | 2 + .../api/beta/organization/plugins/versions.md | 8 + .../organization/plugins/versions/create.md | 2 + .../organization/plugins/versions/download.md | 2 + .../organization/plugins/versions/list.md | 2 + .../organization/plugins/versions/retrieve.md | 2 + .../en/api/beta/organization/rate_limits.md | 4 +- .../api/beta/organization/rate_limits/list.md | 2 +- .../api/beta/organization/service_accounts.md | 16 + .../organization/service_accounts/archive.md | 2 + .../organization/service_accounts/create.md | 2 + .../organization/service_accounts/list.md | 2 + .../organization/service_accounts/retrieve.md | 2 + .../organization/service_accounts/update.md | 2 + .../service_accounts/workspaces.md | 6 + .../service_accounts/workspaces/add.md | 2 + .../service_accounts/workspaces/list.md | 2 + .../service_accounts/workspaces/remove.md | 2 + .../en/api/beta/organization/spend_limits.md | 4 + .../beta/organization/spend_limits/list.md | 2 + .../api/beta/organization/spend_limits/set.md | 2 + .../organization/telemetry_destinations.md | 18 + .../telemetry_destinations/create.md | 2 + .../telemetry_destinations/delete.md | 2 + .../telemetry_destinations/list.md | 2 + .../telemetry_destinations/retrieve.md | 2 + .../telemetry_destinations/test.md | 2 + .../telemetry_destinations/update.md | 2 + .../telemetry_destinations/workspaces.md | 6 + .../telemetry_destinations/workspaces/add.md | 2 + .../telemetry_destinations/workspaces/list.md | 2 + .../workspaces/remove.md | 2 + .../en/api/beta/organization/usage_report.md | 2 + .../usage_report/retrieve_messages.md | 2 + content/en/api/beta/organization/webhooks.md | 1457 + .../api/beta/organization/webhooks/create.md | 253 + .../api/beta/organization/webhooks/delete.md | 173 + .../en/api/beta/organization/webhooks/list.md | 257 + .../webhooks/regenerate_signing_secret.md | 167 + .../beta/organization/webhooks/retrieve.md | 220 + .../api/beta/organization/webhooks/update.md | 254 + .../en/api/beta/organization/workspaces.md | 284 + .../beta/organization/workspaces/create.md | 2 + .../organization/workspaces/rate_limits.md | 328 + .../workspaces/rate_limits/update.md | 276 + .../workspaces/service_accounts.md | 10 + .../workspaces/service_accounts/add.md | 2 + .../workspaces/service_accounts/list.md | 2 + .../workspaces/service_accounts/remove.md | 2 + .../workspaces/service_accounts/retrieve.md | 2 + .../workspaces/service_accounts/update.md | 2 + content/en/api/beta/sessions.md | 38 + content/en/api/beta/sessions/archive.md | 2 + content/en/api/beta/sessions/create.md | 2 + content/en/api/beta/sessions/delete.md | 2 + content/en/api/beta/sessions/events.md | 6 + content/en/api/beta/sessions/events/list.md | 2 + content/en/api/beta/sessions/events/send.md | 2 + content/en/api/beta/sessions/events/stream.md | 2 + content/en/api/beta/sessions/list.md | 2 + content/en/api/beta/sessions/resources.md | 10 + content/en/api/beta/sessions/resources/add.md | 2 + .../en/api/beta/sessions/resources/delete.md | 2 + .../en/api/beta/sessions/resources/list.md | 2 + .../api/beta/sessions/resources/retrieve.md | 2 + .../en/api/beta/sessions/resources/update.md | 2 + content/en/api/beta/sessions/retrieve.md | 2 + content/en/api/beta/sessions/threads.md | 10 + .../en/api/beta/sessions/threads/archive.md | 2 + .../en/api/beta/sessions/threads/events.md | 4 + .../api/beta/sessions/threads/events/list.md | 2 + .../beta/sessions/threads/events/stream.md | 2 + content/en/api/beta/sessions/threads/list.md | 2 + .../en/api/beta/sessions/threads/retrieve.md | 2 + content/en/api/beta/sessions/update.md | 2 + content/en/api/beta/skills.md | 18 + content/en/api/beta/skills/create.md | 2 + content/en/api/beta/skills/delete.md | 2 + content/en/api/beta/skills/list.md | 2 + content/en/api/beta/skills/retrieve.md | 2 + content/en/api/beta/skills/versions.md | 10 + content/en/api/beta/skills/versions/create.md | 2 + content/en/api/beta/skills/versions/delete.md | 2 + .../en/api/beta/skills/versions/download.md | 2 + content/en/api/beta/skills/versions/list.md | 2 + .../en/api/beta/skills/versions/retrieve.md | 2 + content/en/api/beta/tunnels.md | 20 + content/en/api/beta/tunnels/archive.md | 2 + content/en/api/beta/tunnels/certificates.md | 8 + .../api/beta/tunnels/certificates/archive.md | 2 + .../api/beta/tunnels/certificates/create.md | 2 + .../en/api/beta/tunnels/certificates/list.md | 2 + .../api/beta/tunnels/certificates/retrieve.md | 2 + content/en/api/beta/tunnels/create.md | 2 + content/en/api/beta/tunnels/list.md | 2 + content/en/api/beta/tunnels/retrieve.md | 2 + content/en/api/beta/tunnels/reveal_token.md | 2 + content/en/api/beta/tunnels/rotate_token.md | 2 + content/en/api/beta/user_profiles.md | 580 +- .../en/api/beta/user_profiles/action_urls.md | 241 + .../beta/user_profiles/action_urls/create.md | 197 + content/en/api/beta/user_profiles/create.md | 56 +- .../user_profiles/create_enrollment_url.md | 6 +- content/en/api/beta/user_profiles/delete.md | 171 + content/en/api/beta/user_profiles/list.md | 38 +- content/en/api/beta/user_profiles/retrieve.md | 38 +- content/en/api/beta/user_profiles/update.md | 48 +- content/en/api/beta/vaults.md | 26 + content/en/api/beta/vaults/archive.md | 2 + content/en/api/beta/vaults/create.md | 2 + content/en/api/beta/vaults/credentials.md | 14 + .../en/api/beta/vaults/credentials/archive.md | 2 + .../en/api/beta/vaults/credentials/create.md | 2 + .../en/api/beta/vaults/credentials/delete.md | 2 + .../en/api/beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../api/beta/vaults/credentials/retrieve.md | 2 + .../en/api/beta/vaults/credentials/update.md | 2 + content/en/api/beta/vaults/delete.md | 2 + content/en/api/beta/vaults/list.md | 2 + content/en/api/beta/vaults/retrieve.md | 2 + content/en/api/beta/vaults/update.md | 2 + content/en/api/beta/webhooks.md | 90 +- content/en/api/cli/beta.md | 2050 +- content/en/api/cli/beta/memory_stores.md | 466 +- .../en/api/cli/beta/memory_stores/archive.md | 30 +- .../en/api/cli/beta/memory_stores/create.md | 38 +- .../en/api/cli/beta/memory_stores/delete.md | 10 +- content/en/api/cli/beta/memory_stores/list.md | 34 +- .../en/api/cli/beta/memory_stores/memories.md | 264 +- .../cli/beta/memory_stores/memories/create.md | 44 +- .../cli/beta/memory_stores/memories/delete.md | 12 +- .../cli/beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 36 +- .../cli/beta/memory_stores/memories/update.md | 44 +- .../cli/beta/memory_stores/memory_versions.md | 122 +- .../memory_stores/memory_versions/list.md | 36 +- .../memory_stores/memory_versions/redact.md | 30 +- .../memory_stores/memory_versions/retrieve.md | 34 +- .../en/api/cli/beta/memory_stores/retrieve.md | 28 +- .../en/api/cli/beta/memory_stores/update.md | 40 +- content/en/api/cli/beta/messages.md | 282 +- content/en/api/cli/beta/messages/batches.md | 114 +- .../api/cli/beta/messages/batches/create.md | 2 +- .../api/cli/beta/messages/batches/results.md | 28 + .../en/api/cli/beta/messages/count_tokens.md | 2 +- content/en/api/cli/beta/messages/create.md | 30 +- content/en/api/cli/beta/user_profiles.md | 314 +- .../en/api/cli/beta/user_profiles/create.md | 42 +- .../user_profiles/create_enrollment_url.md | 4 +- content/en/api/cli/beta/user_profiles/list.md | 36 +- .../en/api/cli/beta/user_profiles/retrieve.md | 36 +- .../en/api/cli/beta/user_profiles/update.md | 42 +- content/en/api/cli/beta/webhooks.md | 92 +- content/en/api/cli/messages.md | 230 +- content/en/api/cli/messages/batches.md | 114 +- content/en/api/cli/messages/batches/create.md | 2 +- .../en/api/cli/messages/batches/results.md | 28 + content/en/api/cli/messages/count_tokens.md | 2 +- content/en/api/cli/messages/create.md | 30 +- content/en/api/completions.md | 2 + content/en/api/completions/create.md | 2 + content/en/api/compliance.md | 10893 +- content/en/api/compliance/activities.md | 28606 +++-- content/en/api/compliance/activities/list.md | 8340 +- content/en/api/compliance/apps.md | 101 +- content/en/api/compliance/apps/code.md | 101 +- .../en/api/compliance/apps/code/artifacts.md | 101 +- .../apps/code/artifacts/download.md | 55 +- .../apps/code/artifacts/retrieve_version.md | 48 +- content/en/api/csharp/beta.md | 5082 +- content/en/api/csharp/beta/agents.md | 30 + content/en/api/csharp/beta/agents/archive.md | 5 + content/en/api/csharp/beta/agents/create.md | 5 + content/en/api/csharp/beta/agents/list.md | 5 + content/en/api/csharp/beta/agents/retrieve.md | 5 + content/en/api/csharp/beta/agents/update.md | 5 + content/en/api/csharp/beta/agents/versions.md | 5 + .../api/csharp/beta/agents/versions/list.md | 5 + content/en/api/csharp/beta/deployment_runs.md | 10 + .../api/csharp/beta/deployment_runs/list.md | 5 + .../csharp/beta/deployment_runs/retrieve.md | 5 + content/en/api/csharp/beta/deployments.md | 45 +- .../en/api/csharp/beta/deployments/archive.md | 5 + .../en/api/csharp/beta/deployments/create.md | 10 +- .../en/api/csharp/beta/deployments/list.md | 5 + .../en/api/csharp/beta/deployments/pause.md | 5 + .../api/csharp/beta/deployments/retrieve.md | 5 + content/en/api/csharp/beta/deployments/run.md | 5 + .../en/api/csharp/beta/deployments/unpause.md | 5 + .../en/api/csharp/beta/deployments/update.md | 5 + content/en/api/csharp/beta/environments.md | 71 + .../api/csharp/beta/environments/archive.md | 5 + .../en/api/csharp/beta/environments/create.md | 5 + .../en/api/csharp/beta/environments/delete.md | 5 + .../en/api/csharp/beta/environments/list.md | 5 + .../api/csharp/beta/environments/retrieve.md | 5 + .../en/api/csharp/beta/environments/update.md | 5 + .../en/api/csharp/beta/environments/work.md | 41 + .../api/csharp/beta/environments/work/ack.md | 5 + .../beta/environments/work/heartbeat.md | 5 + .../api/csharp/beta/environments/work/list.md | 5 + .../api/csharp/beta/environments/work/poll.md | 5 + .../csharp/beta/environments/work/retrieve.md | 5 + .../csharp/beta/environments/work/stats.md | 5 + .../api/csharp/beta/environments/work/stop.md | 5 + .../csharp/beta/environments/work/update.md | 6 + content/en/api/csharp/beta/files.md | 26 + content/en/api/csharp/beta/files/delete.md | 5 + content/en/api/csharp/beta/files/download.md | 5 + content/en/api/csharp/beta/files/list.md | 5 + .../csharp/beta/files/retrieve_metadata.md | 5 + content/en/api/csharp/beta/files/upload.md | 6 + content/en/api/csharp/beta/memory_stores.md | 536 +- .../api/csharp/beta/memory_stores/archive.md | 35 +- .../api/csharp/beta/memory_stores/create.md | 43 +- .../api/csharp/beta/memory_stores/delete.md | 15 +- .../en/api/csharp/beta/memory_stores/list.md | 37 +- .../api/csharp/beta/memory_stores/memories.md | 287 +- .../beta/memory_stores/memories/create.md | 49 +- .../beta/memory_stores/memories/delete.md | 17 +- .../beta/memory_stores/memories/list.md | 61 +- .../beta/memory_stores/memories/retrieve.md | 41 +- .../beta/memory_stores/memories/update.md | 49 +- .../beta/memory_stores/memory_versions.md | 141 +- .../memory_stores/memory_versions/list.md | 45 +- .../memory_stores/memory_versions/redact.md | 35 +- .../memory_stores/memory_versions/retrieve.md | 39 +- .../api/csharp/beta/memory_stores/retrieve.md | 33 +- .../api/csharp/beta/memory_stores/update.md | 45 +- content/en/api/csharp/beta/messages.md | 415 +- .../en/api/csharp/beta/messages/batches.md | 221 +- .../csharp/beta/messages/batches/cancel.md | 5 + .../csharp/beta/messages/batches/create.md | 84 +- .../csharp/beta/messages/batches/delete.md | 5 + .../api/csharp/beta/messages/batches/list.md | 5 + .../csharp/beta/messages/batches/results.md | 33 + .../csharp/beta/messages/batches/retrieve.md | 5 + .../api/csharp/beta/messages/count_tokens.md | 15 +- content/en/api/csharp/beta/messages/create.md | 43 +- content/en/api/csharp/beta/models.md | 10 + content/en/api/csharp/beta/models/list.md | 5 + content/en/api/csharp/beta/models/retrieve.md | 5 + content/en/api/csharp/beta/sessions.md | 103 +- .../en/api/csharp/beta/sessions/archive.md | 5 + content/en/api/csharp/beta/sessions/create.md | 5 + content/en/api/csharp/beta/sessions/delete.md | 5 + content/en/api/csharp/beta/sessions/events.md | 19 +- .../api/csharp/beta/sessions/events/list.md | 5 + .../api/csharp/beta/sessions/events/send.md | 9 +- .../api/csharp/beta/sessions/events/stream.md | 5 + content/en/api/csharp/beta/sessions/list.md | 5 + .../en/api/csharp/beta/sessions/resources.md | 29 +- .../api/csharp/beta/sessions/resources/add.md | 9 +- .../csharp/beta/sessions/resources/delete.md | 5 + .../csharp/beta/sessions/resources/list.md | 5 + .../beta/sessions/resources/retrieve.md | 5 + .../csharp/beta/sessions/resources/update.md | 5 + .../en/api/csharp/beta/sessions/retrieve.md | 5 + .../en/api/csharp/beta/sessions/threads.md | 25 + .../csharp/beta/sessions/threads/archive.md | 5 + .../csharp/beta/sessions/threads/events.md | 10 + .../beta/sessions/threads/events/list.md | 5 + .../beta/sessions/threads/events/stream.md | 5 + .../api/csharp/beta/sessions/threads/list.md | 5 + .../csharp/beta/sessions/threads/retrieve.md | 5 + content/en/api/csharp/beta/sessions/update.md | 5 + content/en/api/csharp/beta/skills.md | 47 + content/en/api/csharp/beta/skills/create.md | 6 + content/en/api/csharp/beta/skills/delete.md | 5 + content/en/api/csharp/beta/skills/list.md | 5 + content/en/api/csharp/beta/skills/retrieve.md | 5 + content/en/api/csharp/beta/skills/versions.md | 26 + .../api/csharp/beta/skills/versions/create.md | 6 + .../api/csharp/beta/skills/versions/delete.md | 5 + .../csharp/beta/skills/versions/download.md | 5 + .../api/csharp/beta/skills/versions/list.md | 5 + .../csharp/beta/skills/versions/retrieve.md | 5 + content/en/api/csharp/beta/tunnels.md | 50 + content/en/api/csharp/beta/tunnels/archive.md | 5 + .../api/csharp/beta/tunnels/certificates.md | 20 + .../beta/tunnels/certificates/archive.md | 5 + .../beta/tunnels/certificates/create.md | 5 + .../csharp/beta/tunnels/certificates/list.md | 5 + .../beta/tunnels/certificates/retrieve.md | 5 + content/en/api/csharp/beta/tunnels/create.md | 5 + content/en/api/csharp/beta/tunnels/list.md | 5 + .../en/api/csharp/beta/tunnels/retrieve.md | 5 + .../api/csharp/beta/tunnels/reveal_token.md | 5 + .../api/csharp/beta/tunnels/rotate_token.md | 5 + content/en/api/csharp/beta/user_profiles.md | 567 +- .../api/csharp/beta/user_profiles/create.md | 47 +- .../user_profiles/create_enrollment_url.md | 9 +- .../en/api/csharp/beta/user_profiles/list.md | 41 +- .../api/csharp/beta/user_profiles/retrieve.md | 41 +- .../api/csharp/beta/user_profiles/update.md | 47 +- content/en/api/csharp/beta/vaults.md | 67 +- content/en/api/csharp/beta/vaults/archive.md | 5 + content/en/api/csharp/beta/vaults/create.md | 5 + .../en/api/csharp/beta/vaults/credentials.md | 37 +- .../csharp/beta/vaults/credentials/archive.md | 5 + .../csharp/beta/vaults/credentials/create.md | 7 +- .../csharp/beta/vaults/credentials/delete.md | 5 + .../csharp/beta/vaults/credentials/list.md | 5 + .../vaults/credentials/mcp_oauth_validate.md | 5 + .../beta/vaults/credentials/retrieve.md | 5 + .../csharp/beta/vaults/credentials/update.md | 5 + content/en/api/csharp/beta/vaults/delete.md | 5 + content/en/api/csharp/beta/vaults/list.md | 5 + content/en/api/csharp/beta/vaults/retrieve.md | 5 + content/en/api/csharp/beta/vaults/update.md | 5 + content/en/api/csharp/beta/webhooks.md | 88 + content/en/api/csharp/completions.md | 2 + content/en/api/csharp/completions/create.md | 2 + content/en/api/csharp/messages.md | 289 +- content/en/api/csharp/messages/batches.md | 167 +- .../en/api/csharp/messages/batches/cancel.md | 3 + .../en/api/csharp/messages/batches/create.md | 40 +- .../en/api/csharp/messages/batches/delete.md | 3 + .../en/api/csharp/messages/batches/list.md | 3 + .../en/api/csharp/messages/batches/results.md | 31 + .../api/csharp/messages/batches/retrieve.md | 3 + .../en/api/csharp/messages/count_tokens.md | 5 +- content/en/api/csharp/messages/create.md | 33 +- content/en/api/csharp/models.md | 10 + content/en/api/csharp/models/list.md | 5 + content/en/api/csharp/models/retrieve.md | 5 + content/en/api/go/beta.md | 4700 +- content/en/api/go/beta/agents.md | 12 + content/en/api/go/beta/agents/archive.md | 2 + content/en/api/go/beta/agents/create.md | 2 + content/en/api/go/beta/agents/list.md | 2 + content/en/api/go/beta/agents/retrieve.md | 2 + content/en/api/go/beta/agents/update.md | 2 + content/en/api/go/beta/agents/versions.md | 2 + .../en/api/go/beta/agents/versions/list.md | 2 + content/en/api/go/beta/deployment_runs.md | 4 + .../en/api/go/beta/deployment_runs/list.md | 2 + .../api/go/beta/deployment_runs/retrieve.md | 2 + content/en/api/go/beta/deployments.md | 16 + content/en/api/go/beta/deployments/archive.md | 2 + content/en/api/go/beta/deployments/create.md | 2 + content/en/api/go/beta/deployments/list.md | 2 + content/en/api/go/beta/deployments/pause.md | 2 + .../en/api/go/beta/deployments/retrieve.md | 2 + content/en/api/go/beta/deployments/run.md | 2 + content/en/api/go/beta/deployments/unpause.md | 2 + content/en/api/go/beta/deployments/update.md | 2 + content/en/api/go/beta/environments.md | 28 + .../en/api/go/beta/environments/archive.md | 2 + content/en/api/go/beta/environments/create.md | 2 + content/en/api/go/beta/environments/delete.md | 2 + content/en/api/go/beta/environments/list.md | 2 + .../en/api/go/beta/environments/retrieve.md | 2 + content/en/api/go/beta/environments/update.md | 2 + content/en/api/go/beta/environments/work.md | 16 + .../en/api/go/beta/environments/work/ack.md | 2 + .../go/beta/environments/work/heartbeat.md | 2 + .../en/api/go/beta/environments/work/list.md | 2 + .../en/api/go/beta/environments/work/poll.md | 2 + .../api/go/beta/environments/work/retrieve.md | 2 + .../en/api/go/beta/environments/work/stats.md | 2 + .../en/api/go/beta/environments/work/stop.md | 2 + .../api/go/beta/environments/work/update.md | 2 + content/en/api/go/beta/files.md | 10 + content/en/api/go/beta/files/delete.md | 2 + content/en/api/go/beta/files/download.md | 2 + content/en/api/go/beta/files/list.md | 2 + .../en/api/go/beta/files/retrieve_metadata.md | 2 + content/en/api/go/beta/files/upload.md | 2 + content/en/api/go/beta/memory_stores.md | 494 +- .../en/api/go/beta/memory_stores/archive.md | 32 +- .../en/api/go/beta/memory_stores/create.md | 40 +- .../en/api/go/beta/memory_stores/delete.md | 12 +- content/en/api/go/beta/memory_stores/list.md | 34 +- .../en/api/go/beta/memory_stores/memories.md | 272 +- .../go/beta/memory_stores/memories/create.md | 46 +- .../go/beta/memory_stores/memories/delete.md | 14 +- .../go/beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../go/beta/memory_stores/memories/update.md | 46 +- .../go/beta/memory_stores/memory_versions.md | 132 +- .../memory_stores/memory_versions/list.md | 42 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- .../en/api/go/beta/memory_stores/retrieve.md | 30 +- .../en/api/go/beta/memory_stores/update.md | 42 +- content/en/api/go/beta/messages.md | 324 +- content/en/api/go/beta/messages/batches.md | 152 +- .../en/api/go/beta/messages/batches/cancel.md | 2 + .../en/api/go/beta/messages/batches/create.md | 30 +- .../en/api/go/beta/messages/batches/delete.md | 2 + .../en/api/go/beta/messages/batches/list.md | 2 + .../api/go/beta/messages/batches/results.md | 30 + .../api/go/beta/messages/batches/retrieve.md | 2 + .../en/api/go/beta/messages/count_tokens.md | 4 +- content/en/api/go/beta/messages/create.md | 32 +- content/en/api/go/beta/models.md | 4 + content/en/api/go/beta/models/list.md | 2 + content/en/api/go/beta/models/retrieve.md | 2 + content/en/api/go/beta/sessions.md | 38 + content/en/api/go/beta/sessions/archive.md | 2 + content/en/api/go/beta/sessions/create.md | 2 + content/en/api/go/beta/sessions/delete.md | 2 + content/en/api/go/beta/sessions/events.md | 6 + .../en/api/go/beta/sessions/events/list.md | 2 + .../en/api/go/beta/sessions/events/send.md | 2 + .../en/api/go/beta/sessions/events/stream.md | 2 + content/en/api/go/beta/sessions/list.md | 2 + content/en/api/go/beta/sessions/resources.md | 10 + .../en/api/go/beta/sessions/resources/add.md | 2 + .../api/go/beta/sessions/resources/delete.md | 2 + .../en/api/go/beta/sessions/resources/list.md | 2 + .../go/beta/sessions/resources/retrieve.md | 2 + .../api/go/beta/sessions/resources/update.md | 2 + content/en/api/go/beta/sessions/retrieve.md | 2 + content/en/api/go/beta/sessions/threads.md | 10 + .../api/go/beta/sessions/threads/archive.md | 2 + .../en/api/go/beta/sessions/threads/events.md | 4 + .../go/beta/sessions/threads/events/list.md | 2 + .../go/beta/sessions/threads/events/stream.md | 2 + .../en/api/go/beta/sessions/threads/list.md | 2 + .../api/go/beta/sessions/threads/retrieve.md | 2 + content/en/api/go/beta/sessions/update.md | 2 + content/en/api/go/beta/skills.md | 18 + content/en/api/go/beta/skills/create.md | 2 + content/en/api/go/beta/skills/delete.md | 2 + content/en/api/go/beta/skills/list.md | 2 + content/en/api/go/beta/skills/retrieve.md | 2 + content/en/api/go/beta/skills/versions.md | 10 + .../en/api/go/beta/skills/versions/create.md | 2 + .../en/api/go/beta/skills/versions/delete.md | 2 + .../api/go/beta/skills/versions/download.md | 2 + .../en/api/go/beta/skills/versions/list.md | 2 + .../api/go/beta/skills/versions/retrieve.md | 2 + content/en/api/go/beta/tunnels.md | 20 + content/en/api/go/beta/tunnels/archive.md | 2 + .../en/api/go/beta/tunnels/certificates.md | 8 + .../go/beta/tunnels/certificates/archive.md | 2 + .../go/beta/tunnels/certificates/create.md | 2 + .../api/go/beta/tunnels/certificates/list.md | 2 + .../go/beta/tunnels/certificates/retrieve.md | 2 + content/en/api/go/beta/tunnels/create.md | 2 + content/en/api/go/beta/tunnels/list.md | 2 + content/en/api/go/beta/tunnels/retrieve.md | 2 + .../en/api/go/beta/tunnels/reveal_token.md | 2 + .../en/api/go/beta/tunnels/rotate_token.md | 2 + content/en/api/go/beta/user_profiles.md | 581 +- .../en/api/go/beta/user_profiles/create.md | 44 +- .../user_profiles/create_enrollment_url.md | 6 +- content/en/api/go/beta/user_profiles/list.md | 38 +- .../en/api/go/beta/user_profiles/retrieve.md | 38 +- .../en/api/go/beta/user_profiles/update.md | 44 +- content/en/api/go/beta/vaults.md | 26 + content/en/api/go/beta/vaults/archive.md | 2 + content/en/api/go/beta/vaults/create.md | 2 + content/en/api/go/beta/vaults/credentials.md | 14 + .../api/go/beta/vaults/credentials/archive.md | 2 + .../api/go/beta/vaults/credentials/create.md | 2 + .../api/go/beta/vaults/credentials/delete.md | 2 + .../en/api/go/beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../go/beta/vaults/credentials/retrieve.md | 2 + .../api/go/beta/vaults/credentials/update.md | 2 + content/en/api/go/beta/vaults/delete.md | 2 + content/en/api/go/beta/vaults/list.md | 2 + content/en/api/go/beta/vaults/retrieve.md | 2 + content/en/api/go/beta/vaults/update.md | 2 + content/en/api/go/beta/webhooks.md | 88 + content/en/api/go/completions.md | 2 + content/en/api/go/completions/create.md | 2 + content/en/api/go/messages.md | 230 +- content/en/api/go/messages/batches.md | 114 +- content/en/api/go/messages/batches/create.md | 2 +- content/en/api/go/messages/batches/results.md | 28 + content/en/api/go/messages/count_tokens.md | 2 +- content/en/api/go/messages/create.md | 30 +- content/en/api/go/models.md | 4 + content/en/api/go/models/list.md | 2 + content/en/api/go/models/retrieve.md | 2 + content/en/api/java/beta.md | 4542 +- content/en/api/java/beta/agents.md | 12 + content/en/api/java/beta/agents/archive.md | 2 + content/en/api/java/beta/agents/create.md | 2 + content/en/api/java/beta/agents/list.md | 2 + content/en/api/java/beta/agents/retrieve.md | 2 + content/en/api/java/beta/agents/update.md | 2 + content/en/api/java/beta/agents/versions.md | 2 + .../en/api/java/beta/agents/versions/list.md | 2 + content/en/api/java/beta/deployment_runs.md | 4 + .../en/api/java/beta/deployment_runs/list.md | 2 + .../api/java/beta/deployment_runs/retrieve.md | 2 + content/en/api/java/beta/deployments.md | 16 + .../en/api/java/beta/deployments/archive.md | 2 + .../en/api/java/beta/deployments/create.md | 2 + content/en/api/java/beta/deployments/list.md | 2 + content/en/api/java/beta/deployments/pause.md | 2 + .../en/api/java/beta/deployments/retrieve.md | 2 + content/en/api/java/beta/deployments/run.md | 2 + .../en/api/java/beta/deployments/unpause.md | 2 + .../en/api/java/beta/deployments/update.md | 2 + content/en/api/java/beta/environments.md | 28 + .../en/api/java/beta/environments/archive.md | 2 + .../en/api/java/beta/environments/create.md | 2 + .../en/api/java/beta/environments/delete.md | 2 + content/en/api/java/beta/environments/list.md | 2 + .../en/api/java/beta/environments/retrieve.md | 2 + .../en/api/java/beta/environments/update.md | 2 + content/en/api/java/beta/environments/work.md | 16 + .../en/api/java/beta/environments/work/ack.md | 2 + .../java/beta/environments/work/heartbeat.md | 2 + .../api/java/beta/environments/work/list.md | 2 + .../api/java/beta/environments/work/poll.md | 2 + .../java/beta/environments/work/retrieve.md | 2 + .../api/java/beta/environments/work/stats.md | 2 + .../api/java/beta/environments/work/stop.md | 2 + .../api/java/beta/environments/work/update.md | 2 + content/en/api/java/beta/files.md | 10 + content/en/api/java/beta/files/delete.md | 2 + content/en/api/java/beta/files/download.md | 2 + content/en/api/java/beta/files/list.md | 2 + .../api/java/beta/files/retrieve_metadata.md | 2 + content/en/api/java/beta/files/upload.md | 2 + content/en/api/java/beta/memory_stores.md | 494 +- .../en/api/java/beta/memory_stores/archive.md | 32 +- .../en/api/java/beta/memory_stores/create.md | 40 +- .../en/api/java/beta/memory_stores/delete.md | 12 +- .../en/api/java/beta/memory_stores/list.md | 34 +- .../api/java/beta/memory_stores/memories.md | 272 +- .../beta/memory_stores/memories/create.md | 46 +- .../beta/memory_stores/memories/delete.md | 14 +- .../java/beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../beta/memory_stores/memories/update.md | 46 +- .../beta/memory_stores/memory_versions.md | 132 +- .../memory_stores/memory_versions/list.md | 42 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- .../api/java/beta/memory_stores/retrieve.md | 30 +- .../en/api/java/beta/memory_stores/update.md | 42 +- content/en/api/java/beta/messages.md | 324 +- content/en/api/java/beta/messages/batches.md | 152 +- .../api/java/beta/messages/batches/cancel.md | 2 + .../api/java/beta/messages/batches/create.md | 30 +- .../api/java/beta/messages/batches/delete.md | 2 + .../en/api/java/beta/messages/batches/list.md | 2 + .../api/java/beta/messages/batches/results.md | 30 + .../java/beta/messages/batches/retrieve.md | 2 + .../en/api/java/beta/messages/count_tokens.md | 4 +- content/en/api/java/beta/messages/create.md | 32 +- content/en/api/java/beta/models.md | 4 + content/en/api/java/beta/models/list.md | 2 + content/en/api/java/beta/models/retrieve.md | 2 + content/en/api/java/beta/sessions.md | 38 + content/en/api/java/beta/sessions/archive.md | 2 + content/en/api/java/beta/sessions/create.md | 2 + content/en/api/java/beta/sessions/delete.md | 2 + content/en/api/java/beta/sessions/events.md | 6 + .../en/api/java/beta/sessions/events/list.md | 2 + .../en/api/java/beta/sessions/events/send.md | 2 + .../api/java/beta/sessions/events/stream.md | 2 + content/en/api/java/beta/sessions/list.md | 2 + .../en/api/java/beta/sessions/resources.md | 10 + .../api/java/beta/sessions/resources/add.md | 2 + .../java/beta/sessions/resources/delete.md | 2 + .../api/java/beta/sessions/resources/list.md | 2 + .../java/beta/sessions/resources/retrieve.md | 2 + .../java/beta/sessions/resources/update.md | 2 + content/en/api/java/beta/sessions/retrieve.md | 2 + content/en/api/java/beta/sessions/threads.md | 10 + .../api/java/beta/sessions/threads/archive.md | 2 + .../api/java/beta/sessions/threads/events.md | 4 + .../java/beta/sessions/threads/events/list.md | 2 + .../beta/sessions/threads/events/stream.md | 2 + .../en/api/java/beta/sessions/threads/list.md | 2 + .../java/beta/sessions/threads/retrieve.md | 2 + content/en/api/java/beta/sessions/update.md | 2 + content/en/api/java/beta/skills.md | 18 + content/en/api/java/beta/skills/create.md | 2 + content/en/api/java/beta/skills/delete.md | 2 + content/en/api/java/beta/skills/list.md | 2 + content/en/api/java/beta/skills/retrieve.md | 2 + content/en/api/java/beta/skills/versions.md | 10 + .../api/java/beta/skills/versions/create.md | 2 + .../api/java/beta/skills/versions/delete.md | 2 + .../api/java/beta/skills/versions/download.md | 2 + .../en/api/java/beta/skills/versions/list.md | 2 + .../api/java/beta/skills/versions/retrieve.md | 2 + content/en/api/java/beta/tunnels.md | 20 + content/en/api/java/beta/tunnels/archive.md | 2 + .../en/api/java/beta/tunnels/certificates.md | 8 + .../java/beta/tunnels/certificates/archive.md | 2 + .../java/beta/tunnels/certificates/create.md | 2 + .../java/beta/tunnels/certificates/list.md | 2 + .../beta/tunnels/certificates/retrieve.md | 2 + content/en/api/java/beta/tunnels/create.md | 2 + content/en/api/java/beta/tunnels/list.md | 2 + content/en/api/java/beta/tunnels/retrieve.md | 2 + .../en/api/java/beta/tunnels/reveal_token.md | 2 + .../en/api/java/beta/tunnels/rotate_token.md | 2 + content/en/api/java/beta/user_profiles.md | 566 +- .../en/api/java/beta/user_profiles/create.md | 44 +- .../user_profiles/create_enrollment_url.md | 6 +- .../en/api/java/beta/user_profiles/list.md | 38 +- .../api/java/beta/user_profiles/retrieve.md | 38 +- .../en/api/java/beta/user_profiles/update.md | 44 +- content/en/api/java/beta/vaults.md | 26 + content/en/api/java/beta/vaults/archive.md | 2 + content/en/api/java/beta/vaults/create.md | 2 + .../en/api/java/beta/vaults/credentials.md | 14 + .../java/beta/vaults/credentials/archive.md | 2 + .../java/beta/vaults/credentials/create.md | 2 + .../java/beta/vaults/credentials/delete.md | 2 + .../api/java/beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../java/beta/vaults/credentials/retrieve.md | 2 + .../java/beta/vaults/credentials/update.md | 2 + content/en/api/java/beta/vaults/delete.md | 2 + content/en/api/java/beta/vaults/list.md | 2 + content/en/api/java/beta/vaults/retrieve.md | 2 + content/en/api/java/beta/vaults/update.md | 2 + content/en/api/java/beta/webhooks.md | 88 + content/en/api/java/completions.md | 2 + content/en/api/java/completions/create.md | 2 + content/en/api/java/messages.md | 230 +- content/en/api/java/messages/batches.md | 114 +- .../en/api/java/messages/batches/create.md | 2 +- .../en/api/java/messages/batches/results.md | 28 + content/en/api/java/messages/count_tokens.md | 2 +- content/en/api/java/messages/create.md | 30 +- content/en/api/java/models.md | 4 + content/en/api/java/models/list.md | 2 + content/en/api/java/models/retrieve.md | 2 + content/en/api/messages.md | 230 +- content/en/api/messages/batches.md | 114 +- content/en/api/messages/batches/create.md | 2 +- content/en/api/messages/batches/results.md | 28 + content/en/api/messages/count_tokens.md | 2 +- content/en/api/messages/create.md | 30 +- content/en/api/models.md | 4 + content/en/api/models/list.md | 2 + content/en/api/models/retrieve.md | 2 + content/en/api/opentelemetry/spans.md | 9 +- content/en/api/organization.md | 274 +- content/en/api/organization/rate_limits.md | 4 +- .../en/api/organization/rate_limits/list.md | 2 +- content/en/api/organization/workspaces.md | 272 + .../organization/workspaces/rate_limits.md | 328 + .../workspaces/rate_limits/update.md | 276 + content/en/api/php/beta.md | 2158 +- content/en/api/php/beta/agents.md | 20 + content/en/api/php/beta/agents/archive.md | 3 + content/en/api/php/beta/agents/create.md | 4 + content/en/api/php/beta/agents/list.md | 3 + content/en/api/php/beta/agents/retrieve.md | 3 + content/en/api/php/beta/agents/update.md | 4 + content/en/api/php/beta/agents/versions.md | 3 + .../en/api/php/beta/agents/versions/list.md | 3 + content/en/api/php/beta/deployment_runs.md | 7 + .../en/api/php/beta/deployment_runs/list.md | 4 + .../api/php/beta/deployment_runs/retrieve.md | 3 + content/en/api/php/beta/deployments.md | 27 + .../en/api/php/beta/deployments/archive.md | 3 + content/en/api/php/beta/deployments/create.md | 4 + content/en/api/php/beta/deployments/list.md | 4 + content/en/api/php/beta/deployments/pause.md | 3 + .../en/api/php/beta/deployments/retrieve.md | 3 + content/en/api/php/beta/deployments/run.md | 3 + .../en/api/php/beta/deployments/unpause.md | 3 + content/en/api/php/beta/deployments/update.md | 4 + content/en/api/php/beta/environments.md | 42 + .../en/api/php/beta/environments/archive.md | 3 + .../en/api/php/beta/environments/create.md | 3 + .../en/api/php/beta/environments/delete.md | 3 + content/en/api/php/beta/environments/list.md | 3 + .../en/api/php/beta/environments/retrieve.md | 3 + .../en/api/php/beta/environments/update.md | 3 + content/en/api/php/beta/environments/work.md | 24 + .../en/api/php/beta/environments/work/ack.md | 3 + .../php/beta/environments/work/heartbeat.md | 3 + .../en/api/php/beta/environments/work/list.md | 3 + .../en/api/php/beta/environments/work/poll.md | 3 + .../php/beta/environments/work/retrieve.md | 3 + .../api/php/beta/environments/work/stats.md | 3 + .../en/api/php/beta/environments/work/stop.md | 3 + .../api/php/beta/environments/work/update.md | 3 + content/en/api/php/beta/files.md | 16 + content/en/api/php/beta/files/delete.md | 3 + content/en/api/php/beta/files/download.md | 3 + content/en/api/php/beta/files/list.md | 3 + .../api/php/beta/files/retrieve_metadata.md | 3 + content/en/api/php/beta/files/upload.md | 4 + content/en/api/php/beta/memory_stores.md | 455 +- .../en/api/php/beta/memory_stores/archive.md | 33 +- .../en/api/php/beta/memory_stores/create.md | 41 +- .../en/api/php/beta/memory_stores/delete.md | 13 +- content/en/api/php/beta/memory_stores/list.md | 35 +- .../en/api/php/beta/memory_stores/memories.md | 205 +- .../php/beta/memory_stores/memories/create.md | 42 +- .../php/beta/memory_stores/memories/delete.md | 9 +- .../php/beta/memory_stores/memories/list.md | 48 +- .../beta/memory_stores/memories/retrieve.md | 34 +- .../php/beta/memory_stores/memories/update.md | 42 +- .../php/beta/memory_stores/memory_versions.md | 102 +- .../memory_stores/memory_versions/list.md | 37 +- .../memory_stores/memory_versions/redact.md | 25 +- .../memory_stores/memory_versions/retrieve.md | 30 +- .../en/api/php/beta/memory_stores/retrieve.md | 31 +- .../en/api/php/beta/memory_stores/update.md | 43 +- content/en/api/php/beta/messages.md | 88 +- content/en/api/php/beta/messages/batches.md | 22 +- .../api/php/beta/messages/batches/cancel.md | 3 + .../api/php/beta/messages/batches/create.md | 7 +- .../api/php/beta/messages/batches/delete.md | 3 + .../en/api/php/beta/messages/batches/list.md | 3 + .../api/php/beta/messages/batches/results.md | 3 + .../api/php/beta/messages/batches/retrieve.md | 3 + .../en/api/php/beta/messages/count_tokens.md | 7 +- content/en/api/php/beta/messages/create.md | 7 +- content/en/api/php/beta/models.md | 6 + content/en/api/php/beta/models/list.md | 3 + content/en/api/php/beta/models/retrieve.md | 3 + content/en/api/php/beta/sessions.md | 63 + content/en/api/php/beta/sessions/archive.md | 3 + content/en/api/php/beta/sessions/create.md | 4 + content/en/api/php/beta/sessions/delete.md | 3 + content/en/api/php/beta/sessions/events.md | 11 + .../en/api/php/beta/sessions/events/list.md | 4 + .../en/api/php/beta/sessions/events/send.md | 3 + .../en/api/php/beta/sessions/events/stream.md | 4 + content/en/api/php/beta/sessions/list.md | 3 + content/en/api/php/beta/sessions/resources.md | 15 + .../en/api/php/beta/sessions/resources/add.md | 3 + .../api/php/beta/sessions/resources/delete.md | 3 + .../api/php/beta/sessions/resources/list.md | 3 + .../php/beta/sessions/resources/retrieve.md | 3 + .../api/php/beta/sessions/resources/update.md | 3 + content/en/api/php/beta/sessions/retrieve.md | 3 + content/en/api/php/beta/sessions/threads.md | 17 + .../api/php/beta/sessions/threads/archive.md | 3 + .../api/php/beta/sessions/threads/events.md | 7 + .../php/beta/sessions/threads/events/list.md | 3 + .../beta/sessions/threads/events/stream.md | 4 + .../en/api/php/beta/sessions/threads/list.md | 4 + .../api/php/beta/sessions/threads/retrieve.md | 3 + content/en/api/php/beta/sessions/update.md | 4 + content/en/api/php/beta/skills.md | 29 + content/en/api/php/beta/skills/create.md | 4 + content/en/api/php/beta/skills/delete.md | 3 + content/en/api/php/beta/skills/list.md | 3 + content/en/api/php/beta/skills/retrieve.md | 3 + content/en/api/php/beta/skills/versions.md | 16 + .../en/api/php/beta/skills/versions/create.md | 4 + .../en/api/php/beta/skills/versions/delete.md | 3 + .../api/php/beta/skills/versions/download.md | 3 + .../en/api/php/beta/skills/versions/list.md | 3 + .../api/php/beta/skills/versions/retrieve.md | 3 + content/en/api/php/beta/tunnels.md | 30 + content/en/api/php/beta/tunnels/archive.md | 3 + .../en/api/php/beta/tunnels/certificates.md | 12 + .../php/beta/tunnels/certificates/archive.md | 3 + .../php/beta/tunnels/certificates/create.md | 3 + .../api/php/beta/tunnels/certificates/list.md | 3 + .../php/beta/tunnels/certificates/retrieve.md | 3 + content/en/api/php/beta/tunnels/create.md | 3 + content/en/api/php/beta/tunnels/list.md | 3 + content/en/api/php/beta/tunnels/retrieve.md | 3 + .../en/api/php/beta/tunnels/reveal_token.md | 3 + .../en/api/php/beta/tunnels/rotate_token.md | 3 + content/en/api/php/beta/user_profiles.md | 365 +- .../en/api/php/beta/user_profiles/create.md | 59 +- .../user_profiles/create_enrollment_url.md | 5 +- content/en/api/php/beta/user_profiles/list.md | 39 +- .../en/api/php/beta/user_profiles/retrieve.md | 39 +- .../en/api/php/beta/user_profiles/update.md | 49 +- content/en/api/php/beta/vaults.md | 39 + content/en/api/php/beta/vaults/archive.md | 3 + content/en/api/php/beta/vaults/create.md | 3 + content/en/api/php/beta/vaults/credentials.md | 21 + .../php/beta/vaults/credentials/archive.md | 3 + .../api/php/beta/vaults/credentials/create.md | 3 + .../api/php/beta/vaults/credentials/delete.md | 3 + .../api/php/beta/vaults/credentials/list.md | 3 + .../vaults/credentials/mcp_oauth_validate.md | 3 + .../php/beta/vaults/credentials/retrieve.md | 3 + .../api/php/beta/vaults/credentials/update.md | 3 + content/en/api/php/beta/vaults/delete.md | 3 + content/en/api/php/beta/vaults/list.md | 3 + content/en/api/php/beta/vaults/retrieve.md | 3 + content/en/api/php/beta/vaults/update.md | 3 + content/en/api/php/beta/webhooks.md | 60 + content/en/api/php/completions.md | 2 + content/en/api/php/completions/create.md | 2 + content/en/api/php/messages.md | 25 +- content/en/api/php/messages/batches.md | 15 +- content/en/api/php/messages/batches/cancel.md | 2 + content/en/api/php/messages/batches/create.md | 5 +- content/en/api/php/messages/batches/delete.md | 2 + content/en/api/php/messages/batches/list.md | 2 + .../en/api/php/messages/batches/results.md | 2 + .../en/api/php/messages/batches/retrieve.md | 2 + content/en/api/php/messages/count_tokens.md | 5 +- content/en/api/php/messages/create.md | 5 +- content/en/api/php/models.md | 6 + content/en/api/php/models/list.md | 3 + content/en/api/php/models/retrieve.md | 3 + content/en/api/python/beta.md | 5129 +- content/en/api/python/beta/agents.md | 12 + content/en/api/python/beta/agents/archive.md | 2 + content/en/api/python/beta/agents/create.md | 2 + content/en/api/python/beta/agents/list.md | 2 + content/en/api/python/beta/agents/retrieve.md | 2 + content/en/api/python/beta/agents/update.md | 2 + content/en/api/python/beta/agents/versions.md | 2 + .../api/python/beta/agents/versions/list.md | 2 + content/en/api/python/beta/deployment_runs.md | 4 + .../api/python/beta/deployment_runs/list.md | 2 + .../python/beta/deployment_runs/retrieve.md | 2 + content/en/api/python/beta/deployments.md | 16 + .../en/api/python/beta/deployments/archive.md | 2 + .../en/api/python/beta/deployments/create.md | 2 + .../en/api/python/beta/deployments/list.md | 2 + .../en/api/python/beta/deployments/pause.md | 2 + .../api/python/beta/deployments/retrieve.md | 2 + content/en/api/python/beta/deployments/run.md | 2 + .../en/api/python/beta/deployments/unpause.md | 2 + .../en/api/python/beta/deployments/update.md | 2 + content/en/api/python/beta/environments.md | 28 + .../api/python/beta/environments/archive.md | 2 + .../en/api/python/beta/environments/create.md | 2 + .../en/api/python/beta/environments/delete.md | 2 + .../en/api/python/beta/environments/list.md | 2 + .../api/python/beta/environments/retrieve.md | 2 + .../en/api/python/beta/environments/update.md | 2 + .../en/api/python/beta/environments/work.md | 16 + .../api/python/beta/environments/work/ack.md | 2 + .../beta/environments/work/heartbeat.md | 2 + .../api/python/beta/environments/work/list.md | 2 + .../api/python/beta/environments/work/poll.md | 2 + .../python/beta/environments/work/retrieve.md | 2 + .../python/beta/environments/work/stats.md | 2 + .../api/python/beta/environments/work/stop.md | 2 + .../python/beta/environments/work/update.md | 2 + content/en/api/python/beta/files.md | 10 + content/en/api/python/beta/files/delete.md | 2 + content/en/api/python/beta/files/download.md | 2 + content/en/api/python/beta/files/list.md | 2 + .../python/beta/files/retrieve_metadata.md | 2 + content/en/api/python/beta/files/upload.md | 2 + content/en/api/python/beta/memory_stores.md | 494 +- .../api/python/beta/memory_stores/archive.md | 32 +- .../api/python/beta/memory_stores/create.md | 40 +- .../api/python/beta/memory_stores/delete.md | 12 +- .../en/api/python/beta/memory_stores/list.md | 34 +- .../api/python/beta/memory_stores/memories.md | 272 +- .../beta/memory_stores/memories/create.md | 46 +- .../beta/memory_stores/memories/delete.md | 14 +- .../beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../beta/memory_stores/memories/update.md | 46 +- .../beta/memory_stores/memory_versions.md | 132 +- .../memory_stores/memory_versions/list.md | 42 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- .../api/python/beta/memory_stores/retrieve.md | 30 +- .../api/python/beta/memory_stores/update.md | 42 +- content/en/api/python/beta/messages.md | 350 +- .../en/api/python/beta/messages/batches.md | 152 +- .../python/beta/messages/batches/cancel.md | 2 + .../python/beta/messages/batches/create.md | 30 +- .../python/beta/messages/batches/delete.md | 2 + .../api/python/beta/messages/batches/list.md | 2 + .../python/beta/messages/batches/results.md | 30 + .../python/beta/messages/batches/retrieve.md | 2 + .../api/python/beta/messages/count_tokens.md | 4 +- content/en/api/python/beta/messages/create.md | 58 +- content/en/api/python/beta/models.md | 4 + content/en/api/python/beta/models/list.md | 2 + content/en/api/python/beta/models/retrieve.md | 2 + content/en/api/python/beta/sessions.md | 38 + .../en/api/python/beta/sessions/archive.md | 2 + content/en/api/python/beta/sessions/create.md | 2 + content/en/api/python/beta/sessions/delete.md | 2 + content/en/api/python/beta/sessions/events.md | 6 + .../api/python/beta/sessions/events/list.md | 2 + .../api/python/beta/sessions/events/send.md | 2 + .../api/python/beta/sessions/events/stream.md | 2 + content/en/api/python/beta/sessions/list.md | 2 + .../en/api/python/beta/sessions/resources.md | 10 + .../api/python/beta/sessions/resources/add.md | 2 + .../python/beta/sessions/resources/delete.md | 2 + .../python/beta/sessions/resources/list.md | 2 + .../beta/sessions/resources/retrieve.md | 2 + .../python/beta/sessions/resources/update.md | 2 + .../en/api/python/beta/sessions/retrieve.md | 2 + .../en/api/python/beta/sessions/threads.md | 10 + .../python/beta/sessions/threads/archive.md | 2 + .../python/beta/sessions/threads/events.md | 4 + .../beta/sessions/threads/events/list.md | 2 + .../beta/sessions/threads/events/stream.md | 2 + .../api/python/beta/sessions/threads/list.md | 2 + .../python/beta/sessions/threads/retrieve.md | 2 + content/en/api/python/beta/sessions/update.md | 2 + content/en/api/python/beta/skills.md | 18 + content/en/api/python/beta/skills/create.md | 2 + content/en/api/python/beta/skills/delete.md | 2 + content/en/api/python/beta/skills/list.md | 2 + content/en/api/python/beta/skills/retrieve.md | 2 + content/en/api/python/beta/skills/versions.md | 10 + .../api/python/beta/skills/versions/create.md | 2 + .../api/python/beta/skills/versions/delete.md | 2 + .../python/beta/skills/versions/download.md | 2 + .../api/python/beta/skills/versions/list.md | 2 + .../python/beta/skills/versions/retrieve.md | 2 + content/en/api/python/beta/tunnels.md | 20 + content/en/api/python/beta/tunnels/archive.md | 2 + .../api/python/beta/tunnels/certificates.md | 8 + .../beta/tunnels/certificates/archive.md | 2 + .../beta/tunnels/certificates/create.md | 2 + .../python/beta/tunnels/certificates/list.md | 2 + .../beta/tunnels/certificates/retrieve.md | 2 + content/en/api/python/beta/tunnels/create.md | 2 + content/en/api/python/beta/tunnels/list.md | 2 + .../en/api/python/beta/tunnels/retrieve.md | 2 + .../api/python/beta/tunnels/reveal_token.md | 2 + .../api/python/beta/tunnels/rotate_token.md | 2 + content/en/api/python/beta/user_profiles.md | 556 +- .../api/python/beta/user_profiles/create.md | 44 +- .../user_profiles/create_enrollment_url.md | 6 +- .../en/api/python/beta/user_profiles/list.md | 38 +- .../api/python/beta/user_profiles/retrieve.md | 38 +- .../api/python/beta/user_profiles/update.md | 44 +- content/en/api/python/beta/vaults.md | 26 + content/en/api/python/beta/vaults/archive.md | 2 + content/en/api/python/beta/vaults/create.md | 2 + .../en/api/python/beta/vaults/credentials.md | 14 + .../python/beta/vaults/credentials/archive.md | 2 + .../python/beta/vaults/credentials/create.md | 2 + .../python/beta/vaults/credentials/delete.md | 2 + .../python/beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../beta/vaults/credentials/retrieve.md | 2 + .../python/beta/vaults/credentials/update.md | 2 + content/en/api/python/beta/vaults/delete.md | 2 + content/en/api/python/beta/vaults/list.md | 2 + content/en/api/python/beta/vaults/retrieve.md | 2 + content/en/api/python/beta/vaults/update.md | 2 + content/en/api/python/beta/webhooks.md | 88 + content/en/api/python/completions.md | 2 + content/en/api/python/completions/create.md | 2 + content/en/api/python/messages.md | 230 +- content/en/api/python/messages/batches.md | 114 +- .../en/api/python/messages/batches/create.md | 2 +- .../en/api/python/messages/batches/results.md | 28 + .../en/api/python/messages/count_tokens.md | 2 +- content/en/api/python/messages/create.md | 30 +- content/en/api/python/models.md | 4 + content/en/api/python/models/list.md | 2 + content/en/api/python/models/retrieve.md | 2 + content/en/api/ruby/beta.md | 92778 +++++++++------- content/en/api/ruby/beta/agents.md | 12 + content/en/api/ruby/beta/agents/archive.md | 2 + content/en/api/ruby/beta/agents/create.md | 2 + content/en/api/ruby/beta/agents/list.md | 2 + content/en/api/ruby/beta/agents/retrieve.md | 2 + content/en/api/ruby/beta/agents/update.md | 2 + content/en/api/ruby/beta/agents/versions.md | 2 + .../en/api/ruby/beta/agents/versions/list.md | 2 + content/en/api/ruby/beta/deployment_runs.md | 4 + .../en/api/ruby/beta/deployment_runs/list.md | 2 + .../api/ruby/beta/deployment_runs/retrieve.md | 2 + content/en/api/ruby/beta/deployments.md | 16 + .../en/api/ruby/beta/deployments/archive.md | 2 + .../en/api/ruby/beta/deployments/create.md | 2 + content/en/api/ruby/beta/deployments/list.md | 2 + content/en/api/ruby/beta/deployments/pause.md | 2 + .../en/api/ruby/beta/deployments/retrieve.md | 2 + content/en/api/ruby/beta/deployments/run.md | 2 + .../en/api/ruby/beta/deployments/unpause.md | 2 + .../en/api/ruby/beta/deployments/update.md | 2 + content/en/api/ruby/beta/environments.md | 28 + .../en/api/ruby/beta/environments/archive.md | 2 + .../en/api/ruby/beta/environments/create.md | 2 + .../en/api/ruby/beta/environments/delete.md | 2 + content/en/api/ruby/beta/environments/list.md | 2 + .../en/api/ruby/beta/environments/retrieve.md | 2 + .../en/api/ruby/beta/environments/update.md | 2 + content/en/api/ruby/beta/environments/work.md | 16 + .../en/api/ruby/beta/environments/work/ack.md | 2 + .../ruby/beta/environments/work/heartbeat.md | 2 + .../api/ruby/beta/environments/work/list.md | 2 + .../api/ruby/beta/environments/work/poll.md | 2 + .../ruby/beta/environments/work/retrieve.md | 2 + .../api/ruby/beta/environments/work/stats.md | 2 + .../api/ruby/beta/environments/work/stop.md | 2 + .../api/ruby/beta/environments/work/update.md | 2 + content/en/api/ruby/beta/files.md | 10 + content/en/api/ruby/beta/files/delete.md | 2 + content/en/api/ruby/beta/files/download.md | 2 + content/en/api/ruby/beta/files/list.md | 2 + .../api/ruby/beta/files/retrieve_metadata.md | 2 + content/en/api/ruby/beta/files/upload.md | 2 + content/en/api/ruby/beta/memory_stores.md | 494 +- .../en/api/ruby/beta/memory_stores/archive.md | 32 +- .../en/api/ruby/beta/memory_stores/create.md | 40 +- .../en/api/ruby/beta/memory_stores/delete.md | 12 +- .../en/api/ruby/beta/memory_stores/list.md | 34 +- .../api/ruby/beta/memory_stores/memories.md | 272 +- .../beta/memory_stores/memories/create.md | 46 +- .../beta/memory_stores/memories/delete.md | 14 +- .../ruby/beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../beta/memory_stores/memories/update.md | 46 +- .../beta/memory_stores/memory_versions.md | 132 +- .../memory_stores/memory_versions/list.md | 42 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- .../api/ruby/beta/memory_stores/retrieve.md | 30 +- .../en/api/ruby/beta/memory_stores/update.md | 42 +- content/en/api/ruby/beta/messages.md | 5362 +- content/en/api/ruby/beta/messages/batches.md | 152 +- .../api/ruby/beta/messages/batches/cancel.md | 2 + .../api/ruby/beta/messages/batches/create.md | 30 +- .../api/ruby/beta/messages/batches/delete.md | 2 + .../en/api/ruby/beta/messages/batches/list.md | 2 + .../api/ruby/beta/messages/batches/results.md | 30 + .../ruby/beta/messages/batches/retrieve.md | 2 + .../en/api/ruby/beta/messages/count_tokens.md | 4 +- content/en/api/ruby/beta/messages/create.md | 58 +- content/en/api/ruby/beta/models.md | 4 + content/en/api/ruby/beta/models/list.md | 2 + content/en/api/ruby/beta/models/retrieve.md | 2 + content/en/api/ruby/beta/sessions.md | 38 + content/en/api/ruby/beta/sessions/archive.md | 2 + content/en/api/ruby/beta/sessions/create.md | 2 + content/en/api/ruby/beta/sessions/delete.md | 2 + content/en/api/ruby/beta/sessions/events.md | 6 + .../en/api/ruby/beta/sessions/events/list.md | 2 + .../en/api/ruby/beta/sessions/events/send.md | 2 + .../api/ruby/beta/sessions/events/stream.md | 2 + content/en/api/ruby/beta/sessions/list.md | 2 + .../en/api/ruby/beta/sessions/resources.md | 10 + .../api/ruby/beta/sessions/resources/add.md | 2 + .../ruby/beta/sessions/resources/delete.md | 2 + .../api/ruby/beta/sessions/resources/list.md | 2 + .../ruby/beta/sessions/resources/retrieve.md | 2 + .../ruby/beta/sessions/resources/update.md | 2 + content/en/api/ruby/beta/sessions/retrieve.md | 2 + content/en/api/ruby/beta/sessions/threads.md | 10 + .../api/ruby/beta/sessions/threads/archive.md | 2 + .../api/ruby/beta/sessions/threads/events.md | 4 + .../ruby/beta/sessions/threads/events/list.md | 2 + .../beta/sessions/threads/events/stream.md | 2 + .../en/api/ruby/beta/sessions/threads/list.md | 2 + .../ruby/beta/sessions/threads/retrieve.md | 2 + content/en/api/ruby/beta/sessions/update.md | 2 + content/en/api/ruby/beta/skills.md | 18 + content/en/api/ruby/beta/skills/create.md | 2 + content/en/api/ruby/beta/skills/delete.md | 2 + content/en/api/ruby/beta/skills/list.md | 2 + content/en/api/ruby/beta/skills/retrieve.md | 2 + content/en/api/ruby/beta/skills/versions.md | 10 + .../api/ruby/beta/skills/versions/create.md | 2 + .../api/ruby/beta/skills/versions/delete.md | 2 + .../api/ruby/beta/skills/versions/download.md | 2 + .../en/api/ruby/beta/skills/versions/list.md | 2 + .../api/ruby/beta/skills/versions/retrieve.md | 2 + content/en/api/ruby/beta/tunnels.md | 20 + content/en/api/ruby/beta/tunnels/archive.md | 2 + .../en/api/ruby/beta/tunnels/certificates.md | 8 + .../ruby/beta/tunnels/certificates/archive.md | 2 + .../ruby/beta/tunnels/certificates/create.md | 2 + .../ruby/beta/tunnels/certificates/list.md | 2 + .../beta/tunnels/certificates/retrieve.md | 2 + content/en/api/ruby/beta/tunnels/create.md | 2 + content/en/api/ruby/beta/tunnels/list.md | 2 + content/en/api/ruby/beta/tunnels/retrieve.md | 2 + .../en/api/ruby/beta/tunnels/reveal_token.md | 2 + .../en/api/ruby/beta/tunnels/rotate_token.md | 2 + content/en/api/ruby/beta/user_profiles.md | 548 +- .../en/api/ruby/beta/user_profiles/create.md | 44 +- .../user_profiles/create_enrollment_url.md | 6 +- .../en/api/ruby/beta/user_profiles/list.md | 38 +- .../api/ruby/beta/user_profiles/retrieve.md | 38 +- .../en/api/ruby/beta/user_profiles/update.md | 44 +- content/en/api/ruby/beta/vaults.md | 26 + content/en/api/ruby/beta/vaults/archive.md | 2 + content/en/api/ruby/beta/vaults/create.md | 2 + .../en/api/ruby/beta/vaults/credentials.md | 14 + .../ruby/beta/vaults/credentials/archive.md | 2 + .../ruby/beta/vaults/credentials/create.md | 2 + .../ruby/beta/vaults/credentials/delete.md | 2 + .../api/ruby/beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../ruby/beta/vaults/credentials/retrieve.md | 2 + .../ruby/beta/vaults/credentials/update.md | 2 + content/en/api/ruby/beta/vaults/delete.md | 2 + content/en/api/ruby/beta/vaults/list.md | 2 + content/en/api/ruby/beta/vaults/retrieve.md | 2 + content/en/api/ruby/beta/vaults/update.md | 2 + content/en/api/ruby/beta/webhooks.md | 90 +- content/en/api/ruby/completions.md | 2 + content/en/api/ruby/completions/create.md | 2 + content/en/api/ruby/messages.md | 3696 +- content/en/api/ruby/messages/batches.md | 114 +- .../en/api/ruby/messages/batches/create.md | 2 +- .../en/api/ruby/messages/batches/results.md | 28 + content/en/api/ruby/messages/count_tokens.md | 2 +- content/en/api/ruby/messages/create.md | 30 +- content/en/api/ruby/models.md | 4 + content/en/api/ruby/models/list.md | 2 + content/en/api/ruby/models/retrieve.md | 2 + content/en/api/typescript/beta.md | 4601 +- content/en/api/typescript/beta/agents.md | 12 + .../en/api/typescript/beta/agents/archive.md | 2 + .../en/api/typescript/beta/agents/create.md | 2 + content/en/api/typescript/beta/agents/list.md | 2 + .../en/api/typescript/beta/agents/retrieve.md | 2 + .../en/api/typescript/beta/agents/update.md | 2 + .../en/api/typescript/beta/agents/versions.md | 2 + .../typescript/beta/agents/versions/list.md | 2 + .../en/api/typescript/beta/deployment_runs.md | 4 + .../typescript/beta/deployment_runs/list.md | 2 + .../beta/deployment_runs/retrieve.md | 2 + content/en/api/typescript/beta/deployments.md | 16 + .../typescript/beta/deployments/archive.md | 2 + .../api/typescript/beta/deployments/create.md | 2 + .../api/typescript/beta/deployments/list.md | 2 + .../api/typescript/beta/deployments/pause.md | 2 + .../typescript/beta/deployments/retrieve.md | 2 + .../en/api/typescript/beta/deployments/run.md | 2 + .../typescript/beta/deployments/unpause.md | 2 + .../api/typescript/beta/deployments/update.md | 2 + .../en/api/typescript/beta/environments.md | 28 + .../typescript/beta/environments/archive.md | 2 + .../typescript/beta/environments/create.md | 2 + .../typescript/beta/environments/delete.md | 2 + .../api/typescript/beta/environments/list.md | 2 + .../typescript/beta/environments/retrieve.md | 2 + .../typescript/beta/environments/update.md | 2 + .../api/typescript/beta/environments/work.md | 16 + .../typescript/beta/environments/work/ack.md | 2 + .../beta/environments/work/heartbeat.md | 2 + .../typescript/beta/environments/work/list.md | 2 + .../typescript/beta/environments/work/poll.md | 2 + .../beta/environments/work/retrieve.md | 2 + .../beta/environments/work/stats.md | 2 + .../typescript/beta/environments/work/stop.md | 2 + .../beta/environments/work/update.md | 2 + content/en/api/typescript/beta/files.md | 10 + .../en/api/typescript/beta/files/delete.md | 2 + .../en/api/typescript/beta/files/download.md | 2 + content/en/api/typescript/beta/files/list.md | 2 + .../beta/files/retrieve_metadata.md | 2 + .../en/api/typescript/beta/files/upload.md | 2 + .../en/api/typescript/beta/memory_stores.md | 494 +- .../typescript/beta/memory_stores/archive.md | 32 +- .../typescript/beta/memory_stores/create.md | 40 +- .../typescript/beta/memory_stores/delete.md | 12 +- .../api/typescript/beta/memory_stores/list.md | 34 +- .../typescript/beta/memory_stores/memories.md | 272 +- .../beta/memory_stores/memories/create.md | 46 +- .../beta/memory_stores/memories/delete.md | 14 +- .../beta/memory_stores/memories/list.md | 58 +- .../beta/memory_stores/memories/retrieve.md | 38 +- .../beta/memory_stores/memories/update.md | 46 +- .../beta/memory_stores/memory_versions.md | 132 +- .../memory_stores/memory_versions/list.md | 42 +- .../memory_stores/memory_versions/redact.md | 32 +- .../memory_stores/memory_versions/retrieve.md | 36 +- .../typescript/beta/memory_stores/retrieve.md | 30 +- .../typescript/beta/memory_stores/update.md | 42 +- content/en/api/typescript/beta/messages.md | 350 +- .../api/typescript/beta/messages/batches.md | 152 +- .../beta/messages/batches/cancel.md | 2 + .../beta/messages/batches/create.md | 30 +- .../beta/messages/batches/delete.md | 2 + .../typescript/beta/messages/batches/list.md | 2 + .../beta/messages/batches/results.md | 30 + .../beta/messages/batches/retrieve.md | 2 + .../typescript/beta/messages/count_tokens.md | 4 +- .../en/api/typescript/beta/messages/create.md | 58 +- content/en/api/typescript/beta/models.md | 4 + content/en/api/typescript/beta/models/list.md | 2 + .../en/api/typescript/beta/models/retrieve.md | 2 + content/en/api/typescript/beta/sessions.md | 38 + .../api/typescript/beta/sessions/archive.md | 2 + .../en/api/typescript/beta/sessions/create.md | 2 + .../en/api/typescript/beta/sessions/delete.md | 2 + .../en/api/typescript/beta/sessions/events.md | 6 + .../typescript/beta/sessions/events/list.md | 2 + .../typescript/beta/sessions/events/send.md | 2 + .../typescript/beta/sessions/events/stream.md | 2 + .../en/api/typescript/beta/sessions/list.md | 2 + .../api/typescript/beta/sessions/resources.md | 10 + .../typescript/beta/sessions/resources/add.md | 2 + .../beta/sessions/resources/delete.md | 2 + .../beta/sessions/resources/list.md | 2 + .../beta/sessions/resources/retrieve.md | 2 + .../beta/sessions/resources/update.md | 2 + .../api/typescript/beta/sessions/retrieve.md | 2 + .../api/typescript/beta/sessions/threads.md | 10 + .../beta/sessions/threads/archive.md | 2 + .../beta/sessions/threads/events.md | 4 + .../beta/sessions/threads/events/list.md | 2 + .../beta/sessions/threads/events/stream.md | 2 + .../typescript/beta/sessions/threads/list.md | 2 + .../beta/sessions/threads/retrieve.md | 2 + .../en/api/typescript/beta/sessions/update.md | 2 + content/en/api/typescript/beta/skills.md | 18 + .../en/api/typescript/beta/skills/create.md | 2 + .../en/api/typescript/beta/skills/delete.md | 2 + content/en/api/typescript/beta/skills/list.md | 2 + .../en/api/typescript/beta/skills/retrieve.md | 2 + .../en/api/typescript/beta/skills/versions.md | 10 + .../typescript/beta/skills/versions/create.md | 2 + .../typescript/beta/skills/versions/delete.md | 2 + .../beta/skills/versions/download.md | 2 + .../typescript/beta/skills/versions/list.md | 2 + .../beta/skills/versions/retrieve.md | 2 + content/en/api/typescript/beta/tunnels.md | 20 + .../en/api/typescript/beta/tunnels/archive.md | 2 + .../typescript/beta/tunnels/certificates.md | 8 + .../beta/tunnels/certificates/archive.md | 2 + .../beta/tunnels/certificates/create.md | 2 + .../beta/tunnels/certificates/list.md | 2 + .../beta/tunnels/certificates/retrieve.md | 2 + .../en/api/typescript/beta/tunnels/create.md | 2 + .../en/api/typescript/beta/tunnels/list.md | 2 + .../api/typescript/beta/tunnels/retrieve.md | 2 + .../typescript/beta/tunnels/reveal_token.md | 2 + .../typescript/beta/tunnels/rotate_token.md | 2 + .../en/api/typescript/beta/user_profiles.md | 558 +- .../typescript/beta/user_profiles/create.md | 44 +- .../user_profiles/create_enrollment_url.md | 6 +- .../api/typescript/beta/user_profiles/list.md | 38 +- .../typescript/beta/user_profiles/retrieve.md | 38 +- .../typescript/beta/user_profiles/update.md | 44 +- content/en/api/typescript/beta/vaults.md | 26 + .../en/api/typescript/beta/vaults/archive.md | 2 + .../en/api/typescript/beta/vaults/create.md | 2 + .../api/typescript/beta/vaults/credentials.md | 14 + .../beta/vaults/credentials/archive.md | 2 + .../beta/vaults/credentials/create.md | 2 + .../beta/vaults/credentials/delete.md | 2 + .../beta/vaults/credentials/list.md | 2 + .../vaults/credentials/mcp_oauth_validate.md | 2 + .../beta/vaults/credentials/retrieve.md | 2 + .../beta/vaults/credentials/update.md | 2 + .../en/api/typescript/beta/vaults/delete.md | 2 + content/en/api/typescript/beta/vaults/list.md | 2 + .../en/api/typescript/beta/vaults/retrieve.md | 2 + .../en/api/typescript/beta/vaults/update.md | 2 + content/en/api/typescript/beta/webhooks.md | 90 +- content/en/api/typescript/completions.md | 2 + .../en/api/typescript/completions/create.md | 2 + content/en/api/typescript/messages.md | 230 +- content/en/api/typescript/messages/batches.md | 114 +- .../api/typescript/messages/batches/create.md | 2 +- .../typescript/messages/batches/results.md | 28 + .../api/typescript/messages/count_tokens.md | 2 +- content/en/api/typescript/messages/create.md | 30 +- content/en/api/typescript/models.md | 4 + content/en/api/typescript/models/list.md | 2 + content/en/api/typescript/models/retrieve.md | 2 + content/en/api/user_profiles.md | 1983 + content/en/api/user_profiles/action_urls.md | 130 + .../api/user_profiles/action_urls/create.md | 86 + content/en/api/user_profiles/create.md | 355 + content/en/api/user_profiles/delete.md | 60 + content/en/api/user_profiles/list.md | 294 + content/en/api/user_profiles/retrieve.md | 265 + content/en/api/user_profiles/update.md | 355 + .../claude-in-amazon-bedrock.md | 8 +- .../claude-in-microsoft-foundry.md | 10 +- .../claude-on-amazon-bedrock-legacy.md | 8 +- .../build-with-claude/claude-on-vertex-ai.md | 8 +- .../claude-platform-on-aws.md | 8 +- .../cli-sdks-libraries/cli/authentication.md | 2 +- .../en/cli-sdks-libraries/cli/quickstart.md | 2 +- .../en/cli-sdks-libraries/cli/scripting.md | 6 +- content/en/cli-sdks-libraries/overview.md | 15 + content/en/cli-sdks-libraries/sdks/java.md | 4 +- content/en/docs/claude-code/advisor.md | 2 +- .../en/docs/claude-code/agent-sdk/examples.md | 4 + .../en/docs/claude-code/agent-sdk/hooks.md | 1 + content/en/docs/claude-code/agent-sdk/mcp.md | 34 +- .../docs/claude-code/agent-sdk/permissions.md | 2 +- .../en/docs/claude-code/agent-sdk/python.md | 23 +- .../claude-code/agent-sdk/streaming-output.md | 2 +- .../agent-sdk/structured-outputs.md | 11 + .../docs/claude-code/agent-sdk/tool-search.md | 10 +- .../docs/claude-code/agent-sdk/typescript.md | 31 +- content/en/docs/claude-code/agent-view.md | 17 +- content/en/docs/claude-code/artifacts.md | 11 +- content/en/docs/claude-code/changelog.md | 57 + .../claude-code/claude-apps-gateway-config.md | 5 +- .../docs/claude-code/code-review-customize.md | 42 +- .../claude-code/code-review-pull-requests.md | 5 +- .../code-review-troubleshooting.md | 6 +- content/en/docs/claude-code/commands.md | 4 +- content/en/docs/claude-code/costs.md | 27 +- .../claude-code/cross-session-messaging.md | 2 +- .../en/docs/claude-code/desktop-changelog.md | 1 + content/en/docs/claude-code/desktop-linux.md | 2 +- content/en/docs/claude-code/desktop.md | 1 + content/en/docs/claude-code/env-vars.md | 24 +- content/en/docs/claude-code/errors.md | 225 +- .../docs/claude-code/feature-availability.md | 8 +- content/en/docs/claude-code/hipaa-setup.md | 1 + content/en/docs/claude-code/hooks-guide.md | 5 +- content/en/docs/claude-code/hooks.md | 18 +- content/en/docs/claude-code/keybindings.md | 1 + .../docs/claude-code/llm-gateway-connect.md | 2 +- .../docs/claude-code/llm-gateway-protocol.md | 29 +- content/en/docs/claude-code/mcp.md | 30 +- content/en/docs/claude-code/model-config.md | 8 +- content/en/docs/claude-code/network-config.md | 1 + .../en/docs/claude-code/permission-modes.md | 23 +- content/en/docs/claude-code/permissions.md | 4 +- .../en/docs/claude-code/plugins/mods/api.md | 36 + .../docs/claude-code/plugins/mods/gallery.md | 15 +- .../claude-code/plugins/mods/interface.md | 4 +- .../claude-code/plugins/mods/reference.md | 4 +- .../en/docs/claude-code/plugins/mods/test.md | 1 + .../claude-code/plugins/troubleshooting.md | 1 + content/en/docs/claude-code/prompt-caching.md | 6 +- content/en/docs/claude-code/remote-control.md | 11 +- content/en/docs/claude-code/sandboxing.md | 4 + .../self-hosted-environments-configuration.md | 44 +- .../self-hosted-environments-deploy.md | 11 +- .../en/docs/claude-code/settings-reference.md | 9 +- content/en/docs/claude-code/skills.md | 1 + content/en/docs/claude-code/slash-commands.md | 1 + content/en/docs/claude-code/sub-agents.md | 6 + .../en/docs/claude-code/tools-reference.md | 4 +- content/en/docs/claude-code/vs-code.md | 15 +- content/en/docs/claude-code/workflows.md | 6 +- content/en/get-started.md | 6 +- content/en/manage-claude/admin-api.md | 4 + content/en/manage-claude/cmek-aws-kms.md | 2 + content/en/manage-claude/cmek.md | 10 +- content/en/manage-claude/inference-hooks.md | 2 +- content/en/manage-claude/opentelemetry/api.md | 26 +- content/en/manage-claude/opentelemetry/sdk.md | 21 +- .../en/manage-claude/organization-webhooks.md | 413 + content/en/manage-claude/rate-limits-api.md | 4 +- .../user-profiles-verification-portal.md | 10 +- content/en/manage-claude/user-profiles.md | 71 +- content/en/managed-agents/quickstart.md | 4 +- .../secure-deployment-monitoring.md | 33 +- .../en/managed-agents/secure-deployment.md | 10 + .../self-hosted-sandboxes-workers.md | 2 +- .../managed-agents/self-hosted-sandboxes.md | 2 +- content/en/release-notes/overview.md | 5 +- .../github/anthropic-sdk-python/CHANGELOG.md | 19 + content/github/anthropic-sdk-python/api.md | 25 + .../anthropic-sdk-typescript/CHANGELOG.md | 13 +- .../github/anthropic-sdk-typescript/api.md | 21 + .../.claude-plugin/marketplace.json | 2 +- .../.claude-plugin/plugin.json | 2 +- .../plugins/security-guidance/README.md | 14 +- .../mcp/community/interest-groups/agents.md | 112 + content/mcp/community/interest-groups/auth.md | 2 +- .../interest-groups/scientific-computing.md | 2 +- .../community/working-groups/filesystems.md | 2 +- .../working-groups/skills-over-mcp.md | 4 +- .../community/working-groups/tasks-events.md | 116 + .../community/working-groups/transports.md | 12 +- content/mcp/development/roadmap.md | 4 +- .../10167454-use-the-github-integration.md | 14 +- ...how-do-i-log-out-of-all-active-sessions.md | 2 +- ...k-settings-on-team-and-enterprise-plans.md | 2 +- .../10593882-share-and-unshare-chats.md | 6 +- ...ith-local-mcp-servers-on-claude-desktop.md | 2 +- content/support/11101966-use-voice-mode.md | 8 +- ...the-claude-lti-in-canvas-by-instructure.md | 2 +- ...and-memory-to-build-on-previous-context.md | 10 +- ...being-asked-to-verify-my-payment-method.md | 2 +- .../11869629-use-claude-with-android-apps.md | 2 +- ...or-team-and-seat-based-enterprise-plans.md | 10 +- ...12173-get-started-with-claude-in-chrome.md | 2 +- ...eam-plan-from-monthly-to-annual-billing.md | 4 +- ...11783-create-and-edit-files-with-claude.md | 6 +- .../12157520-claude-code-usage-analytics.md | 4 +- .../support/12260368-use-incognito-chats.md | 2 +- .../support/12293051-use-claude-in-xcode.md | 2 +- ...age-usage-credits-for-paid-claude-plans.md | 2 +- ...6728-troubleshoot-claude-error-messages.md | 2 +- .../support/12512180-use-skills-in-claude.md | 2 +- ...d-using-the-desktop-extension-allowlist.md | 8 +- .../12618689-use-claude-code-in-the-cloud.md | 6 +- ...-quick-entry-with-claude-desktop-on-mac.md | 2 +- ...analytics-for-team-and-enterprise-plans.md | 24 +- ...2446-claude-in-chrome-permissions-guide.md | 4 +- .../12997503-team-plan-billing-faqs.md | 2 +- .../13132885-set-up-single-sign-on-sso.md | 8 +- ...3133195-set-up-jit-or-scim-provisioning.md | 6 +- ...1-configuring-session-security-settings.md | 6 +- .../13189465-log-in-to-your-claude-account.md | 2 +- .../13296973-hipaa-ready-enterprise-plans.md | 2 +- .../13325567-account-management-faqs.md | 2 +- ...13345190-get-started-with-claude-cowork.md | 2 +- ...13371040-log-in-to-your-console-account.md | 2 +- ...13641943-visual-and-interactive-content.md | 6 +- .../support/13837440-use-plugins-in-claude.md | 4 +- ...gn-tasks-from-anywhere-in-claude-cowork.md | 4 +- ...ur-tasks-with-projects-in-claude-cowork.md | 12 +- ...sync-works-for-enterprise-organizations.md | 4 +- .../14604842-cyber-verification-program.md | 2 +- ...with-claude-compliance-api-integrations.md | 2 +- ...t-a-default-model-for-your-organization.md | 2 +- ...ed-domain-connectors-to-your-enterprise.md | 8 + ...nage-model-access-for-your-organization.md | 8 +- ...1-get-started-with-1password-for-claude.md | 2 +- ...rstanding-your-pro-or-max-plan-invoices.md | 2 +- ...16893491-get-started-with-smart-reports.md | 24 +- ...claude-in-google-docs-sheets-and-slides.md | 4 +- ...ooled-group-budgets-on-enterprise-plans.md | 2 +- .../17203415-set-up-claude-for-intune.md | 22 +- ...l-mode-on-a-hipaa-ready-enterprise-plan.md | 8 +- ...from-standalone-claude-design-to-claude.md | 22 +- ...rience-for-your-enterprise-organization.md | 20 +- .../8114491-get-started-with-claude.md | 2 +- ...8230524-delete-or-rename-a-conversation.md | 16 +- .../support/8325618-paid-plan-billing-faqs.md | 2 +- ...27-customizing-your-appearance-settings.md | 6 +- ...nt-to-a-team-or-enterprise-organization.md | 2 +- ...77-how-can-i-create-and-manage-projects.md | 6 +- discovery.json | 2 +- tombstones.json | 10 +- 1574 files changed, 157175 insertions(+), 77837 deletions(-) create mode 100644 content/claude/claude-science/update-claude-science.md create mode 100644 content/en/api/beta/organization/webhooks.md create mode 100644 content/en/api/beta/organization/webhooks/create.md create mode 100644 content/en/api/beta/organization/webhooks/delete.md create mode 100644 content/en/api/beta/organization/webhooks/list.md create mode 100644 content/en/api/beta/organization/webhooks/regenerate_signing_secret.md create mode 100644 content/en/api/beta/organization/webhooks/retrieve.md create mode 100644 content/en/api/beta/organization/webhooks/update.md create mode 100644 content/en/api/beta/organization/workspaces/rate_limits/update.md create mode 100644 content/en/api/beta/user_profiles/action_urls.md create mode 100644 content/en/api/beta/user_profiles/action_urls/create.md create mode 100644 content/en/api/beta/user_profiles/delete.md create mode 100644 content/en/api/organization/workspaces/rate_limits/update.md create mode 100644 content/en/api/user_profiles.md create mode 100644 content/en/api/user_profiles/action_urls.md create mode 100644 content/en/api/user_profiles/action_urls/create.md create mode 100644 content/en/api/user_profiles/create.md create mode 100644 content/en/api/user_profiles/delete.md create mode 100644 content/en/api/user_profiles/list.md create mode 100644 content/en/api/user_profiles/retrieve.md create mode 100644 content/en/api/user_profiles/update.md create mode 100644 content/en/manage-claude/organization-webhooks.md create mode 100644 content/mcp/community/interest-groups/agents.md create mode 100644 content/mcp/community/working-groups/tasks-events.md diff --git a/content/.metadata.json b/content/.metadata.json index 50090cafa5..0b9234375d 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-10-20T19:41:29.203244Z", + "fetch_date": "2026-10-21T05:29:11.483359Z", "section": "all" }, "items": [ @@ -30,8 +30,8 @@ "url": "https://platform.claude.com/docs/en/get-started", "status": "success", "path": "en/get-started.md", - "sha256": "d1deb6a8014eec20a7486affd5bf0ee4a41a8bd9a0447b3d3e6d7298be41ef82", - "size": 19486 + "sha256": "090703e794a85d428414f6361a3e0df919b8cf90fea6bc14a26c1c90c999e8ce", + "size": 19387 }, { "url": "https://platform.claude.com/docs/en/manage-claude/authentication", @@ -548,7 +548,7 @@ "url": "https://platform.claude.com/docs/en/agents-and-tools/mcp-connector", "status": "success", "path": "en/agents-and-tools/mcp-connector.md", - "sha256": "c7ce4c3fcedbb58d1609e2a0cae35f5d70db51df070226cc8eeacf683686e708", + "sha256": "b0aa6583a802283a1583bc084e61d11eee7ad6bf7337aefd5f721210927e4bd0", "size": 73460 }, { @@ -618,36 +618,36 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/claude-in-amazon-bedrock", "status": "success", "path": "en/build-with-claude/claude-in-amazon-bedrock.md", - "sha256": "48e34583aa3186886022d3fb3cd09eefff71f876d72984770db0c850e7a2c291", + "sha256": "24d9382149f029faabce170198d96e0c24ca4c8c419b66aa83f2e3c356ba2df5", "size": 23203 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/claude-on-amazon-bedrock-legacy", "status": "success", "path": "en/build-with-claude/claude-on-amazon-bedrock-legacy.md", - "sha256": "957bb6fa7d61889e54f8d0c8ad6aba0948bee13987fbf52d487be0f6ee16e130", + "sha256": "825f810a264e779d212c8112e23015922be01b7d20346943b290caf5516c84c8", "size": 41690 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws", "status": "success", "path": "en/build-with-claude/claude-platform-on-aws.md", - "sha256": "e091731c14bf3e9aa4f4697f4aadfd2501b76650bb00da92f72f50bb414e677d", + "sha256": "a2a71be2ea51950f01fa3995a9ed34c4b01b66274b7c23eb12f07d857908dacb", "size": 101491 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/claude-on-vertex-ai", "status": "success", "path": "en/build-with-claude/claude-on-vertex-ai.md", - "sha256": "64369239253b89cccb5d4ea80c31299750f96149abbae54a24ea8b3e2cd6bf04", + "sha256": "431b963e51fb1a00029ca011f80aed960abec1557124527367475d062b4bca66", "size": 35194 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry", "status": "success", "path": "en/build-with-claude/claude-in-microsoft-foundry.md", - "sha256": "b13e65158d6e1bf0889f5f0ffcec33c84415fc1c9e5a5fdeb4bc912835516af4", - "size": 39362 + "sha256": "38ec822c356a0904924cb6782203200c3e6746ac41eb47fa45e69a10e8533bf9", + "size": 39313 }, { "url": "https://platform.claude.com/docs/en/managed-agents/overview", @@ -660,7 +660,7 @@ "url": "https://platform.claude.com/docs/en/managed-agents/quickstart", "status": "success", "path": "en/managed-agents/quickstart.md", - "sha256": "cfb6d00ee88220de01f7e9c43c787dc43bdde03c8a30af33659b07b80de37b68", + "sha256": "4589a8e538f5b089ad2403e5df726d417d82220d45723927b8c4bab9ac58d40a", "size": 34661 }, { @@ -744,14 +744,14 @@ "url": "https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes", "status": "success", "path": "en/managed-agents/self-hosted-sandboxes.md", - "sha256": "613bb81d7340993003435e9d77bfeb108aa79263ca5a8059cf4c1df4a259c55a", + "sha256": "01f7c83b029f54a87aafa79fb2631d04b9d5d1654664b4eb7541970dc75eefaf", "size": 22845 }, { "url": "https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-workers", "status": "success", "path": "en/managed-agents/self-hosted-sandboxes-workers.md", - "sha256": "2d10ee04f30f754e6b87f08e90f2b0ff28a957ca0027ba473b3fb6ed437d1daa", + "sha256": "b53de27905518cd8306521873e3c6f8272cebee46d0a3b9417083b662ce95694", "size": 38476 }, { @@ -912,15 +912,15 @@ "url": "https://platform.claude.com/docs/en/managed-agents/secure-deployment", "status": "success", "path": "en/managed-agents/secure-deployment.md", - "sha256": "ae37ebf21f5e9c37b0101afb1d44c4f06eb70ff6228df7fc649877965d9e6147", - "size": 69312 + "sha256": "372332d48ac29122407602b6e8cee184aebbb240268c746c9813de0bdd12c16b", + "size": 69993 }, { "url": "https://platform.claude.com/docs/en/managed-agents/secure-deployment-monitoring", "status": "success", "path": "en/managed-agents/secure-deployment-monitoring.md", - "sha256": "a44a7c3dedff545b82ec248dd0faf59a81f52eaa32350f998a201ad478f7003f", - "size": 10632 + "sha256": "7ad49f174e97fad29343556b8845cc71c480b8b1add19d4576553c0989f19e3f", + "size": 6985 }, { "url": "https://platform.claude.com/docs/en/managed-agents/secure-deployment-risks", @@ -940,8 +940,8 @@ "url": "https://platform.claude.com/docs/en/manage-claude/admin-api", "status": "success", "path": "en/manage-claude/admin-api.md", - "sha256": "ebbdb03229a767b8a2b033a632ab3d053ab04ddb6d05a74514b9356283968a2b", - "size": 54239 + "sha256": "68c83792b739710a748af397fbe97d66dd33eacd6788876ea727a8850fd7da67", + "size": 54470 }, { "url": "https://platform.claude.com/docs/en/manage-claude/user-management", @@ -964,6 +964,27 @@ "sha256": "2c2f12d048237824bf427210be8f0e95ba68be5ba5bcea802bc9410ab0a4633e", "size": 45554 }, + { + "url": "https://platform.claude.com/docs/en/manage-claude/organization-webhooks", + "status": "success", + "path": "en/manage-claude/organization-webhooks.md", + "sha256": "c43238133f8d2406dd988def87251ca784ec95dbb9dfa95ef97a9088669a53e1", + "size": 21052 + }, + { + "url": "https://platform.claude.com/docs/en/manage-claude/user-profiles", + "status": "success", + "path": "en/manage-claude/user-profiles.md", + "sha256": "09c8679d52ec75ec4bf7293822a80ac5e822c2034d9c61bc454bc9331f657907", + "size": 30688 + }, + { + "url": "https://platform.claude.com/docs/en/manage-claude/user-profiles-verification-portal", + "status": "success", + "path": "en/manage-claude/user-profiles-verification-portal.md", + "sha256": "a79d2def459124b75375b2dd3b3fc1e4821a8488eb8ea661f699d351d735c595", + "size": 11010 + }, { "url": "https://platform.claude.com/docs/en/manage-claude/admin-api-keys", "status": "success", @@ -1059,8 +1080,8 @@ "url": "https://platform.claude.com/docs/en/manage-claude/rate-limits-api", "status": "success", "path": "en/manage-claude/rate-limits-api.md", - "sha256": "6f6b3c4364f8259eb08e0d498352def60c07f6c074ad41d7af9f80c93ef9d227", - "size": 38414 + "sha256": "670a4cfbc51983902c924f5a6012af83b72aece8bf8bfb4a7ee817a21009401d", + "size": 39173 }, { "url": "https://platform.claude.com/docs/en/manage-claude/analytics-api", @@ -1094,15 +1115,15 @@ "url": "https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk", "status": "success", "path": "en/manage-claude/opentelemetry/sdk.md", - "sha256": "92b5a5fbdf4ee12a89af6ef30088b0de9ee180e9064c0f4f1309ecb9fe753131", - "size": 32008 + "sha256": "0c280478db23f295ef12c9e8d01bd204553a4574ab6e7b83767a441afeb6a713", + "size": 31922 }, { "url": "https://platform.claude.com/docs/en/manage-claude/opentelemetry/api", "status": "success", "path": "en/manage-claude/opentelemetry/api.md", - "sha256": "bbd1153220dc57788200e99e20868e38704ef883bfd88f34da557016613d4934", - "size": 39606 + "sha256": "cf7b309cbf572fb7364fa053fbd018a9651a4f1e35e6a330a82cac7214115c36", + "size": 40964 }, { "url": "https://platform.claude.com/docs/en/manage-claude/data-residency", @@ -1136,8 +1157,8 @@ "url": "https://platform.claude.com/docs/en/manage-claude/cmek", "status": "success", "path": "en/manage-claude/cmek.md", - "sha256": "e78da92de5f61f47638b71cfdab98e678cf91a23d97626b4e6cc7b823a6eb024", - "size": 17243 + "sha256": "ce8a18f3b9b1eac2ede8bf8421f4fced476d1d1f08cb5e6e278b32ebef9a029a", + "size": 17831 }, { "url": "https://platform.claude.com/docs/en/manage-claude/cmek-google-cloud-kms", @@ -1157,8 +1178,8 @@ "url": "https://platform.claude.com/docs/en/manage-claude/cmek-aws-kms", "status": "success", "path": "en/manage-claude/cmek-aws-kms.md", - "sha256": "5553fd96ed751fe1a4348086f9f485aa7bd77793a79c9d9368c26a81458988a6", - "size": 28316 + "sha256": "06f264444ae1aad8fcae37b1ff53ea22bd0b67528d1103baef5dd7ed9798d754", + "size": 28545 }, { "url": "https://platform.claude.com/docs/en/manage-claude/cmek-claude-platform-on-aws", @@ -1171,7 +1192,7 @@ "url": "https://platform.claude.com/docs/en/manage-claude/inference-hooks", "status": "success", "path": "en/manage-claude/inference-hooks.md", - "sha256": "027a8c26271676879cb87ab3f32660cc4bc517b91ad3d676dcc6b23b7ac6eb97", + "sha256": "652c0827048cd9fca868fba42d8a74f0ae769968a5d147c13ba4acaefce21a38", "size": 12746 }, { @@ -1605,8 +1626,8 @@ "url": "https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence", "status": "success", "path": "en/about-claude/models/optimizing-for-cost-and-intelligence.md", - "sha256": "d0cb91c6af127e2d6749c475875ad17a8f9d3a4e478df6159fa253633b7884fd", - "size": 181552 + "sha256": "8dd7bd3ac11f97507c013a233626121a014acb8ef697cbd2e69e467890c5d012", + "size": 181969 }, { "url": "https://platform.claude.com/docs/en/about-claude/models/migration-guide", @@ -1815,22 +1836,22 @@ "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/overview", "status": "success", "path": "en/cli-sdks-libraries/overview.md", - "sha256": "488db896811c35ee5b13463b41ba59afda1b2d5870a62002b22bd18b3bf2ceb0", - "size": 3645 + "sha256": "9b4bd92f521f27c7e8f3d5e4d859e6d27ed601003e6722e1333947deb74a32eb", + "size": 5124 }, { "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart", "status": "success", "path": "en/cli-sdks-libraries/cli/quickstart.md", - "sha256": "612476e1d5e846fba873f2d1432925ce424cfb3a754776ccd7ce8b671ca005fe", + "sha256": "2c0488a7ca75010110ef57ba5e19d6cb886ef935cf833a267980948f395068ec", "size": 5341 }, { "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication", "status": "success", "path": "en/cli-sdks-libraries/cli/authentication.md", - "sha256": "2f84038717c4438a953737fbfe45eead2ffdd394e46f62898a054c4bdd59588e", - "size": 8839 + "sha256": "82d82aa613e536ed00b1a7f634845537af8741fc6d9063f23654365ed5e51e27", + "size": 8877 }, { "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/using", @@ -1843,8 +1864,8 @@ "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/scripting", "status": "success", "path": "en/cli-sdks-libraries/cli/scripting.md", - "sha256": "281a84e0ebae2bc754afd6a5e38147f5cff7b6644a529ebacd762b1d03e52330", - "size": 6155 + "sha256": "da0ba9b3e45cb5764c9777af7380792123a6b6ff004d524dead82e164c70e508", + "size": 5955 }, { "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/cli/apply", @@ -1899,7 +1920,7 @@ "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/sdks/java", "status": "success", "path": "en/cli-sdks-libraries/sdks/java.md", - "sha256": "064a7442e2289e17950618a31e01cea7f99940cbc02a363de8fca9c0988bc203", + "sha256": "461cb97e5e52d1829cf6a32b03d13f9e0affe6cf1c442116c5d9574627f0e0af", "size": 47969 }, { @@ -1955,8 +1976,8 @@ "url": "https://platform.claude.com/docs/en/api/opentelemetry/spans", "status": "success", "path": "en/api/opentelemetry/spans.md", - "sha256": "2be70cad118b673be529867672e3bfb4529a6485023a14b12ab8944e0a23c964", - "size": 94062 + "sha256": "51c48d8a60b60fc70b73e49a96abfb59f103422e2882a738d4945ac7c75b6fa6", + "size": 94294 }, { "url": "https://platform.claude.com/docs/en/api/rate-limits", @@ -2011,64 +2032,64 @@ "url": "https://platform.claude.com/docs/en/agents-and-tools/agent-skills/claude-api-skill", "status": "success", "path": "en/agents-and-tools/agent-skills/claude-api-skill.md", - "sha256": "dc89eb5961b80a86b64ba213e247fcd61439473724b76c92e929f7e6487436a5", - "size": 15822 + "sha256": "7f35102b7eaca34e85c441c4dc985309a76df6032192ba99aab8225b8ba88774", + "size": 17369 }, { "url": "https://platform.claude.com/docs/en/release-notes/overview", "status": "success", "path": "en/release-notes/overview.md", - "sha256": "3fbb221d699bf95b8d9f30822dcc20a2d192a16ad04f41961f6955cb1d0e8f4d", - "size": 127364 + "sha256": "85a824b1efe2d75efa2529090579e2ebc4e77856a4bc3a7f27a0828dc5172bbd", + "size": 128420 }, { "url": "https://platform.claude.com/docs/en/api/completions", "status": "success", "path": "en/api/completions.md", - "sha256": "5175f21249dd65519d99deac9f432347dc555a8c9774eeca4d604b792b271176", - "size": 16568 + "sha256": "b5e7384d633d25c6bec6ca408adb0a5b2db43a0fcd213058eda581266909c2bc", + "size": 16597 }, { "url": "https://platform.claude.com/docs/en/api/completions/create", "status": "success", "path": "en/api/completions/create.md", - "sha256": "591672d9cf95525821e39f6dadb622074a6d048049bea6170e53f2d1efab08e5", - "size": 13265 + "sha256": "5c04871dee76b2341373ca217085aa3cb1b5eee9fb0a35440b5908d1073fac68", + "size": 13294 }, { "url": "https://platform.claude.com/docs/en/api/messages", "status": "success", "path": "en/api/messages.md", - "sha256": "af03e1a947ed3ad319c4d33256c771ebae8fa53c4bede3adf70e3961d29f6129", - "size": 1183248 + "sha256": "293bf66d47ce83ff0f14fdf87614d18485b9a23c79e00dfec506631d22c14519", + "size": 1201218 }, { "url": "https://platform.claude.com/docs/en/api/messages/create", "status": "success", "path": "en/api/messages/create.md", - "sha256": "c2d24923c104255043753e42bb404f1ab4c2588b18b87201cbf21dcec0128715", - "size": 140469 + "sha256": "b1bd6a9dde20ae765b3104fd35dcf4a86e68a883feb30930cc0657f485730173", + "size": 142689 }, { "url": "https://platform.claude.com/docs/en/api/messages/count_tokens", "status": "success", "path": "en/api/messages/count_tokens.md", - "sha256": "5be941c097daa713b366d9ad3f4847de41df869f061b30583d20c33f612dac48", - "size": 98572 + "sha256": "7eb6db9ddbd7338c4d783b6d014058110a7e87625b94170e3180bf97784eed32", + "size": 98530 }, { "url": "https://platform.claude.com/docs/en/api/messages/batches", "status": "success", "path": "en/api/messages/batches.md", - "sha256": "9446869d8d6e6f87d24f1f63ea5f4b35ab1ff528812d06d0ffb7c63324437ea0", - "size": 276351 + "sha256": "6a62bb7a1cd3d0dc23128c4455991266162b8b8e7672257eb6137301a10972b3", + "size": 285609 }, { "url": "https://platform.claude.com/docs/en/api/messages/batches/create", "status": "success", "path": "en/api/messages/batches/create.md", - "sha256": "e59c197342274689f29fcbe936d76e623a6f4968231b65c29593d6d0cd948025", - "size": 114481 + "sha256": "55bc671b6d19968db7575e148cea9eea5d87a14a92f88fd170ccc7547124c7ce", + "size": 114439 }, { "url": "https://platform.claude.com/docs/en/api/messages/batches/retrieve", @@ -2102,29 +2123,29 @@ "url": "https://platform.claude.com/docs/en/api/messages/batches/results", "status": "success", "path": "en/api/messages/batches/results.md", - "sha256": "a76dffcbad8f4c98f42913ad86ba1e366236589dc2d8e1d022b3c801712e28dc", - "size": 37346 + "sha256": "aef373273c27543f67ab43bd4cfaeedcf823fc9eb5b86eaacb0d6563fd381d67", + "size": 39692 }, { "url": "https://platform.claude.com/docs/en/api/models", "status": "success", "path": "en/api/models.md", - "sha256": "0e724d3618d57de3f9172c430bb627aadf7ea1ab587cd6005cf493c17d8dcd58", - "size": 41407 + "sha256": "fadad0e822ed5ece51973be68782e7a0bb79001b153098f7cde43b187b8d265a", + "size": 41465 }, { "url": "https://platform.claude.com/docs/en/api/models/list", "status": "success", "path": "en/api/models/list.md", - "sha256": "9a792ef4d94b92cf3d523fddcf6a62fffac2c4f91d827214aadb2f2b38d0e52b", - "size": 13341 + "sha256": "9f365d6bca3915823aaa0ddce012b80349dff4b15846c5981b37b5e4841ac8ad", + "size": 13370 }, { "url": "https://platform.claude.com/docs/en/api/models/retrieve", "status": "success", "path": "en/api/models/retrieve.md", - "sha256": "8da5354fc2d49099abb60710eb5c23982925279c9004bacb8885585f62b91814", - "size": 11746 + "sha256": "38b4ef395c2cfc926875dae332f1aad427884fbfc377d9cb3f54e25cb3ee82b0", + "size": 11775 }, { "url": "https://platform.claude.com/docs/en/api/files", @@ -2238,12 +2259,68 @@ "sha256": "d8cc5eced9e3c047a134f636f9dc0d073219c7c76ff57ae24bcf91b8e1216468", "size": 1767 }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles", + "status": "success", + "path": "en/api/user_profiles.md", + "sha256": "92d39e4738d9196fdc0a687b5e1bd1e2e2f632b8b4b022d9304604f3ed1dab7e", + "size": 80748 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/create", + "status": "success", + "path": "en/api/user_profiles/create.md", + "sha256": "96a50ff5d37ce7b15f04c36e80fdae2b7b23b317f285c4dc2be6b7a9027d5573", + "size": 14616 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/list", + "status": "success", + "path": "en/api/user_profiles/list.md", + "sha256": "77bce32454da17a5a1e50fbb427343c415643cc7f42b6ac286eed1d5cbc246ab", + "size": 11497 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/retrieve", + "status": "success", + "path": "en/api/user_profiles/retrieve.md", + "sha256": "ced91e3872236509a84ae3bed5e080093f03638d6a67e44aa7353bc66725176f", + "size": 10709 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/update", + "status": "success", + "path": "en/api/user_profiles/update.md", + "sha256": "0735bc750996644becabbc8108ad459d69f7143c3857c065dba74d7ca1d2908c", + "size": 14309 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/delete", + "status": "success", + "path": "en/api/user_profiles/delete.md", + "sha256": "5f77c167f6c47f18ee143f1fadde94e036321f3fad8c7f8c0e046c10cb548c5c", + "size": 1406 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/action_urls", + "status": "success", + "path": "en/api/user_profiles/action_urls.md", + "sha256": "e2a5d6acd53b00ff618ad7586f5ba36f89e914bfaf28060140783a12b997e94a", + "size": 3081 + }, + { + "url": "https://platform.claude.com/docs/en/api/user_profiles/action_urls/create", + "status": "success", + "path": "en/api/user_profiles/action_urls/create.md", + "sha256": "47da91e3074b306a56e715752cb3d37cebe5fefc3413fabf9d7897415cc3ab0d", + "size": 2121 + }, { "url": "https://platform.claude.com/docs/en/api/organization", "status": "success", "path": "en/api/organization.md", - "sha256": "30d82ae270764dda7e2c82243d403f2e064db7b6da5a0259550ddb546c29a2ce", - "size": 233267 + "sha256": "89bed47395bddcde8e9e675bf04b72167f1e5a014290f3f9d9183ee8a5ca95f4", + "size": 241260 }, { "url": "https://platform.claude.com/docs/en/api/organization/retrieve", @@ -2592,8 +2669,8 @@ "url": "https://platform.claude.com/docs/en/api/organization/workspaces", "status": "success", "path": "en/api/organization/workspaces.md", - "sha256": "e7ef5b56c9765437ec6c08a21232d625e4fd59186647b772c3e3e930519dcc36", - "size": 64015 + "sha256": "06ab262c15186cc45a022fe98c7603f3752dfcc9adcf24743987d8b207c6c368", + "size": 71934 }, { "url": "https://platform.claude.com/docs/en/api/organization/workspaces/list", @@ -2634,8 +2711,8 @@ "url": "https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits", "status": "success", "path": "en/api/organization/workspaces/rate_limits.md", - "sha256": "daf5d4e1e220b1a7494583f8a0950f0c0dc0277c9b1bdcee2e20ef249f783bbf", - "size": 15156 + "sha256": "4e3c474214ed92f6522ca81d197fb38c15d6cbafb5684aed2846c09e75b7ba39", + "size": 24081 }, { "url": "https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/list", @@ -2644,6 +2721,13 @@ "sha256": "3bfa8ea2ef9210af6ec03acf2687d4dd3bc66f22ff486c038f30cd1a4acb0e83", "size": 8204 }, + { + "url": "https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/update", + "status": "success", + "path": "en/api/organization/workspaces/rate_limits/update.md", + "sha256": "291708a72de5c4e88d740f6c61e5710a77081e2a038b0e9826a4a7037f6e9564", + "size": 8034 + }, { "url": "https://platform.claude.com/docs/en/api/organization/workspaces/members", "status": "success", @@ -2732,15 +2816,15 @@ "url": "https://platform.claude.com/docs/en/api/organization/rate_limits", "status": "success", "path": "en/api/organization/rate_limits.md", - "sha256": "67e8fd4ea3ac5b85ad5bec03fe95e0913e79a4be51d264cc7b414acea27c8939", - "size": 13552 + "sha256": "134e2c1c0ce0a853306de5ea2a0e58a1e1fbef9f0ede72e876d2474cf66a85c6", + "size": 13700 }, { "url": "https://platform.claude.com/docs/en/api/organization/rate_limits/list", "status": "success", "path": "en/api/organization/rate_limits/list.md", - "sha256": "a64078fc4ce33fe20962ac4fabf9acf89436de049f6fcb4b9ee7819e316003cc", - "size": 6503 + "sha256": "510e3bb1ef858f573e10d09b2907bd7bc882ab61b00ddf3e87699108da947cf6", + "size": 6577 }, { "url": "https://platform.claude.com/docs/en/api/organization/compliance_settings", @@ -2767,1037 +2851,1058 @@ "url": "https://platform.claude.com/docs/en/api/beta", "status": "success", "path": "en/api/beta.md", - "sha256": "015103b57e0279560093292f5ab9124ac91ab65ffdbd345103249dc976250b71", - "size": 3493545 + "sha256": "b0d16089a1fd3ce29954606c5d817d0bc58feffb3eb657b3d43e9700f4f150b1", + "size": 3555501 }, { "url": "https://platform.claude.com/docs/en/api/beta/models", "status": "success", "path": "en/api/beta/models.md", - "sha256": "9958a257c37baf5dd5239bca061dfebfa3da23202035be28859e6141ce930dbd", - "size": 44620 + "sha256": "2ce1a08ea3c1f254e73f5f81b5f7d187487a380e734ba1f79583fab43d07a095", + "size": 44678 }, { "url": "https://platform.claude.com/docs/en/api/beta/models/list", "status": "success", "path": "en/api/beta/models/list.md", - "sha256": "325a29245cf623aca8f4969ab3aed191cb643ed5ade6a37f3419fc43f2582faf", - "size": 14061 + "sha256": "f438fb3af88c1273a85d573d47073e86ece7dfbc9af96dd1f79c4e60accb14b7", + "size": 14090 }, { "url": "https://platform.claude.com/docs/en/api/beta/models/retrieve", "status": "success", "path": "en/api/beta/models/retrieve.md", - "sha256": "ff62082bf4a66235581fcf66e1c9148923ed5ab01e7ab9a6145cbc6ccecefb35", - "size": 12430 + "sha256": "44658b251a23d48ce1150287a22a5b7b307fdc1862a8eee0b4998fb49a4e5933", + "size": 12459 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages", "status": "success", "path": "en/api/beta/messages.md", - "sha256": "66a27c4823aec2385252d13e6db59f7308916f967d504083f4ea138ea9d2aa72", - "size": 2965790 + "sha256": "700776953e18e1c15f22d47cce7ff64bf529eb68fb45e5028e0bcab10cc6a1f5", + "size": 2994182 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/create", "status": "success", "path": "en/api/beta/messages/create.md", - "sha256": "39d444474dc6c54ac828412a5a16ece608464278bfe5cd7c88c5de202c76662e", - "size": 310784 + "sha256": "b8a19af4204d22f58c7a0e933e4bafd1790d5e8017f1c5174e15fa72ce5a204a", + "size": 315574 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/count_tokens", "status": "success", "path": "en/api/beta/messages/count_tokens.md", - "sha256": "20b290e4361ec10a2cf3251570be54be1a865cec0c0cc5bab4e6ce68ed4be8ce", - "size": 148734 + "sha256": "593fafa75df68b8fd03d42061bae92f1493208bd184b642ac909861b828e4ed3", + "size": 148721 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches", "status": "success", "path": "en/api/beta/messages/batches.md", - "sha256": "bc1db11233d03e497673142778a24949568d893389830526493df0ee202ce736", - "size": 804907 + "sha256": "5ce1c3406681879d3bd8e656f1ea03ce2401e4722ddebac2bd7731050a1ada89", + "size": 816932 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/create", "status": "success", "path": "en/api/beta/messages/batches/create.md", - "sha256": "fbb6411379e85d0b4f02bdb4fabe93fbed84ec748347f03cd1eebe00408c1043", - "size": 171045 + "sha256": "f03836461d1f4ab001fc2fcd067abeb671e8f130b8518213d8b39caec693274a", + "size": 173625 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/retrieve", "status": "success", "path": "en/api/beta/messages/batches/retrieve.md", - "sha256": "803816f6c37657dcd8b481c6e0333e3dd3ce15eef644931c0bbbdc298473b2ef", - "size": 7049 + "sha256": "93e3ad7ea4d3032df512bf6a8729ccf5d8db251a7997fd15a024ea2fa3bf971f", + "size": 7078 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/list", "status": "success", "path": "en/api/beta/messages/batches/list.md", - "sha256": "1d1a62dd024a901f3cfa3ad1d3c825cc05e90cc58be55f62bc2f46840ac7631d", - "size": 7824 + "sha256": "4c22c807a39c4ab9f631aff2993fde734a6ac9363dc92fb89c7ac7ffb1b349df", + "size": 7853 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/cancel", "status": "success", "path": "en/api/beta/messages/batches/cancel.md", - "sha256": "64164e41447ccaba3b506ca2c63a794536086609c7e0317ab668240a49a7a319", - "size": 7382 + "sha256": "ef4826586875ac9e1174fe0d8d46aa95710760298b5a190715e04b0d8c32ccdb", + "size": 7411 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/delete", "status": "success", "path": "en/api/beta/messages/batches/delete.md", - "sha256": "abde10a843ad27db5dd660bcdd2abe16645937b51844e73bfc5614c37736fb53", - "size": 3790 + "sha256": "f3704bd29928c6a260dacc8d399e2c218e51337f3cf4d2a581195bb3d63858b3", + "size": 3819 }, { "url": "https://platform.claude.com/docs/en/api/beta/messages/batches/results", "status": "success", "path": "en/api/beta/messages/batches/results.md", - "sha256": "ea679781bf3cf3cefdaecc5f095c49f95725ede0e985fde519eb644e36239cb5", - "size": 156957 + "sha256": "206ef76d41557ad4c2cd1f86603185e9de4b9b1f19425f0168b01757c65fd2a1", + "size": 159332 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents", "status": "success", "path": "en/api/beta/agents.md", - "sha256": "73375d4472ab0e2078d4a1ebabdeb7a5aba57d2bc0f07f76296c6e1a3e6aec0f", - "size": 469483 + "sha256": "1142c18b4ad7096925fbe3d57b0d4d6fc7a9c0aaeea3c5b946e70add87a53c37", + "size": 469657 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/create", "status": "success", "path": "en/api/beta/agents/create.md", - "sha256": "1a14140573d6ad9b5e4cef4ee138200cefe00dae998f3043cd09a9afda47531f", - "size": 67032 + "sha256": "f7f2460a253fa6af8d01ec592dc59908270c628f1059f55b5474d6421b9e3e9c", + "size": 67061 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/list", "status": "success", "path": "en/api/beta/agents/list.md", - "sha256": "75626bdfbf53ab9f7eeb6b2352a2759a9f82aaa22f7153146e0e5107c05d745a", - "size": 31343 + "sha256": "188788e009c57637a6c41178963d2b7883a3744344745739d36d9965863d3776", + "size": 31372 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/retrieve", "status": "success", "path": "en/api/beta/agents/retrieve.md", - "sha256": "b0c0829b29f7dc0a65a14d3a72f124809fe38794e12000f5736ed511a38d06a6", - "size": 30525 + "sha256": "f6dfb734e9c0dfe9d886b4471d06716f5215b13734653e2b937905881c74cef1", + "size": 30554 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/update", "status": "success", "path": "en/api/beta/agents/update.md", - "sha256": "7be52b7b8ad95a8f3e5b188b3697155984f506612b0d91f12df0ba806ef6a82f", - "size": 67757 + "sha256": "cf8717678404d8b00e866f7aa26aff139a1e282b6cc773c0ebf07c35f55e8ab1", + "size": 67786 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/archive", "status": "success", "path": "en/api/beta/agents/archive.md", - "sha256": "cb5c94222a14dc696548c1eff97c3fef3a582a425504ae78c09ce032ab7baf52", - "size": 30413 + "sha256": "eaf2a25cb6a07d71bc97993acb047487882101e8f03964324e1c4b299af948c0", + "size": 30442 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/versions", "status": "success", "path": "en/api/beta/agents/versions.md", - "sha256": "0e196903bc274d786fc17702f882eb2e14fd8a11f1fd7669dd7225dd91daa9cb", - "size": 31128 + "sha256": "7cdd60e73b66211a582052e0daa6eb0a033aa4fcfe270aa252b7838b7c4180aa", + "size": 31157 }, { "url": "https://platform.claude.com/docs/en/api/beta/agents/versions/list", "status": "success", "path": "en/api/beta/agents/versions/list.md", - "sha256": "a1641984349314d3705f12bf45e7e366006e838624cd0323768ae794d7dac636", - "size": 31125 + "sha256": "2036a4a51a154355ac2c8ee8f6550576115d62e4daa6ea3c28ac871dc526a873", + "size": 31154 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments", "status": "success", "path": "en/api/beta/environments.md", - "sha256": "4f8f6372ed673dedf3bf34499f13efc578b9d58f58b2b736d3d364672aed6e90", - "size": 97006 + "sha256": "b0e3df88ca570ec8a6a14b16f800b0bf3f65bb1d36ee070b4062cd2c60022932", + "size": 97412 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/create", "status": "success", "path": "en/api/beta/environments/create.md", - "sha256": "0801e0d9149aee4c98c9a05b4e118f1eb07398ac2c4c9ede8e031721a7807337", - "size": 10551 + "sha256": "a37ed6e909cebfa6535c1967e7bf90c10575c0150cadaccc15e56dd434ca9269", + "size": 10580 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/list", "status": "success", "path": "en/api/beta/environments/list.md", - "sha256": "1e42e5c3406499034deb6cd8fca95fba6a2a6df5a3886ff2759228bc121e9a14", - "size": 7542 + "sha256": "92e207446ee53d365dccdf4d3c7317619c8ba676fc1654301dfb4d7bfadb8f7c", + "size": 7571 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/retrieve", "status": "success", "path": "en/api/beta/environments/retrieve.md", - "sha256": "002350c42606bd68004e41d90d97681333f4cf17501e1b4f09599279ef8891b6", - "size": 6847 + "sha256": "5da14fa592b8c59057c9be2e75949736811bfc8587d38c796353f3edc5acc1da", + "size": 6876 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/update", "status": "success", "path": "en/api/beta/environments/update.md", - "sha256": "b1d34d7dcd185cd59e3aa9eade7ee3e6e193d64076bb4a72063ebef08fefa3a7", - "size": 10215 + "sha256": "f54f50ddb6b5297daa9c1e5a9c461169167c12c867196a3a1137e1b85f6042c8", + "size": 10244 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/delete", "status": "success", "path": "en/api/beta/environments/delete.md", - "sha256": "328b2331c94c3ac5065ebb9c5f129789a53435661161d97b84bcdf117124e386", - "size": 3452 + "sha256": "7d8953e7b3ce5f7100ea6c11cfcc8a94604075361ab57f7cc7487360a0ff5d53", + "size": 3481 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/archive", "status": "success", "path": "en/api/beta/environments/archive.md", - "sha256": "450a659275dd1803198448994a24dd4cf701a402534250f653ea97409e7957bc", - "size": 6937 + "sha256": "3f9d93418d024de8306ccf90d0b65ba788750dc5f8f756f32c471b554cb68344", + "size": 6966 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work", "status": "success", "path": "en/api/beta/environments/work.md", - "sha256": "8b96d4e9d4e3d706d308246aa9caa2512baf846dd852e1304acf5e5f9c14a234", - "size": 47708 + "sha256": "673d70b1809f7d03c9ee85e10ccac3c4c84e5b0bee4a2f33c3ebca73e2b9ff77", + "size": 47940 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/retrieve", "status": "success", "path": "en/api/beta/environments/work/retrieve.md", - "sha256": "b6b59d30fb551462837efa1ab9957ce5ca2141b9a6febd4db80d18b392efab03", - "size": 5618 + "sha256": "6f75381876a5f1dcfadd6246c21d63d602a165988f40b142ac28a448aab52904", + "size": 5647 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/poll", "status": "success", "path": "en/api/beta/environments/work/poll.md", - "sha256": "63bdfbfa939cfc6968c361ffb1b0414b3ed711b7304bfe7defabe47fc5258d6a", - "size": 5765 + "sha256": "38ab9033dd61de5f7201e052a2c8a2f741c38c22b7e2a02ae42d1540cd498cdb", + "size": 5794 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/ack", "status": "success", "path": "en/api/beta/environments/work/ack.md", - "sha256": "cde330833e6d23e4d7cd0cdde96609e0f650eda24861ebd0a0ec6403ebeb79c0", - "size": 5337 + "sha256": "f250fd6cd7243f3e862d4b6fe753c246dde1e642cbe627120530ebec81e946ce", + "size": 5366 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/heartbeat", "status": "success", "path": "en/api/beta/environments/work/heartbeat.md", - "sha256": "2c333f89540c82c4c5c347d63ed900e34cf0019296d7ee4f9ba71d59d7a0c76c", - "size": 4331 + "sha256": "bb46b3feb0cabe1b024e6636578211bb8bec4d0861fd417bdf63c6499cd8b208", + "size": 4360 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/stop", "status": "success", "path": "en/api/beta/environments/work/stop.md", - "sha256": "3abbeb75e798587a3479a66af2f5ba649b9a6c4cc8c97a6b6adb7a5fea5e36c6", - "size": 5800 + "sha256": "d319faff23b92ed8051dff9e9be5a46789d854783225be544ea30c74c8965937", + "size": 5829 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/list", "status": "success", "path": "en/api/beta/environments/work/list.md", - "sha256": "cfae375bc09ad6566f417998d61a90561ff3b5e53d89a020945851d96b88f820", - "size": 5586 + "sha256": "89c3d556f1e564abb3d1d6fe239db7e8cf7fe85923c5d1d92eab0b5590d4e973", + "size": 5615 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/update", "status": "success", "path": "en/api/beta/environments/work/update.md", - "sha256": "afd51821a2813d812e547b5a242561607aabd9bc3fb5cc467e57619e96b035cf", - "size": 5915 + "sha256": "b6e4f4a5faa8e5125185e207f65272cfd63a6d63a4e535611507982c4341d5d3", + "size": 5944 }, { "url": "https://platform.claude.com/docs/en/api/beta/environments/work/stats", "status": "success", "path": "en/api/beta/environments/work/stats.md", - "sha256": "d5030034414947fa5b2df122dad3e71faabbea04ad0793002e7d4e135d921d7f", - "size": 4053 + "sha256": "40d7299e2e399abbcc6d8309d875a6b8c09d5d2957e3d740035f8589ce264ba9", + "size": 4082 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions", "status": "success", "path": "en/api/beta/sessions.md", - "sha256": "306e9b7e236e0d058332845d04afaccaf7ca71537278c5e08fa948a1a42519b2", - "size": 1221540 + "sha256": "2a81095b9f4cb9268c847522e31e6e2fa18180d2424214ebec7c14fad26d8cff", + "size": 1222091 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/create", "status": "success", "path": "en/api/beta/sessions/create.md", - "sha256": "a5c6ea31fc95641710ab3d3bc0116f12d7cbffb71d147ed7b25e3b294a991c06", - "size": 86742 + "sha256": "15e0a7f906dd7cc9cc75ab26e4327deea6fc6605642ddffeb0f380d6f6636418", + "size": 86771 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/list", "status": "success", "path": "en/api/beta/sessions/list.md", - "sha256": "b48bb554eead5e384d6894afe8574ad23639dc9eec31bf11cf77f17173da05fb", - "size": 49501 + "sha256": "1da6230a7c5216e4b4ab35797ccca29b90c5478e695a1190b384d552f740df27", + "size": 49530 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/retrieve", "status": "success", "path": "en/api/beta/sessions/retrieve.md", - "sha256": "efd60f301e261b8fd8571e756b35229c7a068fd579ba39d3c929238915029a99", - "size": 46543 + "sha256": "837dd3013a0d21873cb6658ce115e204afb9e3fb0a24a850bb488ccdf99521dc", + "size": 46572 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/update", "status": "success", "path": "en/api/beta/sessions/update.md", - "sha256": "1b9a83f0d47b35aeb7ee9f051ddb3bec43a1ec4412074764b1574354defcddbf", - "size": 71622 + "sha256": "f869ab894ebeded13ba0c1ed014a2499c13f017513693d4ba7566d4ec41f5fcc", + "size": 71651 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/delete", "status": "success", "path": "en/api/beta/sessions/delete.md", - "sha256": "eb5c12de897a3cfbc5708536b9bad3f500062f0c899c030f56e3f162039f3d44", - "size": 3318 + "sha256": "4e398c3c33ce26877bb4325a4e6180540f2ad5989b477170e1689243b7396df9", + "size": 3347 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/archive", "status": "success", "path": "en/api/beta/sessions/archive.md", - "sha256": "b777cd1e713d31288955d98d4d12c8856fd86ce3ac207123032362e5065ac895", - "size": 46585 + "sha256": "8cb64ede06859aad4821b5cf7c53cf66446dea52861ab34a355e3d5b1e684fb3", + "size": 46614 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/events", "status": "success", "path": "en/api/beta/sessions/events.md", - "sha256": "5d0b3fcc48750ca9f2436aa39380f630cd862ad664d513c9f4c7fb6d650cd991", - "size": 586859 + "sha256": "f1b41515773ccc5e9545a35e83e81301a337db464060607a38a47be4ca89f887", + "size": 586946 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/events/list", "status": "success", "path": "en/api/beta/sessions/events/list.md", - "sha256": "f0dde4c91b33dc4f4e9489a1f226df5820f90e96feb71d9706589a54afb108d6", - "size": 101837 + "sha256": "ec8b5fde4d14b432a3b18f4f2ccf9fece1e2b4ddf7f7784b9c3dfd01127f1810", + "size": 101866 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/events/send", "status": "success", "path": "en/api/beta/sessions/events/send.md", - "sha256": "b1627019d835580bf88955ef4fa170fdbdf0d4dc5f8ad7c0b1f9243dd76a5ed2", - "size": 26470 + "sha256": "858e3cac956ef3db00d9c79b6f4004d0a9480b5921e9d92fb42338ef9d7c545f", + "size": 26499 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/events/stream", "status": "success", "path": "en/api/beta/sessions/events/stream.md", - "sha256": "7effa046175255d7842d293cb62ba31595db46fa98619c6fccbc8a691e779e6a", - "size": 102530 + "sha256": "367c282b9bb9f4838a0b915ab1decf44262ba1ef92f8b9e8104f952133e4ae8f", + "size": 102559 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources", "status": "success", "path": "en/api/beta/sessions/resources.md", - "sha256": "6bcc5dad94c660093370f810b2262694e60aa017b1426e43a06f5609aef804c9", - "size": 36233 + "sha256": "117024bdc7d66a75a9319c8bdb98ab51b7edde17822e1f94dc759375ad029ae5", + "size": 36378 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources/add", "status": "success", "path": "en/api/beta/sessions/resources/add.md", - "sha256": "cfb15f980fbdb99988ff71b2ea1eb058ff929a66c097a0d9ce5bc3ab60a9af5f", - "size": 4117 + "sha256": "71f3a35b1459b579b9f311b704df82e7c85c4f0d5a45f410336b610433bfbab7", + "size": 4146 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources/list", "status": "success", "path": "en/api/beta/sessions/resources/list.md", - "sha256": "8b8f46700d188534df59e94ecc294d10a6315c462cfc92458c74671132fe38c2", - "size": 6695 + "sha256": "7b8ea632e7253cf82ea48fa3a18f87a55eed7b26e70df82c115501147c81a6fa", + "size": 6724 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/beta/sessions/resources/retrieve.md", - "sha256": "04155f40870c02c648c6e341cd0683ada54223acae2f771b5a39dfc3134a695b", - "size": 5796 + "sha256": "60c924f419da51bd5d6b433eb80fe68e28ef8a3e27e5138052b5cab10ae098ec", + "size": 5825 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources/update", "status": "success", "path": "en/api/beta/sessions/resources/update.md", - "sha256": "da25ab7e63ce7d12ef83fbcf47c64b7de0aa1ba13274696bfd950347be5ed0be", - "size": 6121 + "sha256": "1282569ed801be6797c3b2dbd989d68f5e559db9a67cf79419f796060efb9d8e", + "size": 6150 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/resources/delete", "status": "success", "path": "en/api/beta/sessions/resources/delete.md", - "sha256": "c6f68753ae9ffc0cfb88ee9c14786f5c0c9770d059aabc4b861e7df3c35714a9", - "size": 3429 + "sha256": "f470552e5cf6f9b58b612d1e238ebbb8eb7bd9874301fcde69cb7320f142c527", + "size": 3458 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads", "status": "success", "path": "en/api/beta/sessions/threads.md", - "sha256": "c3aeaa4f28791ec2f2791116312e9f6ea11d7bcdfcae1fc9fb3a9e4f2762bd60", - "size": 455581 + "sha256": "6cf0670d8417f05a6b9777221e6d9fd72d597968d201646bc0a77cf0695f5ab6", + "size": 455726 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/list", "status": "success", "path": "en/api/beta/sessions/threads/list.md", - "sha256": "e3c361fb40af2d7bfabb83e5d4533d610eaebd2aac684f0713f18882ccd43047", - "size": 34731 + "sha256": "88bd4244f20985ad1d131bc7cc1d098f59c0e033c87b8a55b445074dacd42c4a", + "size": 34760 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/beta/sessions/threads/retrieve.md", - "sha256": "29acf75c610698a50e34c15821fb2ad147ade1e0d16c73da6f1bf71c88bdbd05", - "size": 33749 + "sha256": "ccb827305ef151207233975b004d29ce28e62cb63ffe325f7a02510ac7a77ae5", + "size": 33778 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/archive", "status": "success", "path": "en/api/beta/sessions/threads/archive.md", - "sha256": "0efbb6e2716cc448a3906233d4507d8ed9189760bb8b08969f47b341165222a3", - "size": 33791 + "sha256": "b72a53fc34e0bdddc07d219fd2d6bca386ab6419cea53f114bab11f889432f2d", + "size": 33820 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/events", "status": "success", "path": "en/api/beta/sessions/threads/events.md", - "sha256": "5a2d3282bfb9b7f7b4e6cc668f62e892ab4f8aca1bd660ba788fc64280057318", - "size": 202030 + "sha256": "49bc8894f5e7c2ce0d744935bc1e49bdb94ad19c0c23688bbd99e04b1f63e5a4", + "size": 202088 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/events/list", "status": "success", "path": "en/api/beta/sessions/threads/events/list.md", - "sha256": "d5b57e1962c773bdb6af89031b56b4c06c34d2189ebb4e3a9c2e2c48a5f0199c", - "size": 99513 + "sha256": "6986863016e0e69e9cfbbb9a3f5b37b7ad1185a26828fd4d2ad82e494ab1b244", + "size": 99542 }, { "url": "https://platform.claude.com/docs/en/api/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/beta/sessions/threads/events/stream.md", - "sha256": "e908d506bbae237dbf8a93371b2d5ed8450ded97b5eba5fb38a018ff5fccd69c", - "size": 102643 + "sha256": "0499baf017b949cb07800a176c7f53aa6647d5a53badbf83e13c767a2f30f77e", + "size": 102672 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments", "status": "success", "path": "en/api/beta/deployments.md", - "sha256": "6e2506adfec0b632db59ace9e7a87bc9658b5b51aff6a79e9ff098a01c534a18", - "size": 223641 + "sha256": "a8f07a4131ced0b7d6546225894585c49360abbd296358d42b7021e211500e36", + "size": 223873 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/create", "status": "success", "path": "en/api/beta/deployments/create.md", - "sha256": "e587fbae4bfd46f15eb8eb63182bf73c52f3b6c165a25770c3fb16dfcbb4573e", - "size": 31322 + "sha256": "ac33efc1aa43c6f5cf8147a369e7407431f993009c0dd611cfed7f9675d6ee62", + "size": 31351 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/list", "status": "success", "path": "en/api/beta/deployments/list.md", - "sha256": "ec97653e7141ad08acb1400bc9927f4c9a53172c469187fed36c2b752c49b1e9", - "size": 20729 + "sha256": "1574776f4f8018476354cbbbe1766b5cf6b0982643f4afe6dbd491b1412fa0fe", + "size": 20758 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/retrieve", "status": "success", "path": "en/api/beta/deployments/retrieve.md", - "sha256": "d044fc42bdca9f51126f6ccac2213cad21fe4c62ba5b6a0b9cade5f872287dd4", - "size": 19501 + "sha256": "dd9009c56825be99437b86f577016ea9498d514a39732d117db3a475fa352f42", + "size": 19530 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/update", "status": "success", "path": "en/api/beta/deployments/update.md", - "sha256": "24c5ca0fe805d6998dd4926e2cfdaee1e9a240e2303ee0cdb2625729bec50671", - "size": 31209 + "sha256": "fb8d481c9ad3dff87a26b7b0b049c359cc3cc3079a500fbf50c804323afe609d", + "size": 31238 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/archive", "status": "success", "path": "en/api/beta/deployments/archive.md", - "sha256": "8099f4a69de37d3c226c352da63a43474a21ad4b83b12aedb1d16e79ac20a98e", - "size": 19554 + "sha256": "86c3f8a348c67a7ef2cdea3f559bd436262c8060f71de814a935c33bf75993eb", + "size": 19583 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/run", "status": "success", "path": "en/api/beta/deployments/run.md", - "sha256": "fb66443d4d698176872aa167f0ea12e1a6daa286141efe5b6922ac4a796726fd", - "size": 9386 + "sha256": "062c0e5c7b4415de8530cb5da6b5bb4c01622a53d22e53fd9213e6adf1bec9bc", + "size": 9415 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/pause", "status": "success", "path": "en/api/beta/deployments/pause.md", - "sha256": "2bbf7e7b838397cb62f5cc4f9328f2d9838793c0eaad7bb0a59a92f8b6ad7d76", - "size": 19540 + "sha256": "c3f25c4f07d2e0b3f22a22510880eb5ac8cccd794d78c730d4d101f7fde0653c", + "size": 19569 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployments/unpause", "status": "success", "path": "en/api/beta/deployments/unpause.md", - "sha256": "66308bbdc91a3f6ec5501f896fc961ac77fa63a035617bf2e98614c2c4862b11", - "size": 19554 + "sha256": "930e5e012fb6f0a5723688a6f11f8e895dd3a3ad65860a6f6ae4c1330d59955b", + "size": 19583 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployment_runs", "status": "success", "path": "en/api/beta/deployment_runs.md", - "sha256": "95cfbc2ee4121d42032ee13f4cbcd0ac375dcdceb1fae6e802047c31d91d4108", - "size": 32170 + "sha256": "69f412c759bc867deef91490f3004c36103f1fec85d6f57bfcf89d74bf5593e0", + "size": 32228 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployment_runs/list", "status": "success", "path": "en/api/beta/deployment_runs/list.md", - "sha256": "39705de26d2eea35da8b9a444f139e30f95b5abf2c43d6936eae1e5af59a09c3", - "size": 10757 + "sha256": "7a10d0399e6e2d71c8ea61858a445ac31778d6b07e8996d99938b79dfb0cd5ce", + "size": 10786 }, { "url": "https://platform.claude.com/docs/en/api/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/beta/deployment_runs/retrieve.md", - "sha256": "d6aaed7909bd5faa08874f450cd023a40498f3dbd2840a18188773611963434f", - "size": 9389 + "sha256": "d58332d455f5ea58d32c5b8f4bd3129749ece18685477e598c848bf2ed1d1e37", + "size": 9418 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults", "status": "success", "path": "en/api/beta/vaults.md", - "sha256": "ea0a8186c612bb222713e2087795e4ba7cc7c0bedf639d33f341b26cf8bf0fc9", - "size": 87081 + "sha256": "50cf7f9ec2ffebb0456f2f9f0abf66f4cc200631e0b63f9956cbf0174c9b10bb", + "size": 87458 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/create", "status": "success", "path": "en/api/beta/vaults/create.md", - "sha256": "f4d1bdc59338e33cc120b7164b0e93524d16eba65339a56a2292c988147a0e07", - "size": 4349 + "sha256": "145d0df36475bd640863d119a54582ae4ac54ff663df537161c80cfa10785831", + "size": 4378 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/list", "status": "success", "path": "en/api/beta/vaults/list.md", - "sha256": "63adb1e7099bf807bc551505569abe43d63398d7d4bd9d4cb89c786c100ba081", - "size": 4561 + "sha256": "f2fb2fb00a57ee90f6b6abd27982369d3c7ac6b05d4d4630ee379ae597ce13fa", + "size": 4590 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/retrieve", "status": "success", "path": "en/api/beta/vaults/retrieve.md", - "sha256": "8b78b2e21cf4132b0bbaba1a476d1e9367c31f3834e33475a22fa04c770306df", - "size": 3993 + "sha256": "d156c651c91677c3423809a19da4e8373d63f6a543a2c89c5aa519fe2c0ebaf5", + "size": 4022 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/update", "status": "success", "path": "en/api/beta/vaults/update.md", - "sha256": "16047bcfe9bd44320f093618e348f0c072c2bec8cac7c89b2e0a257b7a3d9aa3", - "size": 4479 + "sha256": "bab7ae88c7bd02840c28acf23b6a83dbdd280d5b9cca86c62141503365294405", + "size": 4508 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/delete", "status": "success", "path": "en/api/beta/vaults/delete.md", - "sha256": "32bf0f00c82d679d01690b26f73563329da1c1059ef6292a2573338a39910486", - "size": 3370 + "sha256": "ed961f895f25c660ae19ba2f6f71963bf72ab68bf459f38305680ef21869e6a6", + "size": 3399 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/archive", "status": "success", "path": "en/api/beta/vaults/archive.md", - "sha256": "34ba662ff86bd5fd9b94f6a80878953699ac6d22a2114d9766fe591a9bdccc05", - "size": 4019 + "sha256": "f5a681f8f8752db786be2bffe0efbc15d3afd78b0be21438d8a7804972271231", + "size": 4048 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials", "status": "success", "path": "en/api/beta/vaults/credentials.md", - "sha256": "04764cb555dad147bbb4dc187276fd5a19c4d3872241678f85270a22c9868dda", - "size": 96728 + "sha256": "80005d3430b58e5854d0c330ccfd86ecb5892638f52fc061ddc3f600081a67f7", + "size": 96931 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/create", "status": "success", "path": "en/api/beta/vaults/credentials/create.md", - "sha256": "7e2a5c20418c6570c0fef3428526b1a0fd44f79ab0413612584a805780e8bb2e", - "size": 13685 + "sha256": "75ff5168937edf047de0b828827ec7c2754d7341f394f79aa7cb578aae362c5d", + "size": 13714 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/list", "status": "success", "path": "en/api/beta/vaults/credentials/list.md", - "sha256": "9804088dfce60ab51409daae27495d16dfe2cddc62409ce237d93120e3dd7842", - "size": 8772 + "sha256": "4291bb9562fb6af7d56fb06878bec321dc4d1d93b89392d13dd69e10d6dea3e2", + "size": 8801 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/beta/vaults/credentials/retrieve.md", - "sha256": "0952533a82a33cb1557b35022d0fae4c1812f622702c81c3f1d778739f04c104", - "size": 8169 + "sha256": "6fcc6c8412efc86b33b002adc89fe5e8661fbc46f8c14a5b88358f9f849fa7b2", + "size": 8198 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/update", "status": "success", "path": "en/api/beta/vaults/credentials/update.md", - "sha256": "7435d51c0c54bc6aeb3b89b3ad3e299f514597095a0d8c94d7573a37d5b9a738", - "size": 13257 + "sha256": "db8699060ccf52c9afb28a4f38eb496e4143165f95408ab181272c88602417cf", + "size": 13286 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/delete", "status": "success", "path": "en/api/beta/vaults/credentials/delete.md", - "sha256": "de657b1825f5bb1e9eaef3973e91fe2191b7ec35387db32ec00b39b675638903", - "size": 3577 + "sha256": "8305b04a864da7c782f3b5ecff080bd32cf888dd42874a0f0bb1c28b5d0e0264", + "size": 3606 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/archive", "status": "success", "path": "en/api/beta/vaults/credentials/archive.md", - "sha256": "daad909b6d171fae1b630ebd811d595129d0e4f7cfad4579c9a94c0a4eea6767", - "size": 8195 + "sha256": "b08138a767752a7f6ad7e4a826d351bf6fbb4f7735647a48e4841b599fd25dfc", + "size": 8224 }, { "url": "https://platform.claude.com/docs/en/api/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "c9a79d41c9831cba0609ed010a6d0ac9e63d53edcba618d7d1fed0acb98101a1", - "size": 6888 + "sha256": "8d1963f149165f7c7f176553ee2b3a00b0831f063a6199fb744af044e90666ff", + "size": 6917 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores", "status": "success", "path": "en/api/beta/memory_stores.md", - "sha256": "b5a6f60de7b6956136318c8bcec0e6e234c930c55095fbfe8dfb55927817027b", - "size": 99010 + "sha256": "20b41c729fe99642a1ed9f88b2ee0194976ed806a74788897c900a843f41fcd6", + "size": 100928 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/create", "status": "success", "path": "en/api/beta/memory_stores/create.md", - "sha256": "91c626ca21e701dd37a43fe67ef245f82db8ab22df105cba97da774008eacce3", - "size": 5827 + "sha256": "2315248a4f6fb909d1d4b350ecbf49cb5c82d38055214f9c25630d3c8031637b", + "size": 6476 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/list", "status": "success", "path": "en/api/beta/memory_stores/list.md", - "sha256": "22b1d4dbbbc82be2278bf82b5254e5e06b72bba1d289a93bcad9e21499188468", - "size": 6030 + "sha256": "eb55e9bff574ef129d9fb32a42064268cf578bbbecf13d137563d38520229abf", + "size": 6155 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/retrieve", "status": "success", "path": "en/api/beta/memory_stores/retrieve.md", - "sha256": "e902dea75657d8fc1325329b4b607e7c30d230cfd4e24fee2b14c4767f93d511", - "size": 5161 + "sha256": "6fb1c8e60d7cd3ede4a7be855206cd633805edc55b7379e8671d9aab2271a2c3", + "size": 5402 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/update", "status": "success", "path": "en/api/beta/memory_stores/update.md", - "sha256": "6a6c4129639869ee153f0dd16d9681bdbbb5fa572f6fbcba933a76e2ebdc330b", - "size": 5910 + "sha256": "077efd00c9e3d3e227a78d290779e1148cf8c9c294cba1228d92af8493cdc03c", + "size": 6294 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/delete", "status": "success", "path": "en/api/beta/memory_stores/delete.md", - "sha256": "ef5407625184d4461becf51a1d9ddf24b3c4c315a61c722923fc0301fee52260", + "sha256": "4d95d168b3ab128553fb5cc9475098bfd626761aed375a6fd87d175ba18c120d", "size": 3687 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/archive", "status": "success", "path": "en/api/beta/memory_stores/archive.md", - "sha256": "86ca91ffc72811795709fe5296c3906cebdba37b92248bcefd058fb3dfd420d7", - "size": 5262 + "sha256": "eb306248866486287c1ec258ee2b2c6dd7af69daef44315dd755b14b899746b9", + "size": 5523 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories", "status": "success", "path": "en/api/beta/memory_stores/memories.md", - "sha256": "5336270d7243d833038ab736d8330f5626641c86cb16c82e2c59aa6dd08c20fb", - "size": 50699 + "sha256": "2e229476d22c55b535f15ddef24d7f7e32cfe4f51af0743e0b1faf07e09ae853", + "size": 50091 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create", "status": "success", "path": "en/api/beta/memory_stores/memories/create.md", - "sha256": "78a8d8d3ddb0b6d3a79b29d00a46ffc828ef062b86d6feaec366ff05e55d84b6", - "size": 7426 + "sha256": "f272306ead96c5d5371c1da22204f83acbb785c423651a32f217cb2e8eb3f6e5", + "size": 7315 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list", "status": "success", "path": "en/api/beta/memory_stores/memories/list.md", - "sha256": "12541bb0c850118d650e5f8d203051dcde200f4267b29ea5bc7bd0881cfd67d9", - "size": 8872 + "sha256": "9ab49314d7335ef5ad863492f7418728151ff64af0b2408bc399f41b51a71b40", + "size": 8783 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/beta/memory_stores/memories/retrieve.md", - "sha256": "7ddd021a92b9b878e265c5fed580cbfd8ed99d5233b97fce0bedf0655bbc62d7", - "size": 6811 + "sha256": "9323d0c0aabdd47c3d200ebd08d3575087c5c58a842fb28c3bc05ccdac275791", + "size": 6683 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update", "status": "success", "path": "en/api/beta/memory_stores/memories/update.md", - "sha256": "91ad8dd178e77978eb03578e8de7b79899124a36a7546a9d6e591fe0e3ebd99a", - "size": 8210 + "sha256": "fca609cf9536c66cc1ca4c16d235746153a5026f6d4b689bfa505455c8e1ea8b", + "size": 8020 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/beta/memory_stores/memories/delete.md", - "sha256": "1b3e10886fe13522d135dcc92272ab2194b541c4a211441ed81d4d91b248ea1c", - "size": 4335 + "sha256": "6e3b15029c7a477b46c8a16fc3da3e3003c40d43096d3ceedbd83ddd6c3dfa5b", + "size": 4520 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/beta/memory_stores/memory_versions.md", - "sha256": "9e341cdd492076010dbf353693b6e78ffdbbba2e227edac04945e51ffa86d808", - "size": 39805 + "sha256": "61a73191944b9ae887a266d3608b8b6eb95cc7ff8e06a3e37498120a4b981818", + "size": 40344 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/beta/memory_stores/memory_versions/list.md", - "sha256": "ac42a5b3f3ea72f303a97b1dd705e1ed489995d9b831baa4d60d66d1a7a06320", - "size": 11511 + "sha256": "d6cfa2d2c838043723b0504197ef31ea107113ab46226e8d18ef2a577c882231", + "size": 11504 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "6db43ce0f6c7b8d1a5b393830ac7187ad27ccae8507a1a046c4b3d153d3c3ca4", - "size": 9960 + "sha256": "bddd93c382fb71cea49b95ba347f27cf409763cfc40b7aa77b9293c82e0fabac", + "size": 10067 }, { "url": "https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/beta/memory_stores/memory_versions/redact.md", - "sha256": "45aa863819dc9517768327854f3f5777283584f9f6fae5d8acf12f388052f5df", - "size": 9251 + "sha256": "c22939b985965d6aca22f80bf8a5ca55847a6b7beda0e9efb80fa137074a26d9", + "size": 9468 }, { "url": "https://platform.claude.com/docs/en/api/beta/files", "status": "success", "path": "en/api/beta/files.md", - "sha256": "f1675d8905e23fedadc4a8cad0499d6a6b3b7997f145e9295302994704bac4c5", - "size": 22966 + "sha256": "870effe9ea8a58e3cff7031bb3b124fd0f9fea2e3565560adaa9093d2008f777", + "size": 23111 }, { "url": "https://platform.claude.com/docs/en/api/beta/files/upload", "status": "success", "path": "en/api/beta/files/upload.md", - "sha256": "83e459b977bf5110b2cb69d6a3dc8f5bdf4e121a485a1d526baa9789a56ed87e", - "size": 5093 + "sha256": "3f890084be1000c53570cc0b77a0b21ae57ece41d9b4cb6e124b6736047309ac", + "size": 5122 }, { "url": "https://platform.claude.com/docs/en/api/beta/files/list", "status": "success", "path": "en/api/beta/files/list.md", - "sha256": "2bab73cc2844ef374ca524c0dd1bef817138e31b30dfd20168193c430bb166f9", - "size": 5591 + "sha256": "1b88cad06f4cd9da650b417d2ed7a95006a0e5581b6f2ddeaefbe535bfb653d5", + "size": 5620 }, { "url": "https://platform.claude.com/docs/en/api/beta/files/download", "status": "success", "path": "en/api/beta/files/download.md", - "sha256": "3061d9585c488fa5a1c2ab2009f54f0a0757e980f910b48eb700b4ddf86230fb", - "size": 2963 + "sha256": "add084e554ccc414084a190a51b67b5dc16e537898655cbc98223d186e8b77c7", + "size": 2992 }, { "url": "https://platform.claude.com/docs/en/api/beta/files/retrieve_metadata", "status": "success", "path": "en/api/beta/files/retrieve_metadata.md", - "sha256": "6f03290c580a6e19fc1bf152e3d741dbec5565a358179f970a3a693c70d60904", - "size": 4619 + "sha256": "06f8af4f766a89fb34dea431692d5d8e9e79fed876e6a1331a3d6e15a38bde62", + "size": 4648 }, { "url": "https://platform.claude.com/docs/en/api/beta/files/delete", "status": "success", "path": "en/api/beta/files/delete.md", - "sha256": "2a29da88776fe9fad6963d744f33f89b7867ec09b7622cf39c7f2634927cc2be", - "size": 3295 + "sha256": "20c775afb859e403ca5345e63f450ba4dcc0a5f537a4dd1c4e48473d48e9cc55", + "size": 3324 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills", "status": "success", "path": "en/api/beta/skills.md", - "sha256": "a7e2e44ac06f1c38849ff353519e7c275adc19676cff63cc8b7946a566d1daf3", - "size": 42455 + "sha256": "157c4515a9b135e7368f487daec9009d27dbddfbb4d56051390b1cf7a597720b", + "size": 42716 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/create", "status": "success", "path": "en/api/beta/skills/create.md", - "sha256": "999c1e147623e42d70104145c1e8b1e71561c8618e2baf05180c6f5cbae44b9f", - "size": 5349 + "sha256": "b2ace1f1bb23c3268e8b843692b52a179a18c73dfe7db166526f4d2a821b6035", + "size": 5378 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/list", "status": "success", "path": "en/api/beta/skills/list.md", - "sha256": "66a25a9e39e8d168869f143f9414e09a690a6fe10a75a8483703ad2551683c13", - "size": 5764 + "sha256": "cf06c1afd95661d46ca6374a3a7ea9f11c48fbdacfab613a289287d912c23156", + "size": 5793 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/retrieve", "status": "success", "path": "en/api/beta/skills/retrieve.md", - "sha256": "75bd01a602e27edab299b14db645ddd02c29f4e78db30c5368f1a29b233a1ac9", - "size": 4986 + "sha256": "0b75689214eae54416578512a76e2919b5e08604737225b01fb02ff8ab1252ec", + "size": 5015 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/delete", "status": "success", "path": "en/api/beta/skills/delete.md", - "sha256": "12f17e9736fc7c9a26df4ec25f801ede1941001e572ecb531070f76072ef2c36", - "size": 3432 + "sha256": "c8e79a8874a7be17db43c1e564fbff32e24eebf45e9f86c12f2cbf2a7547f2bb", + "size": 3461 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions", "status": "success", "path": "en/api/beta/skills/versions.md", - "sha256": "8123441fbabe82b2766d7d99fefd40dea72da64278aa8b3ad5576b249035345f", - "size": 22106 + "sha256": "3909e5431932349525ca2cdbced891fa61b4665a1619b895249d5ef400fdf03a", + "size": 22251 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions/create", "status": "success", "path": "en/api/beta/skills/versions/create.md", - "sha256": "0a188efb9d3f9b4e9eb3f0b3848043d6e4d798b1c6f7cf3b500d6a63eaa043b7", - "size": 4575 + "sha256": "6924735b430e1f15693eea0b03e31122a707698f1c95250d5655f845ed03be4c", + "size": 4604 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions/list", "status": "success", "path": "en/api/beta/skills/versions/list.md", - "sha256": "009dfa8342fab22c4ce8b73b69dcb92766b957783f5a79bf88ef166f1eed7a0b", - "size": 4876 + "sha256": "bdd02d8ca294aec50ce01cb311db75826bd12600376420e78c8c3878e03ba31c", + "size": 4905 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions/download", "status": "success", "path": "en/api/beta/skills/versions/download.md", - "sha256": "71b891e9504ed415fe5b46b61a2f6cec18d685c5d0906837087c2497e0300059", - "size": 3371 + "sha256": "deb6efc58ea805762089d6d82e76acfa1d6853e88458d0562f00a377be84033c", + "size": 3400 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions/retrieve", "status": "success", "path": "en/api/beta/skills/versions/retrieve.md", - "sha256": "9fb67f88eac50547932f49681093e6d131d9f7fbbec9625fe3e1c394955f1079", - "size": 4565 + "sha256": "5e38f4dc10d648a30516577e59077c322bee88aa012ae5ba98aafea42d871f3f", + "size": 4594 }, { "url": "https://platform.claude.com/docs/en/api/beta/skills/versions/delete", "status": "success", "path": "en/api/beta/skills/versions/delete.md", - "sha256": "317a4fb099787cd4072b59904d4b0e14191fdab87ac6eac489c771f421e413ed", - "size": 3753 + "sha256": "d188bddbb40f9043482aa68c8b86fb541eb6398920fe7829ae863e2057a4bf7d", + "size": 3782 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles", "status": "success", "path": "en/api/beta/user_profiles.md", - "sha256": "c00e5b8b52550c5b20b2f9fd9f40f7db47c4f10f4a216640d73bea6fc7281294", - "size": 57926 + "sha256": "c6a8232ab1a13035881a94f8fb2df83b162a444f7f63658e685e524ecef9ec14", + "size": 66916 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/create", "status": "success", "path": "en/api/beta/user_profiles/create.md", - "sha256": "95d2e5b8e5022db509ed95ae0a5f7fe2ef23f669379d358a5ccc03b289fa24b8", - "size": 13185 + "sha256": "d8264075473db320800e2d454f8340bf4cd63541fd0b89ac0b91ebe5639c2c52", + "size": 13686 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/list", "status": "success", "path": "en/api/beta/user_profiles/list.md", - "sha256": "045ad2f054a643f6153a0f08f49a2c8dc1f869d157c330ecb627b80f00643fb2", - "size": 9605 + "sha256": "ece947f95783b323b560f7bf88235c9dbf5f89f1666510144332c45b1e2a740e", + "size": 9766 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/retrieve", "status": "success", "path": "en/api/beta/user_profiles/retrieve.md", - "sha256": "ae60716118feb56b026e05b5eb73cae634ca868b0f5ad4eea3ac90cb98a15a4c", - "size": 8713 + "sha256": "e0d9bd520c2534e4ff07cebc82440434adc930efe74e20f3e393d5c47739d185", + "size": 8874 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/update", "status": "success", "path": "en/api/beta/user_profiles/update.md", - "sha256": "42435b52af3b3ad205b1099eb4fe5e665dcbcb179645f37fb7e73ae32b2e51ac", - "size": 13039 + "sha256": "1555d57d14f8674158fc610d6d91ee78e8b4012bef4a9b41aeb53b5e740c1e77", + "size": 13293 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/delete", + "status": "success", + "path": "en/api/beta/user_profiles/delete.md", + "sha256": "325a95737ebf251f775d67e55a613831ebf67197ad21096ef9ea318c1534bf31", + "size": 3473 }, { "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/beta/user_profiles/create_enrollment_url.md", - "sha256": "defc40c503d8d11f3943ae36e8b6acd7ede6e1c29d9ddee95009e34c710a2b7c", - "size": 3896 + "sha256": "8934a91235d4b6a2271e90fd456036005c6e53895629decca7faebbebd320d02", + "size": 3837 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/action_urls", + "status": "success", + "path": "en/api/beta/user_profiles/action_urls.md", + "sha256": "a0d069ce6635c38d0cbe1bb1e363f90ac72d01a92b92336e995de27db8660af2", + "size": 5191 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/user_profiles/action_urls/create", + "status": "success", + "path": "en/api/beta/user_profiles/action_urls/create.md", + "sha256": "d22bafa56a2cb00ef54e60828545ff0615ed44732be0feb9ad130f0cb6cffbeb", + "size": 4196 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams", "status": "success", "path": "en/api/beta/dreams.md", - "sha256": "2c6e43569fbe960f025746288f9db7ff221149fecead1f52bed29ca445e3b6e9", - "size": 85433 + "sha256": "454e000e7474b5b1e5f19ec70e0d15482aa530905bb4b7520676f671e870d43c", + "size": 85578 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams/create", "status": "success", "path": "en/api/beta/dreams/create.md", - "sha256": "14e7a200a92f8ed44073227d2a3223750284875cfaa2f3ac920c81da68aeae19", - "size": 16007 + "sha256": "fb2cb5f1ad0514502e8fe8c3a6330e1900cc830f02099a8b10e1b2db0b743d6c", + "size": 16036 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams/list", "status": "success", "path": "en/api/beta/dreams/list.md", - "sha256": "983843697344bc85c98e1f0ec744705a2143fa980e54f23c352b8ecf51d49bed", - "size": 13202 + "sha256": "b90e5059c2ccff79115447a186a2842500e1966bddfad36dfed11243e6916fa2", + "size": 13231 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams/retrieve", "status": "success", "path": "en/api/beta/dreams/retrieve.md", - "sha256": "939a35177f962b255398cb1152d1456541d998288ddd54b8ad4bb772b7db7fa4", - "size": 11951 + "sha256": "3470c614f24b095579955cde8395ae01d4bc81ac2e00569f99b72a0ebfb8e910", + "size": 11980 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams/cancel", "status": "success", "path": "en/api/beta/dreams/cancel.md", - "sha256": "a2ca32fe213a7936150b70f65d6c24c0fcecc7a4ed1231955d6c26ecaf5167f2", - "size": 12158 + "sha256": "118c252c7b886c10ce6b44032913560dafbc8b254c5b7c8536c1dba512d555e4", + "size": 12187 }, { "url": "https://platform.claude.com/docs/en/api/beta/dreams/archive", "status": "success", "path": "en/api/beta/dreams/archive.md", - "sha256": "ca601a407ee5cc7d979798a08a55dd0234c2de763d6189465813610fdcee9fcb", - "size": 12157 + "sha256": "d95c2b957370d758764718fc04bdfcdf7c39c267f0eb2b6f5e5d1d9134a15e0c", + "size": 12186 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels", "status": "success", "path": "en/api/beta/tunnels.md", - "sha256": "58b3b07af63521dab0ccff3a138a2104edd9ddac6bcc11a59d0ef8330e76d878", - "size": 46542 + "sha256": "2dd4bbf2f349bb63099ea3f5a25e2190ba4d2356d38a0e8dc6ff4d68ac25f4c5", + "size": 46832 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/create", "status": "success", "path": "en/api/beta/tunnels/create.md", - "sha256": "8b0918a38f87c49348ad5c1ba75b09b4d498ab3b3b8193035ab762cc43ca17db", - "size": 4584 + "sha256": "47c21c95b839661cd7d6a915bb5185d6dcc2f08e4346881b9121553686fe3077", + "size": 4613 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/retrieve", "status": "success", "path": "en/api/beta/tunnels/retrieve.md", - "sha256": "3177787276ad2482f892dbaae314141492702053f1209394f8c79d0b1e1e254c", - "size": 4302 + "sha256": "645f0ca84373292349bf3f7d4b02d466ab800872744b6ee01f2ed57dfde0b856", + "size": 4331 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/list", "status": "success", "path": "en/api/beta/tunnels/list.md", - "sha256": "da05ca8dd0c9b4ebd3de88d8d56cd4241551ede3bfb49c297b7eed595a1cc1cc", - "size": 4886 + "sha256": "b50675807b6cd9afeb44f50f83b7cd937ec00844befc7e69671fad04fb82dd14", + "size": 4915 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/archive", "status": "success", "path": "en/api/beta/tunnels/archive.md", - "sha256": "e9d63c0c259cb4bedef9115e1c2252d00f4031b2969570da9de6819370956649", - "size": 4609 + "sha256": "da1e1a6001fc170ebabbee7ca33f5e0b2f5a97cf5b4966e3b0ba90cb6968a307", + "size": 4638 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/reveal_token", "status": "success", "path": "en/api/beta/tunnels/reveal_token.md", - "sha256": "134e85fe53cb8bde05b184bd3e153cf54bfd5427b83637b9fb2dd33026dab3fb", - "size": 4016 + "sha256": "c03907b113fa6b64b4c20ea6ad3850d2d70032c4e90f110f8c9ac97eda604d99", + "size": 4045 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/rotate_token", "status": "success", "path": "en/api/beta/tunnels/rotate_token.md", - "sha256": "58f457b5d7b06499c4f849984d07648d50f340660e48b7663cb95b8a5c8b7282", - "size": 4181 + "sha256": "39be49a22ece2302ad5eec373805dbabc60ffedca2ae3f56fc5ea1382f510068", + "size": 4210 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/certificates", "status": "success", "path": "en/api/beta/tunnels/certificates.md", - "sha256": "abff15c4640b2723fa3f6e6663de948283106c8929eb35bab25db79e484018f0", - "size": 20266 + "sha256": "143825d0016bc34c513379d37d0783851acbb9e36c7b298db7cf9574ddae7dcb", + "size": 20382 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/certificates/create", "status": "success", "path": "en/api/beta/tunnels/certificates/create.md", - "sha256": "996c152764a35abc02dae4b1252d3c8f2c33a58951d4e5e1ffdef024d389cf22", - "size": 5010 + "sha256": "555a8704af0eb0eada39049a446c8e36a91aa85a7e833f4bbebe18fafe5e8087", + "size": 5039 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/beta/tunnels/certificates/retrieve.md", - "sha256": "31e367c81b5e23234bacfd3d96ad173ebb7588549eae0999b30563e58116cdaa", - "size": 4625 + "sha256": "4b0e42825cb0ba076e9d9d0c277ab4e9c638096b6892652da6d7f55a495b78b2", + "size": 4654 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/certificates/list", "status": "success", "path": "en/api/beta/tunnels/certificates/list.md", - "sha256": "04f7beae6a4c06cfea9935fd0f1f681e0f2b01809beddea38c0bd7e64971222f", - "size": 5188 + "sha256": "1df337b2b3ba81fecddafa115153231bae54cd67a5fb54d58b410a76a177d545", + "size": 5217 }, { "url": "https://platform.claude.com/docs/en/api/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/beta/tunnels/certificates/archive.md", - "sha256": "f7cf31b093106b4de1507859c9f76e131984260149cbe082e50ba95555bbf001", - "size": 4886 + "sha256": "e5274d9e5a9c5ee0d1694be70f9c14daa194c46ce6addfdc40d0a8c98d1d9851", + "size": 4915 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization", "status": "success", "path": "en/api/beta/organization.md", - "sha256": "67b72d7d98c83f8d312762200603d4e00a99e091ce195a29d59f16cbabdfa0f3", - "size": 845818 + "sha256": "7d51937ab774e917470310cf4b6859b83fbc9079aa3c07bcf22e89b7ed8a8002", + "size": 885013 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/retrieve", @@ -3887,120 +3992,120 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/federation", "status": "success", "path": "en/api/beta/organization/federation.md", - "sha256": "4510b9961c0b98a737c555e98ecc9301e0be39edc762c34304ee7e8ab30909a4", - "size": 107795 + "sha256": "cc674dddcbf8c8b8429708723834eb6abba6182ea49e278ca40f8fd296d9358e", + "size": 108172 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers", "status": "success", "path": "en/api/beta/organization/federation/issuers.md", - "sha256": "4270e09e54274c5ad286c8cf3423b887ed0f9650d47c379e10c6162531251b51", - "size": 49218 + "sha256": "8d68f29720ac9ab5e186d0c2b829836ab0788831e8479513816411248cb945f0", + "size": 49363 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/create", "status": "success", "path": "en/api/beta/organization/federation/issuers/create.md", - "sha256": "ac22d61e2f7d86642352e2d2d7f762bfd1913ef69b71d850dc0e4b478652894c", - "size": 10144 + "sha256": "1f03b7b73d52903ea329017ae76795a09ef96bb68118072be494aab6f57e81fe", + "size": 10173 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/list", "status": "success", "path": "en/api/beta/organization/federation/issuers/list.md", - "sha256": "9b7dddec44d42eb5146b724299d6addf171458242655540a61f61975f19a8edc", - "size": 8032 + "sha256": "a6a61a8a1f47d53e46df02b01adfcbc86a532c2eb5da34eb3d26868a11212d79", + "size": 8061 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/retrieve", "status": "success", "path": "en/api/beta/organization/federation/issuers/retrieve.md", - "sha256": "3b626e96a7750a1f4ff9022c9a2e3a5e4dbac526422d3326c2dda038f71e6e39", - "size": 7735 + "sha256": "b182f9607403c41ef3e4832c330773a15c0973d73fa1ecb400de744827701fd5", + "size": 7764 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/update", "status": "success", "path": "en/api/beta/organization/federation/issuers/update.md", - "sha256": "90eff35b79cae45ca04f713cb899eced46ddb1fc31094acda329620b3a5f86c0", - "size": 10414 + "sha256": "b4f660640fecd4901e1c4bf7ccfa68940751906f71f55793d6947de8b4168166", + "size": 10443 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/archive", "status": "success", "path": "en/api/beta/organization/federation/issuers/archive.md", - "sha256": "70d1f446f2d5e4a7b3d5699956c003101169e46b53eff1c2cfc257c2a4656646", - "size": 8032 + "sha256": "8937f079c03a7e5dd72e0789f2c7ad5339c22c5867ccf0843f77643abc89ddab", + "size": 8061 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules", "status": "success", "path": "en/api/beta/organization/federation/rules.md", - "sha256": "fa29fa70b8213468cd1c41c74e99d87f7dd362bfd6cfffc7c3028499403daab1", - "size": 70660 + "sha256": "52fd32193d079033279dae8a41d7b0d86b15bcd95f1311a971f008dffb7ed9df", + "size": 70892 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/create", "status": "success", "path": "en/api/beta/organization/federation/rules/create.md", - "sha256": "3c12358c03f7300fbfaa248787a40e9729374b69473439a8d50db26ccd06c967", - "size": 12586 + "sha256": "eb2030c3f212ae0d5104248971e130fb741ecffb0e2f60cb8238eb96b909cdb0", + "size": 12615 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/list", "status": "success", "path": "en/api/beta/organization/federation/rules/list.md", - "sha256": "ab29c896cb68b097f6cea81a1b4552a502beeaae4ac451cd25fe329be63f8e00", - "size": 8578 + "sha256": "5a4b6ea5c41c9f1589ade638d8b388deb573d93633ce8c01d057bf0b546325ef", + "size": 8607 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/retrieve", "status": "success", "path": "en/api/beta/organization/federation/rules/retrieve.md", - "sha256": "d7512765ec9be3d95d2dfffc932de3566b9caa027f7e16350a08fe2cf8ec5f27", - "size": 8477 + "sha256": "1646b230d9a99ae477e62cbadadaf0d48b8670be858148b75c9bbeed1f5dd0ba", + "size": 8506 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/update", "status": "success", "path": "en/api/beta/organization/federation/rules/update.md", - "sha256": "3ec286ab0c0547f72651ad8b46c8282b44a7e245a4df65ac78307552907c64b1", - "size": 12745 + "sha256": "00127f018874e65a75b3123e56e8124a934069c72073b866e2fb4896a69e77aa", + "size": 12774 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/archive", "status": "success", "path": "en/api/beta/organization/federation/rules/archive.md", - "sha256": "4a81e156b4c9f99ca6eac2644c3d7b6556ec18ce227b87a5e89859c272d24870", - "size": 8944 + "sha256": "9fae21c17301cefeb6609f540b65883513499dc3094e17eb7f1819e4f36b41b2", + "size": 8973 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces", "status": "success", "path": "en/api/beta/organization/federation/rules/workspaces.md", - "sha256": "d4e8719efe7b8a49681f339c976831ba4555b8f719983e917020681435d8ea57", - "size": 13521 + "sha256": "0382b4cd018699edad5404417a8cc3f774053fc10f5effe0fc2b13bb7d616c4d", + "size": 13608 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/add", "status": "success", "path": "en/api/beta/organization/federation/rules/workspaces/add.md", - "sha256": "ce1240e27e4836c87f24d8cf7ec38439a394fa6e3f5d733a38b757b5f20441cf", - "size": 4781 + "sha256": "80cd14082cfd265a1a3154ad6cc74bc88bf205d8cd3409d0dce75004e8de645b", + "size": 4810 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/list", "status": "success", "path": "en/api/beta/organization/federation/rules/workspaces/list.md", - "sha256": "c16146620a54185e07e1fb6cefb29fd170dda7ea51eb029355037ef1d2d723a1", - "size": 4780 + "sha256": "f26c8e145c3353addf79e983c0e6120de2cd75eeb4382d1093e5cfff3476185c", + "size": 4809 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/remove", "status": "success", "path": "en/api/beta/organization/federation/rules/workspaces/remove.md", - "sha256": "5b0b23cfd73d74211f8374adebce464bca2cb29762b7f51eb8b749ace51c7a2b", - "size": 3872 + "sha256": "25e7aaceef089b1ad79729c7e16e41b7826b2770e22b135cd4f44caa8e0f61ef", + "size": 3901 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/invites", @@ -4041,71 +4146,71 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts", "status": "success", "path": "en/api/beta/organization/service_accounts.md", - "sha256": "f95f9a4ae44111ac982c7df931d09a0e191be00adecd29ae0c47495c3a500328", - "size": 44164 + "sha256": "7bfbeae6928b1b6923b2246ad4a902243093d503b076fdc3bb72501b1d55ecde", + "size": 44396 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/create", "status": "success", "path": "en/api/beta/organization/service_accounts/create.md", - "sha256": "2738940622bcb1cb1143fcb964a8e6587c507d141a45aff1b44a6baf36d7a589", - "size": 5852 + "sha256": "ec62777de81769dbb2b19e9b15e00018444697c6b468b2a7cb6fd18574d4f361", + "size": 5881 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/list", "status": "success", "path": "en/api/beta/organization/service_accounts/list.md", - "sha256": "81993bf3b7cbfc598da7e9f4e6d5d44285923b15eb7180e29e4be735d8f95485", - "size": 5430 + "sha256": "91a68f1b1bf7d6b20a7e5269cbfd37359ca6a10a1e3ba5d7485b7dd0e13e22bb", + "size": 5459 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/retrieve", "status": "success", "path": "en/api/beta/organization/service_accounts/retrieve.md", - "sha256": "318def153e270daf70377c988d3acca20fff8f30b5de12f0c6203c7f6b6a94e6", - "size": 5048 + "sha256": "e867807dea9aedcc5bda1081b79eed62cbbf9ac9596cdb99d754e7b5975a1023", + "size": 5077 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/update", "status": "success", "path": "en/api/beta/organization/service_accounts/update.md", - "sha256": "cef66c17fb17e0efe9dcc05752c24be6382056304a4d7bcf1092472f31e3bf6c", - "size": 5747 + "sha256": "5de19bd5ba80765f5cc8372d0a5ae833ba0a604d04ddb32c06b0637c13d51878", + "size": 5776 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/archive", "status": "success", "path": "en/api/beta/organization/service_accounts/archive.md", - "sha256": "d231dd55b0f8ea7488d2566c9b886d6934037b7aaeb54a3718a2c15b33e42218", - "size": 5359 + "sha256": "8c35c56622139c4f0ab6fcfef6b767cfcf4db6aa12ad0db9fcc56909db4c8c15", + "size": 5388 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces", "status": "success", "path": "en/api/beta/organization/service_accounts/workspaces.md", - "sha256": "35676e97a8ed5e7501139edd44419fddabb2dc361c20af7fa939b6d4eae1642d", - "size": 15210 + "sha256": "0064d00b485fe4f9517b9d8e2810112532baf4995d1648fe7a30310deb497058", + "size": 15297 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/add", "status": "success", "path": "en/api/beta/organization/service_accounts/workspaces/add.md", - "sha256": "b79a585cfb3f927c89cfe5eb8dc66e1e058d286634843befda8922569d6441da", - "size": 5200 + "sha256": "581db846c5c56ce4d7da0adcb83e520a571d6e5cc0af8c5121777174127b5590", + "size": 5229 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/list", "status": "success", "path": "en/api/beta/organization/service_accounts/workspaces/list.md", - "sha256": "56efa5aec8f5cf4720aa4c2f12631c13ef7569c0b510f71af6404253057b51f4", - "size": 5583 + "sha256": "219db42538632200085b743f13bf800c5078064000850da35b3a5fba5698f0ab", + "size": 5612 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/remove", "status": "success", "path": "en/api/beta/organization/service_accounts/workspaces/remove.md", - "sha256": "5d69e77dc24c8f1e7225110917e5f2254cb1cbf5407de46f498671d5358d3082", - "size": 4231 + "sha256": "aef7671cd03ae02fad90fec40563f9eb804f1f2626240b54783b3ad335e19d67", + "size": 4260 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/users", @@ -4146,8 +4251,8 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces", "status": "success", "path": "en/api/beta/organization/workspaces.md", - "sha256": "5323fb04f38e3f4e75361c893dff5a13a1758db02885488e8281df3eda86bc89", - "size": 76238 + "sha256": "bf0a96f963ad5ddfdc5175bfce515275ce71e00a22ffba5f6a64739861552ca8", + "size": 84399 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/list", @@ -4160,8 +4265,8 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/create", "status": "success", "path": "en/api/beta/organization/workspaces/create.md", - "sha256": "ce04119ffc0859811d03a2a204dfa00554a6eac111f2a3361fd5fbb016d7ce13", - "size": 8867 + "sha256": "13310ce238b987a89883cc6995cc9f5b3b7fa604cfc87fdd476113d3ab77bdd2", + "size": 8896 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/retrieve", @@ -4188,8 +4293,8 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits", "status": "success", "path": "en/api/beta/organization/workspaces/rate_limits.md", - "sha256": "d0d29f33a0c026c13fd8542cdcab70025fa2ec3a1c63edcd979e92af17728b30", - "size": 15329 + "sha256": "962b929f98e2668fdae83a4f5a90f02d60dfa87ca63d6f967493348937b4ed58", + "size": 24344 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/list", @@ -4198,6 +4303,13 @@ "sha256": "e18dfc28056cad996f8004e5602bab60e91c829a0ccebaaa739c12fc37774261", "size": 8269 }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/update", + "status": "success", + "path": "en/api/beta/organization/workspaces/rate_limits/update.md", + "sha256": "ade1e5d97d83228f50a0e1a1e162443796bb0d988996fb76a8aef5ca922cc4af", + "size": 8107 + }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/members", "status": "success", @@ -4244,57 +4356,57 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts.md", - "sha256": "e316d4e7ce8fdf111731889eeaa0f178f906d51dd52c6ad12543d0eb05c2b7cf", - "size": 24399 + "sha256": "85d8c53f08b91739148e58a72e8448b0a3036817a9107a4bbb7c993761b1d927", + "size": 24544 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/list", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts/list.md", - "sha256": "2641caf1e80acd9edff5c33cdea9a268d4854f13f3805532b91cb45986c33371", - "size": 5102 + "sha256": "56dc54097c8ec721d237f424fcf5615a5c83b68f6816ac92833b189b1d5411b8", + "size": 5131 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/add", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts/add.md", - "sha256": "a3183fd26da4dbfb85650c62130be62c1da74c4617c54c59dd3ab6a9de53f1a5", - "size": 5360 + "sha256": "355d68ce7e3464f7107a969ce8e31c700c4954360296d96aa5fa887f466a073b", + "size": 5389 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/retrieve", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts/retrieve.md", - "sha256": "9829e3a995845eda28972dc98e5bd68eed8dd605923adff811f5071f42a6ecaf", - "size": 4789 + "sha256": "a0ec0bd225776768a31a06a32dbe4c3a821593370018dc52664843f1a85c109b", + "size": 4818 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/update", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts/update.md", - "sha256": "da3a8e512ee31f7b09b0e4a0ad782260fa39e237727e8b3cb590ce8ec274c6f5", - "size": 5124 + "sha256": "d540b4585fcf8367a85532f7e90e790e1a730ebe8fa8885f67c6ed999ce0aaa2", + "size": 5153 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/remove", "status": "success", "path": "en/api/beta/organization/workspaces/service_accounts/remove.md", - "sha256": "1250fb55813d2d0d7bd310b1d9ce359c3663f389f7f70eb4e6ff67181fc762e9", - "size": 4109 + "sha256": "10da84216484c0a4ca59a1dfc8ef03d4bebd21eda20af759cc5953f9fe7e8797", + "size": 4138 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/rate_limits", "status": "success", "path": "en/api/beta/organization/rate_limits.md", - "sha256": "aa9b881230c81fa6dee1662c07329619179b9d85c5b73b2e229de0c5f89ecd4d", - "size": 13713 + "sha256": "808fec124ac8bd8864af068b3736914dcd5081286a3b253397b12c673279b1b4", + "size": 13861 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/rate_limits/list", "status": "success", "path": "en/api/beta/organization/rate_limits/list.md", - "sha256": "aa65cf9ae343de6df619862848c9f8d042c4ae8fcb89c22ab1d3085693efa70a", - "size": 6552 + "sha256": "913c3fdf5b6a45095c896ac74b2937cc7ac7b88838711a581b102fc7545fed7a", + "size": 6626 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/compliance_settings", @@ -4321,15 +4433,15 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/usage_report", "status": "success", "path": "en/api/beta/organization/usage_report.md", - "sha256": "e9616536c5d4094328bae49a53aa30da37d63bd5c5c6e53e6ff7ec546fddff4f", - "size": 23827 + "sha256": "7c9510220543b240a2675541e717bad1420d5bc852a64d54664a0218b159b3c7", + "size": 23856 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_messages", "status": "success", "path": "en/api/beta/organization/usage_report/retrieve_messages.md", - "sha256": "926e5d4dc3acf3d0b8ec157a98c4e847e594b9e5776ed387cf80265381367be7", - "size": 9777 + "sha256": "9ecae5291767f870d60b8e1a0df4a55fdb249275e390c2f663066741d7725413", + "size": 9806 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_claude_code", @@ -4342,92 +4454,92 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/cost_report", "status": "success", "path": "en/api/beta/organization/cost_report.md", - "sha256": "92fb15f310a21b10062fee91c2585548cd5c0bf6bf16ae221fc7f87396a8478a", - "size": 10475 + "sha256": "857e8c433c04f577f67cda4ca9aa3ceebf8b632e8cb785c4bdf59467c8f90358", + "size": 10504 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/cost_report/retrieve", "status": "success", "path": "en/api/beta/organization/cost_report/retrieve.md", - "sha256": "9c0036401213617af590aa205d4c88fbb7e9337bca4d968635b5277a06a3aa0e", - "size": 7291 + "sha256": "903e8985c50175720a9508129455e0a85893849c77d54958f94edf3526f07a44", + "size": 7320 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels", "status": "success", "path": "en/api/beta/organization/mcp_tunnels.md", - "sha256": "21f83f05f8b686a7d6e349f5d553de6f7e70b4210c35171d23825841075ea461", - "size": 44102 + "sha256": "96297928ece0d71f35fc87e4b5bebde19556b82984e3c33c9bf3c69c73941fd5", + "size": 44363 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/list", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/list.md", - "sha256": "f4db9213202c836c4dc26deb7e0da38faf57dd4721f178c85617d2f2312c656e", - "size": 5494 + "sha256": "fe27b2fb8481a906c9233e874b2f010f186dd6a2d6e6a2ce82a30452ba018045", + "size": 5523 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/retrieve", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/retrieve.md", - "sha256": "ae58660effd26c08ad2d93af53f1d5e2d09d6e0395121e07166345e0846fb6d3", - "size": 4601 + "sha256": "57a009bcb8f5550d25f68b9d9e5e51a4cbf90b68914181868bc45349a3b25b3d", + "size": 4630 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/archive", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/archive.md", - "sha256": "c3e4bc60edaf5036ae68bd57689c731c349ec9360c38ad81117f1f38754a67b4", - "size": 4871 + "sha256": "ca9cd83c001d1c452504514502612485163173fca399a8f8f57bcd7083667c3b", + "size": 4900 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/reveal_token", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/reveal_token.md", - "sha256": "e70524360a8c2753f3ee94b45017d0390290ae0a7816c0c07303cbc70d0f7038", - "size": 4102 + "sha256": "03e350beb1b828e1a580d77a90cce6d8f4b4b464c291fe40b1658c7125f145a6", + "size": 4131 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/rotate_token", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/rotate_token.md", - "sha256": "395bbddc78606aabfd967908e2ed73f9821ffa4568abf15ba1738a779876dafe", - "size": 4245 + "sha256": "426ae4a7539dc167e8d28ea82a83d9846b9687958b0b8a1b95a245b46416bc17", + "size": 4274 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/tunnel_certificates.md", - "sha256": "9877edeaaaf58406c2d4c18e40cb11563ae7415642d696d59ad380ab3a180231", - "size": 20850 + "sha256": "fcb112e7971bb83abc61a9f853fabc74fc52843bc825048de283d3240f960bf4", + "size": 20966 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md", - "sha256": "f8cf765e183bc5be873710bc652c56d523b79571e7572807cfd6bf4b71bb85b0", - "size": 5325 + "sha256": "d208117152f73b2313a8ce20a65dd31f29d4b6ea2148f9b18e9c43e04bdc2895", + "size": 5354 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md", - "sha256": "d85c49468fe09bf6ef4c70a33ff54b65bd1873366c2522f46df42c79570374cb", - "size": 5308 + "sha256": "1c522c4c3cf65b53e9d87850261f18580d7e61e8b9f711a5c395810a4243cb0b", + "size": 5337 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md", - "sha256": "b291b5de467bb5c8816c4851aece2e07daeae804579e67a5fcc393e565dc1646", - "size": 4722 + "sha256": "40c5ecdb67789274bae5da22a3a1f18d3031ecc47ab4dbee48d43254f5360ba5", + "size": 4751 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive", "status": "success", "path": "en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md", - "sha256": "71c87c6d1a25218249e7d3bb84c7cc2848db1c70fef8d49dad07988e366880ab", - "size": 4942 + "sha256": "d6d57894ea0da3b36ad7091f88f2f441d3b49fa48418ce34192f969d5efb988d", + "size": 4971 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/analytics", @@ -4608,15 +4720,15 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/spend_limits", "status": "success", "path": "en/api/beta/organization/spend_limits.md", - "sha256": "83500bdd86b802bdcb9ec8a8e0771d4708b4f141769c2568c2cf696d29e634ca", - "size": 75248 + "sha256": "e0e4af98ccdc9073545538761ef90fa3e2bdc850ffe53d8a81b3554b167bdc25", + "size": 75306 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/spend_limits/set", "status": "success", "path": "en/api/beta/organization/spend_limits/set.md", - "sha256": "315ce09d489c260570280ee81cd96ff66105c3636d1d47b989a4e951eb8cc279", - "size": 8325 + "sha256": "3cf9385a74db5656e17b8f3218c752e92d26b6ac1fa96b3e26fa5b42062bfd27", + "size": 8354 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/spend_limits/retrieve", @@ -4636,8 +4748,8 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/spend_limits/list", "status": "success", "path": "en/api/beta/organization/spend_limits/list.md", - "sha256": "7ab180bb8a7d84f9360a3d517473b3a93b408b54d1dc45c30107a67eb57bdfad", - "size": 7048 + "sha256": "ee487765c28e899ca9d88f08e730f6f5567589ec00c58447fd5683f95d35f74b", + "size": 7077 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/spend_limits/effective", @@ -4797,267 +4909,316 @@ "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins", "status": "success", "path": "en/api/beta/organization/plugins.md", - "sha256": "a5afde2e7b85282a2448ebb0dfecb6b3036b17e17cb02e4305ae52f40c104f5a", - "size": 117007 + "sha256": "0f2836c2931ba41f967a9f8ee0f67b6eab195ae013072643941204f9d016e2ba", + "size": 117384 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/create", "status": "success", "path": "en/api/beta/organization/plugins/create.md", - "sha256": "6de62dd677ebdfaf1be845734fa1991469821c69b6e0857dc9ec5bb04643f104", - "size": 12757 + "sha256": "51ea9cae37f4ec3712e4f8b2b2c1fb95f47869a5933d2b4e4bfe07afc684fe25", + "size": 12786 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/retrieve", "status": "success", "path": "en/api/beta/organization/plugins/retrieve.md", - "sha256": "65d5203ded18e14702c9f9cfbace521ce333d5fbd5ffb26d080f7b8825c42300", - "size": 10858 + "sha256": "0e1332a0c8caa928fb46ce9ed9d030b78b32451ee504e968e071138f7c97160c", + "size": 10887 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/update", "status": "success", "path": "en/api/beta/organization/plugins/update.md", - "sha256": "5ec6689aeac26e055a2aa2d2a543c7ba0f5f7977d2c40a63dab5b9185e392f51", - "size": 11812 + "sha256": "1c4844ad0ba7885fdb55bbb4768ef1a3dc989f25e78cdb22241ace13dcfce6a7", + "size": 11841 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/list", "status": "success", "path": "en/api/beta/organization/plugins/list.md", - "sha256": "61bee00844742bd034d51b434c861c9e2a6fbbba293d8be5c3417468ef87d157", - "size": 12845 + "sha256": "a5f14f78c8bd56d7ef767dd0c404c36ed76e7b55a6d5c4999d2699e5c353d782", + "size": 12874 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/delete", "status": "success", "path": "en/api/beta/organization/plugins/delete.md", - "sha256": "9dbf386c8cc1dda968fde184b0dccab965967ca229ee349ebc506877096bceaa", - "size": 3977 + "sha256": "e1d7e469cea716c581394f8ed761a9b8077cb3b5addff41a4cfb6017f93d4117", + "size": 4006 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/versions", "status": "success", "path": "en/api/beta/organization/plugins/versions.md", - "sha256": "d00368ad6af70a959fd91282a26bc87145f6e85d584ca0167811f3a86bcca503", - "size": 34729 + "sha256": "081bb8a44757824038a6f213dca24f97b3f470743b6d613d82c39d82f5d4da7b", + "size": 34845 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/versions/create", "status": "success", "path": "en/api/beta/organization/plugins/versions/create.md", - "sha256": "03f55b661295589c7138a7787fd16dee9305c6cd6af2d71a77cbe52ca5051732", - "size": 9401 + "sha256": "7c35afaf27171a275178e3c34adcd1a0d2c20dcaf2b8da83b6ee0ad4f256d328", + "size": 9430 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/versions/list", "status": "success", "path": "en/api/beta/organization/plugins/versions/list.md", - "sha256": "afdd6b3bc7f9dfc72b2f2a78904b26e820f93b188ca0f9adf403975330f61d74", - "size": 8828 + "sha256": "117dd821f1e6c95f3bcb8df2931fa695298e6b4dfd1548b2e1d0c763f2a2305b", + "size": 8857 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/versions/retrieve", "status": "success", "path": "en/api/beta/organization/plugins/versions/retrieve.md", - "sha256": "e470aab82f6b8c814a356eb628f6e57bf9029104f24b560e2273e9923501d575", - "size": 8306 + "sha256": "20c050eba972e65c0caa1329da6dfb9bb406c4e5f7c7e232c8ec788aa2d46977", + "size": 8335 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/versions/download", "status": "success", "path": "en/api/beta/organization/plugins/versions/download.md", - "sha256": "5972ae1c2bd6e7cd5c80bcce63a7b2f899f43c0a961e79a39367f3f8e862cd5e", - "size": 4895 + "sha256": "7c046a6c4b099294976f45fac3f23402de0436e5b4adb45208fc6c182bfd579e", + "size": 4924 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/installation_settings", "status": "success", "path": "en/api/beta/organization/plugins/installation_settings.md", - "sha256": "9ebbf070fe5feabf29d7af16ae08be14e5903af02572dea0f05a8f9ea9a86564", - "size": 21760 + "sha256": "dbfc82fce40e38cdb8fb084e40659f20bdc36cb53bbcf7485e94a2fe18757c91", + "size": 21847 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/installation_settings/list", "status": "success", "path": "en/api/beta/organization/plugins/installation_settings/list.md", - "sha256": "6abf71ca1a3296c3f803e15793542a6de74b9e4e322263a7e60e410fa7557bd1", - "size": 6764 + "sha256": "308d7b18104a4d2ea1d3ca6a7e11adfa894fb3e22a5bff66d92374f52a1e8b84", + "size": 6793 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/installation_settings/set", "status": "success", "path": "en/api/beta/organization/plugins/installation_settings/set.md", - "sha256": "e75a8bea4cb5a5121a4d01c91fd8d890c3d404f23154cfe8c34f8560c8647898", - "size": 6590 + "sha256": "3afdcfd142b1b59bf025150b838a1a5fdb01d75d92ab3f710bafe452f07a8f85", + "size": 6619 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/installation_settings/remove", "status": "success", "path": "en/api/beta/organization/plugins/installation_settings/remove.md", - "sha256": "2a26d923e27986b3580b3f26f35c172fb9768a102c78e6a75d239868a93fdab8", - "size": 5703 + "sha256": "55730e735bc9b906bf5560d46bc72887b3194944e74335b9f5d006b4b45a7e67", + "size": 5732 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/shares", "status": "success", "path": "en/api/beta/organization/plugins/shares.md", - "sha256": "28bdc8b823a8c10f8094970bb38b7975736d5adf8efdf5880f42fde0df317ddd", - "size": 7654 + "sha256": "45b25d117e238d86c57964fb03b120bbacc74c20320d1d19acf9acd3a609276a", + "size": 7683 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugins/shares/list", "status": "success", "path": "en/api/beta/organization/plugins/shares/list.md", - "sha256": "bc81efe3d735ec96aea55331a0ac4999537ab988e102c96570fa4e803f63d099", - "size": 6261 + "sha256": "ff51fec7e0d0e462bd0ed7cd72e41693ae9bcc34b8e6c2741800c185beb3d69d", + "size": 6290 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces.md", - "sha256": "c5698366df897c8ac5eb960a29ba062756c01326eb95f14edd33878ec6c0a988", - "size": 46504 + "sha256": "de687c2e56e892b22f94fcfe2ed25c40861d4b5f06a05e165ad7e54468d17f48", + "size": 46649 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces/list", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces/list.md", - "sha256": "1691c54e2c4ec79f2df6d6f95a9c68429777ac58062ec21748dc6a74fa88ddf0", - "size": 8771 + "sha256": "756fef328f0b484258f5348ba9259dc2fea6f189a09cc71702ec7b452d746978", + "size": 8800 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces/retrieve", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces/retrieve.md", - "sha256": "d33ca42ee7347e72c0ea28badcc6eeca967b7d0fb9825b2916e3c9c083586f37", - "size": 7395 + "sha256": "0001a65aa37967f06e9da3610fa902b0d25faffd6f6ec6c5d348fb16e3ccb175", + "size": 7424 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces/update", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces/update.md", - "sha256": "89e0ae2b27b9d5c065ff10eb784ef4b89a113468d70e7a920cc40f87f914df57", - "size": 7556 + "sha256": "0568b5b0ae097a2f6793a0cdcaae29c890cccd0fb0b5be8b04c81c87b25706de", + "size": 7585 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces/validate_repository", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces/validate_repository.md", - "sha256": "dd5b74149873970800f773e7c2e626fcf4ddcfffba2dff73004a3a06218bd9dd", - "size": 8608 + "sha256": "da25ca44df976e3c4d39d82c52262a2601b86ad9461c5891f86836cafe4c759f", + "size": 8637 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/plugin_marketplaces/validate_archive", "status": "success", "path": "en/api/beta/organization/plugin_marketplaces/validate_archive.md", - "sha256": "261f90acba33c7fe8edd630839eb44a1f360f123b7b9e6ff6551991f31623285", - "size": 7788 + "sha256": "2ee50bce3c48981145fa96f0ace26015781fb7de85e6b3254241cf85a5a18aae", + "size": 7817 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations", "status": "success", "path": "en/api/beta/organization/telemetry_destinations.md", - "sha256": "071341c6948dc5c46861fe44c1deff48b50b83dc3294734e8d311937e60c113f", - "size": 114932 + "sha256": "07e95546e778a1d5edf9ba26b3c8531c9034e62c8b2a3e338f5a39b8affdab7a", + "size": 115193 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/create", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/create.md", - "sha256": "c5928d2f2a6838ecb1e1f75199dcee01cfdec7f5521658cb14345b0e5ac4810d", - "size": 17540 + "sha256": "9a55ff46030d8e8ab0766f71b29db7b77054f1d68e779cbceb1d97a5276f8daa", + "size": 17569 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/list", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/list.md", - "sha256": "dc3ca0d2caa580450b84f57975152dc01f64ff71b2f1f48807a8f909c14c2243", - "size": 11960 + "sha256": "7533d42d0315fed9192856b74fd18bc256ad03fec13f780e9fc2718967c4fb02", + "size": 11989 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/retrieve", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/retrieve.md", - "sha256": "2ab8dd9e2619b705a21284aa69cad02e7f1d224bd7d48552dea0c9430c50eb3c", - "size": 11316 + "sha256": "3b4623075018d47f578b783ad80d6a8754a340a9a4f466cc348f1711042c4a88", + "size": 11345 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/update", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/update.md", - "sha256": "22906682fb45c728f8d1f01181a29cae3176595d94d5d9498e22314e05bf13ae", - "size": 18767 + "sha256": "34e5428d63653ed0e0890ef8ab9ae64dd09c2ceb137691cd60cf70c40dac8c40", + "size": 18796 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/delete", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/delete.md", - "sha256": "c011a781932e6acabaedcf475844f4d6400239319fdb91c274f55fd377caa845", - "size": 3589 + "sha256": "a2400ea17b5f21032aeee871796bda772fd592f053f2d1e52e0dc8e6f3c30c6c", + "size": 3618 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/test", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/test.md", - "sha256": "468beb04716f25db696fc4e2cb4ccde5d80eef67040d772a72e1cca54cdff412", - "size": 4522 + "sha256": "19798dcf023ac05e5fadc2aa748e5ca23e60c4a4f38fcc983dc3200fb244fb70", + "size": 4551 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/workspaces", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/workspaces.md", - "sha256": "aca73fe8901abd1ba7b56ec707728e2a771ffa835f1a9b19fe2dc66c28049b64", - "size": 13877 + "sha256": "0de87742c71aa8daa544a1718dbbf9fc74c2ee6c4ea3e072f3407767b2de8733", + "size": 13964 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/workspaces/list", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/workspaces/list.md", - "sha256": "63bfef9a69cd493de4bcbd15818f510749b93334f62885c8bf29894519671486", - "size": 4346 + "sha256": "4bd94ecd6d4c448e3e6081d3a35a55aca325fbe7865481f1e354390777c04404", + "size": 4375 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/workspaces/add", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/workspaces/add.md", - "sha256": "f0662bb03e1c6f4772b095653d2b6fce6af4ea2252f13b0a86eda0affea68505", - "size": 4607 + "sha256": "0106c5378554b75ff2cb425262e099092c13fb3edb320e238fb9f62f3cf15dca", + "size": 4636 }, { "url": "https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations/workspaces/remove", "status": "success", "path": "en/api/beta/organization/telemetry_destinations/workspaces/remove.md", - "sha256": "30f6dc95117543c10a7e50c7e019482144df9981ffb0b87b7d0204e4849cccb7", - "size": 4127 + "sha256": "6dcdf25eaa08e3b0a490404da0dbfcb8945f26c7a2678d6f23ebe3a8319f5b3e", + "size": 4156 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks", + "status": "success", + "path": "en/api/beta/organization/webhooks.md", + "sha256": "14fa9d99f2ae7b67178076174f981d998ef987d165f85b3438fd94e2238aa3f1", + "size": 32814 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/create", + "status": "success", + "path": "en/api/beta/organization/webhooks/create.md", + "sha256": "68c48d32003bfa36c299c39c05151d3771a50448c20dc769f81d61ff7be0f5a3", + "size": 5899 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/list", + "status": "success", + "path": "en/api/beta/organization/webhooks/list.md", + "sha256": "8ef1cb3e6518c60bfe476f37a20f63b1017e076658461bb54e8d6cf5e12c6709", + "size": 5951 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/retrieve", + "status": "success", + "path": "en/api/beta/organization/webhooks/retrieve.md", + "sha256": "f14445feb88bfee7ec0f25eacd1618cb719dbbb2ba5aef41a4cd0aed1dadd190", + "size": 4843 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/update", + "status": "success", + "path": "en/api/beta/organization/webhooks/update.md", + "sha256": "08866271d89adb93515103460b73832804eae75ce9e836bf15bf2a15882c129c", + "size": 5733 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/delete", + "status": "success", + "path": "en/api/beta/organization/webhooks/delete.md", + "sha256": "2f05a72c2e79025e7f1a6bad896049635425a7fc790a3ab40336100040351b14", + "size": 3651 + }, + { + "url": "https://platform.claude.com/docs/en/api/beta/organization/webhooks/regenerate_signing_secret", + "status": "success", + "path": "en/api/beta/organization/webhooks/regenerate_signing_secret.md", + "sha256": "08359debe7de5894b09129a44e82dd5615bf3a1f141409a9d297f8bb6bdce764", + "size": 3830 }, { "url": "https://platform.claude.com/docs/en/api/beta/webhooks", "status": "success", "path": "en/api/beta/webhooks.md", - "sha256": "d2740002113e9bffd9f722f92c9a6618382a1a1821a0a44f83ca4eb73948f404", - "size": 34400 + "sha256": "441bc51924318786cf2f9fd0c2247efdf828ad88dec0608e24d0dc14db905fb4", + "size": 36680 }, { "url": "https://platform.claude.com/docs/en/api/compliance", "status": "success", "path": "en/api/compliance.md", - "sha256": "880ab9bb9bf277a08b7d01d113641b703d0407ab3a4e5110ae0c94375c25402e", - "size": 3598583 + "sha256": "c2e8f7136ee2627944914fbe9cb94fba831008cc21ee6ce37dc09d672efe9d2f", + "size": 3681711 }, { "url": "https://platform.claude.com/docs/en/api/compliance/activities", "status": "success", "path": "en/api/compliance/activities.md", - "sha256": "1355c8efc4674d9a496cecab1bb9c3f7bd725ab89a35945609132404b953fa78", - "size": 6770225 + "sha256": "1794cece2967421c2689591dcce0b0bd7262c3b04492613a145031a9d02394b4", + "size": 6919407 }, { "url": "https://platform.claude.com/docs/en/api/compliance/activities/list", "status": "success", "path": "en/api/compliance/activities/list.md", - "sha256": "2519d73ba70976b1cca9a0e2ae645f423c8ffe87a87c8186545c476523f8d6d7", - "size": 3454621 + "sha256": "417f459a4bb5e4cbb42bae24bf9c75d58bf49b0e29e51b1fb83c08c1b2464ff9", + "size": 3532764 }, { "url": "https://platform.claude.com/docs/en/api/compliance/organizations", @@ -5189,8 +5350,8 @@ "url": "https://platform.claude.com/docs/en/api/compliance/apps", "status": "success", "path": "en/api/compliance/apps.md", - "sha256": "20bac04f360b9282e7d3c3c68e166b96e2b251d8c365a631606626fc02cdf2b3", - "size": 114272 + "sha256": "1da7b8a955eab755fb1e64ea58c6151543e49e1984c747d01c58b9b4044a34cc", + "size": 119257 }, { "url": "https://platform.claude.com/docs/en/api/compliance/apps/chats", @@ -5455,15 +5616,15 @@ "url": "https://platform.claude.com/docs/en/api/compliance/apps/code", "status": "success", "path": "en/api/compliance/apps/code.md", - "sha256": "c2fe66c2d0efa073846041c543be9fdc720c0181a343db4b4283d08be0399af4", - "size": 13839 + "sha256": "5d8dc36c3df91c2a260447e840617f1470445bde678f323154883202b76e3104", + "size": 18824 }, { "url": "https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts", "status": "success", "path": "en/api/compliance/apps/code/artifacts.md", - "sha256": "0d89d2fd5dcc77e646b6f51f247cd674f153732ed40646f49c2099e80a23458e", - "size": 17390 + "sha256": "989e48b271a572ec676d77b2574245ad44b30c7a9a0f130adc4256214a4cff1e", + "size": 22375 }, { "url": "https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/list", @@ -5476,15 +5637,15 @@ "url": "https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/retrieve_version", "status": "success", "path": "en/api/compliance/apps/code/artifacts/retrieve_version.md", - "sha256": "b0efb3b44a453285bc58a9353620856efeaa65bd4e180ef65846ff1cdd0bf8a6", - "size": 3142 + "sha256": "8d9a4c264aa29a8e6ff2a316d8e321c4ad87496f9c0e7e95173f32c2a130ad70", + "size": 5026 }, { "url": "https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/download", "status": "success", "path": "en/api/compliance/apps/code/artifacts/download.md", - "sha256": "05e0a26ff9cdc485820bd15752b83138b9c941d86e58f4aee3e0b087fb9c2e39", - "size": 2432 + "sha256": "501819f99fa28f310c89e7c0fc291849b24f81fdcb4e7ab11879a0d4d5a5ac0d", + "size": 5533 }, { "url": "https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/delete", @@ -5500,20 +5661,6 @@ "sha256": "04bcfe3edf6b244798d0e36315580b410f4bfae3c3c2f10867bcb05b17ef3f8b", "size": 27300 }, - { - "url": "https://platform.claude.com/docs/en/manage-claude/user-profiles", - "status": "success", - "path": "en/manage-claude/user-profiles.md", - "sha256": "1f1cb2a55e47954c760a49a5ab93fdf1f98fb375da5ebb4af5707c2b09ba40f6", - "size": 30826 - }, - { - "url": "https://platform.claude.com/docs/en/manage-claude/user-profiles-verification-portal", - "status": "success", - "path": "en/manage-claude/user-profiles-verification-portal.md", - "sha256": "3c07d93661b1dae94fbd53faad8d012654b2e49cd6023e792adeae5ed16eac8e", - "size": 10845 - }, { "url": "https://code.claude.com/docs/en/overview", "status": "success", @@ -5532,8 +5679,8 @@ "url": "https://code.claude.com/docs/en/changelog", "status": "success", "path": "en/docs/claude-code/changelog.md", - "sha256": "d549f14da57ff2f07b52b94f2e3cf7a9a5b90c2a06f89a7d2e01740c195083cd", - "size": 1070406 + "sha256": "f19ebcffc4f357b261d4ee49751f6915fcde30e526a04c659488a84b80fc74e0", + "size": 1076591 }, { "url": "https://code.claude.com/docs/en/how-claude-code-works", @@ -5567,8 +5714,8 @@ "url": "https://code.claude.com/docs/en/prompt-caching", "status": "success", "path": "en/docs/claude-code/prompt-caching.md", - "sha256": "f57c7968d628e2e114a8e95365cd7f6c89429c46654779fe65165c999080c1da", - "size": 41910 + "sha256": "c4d97362bf727ee7a6dfa34d1ff9478c05b20075f4c043b77de10616aea106d8", + "size": 41858 }, { "url": "https://code.claude.com/docs/en/memory", @@ -5616,8 +5763,8 @@ "url": "https://code.claude.com/docs/en/remote-control", "status": "success", "path": "en/docs/claude-code/remote-control.md", - "sha256": "06f521ea3203f924d26f249821d90152a9a6adae083855240c3f2f56f0dc6488", - "size": 58086 + "sha256": "d6ea7b5562efa238646597c357b680ffb53eb532a15c53b4a2eedb6f2294b860", + "size": 59055 }, { "url": "https://code.claude.com/docs/en/claude-projects", @@ -5651,8 +5798,8 @@ "url": "https://code.claude.com/docs/en/vs-code", "status": "success", "path": "en/docs/claude-code/vs-code.md", - "sha256": "195dc53458b97c3655553d45f0d1cee1086949b1aec889a120dc532cb3c6f748", - "size": 85497 + "sha256": "214810e326489a7779c5db687ad78ab43b0126ea5d02953f9342ab3be9f3eac7", + "size": 86997 }, { "url": "https://code.claude.com/docs/en/jetbrains", @@ -5700,15 +5847,15 @@ "url": "https://code.claude.com/docs/en/desktop", "status": "success", "path": "en/docs/claude-code/desktop.md", - "sha256": "2bb49a13cfba31e66f7496fd5b8f305b59a4b2f074a7b9a36608b12a203c419e", - "size": 163615 + "sha256": "4a8b698dfb598b04fae076ee558aaac2a79f571a513ab9e1e052bf99fd08ac98", + "size": 163630 }, { "url": "https://code.claude.com/docs/en/desktop-linux", "status": "success", "path": "en/docs/claude-code/desktop-linux.md", - "sha256": "3685489da50e3d8a0d91864acab70f16d675fe06d3be81abdeeecd74a808ab0b", - "size": 12644 + "sha256": "b4364eee03e4d6e3d334883e4d1ecef1412e65770bee8fa9579174b9dd26a43f", + "size": 12678 }, { "url": "https://code.claude.com/docs/en/desktop-wsl", @@ -5770,15 +5917,15 @@ "url": "https://code.claude.com/docs/en/code-review-customize", "status": "success", "path": "en/docs/claude-code/code-review-customize.md", - "sha256": "06b2ca9daec82d123f94c6cea85e28ccc35fea22d84a4fb345846fc8bfad81a4", - "size": 8579 + "sha256": "3645dac33133be6c8af1d1d5247012060a8b9997ba97e5114cdf5a5befda8ec9", + "size": 11407 }, { "url": "https://code.claude.com/docs/en/code-review-pull-requests", "status": "success", "path": "en/docs/claude-code/code-review-pull-requests.md", - "sha256": "c639a3a6735a43f0ca28aac144136fd9a9d9d7a9cb22ef60ccc0b63588e9ffce", - "size": 12708 + "sha256": "03a21e21ed2b76cab0d7dd038eacdf1ebb01c0fc1c573687bf112ebcf5856d3f", + "size": 12968 }, { "url": "https://code.claude.com/docs/en/code-review-costs", @@ -5791,8 +5938,8 @@ "url": "https://code.claude.com/docs/en/code-review-troubleshooting", "status": "success", "path": "en/docs/claude-code/code-review-troubleshooting.md", - "sha256": "4d09eb24a51784b0d83b2ba77f71b7a42b99adfc4831516c125dc27fcd45744d", - "size": 8977 + "sha256": "c2608f8eb0db0137bb12142fc4e0ee42401d34bf8ed9d8ac37131dcaf332b2a5", + "size": 9783 }, { "url": "https://code.claude.com/docs/en/security-guidance", @@ -5840,15 +5987,15 @@ "url": "https://code.claude.com/docs/en/sub-agents", "status": "success", "path": "en/docs/claude-code/sub-agents.md", - "sha256": "d1dc2ff1f9e9a96bfc70f3edcab2bafdc6d7653b053e43e79adc9caa8597d723", - "size": 108779 + "sha256": "2bef3316ea226dd86074853c914b4232e15b1354707f921ee3bde29c67a8c5ea", + "size": 108983 }, { "url": "https://code.claude.com/docs/en/agent-view", "status": "success", "path": "en/docs/claude-code/agent-view.md", - "sha256": "647f8e61b911077d9609e6bf38deab7743e3cc25462689dccd0c894f4ff3c4a7", - "size": 138922 + "sha256": "137049b792decbb05598891cc187a4e1369e2f2f2b25ec4521ae26b3dc6c5c4a", + "size": 138399 }, { "url": "https://code.claude.com/docs/en/agent-teams", @@ -5861,15 +6008,15 @@ "url": "https://code.claude.com/docs/en/cross-session-messaging", "status": "success", "path": "en/docs/claude-code/cross-session-messaging.md", - "sha256": "4c1e76b5d79c0837f6b15b555034ee5f9f27a726f3341b07550308fd4dd02fe9", - "size": 34750 + "sha256": "bf0fbb2ae3937c60aa5202b27054da6055a56338eca77efef51b820287a1b184", + "size": 34745 }, { "url": "https://code.claude.com/docs/en/workflows", "status": "success", "path": "en/docs/claude-code/workflows.md", - "sha256": "c4510ddec3d4fae2564d128d987d35425d1a8c1091f55eaa3938772c555823bc", - "size": 41282 + "sha256": "8f6723e0418e8794ab45e436d4914a87f12065060e9a569f853bea7a0930b952", + "size": 41514 }, { "url": "https://code.claude.com/docs/en/worktrees", @@ -5889,29 +6036,29 @@ "url": "https://code.claude.com/docs/en/mcp", "status": "success", "path": "en/docs/claude-code/mcp.md", - "sha256": "3a93df9b555274bc92ef495b65e127ff07c128bd044606a70880e9bf948a2d60", - "size": 121474 + "sha256": "835b28f2bdec4e7388f1caf8dd5a2b2c34ada3a474b7ee00f52bb44463f65106", + "size": 123042 }, { "url": "https://code.claude.com/docs/en/skills", "status": "success", "path": "en/docs/claude-code/skills.md", - "sha256": "96dd113a8aeb5ba5c0371368a26eb55781a840eab78a833b3e6b755178f37813", - "size": 109811 + "sha256": "b7a52b65db4264161e43ed27f4a318b55ab4494cc18bdec4df45f411540b5203", + "size": 110252 }, { "url": "https://code.claude.com/docs/en/artifacts", "status": "success", "path": "en/docs/claude-code/artifacts.md", - "sha256": "03fddd0f918633deb42e155773534fd9a91ea5e7810bf2c74ecde1466897c321", - "size": 41128 + "sha256": "7a9cd3ab93053e864702e98f146988be33ea2fe757d45a6f9d2bd3bef4019000", + "size": 41358 }, { "url": "https://code.claude.com/docs/en/hooks-guide", "status": "success", "path": "en/docs/claude-code/hooks-guide.md", - "sha256": "4e5e392dbd5b6869bda53e7622488b8cc7a9cad61b76bdb629c5b34a59f32571", - "size": 62010 + "sha256": "595931e3915c46ef6c5fcc16f316d22adbcdb1ea90dceb386ec1851db0359d3b", + "size": 62244 }, { "url": "https://code.claude.com/docs/en/channels", @@ -5980,8 +6127,8 @@ "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "076a17315b05f18371819d44cab7216aede3c303e340a070db40e3a1e81d2ece", - "size": 521032 + "sha256": "696b38e3fe064d1052230c6931d0866b2ea6a1d5dba2c9cb7e37ff2028f60f63", + "size": 538783 }, { "url": "https://code.claude.com/docs/en/plugins/overview", @@ -6085,22 +6232,22 @@ "url": "https://code.claude.com/docs/en/plugins/mods/reference", "status": "success", "path": "en/docs/claude-code/plugins/mods/reference.md", - "sha256": "3a0c1d350391fdc524071bfe68995d52dde45bde179dd5c6764a27be5fed0316", - "size": 40429 + "sha256": "be7c7f8d5ff8bcd9c3b4b11fb0946a1077a0c0a1e5cc61e4e093ca934b500113", + "size": 40518 }, { "url": "https://code.claude.com/docs/en/plugins/mods/interface", "status": "success", "path": "en/docs/claude-code/plugins/mods/interface.md", - "sha256": "3adba7a62ea2ea432ed21995558e403984b896ac1b52159a6f699c63582ecd8c", - "size": 48451 + "sha256": "c21ece606f0880d3777dd3bec557e60221e4047845f60d6003d5927e441f3823", + "size": 48746 }, { "url": "https://code.claude.com/docs/en/plugins/mods/gallery", "status": "success", "path": "en/docs/claude-code/plugins/mods/gallery.md", - "sha256": "6fc25c6363c06d855ad7614567dc75ca985ccd2463521075f33d820c052bc661", - "size": 17658 + "sha256": "ed773c9051a5cc36fad78bb0b1d7010399232fcca3a7986832fc17b61d31ffd7", + "size": 18125 }, { "url": "https://code.claude.com/docs/en/plugins/mods/events", @@ -6113,15 +6260,15 @@ "url": "https://code.claude.com/docs/en/plugins/mods/api", "status": "success", "path": "en/docs/claude-code/plugins/mods/api.md", - "sha256": "742d26d98665bbeffe718582f3b8f55d74ca256d5da994db8ce1f8385fa05b9a", - "size": 30526 + "sha256": "dbc7b591700cf3f49db5157abd8887180920d53fb5350f0ff9c75e368d919334", + "size": 33420 }, { "url": "https://code.claude.com/docs/en/plugins/mods/test", "status": "success", "path": "en/docs/claude-code/plugins/mods/test.md", - "sha256": "cd9d5ac58d1d00a14094e660923bf00b3eaf01aaf7a2b9ca7ea5310158093c6a", - "size": 26031 + "sha256": "8c771c2051ca13e8bdacbfd080d2e9c369786fad91dae979871ddf2fc58e792e", + "size": 26165 }, { "url": "https://code.claude.com/docs/en/plugins/mods/troubleshoot", @@ -6169,8 +6316,8 @@ "url": "https://code.claude.com/docs/en/plugins/troubleshooting", "status": "success", "path": "en/docs/claude-code/plugins/troubleshooting.md", - "sha256": "796771facc5107ae0caf8a4e86c39e155746a2450e40862c5a9a9a8b4d17ed9f", - "size": 93728 + "sha256": "13d6a31ab4006bb3da5a1d469976dc1b40faee70f790c694736b90684b591128", + "size": 93864 }, { "url": "https://code.claude.com/docs/en/plugins/loading", @@ -6260,8 +6407,8 @@ "url": "https://code.claude.com/docs/en/feature-availability", "status": "success", "path": "en/docs/claude-code/feature-availability.md", - "sha256": "25518a2da5562ee8b3eac99774930fc98558acb5efc9f7557008296f95b4dece", - "size": 21264 + "sha256": "24c2938fffc6ed2c35278659158d828cf87c98f33f2e449ce2b0951533754aef", + "size": 21335 }, { "url": "https://code.claude.com/docs/en/amazon-bedrock", @@ -6295,8 +6442,8 @@ "url": "https://code.claude.com/docs/en/network-config", "status": "success", "path": "en/docs/claude-code/network-config.md", - "sha256": "bd3e70cd1b4b1c0e2506566a45f526b18b707d113989821ce0244f611c3e809e", - "size": 31775 + "sha256": "4623c04a2545817aa01ba17bf3d785847d9057f492d8c522624b0395ea80e062", + "size": 31933 }, { "url": "https://code.claude.com/docs/en/corporate-launcher", @@ -6330,8 +6477,8 @@ "url": "https://code.claude.com/docs/en/claude-apps-gateway-config", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-config.md", - "sha256": "5897b8c015b96c9570152692b2980cc67717f63ab7f7a3a0f02c33905c5b0b60", - "size": 135127 + "sha256": "fba034cc0b91bdaee1983a56fdc660bb131d712289e368baed906e6f35b08af1", + "size": 135910 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-spend-limits", @@ -6372,8 +6519,8 @@ "url": "https://code.claude.com/docs/en/llm-gateway-connect", "status": "success", "path": "en/docs/claude-code/llm-gateway-connect.md", - "sha256": "2656ba7633aa63730243c880603fbfe8128ba54c5875e33db068a68ab725928b", - "size": 44406 + "sha256": "f2fcb6e8893d66af62926859465387e4fa3ec83f8596c9dc3c86fdb7a67af0db", + "size": 44548 }, { "url": "https://code.claude.com/docs/en/llm-gateway-rollout", @@ -6386,8 +6533,8 @@ "url": "https://code.claude.com/docs/en/llm-gateway-protocol", "status": "success", "path": "en/docs/claude-code/llm-gateway-protocol.md", - "sha256": "f2e51e4471fbcf68d3a69c2f21c6fc1c5ee3a9802f0e4543f1e2baa49aa8939d", - "size": 45169 + "sha256": "8062000523b9984f737f0ff4c0fcd553a12eab0514d69c310701dac5d594950c", + "size": 47750 }, { "url": "https://code.claude.com/docs/en/monitoring-usage", @@ -6400,8 +6547,8 @@ "url": "https://code.claude.com/docs/en/costs", "status": "success", "path": "en/docs/claude-code/costs.md", - "sha256": "d0a3b42778fcd1716b1ae7b5800f667e897be1e3497975f920a311252171ea6a", - "size": 42226 + "sha256": "9daf33a0e41a0af2a0a5ec91c0c2017b3cec87e836496dd00d3c53576b31ad54", + "size": 44374 }, { "url": "https://code.claude.com/docs/en/analytics", @@ -6435,8 +6582,8 @@ "url": "https://code.claude.com/docs/en/hipaa-setup", "status": "success", "path": "en/docs/claude-code/hipaa-setup.md", - "sha256": "cc72afd8ae49d4c7ba7601c2f48db069134e07a6c1335706f4c3f5bc210b3749", - "size": 21555 + "sha256": "a84c45279b11f5b93a3ae85e173a6e9439a7de5470c84b37ee409561e16a5980", + "size": 21630 }, { "url": "https://code.claude.com/docs/en/communications-kit", @@ -6463,8 +6610,8 @@ "url": "https://code.claude.com/docs/en/settings-reference", "status": "success", "path": "en/docs/claude-code/settings-reference.md", - "sha256": "208c7be3af4d4988ddd835a24355e6421b7b9d342197828c22666213b14f67ea", - "size": 404605 + "sha256": "dda05451266e1ba084ceccd52b5fc8e6ef6603dbf63e5948dd23f000c31ded40", + "size": 404714 }, { "url": "https://code.claude.com/docs/en/settings-example", @@ -6477,15 +6624,15 @@ "url": "https://code.claude.com/docs/en/permissions", "status": "success", "path": "en/docs/claude-code/permissions.md", - "sha256": "f966bcef1c7a05bdc9427ba226ad4293649847f273ec893d40fc742e109e2b57", - "size": 84630 + "sha256": "21f7bc394d7b01224dc08ca7b2f94a60d54faf78b9e355f7d8f8acfccebdd3cd", + "size": 84650 }, { "url": "https://code.claude.com/docs/en/permission-modes", "status": "success", "path": "en/docs/claude-code/permission-modes.md", - "sha256": "60d2df1b0fcee659a531a243e480af89eae0c65ddeced4fcedf81b0a17604b26", - "size": 98372 + "sha256": "43b30c78df2c4f160e8d7484febddabc57280da72d5b3f04ffa329c9057d14ee", + "size": 98836 }, { "url": "https://code.claude.com/docs/en/auto-mode-classifier-billing", @@ -6498,8 +6645,8 @@ "url": "https://code.claude.com/docs/en/sandboxing", "status": "success", "path": "en/docs/claude-code/sandboxing.md", - "sha256": "4d1db72abc4d9245e93d907592798ef468adfa89adcfe826879efb72a25a006a", - "size": 94523 + "sha256": "f94e3282e03762ada3b2f8ec0d0e7a3e6fb83f4e2b68279f32954e7f4225d652", + "size": 94832 }, { "url": "https://code.claude.com/docs/en/sandbox-environments", @@ -6533,15 +6680,15 @@ "url": "https://code.claude.com/docs/en/self-hosted-environments-deploy", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-deploy.md", - "sha256": "d5152dd444d20b29d16dc5205ce22f6b6ff39dc302c06992b392dbb0f60e66c9", - "size": 95135 + "sha256": "9c9cb1629b2b9dad84e7e635c7b64b9eed7d3dde71535632a1c5fa5652416af4", + "size": 96583 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-configuration", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-configuration.md", - "sha256": "daac6d544908a18fc8a555bebaf3dada9d734dce6136ec62ca912adc55afb96e", - "size": 76056 + "sha256": "892420de644d750e3c44af88bdc10fa007d133f31803e35798eeddfcb837e824", + "size": 79122 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-testing", @@ -6568,8 +6715,8 @@ "url": "https://code.claude.com/docs/en/model-config", "status": "success", "path": "en/docs/claude-code/model-config.md", - "sha256": "88a3e73340f79e495fae0d97f88af081a744901fe24e5225cfdd5060a55a6f50", - "size": 120859 + "sha256": "6bd90f00dffdb848a6c2a9e3c7b9ae3ad3bb39e59914e34b8aeca759b720208b", + "size": 120934 }, { "url": "https://code.claude.com/docs/en/fast-mode", @@ -6582,8 +6729,8 @@ "url": "https://code.claude.com/docs/en/advisor", "status": "success", "path": "en/docs/claude-code/advisor.md", - "sha256": "3857397048ff9aed3e0a43986da5a49158b408fecfdbdf4b7d9c2de1ae029d8c", - "size": 17179 + "sha256": "cd7de5d316378677890045b36a585791fd1b60e0a84dcd4e287cc2d9eacfb3d8", + "size": 17138 }, { "url": "https://code.claude.com/docs/en/output-styles", @@ -6631,8 +6778,8 @@ "url": "https://code.claude.com/docs/en/keybindings", "status": "success", "path": "en/docs/claude-code/keybindings.md", - "sha256": "856316569b7d0a6bfd4bbdb46ce8bd101ce3ccb600d6e42179543067c447e0c9", - "size": 37845 + "sha256": "ff10bdd0e1469a1a4b293b71c78e61cb9fef0d0f71097b547f2344a1b16d11a6", + "size": 38073 }, { "url": "https://code.claude.com/docs/en/cli-reference", @@ -6645,22 +6792,22 @@ "url": "https://code.claude.com/docs/en/commands", "status": "success", "path": "en/docs/claude-code/commands.md", - "sha256": "12d2e58b86afd50be9ca0462359392076372a92df5f29d3d50afccbeadde919f", - "size": 53158 + "sha256": "5648cece19676c18a4df7d783e5f4665b223bd85a6fb70515641f912abe5c0f8", + "size": 53666 }, { "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "5a1ab03cdf0a8b77f73de8d630372f605ec619313bd5c5e2fdc51a96ceac288c", - "size": 171053 + "sha256": "87372c54d6085f00015cd97825c7e3d154012ccdf4d23c13ae79b26a2149721d", + "size": 168351 }, { "url": "https://code.claude.com/docs/en/tools-reference", "status": "success", "path": "en/docs/claude-code/tools-reference.md", - "sha256": "fe14db2f763715118993132c4a00e728eeec259b5b35e47a379ab40ab9948553", - "size": 80714 + "sha256": "7ed98b5309e16ef87ea86c46409f432c520f3fbbdf70d08a30312eddc049eb63", + "size": 80716 }, { "url": "https://code.claude.com/docs/en/interactive-mode", @@ -6680,8 +6827,8 @@ "url": "https://code.claude.com/docs/en/hooks", "status": "success", "path": "en/docs/claude-code/hooks.md", - "sha256": "17cdd5c7fa205b5c2e85ee702dd3644565b051365bffcbe3de07fc478efe99d1", - "size": 269034 + "sha256": "5a5cc139bc639ced7c328a509c3962da375dfba672dc54713356940a354bd79f", + "size": 269876 }, { "url": "https://code.claude.com/docs/en/channels-reference", @@ -6736,8 +6883,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/examples", "status": "success", "path": "en/docs/claude-code/agent-sdk/examples.md", - "sha256": "80248539c566ea16350663c69870fd2bfd1a37f8d1c43475622ebf2d5e54be1a", - "size": 1936 + "sha256": "d1b61a2a9265f4ae0ba5f880485c3b14c23c99aede3dc2ae19e20b860d5ac425", + "size": 2177 }, { "url": "https://code.claude.com/docs/en/agent-sdk/agent-loop", @@ -6785,15 +6932,15 @@ "url": "https://code.claude.com/docs/en/agent-sdk/streaming-output", "status": "success", "path": "en/docs/claude-code/agent-sdk/streaming-output.md", - "sha256": "5f175aad838c7e2ea7ba065b113a36ccc3185de5a629ade6fba4f4f555a368d0", - "size": 14365 + "sha256": "30d879b4f43d3fd4c4d10ff035bb3e5abdc499c15e70eee1a93262bd765f7c2b", + "size": 14456 }, { "url": "https://code.claude.com/docs/en/agent-sdk/structured-outputs", "status": "success", "path": "en/docs/claude-code/agent-sdk/structured-outputs.md", - "sha256": "7d93c5dbf12bb6adb32c3994257190f8d38a8ff2ef567413a5cf3b51e59037e7", - "size": 20087 + "sha256": "61d5bbdce2a76a42260f660a82472bc5eb403907b5b800dbf2fc38ee327116da", + "size": 21394 }, { "url": "https://code.claude.com/docs/en/agent-sdk/custom-tools", @@ -6806,15 +6953,15 @@ "url": "https://code.claude.com/docs/en/agent-sdk/mcp", "status": "success", "path": "en/docs/claude-code/agent-sdk/mcp.md", - "sha256": "60ea1a24d130cfc89695f81ff9ed368a6f613eb9135b7790663051e92d7b5115", - "size": 37145 + "sha256": "517caf38b952359b02ec1fe26ba084693fb05625aead51e5d7b268fcd007e3a8", + "size": 38195 }, { "url": "https://code.claude.com/docs/en/agent-sdk/tool-search", "status": "success", "path": "en/docs/claude-code/agent-sdk/tool-search.md", - "sha256": "088831212a869d960790331f24e4e889df8a82611eee8fc41199d6611dfb1838", - "size": 11117 + "sha256": "83e4458529cc65973d00b46afb56f6526243d2e37535cdff004ac33205d85519", + "size": 11148 }, { "url": "https://code.claude.com/docs/en/agent-sdk/subagents", @@ -6848,15 +6995,15 @@ "url": "https://code.claude.com/docs/en/agent-sdk/permissions", "status": "success", "path": "en/docs/claude-code/agent-sdk/permissions.md", - "sha256": "f7ead1bd80cb2470e8174dace7203c6b0096a96062bf6bfbaf28918b6a6880e9", - "size": 25646 + "sha256": "449ff08baac9cc1ea1371f7915cb057f193e3cd7ec3cc3706cd5f88d344b112e", + "size": 25622 }, { "url": "https://code.claude.com/docs/en/agent-sdk/hooks", "status": "success", "path": "en/docs/claude-code/agent-sdk/hooks.md", - "sha256": "54ed614504619d637d67065e7a541bb843d4b9b99078557966d5dc2aa528fa55", - "size": 44447 + "sha256": "bac0b7162ab7ec6710d63d181bda0276d0728cc4af8caeb0363be5d9d562f9d2", + "size": 44570 }, { "url": "https://code.claude.com/docs/en/agent-sdk/file-checkpointing", @@ -6904,8 +7051,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/typescript", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript.md", - "sha256": "552a46fa859e9688fcaed5974d21307fc4c0a4b19ca232871625057dc579ddc8", - "size": 292692 + "sha256": "7d5cc0cd4a62bde3de703ff1caa2d7b007af11151b9686d4b34815709206ac7f", + "size": 293769 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript-v2-preview", @@ -6918,8 +7065,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/python", "status": "success", "path": "en/docs/claude-code/agent-sdk/python.md", - "sha256": "dd703abb0f5c5c746e09529b8aa57bef3afbb5502d54191ec6149a8393396d14", - "size": 158925 + "sha256": "734b9e3eeae40614fa93a269f21b417cc74571503804352c97e7c9c0ab58cf93", + "size": 160194 }, { "url": "https://code.claude.com/docs/en/whats-new/index", @@ -7159,11 +7306,18 @@ "sha256": "65905606a53dc51ee4e1958730654bec398b957b62fd0c1f7358cd3800e39755", "size": 8983 }, + { + "url": "https://modelcontextprotocol.io/community/interest-groups/agents", + "status": "success", + "path": "mcp/community/interest-groups/agents.md", + "sha256": "09282856abfcf7b4cafb04f7a7c60ca4e8908a8246d9b086ab1ea6ed885194a7", + "size": 4594 + }, { "url": "https://modelcontextprotocol.io/community/interest-groups/auth", "status": "success", "path": "mcp/community/interest-groups/auth.md", - "sha256": "237c3ae0ef69997ce029dc68ca2362a5db713cff21b63b8a4b3bd2c02d49a852", + "sha256": "72b4edf8a4095af9359e82ddf06db20fe4cf58298eb9324c76d611e8dae8d3b3", "size": 11617 }, { @@ -7191,8 +7345,8 @@ "url": "https://modelcontextprotocol.io/community/interest-groups/scientific-computing", "status": "success", "path": "mcp/community/interest-groups/scientific-computing.md", - "sha256": "489a9902cf41c43a35c69243b6c21918f4e305ce2c229c86dc7b22d264349a54", - "size": 4577 + "sha256": "b4cbc12c991633169282bb97a4393deecfa2b5cf6f53c74b20bba659908a4ca2", + "size": 4593 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/security", @@ -7229,13 +7383,6 @@ "sha256": "616b8e81e6498a9d21379703befb566d32c93bdc15367ea696f9d24c8e2ade1e", "size": 15789 }, - { - "url": "https://modelcontextprotocol.io/community/working-groups/agents", - "status": "success", - "path": "mcp/community/working-groups/agents.md", - "sha256": "3cf5d2a2a85bd52d5234edafef6be9b63c89c42acec956748af150b5aaf6e42c", - "size": 6425 - }, { "url": "https://modelcontextprotocol.io/community/working-groups/file-uploads", "status": "success", @@ -7247,7 +7394,7 @@ "url": "https://modelcontextprotocol.io/community/working-groups/filesystems", "status": "success", "path": "mcp/community/working-groups/filesystems.md", - "sha256": "d30c0b1d99df8fc28b8ed2f34cdb913669531c701ff8091beae549b3c2a34415", + "sha256": "f85dd40b1b196a83e1374289e380975947e7a412bee88b819a349de5a5b0e3ca", "size": 6061 }, { @@ -7310,22 +7457,22 @@ "url": "https://modelcontextprotocol.io/community/working-groups/skills-over-mcp", "status": "success", "path": "mcp/community/working-groups/skills-over-mcp.md", - "sha256": "1c3a90a9f6ca8a4e5d7e41050bba4e6068be49a65dfe61a6dcca84cd0a3c993e", + "sha256": "8de0dc90382265fbe354bc9193ac1eff089d9481cdd4297f45bcb0b9336148e8", "size": 9190 }, { - "url": "https://modelcontextprotocol.io/community/working-groups/transports", + "url": "https://modelcontextprotocol.io/community/working-groups/tasks-events", "status": "success", - "path": "mcp/community/working-groups/transports.md", - "sha256": "8be9ef445bfe6d166115d180e88f32b629b7678e1b263187bd00a8f58f39606f", - "size": 7612 + "path": "mcp/community/working-groups/tasks-events.md", + "sha256": "14c445752b041370987e95ca81a42760a30685a708e19285f9bfd1e244811a75", + "size": 6018 }, { - "url": "https://modelcontextprotocol.io/community/working-groups/triggers-events", + "url": "https://modelcontextprotocol.io/community/working-groups/transports", "status": "success", - "path": "mcp/community/working-groups/triggers-events.md", - "sha256": "a19b322cd413ffbec9f1cef895024f52fe73be6da9555a79a703b68dfa41550d", - "size": 3978 + "path": "mcp/community/working-groups/transports.md", + "sha256": "61c7afd827229fbe48f68ffc363e4d7b0b187384a15046de98617a4f0c244bff", + "size": 7565 }, { "url": "https://modelcontextprotocol.io/community/working-interest-groups", @@ -7338,7 +7485,7 @@ "url": "https://modelcontextprotocol.io/development/roadmap", "status": "success", "path": "mcp/development/roadmap.md", - "sha256": "a61b153e7267f1e30dfbc11dd4386f17e190717addfbfc89c113de153abe2ffb", + "sha256": "fe44708ac124e95832a6e8fb439aef5256d064c3d9193e254f710212cab84996", "size": 11655 }, { @@ -9683,7 +9830,7 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "a9d2c7221786bffbf280579b3ad9a579bf9dc72c276c1207c5bedf7bdd0954ed", + "sha256": "c88725c4a0c8ddbdf37313bbde4e2c67fb0445ec638fad9ef1ea5e1306b012bb", "size": 5207 }, { @@ -9760,8 +9907,8 @@ "url": "https://support.claude.com/en/articles/8230524-delete-or-rename-a-conversation", "status": "success", "path": "support/8230524-delete-or-rename-a-conversation.md", - "sha256": "09d983f23e1f14eee1fa72333b5748d7e3aff9dce308bea532cfd70d53429167", - "size": 5883 + "sha256": "00ee142db06a842da9d19a324d5c87a80dcb081e8f6d9e75e4b78de193e4e527", + "size": 5887 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -9830,7 +9977,7 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "5e442bf5703c3d96218ff7f6801a88b8785577ba9dcb39ce4fd9426bd103127a", + "sha256": "1e31be8d8207f149ac96daf0116f1afd098708074b45e5335feee92772108f5f", "size": 4951 }, { @@ -9893,7 +10040,7 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "1e1080c5337631ee38ccd02ee8b67079cbf49338b23d9c362a25a5fdb43469a3", + "sha256": "4a651355a7904a882c2b412791c0a1b6e386d9aa543a0f3bf38394ecd9be15dc", "size": 1874 }, { @@ -10068,8 +10215,8 @@ "url": "https://support.claude.com/en/articles/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization", "status": "success", "path": "support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md", - "sha256": "b740552a8c583774233cca79dda07799a2494343f22a8cfc3ce97f1a4c84b736", - "size": 10264 + "sha256": "b9b546378d42f14efc747914e8e280a157e5d0c0e4f4f72642c6e475e4da14e7", + "size": 10270 }, { "url": "https://support.claude.com/en/articles/9301722-updates-to-our-acceptable-use-policy-now-usage-policy-consumer-terms-of-service-and-privacy-policy", @@ -10110,8 +10257,8 @@ "url": "https://support.claude.com/en/articles/9519177-how-can-i-create-and-manage-projects", "status": "success", "path": "support/9519177-how-can-i-create-and-manage-projects.md", - "sha256": "5c5e76d23286d6eabcf375218ec8508f24d8791b6be40103e010114a8848c5d8", - "size": 9205 + "sha256": "ddb21e43186dff0fb86ede3d3aec192b646883ca005da451987edad87d958c50", + "size": 9203 }, { "url": "https://support.claude.com/en/articles/9519189-manage-project-visibility-and-sharing", @@ -10292,8 +10439,8 @@ "url": "https://support.claude.com/en/articles/10167454-use-the-github-integration", "status": "success", "path": "support/10167454-use-the-github-integration.md", - "sha256": "19ac60b0a1059837350b3ccb1cc178c3af20249c498daa9ac0c435b711bb91ad", - "size": 6105 + "sha256": "07efa9b2b2e7e67317268a3fdd44b321066505f3aabb8c70ee4ad55187feb34d", + "size": 7186 }, { "url": "https://support.claude.com/en/articles/10185728-understanding-claude-s-personalization-features", @@ -10362,8 +10509,8 @@ "url": "https://support.claude.com/en/articles/10310342-how-do-i-log-out-of-all-active-sessions", "status": "success", "path": "support/10310342-how-do-i-log-out-of-all-active-sessions.md", - "sha256": "2ec2d59e19fe2e9612f936db732593b50d300ac5976c781e50aebe730410fcb2", - "size": 2492 + "sha256": "8443bf959d3d3bc673650aca32d6013393be70f92e75bd271e4ce9e5e223ae49", + "size": 2496 }, { "url": "https://support.claude.com/en/articles/10366376-how-can-i-delete-my-claude-console-account", @@ -10411,8 +10558,8 @@ "url": "https://support.claude.com/en/articles/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans", "status": "success", "path": "support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md", - "sha256": "30f288c895e5314b9f5454db6cf5bef43a2c4fc9c91be4aac60972b5814b482f", - "size": 1036 + "sha256": "cf322c916b6f7cb43f784d07ffd74a64882af99b8f44daca50e086a9f57cec76", + "size": 1034 }, { "url": "https://support.claude.com/en/articles/10504853-manage-user-feedback-settings-on-claude-console", @@ -10432,8 +10579,8 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "3d9993848a7cc395255964a8785ceefb9c5b2c85c79973674f282e90a044eff4", - "size": 4016 + "sha256": "b8163944e2a7a655331da76f4d9ac479920349df995f73e35e662cedb1693f57", + "size": 4012 }, { "url": "https://support.claude.com/en/articles/10684626-enable-and-use-web-search", @@ -10460,8 +10607,8 @@ "url": "https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop", "status": "success", "path": "support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md", - "sha256": "9a18ea67842a70b0468fb8755f4e805f205badd7b700df8020503c22ed7be6d2", - "size": 8390 + "sha256": "20193a6415a5c6d0899a688b49f29036dd5e98ed0f75c4fe742d1271bd0bac21", + "size": 8394 }, { "url": "https://support.claude.com/en/articles/11049741-what-is-the-max-plan", @@ -10495,8 +10642,8 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "1e02b9468d066edb33db30d00d2635fdcb4fe9c1735792d222b6b06ff277d930", - "size": 10555 + "sha256": "d49a0192a14bf2ea4863b4fcbcaeeb526c9a33d0121f6cddeba94b898438d27f", + "size": 10567 }, { "url": "https://support.claude.com/en/articles/11107691-why-is-a-coupon-or-promotion-not-available-for-my-account", @@ -10628,7 +10775,7 @@ "url": "https://support.claude.com/en/articles/11725453-set-up-the-claude-lti-in-canvas-by-instructure", "status": "success", "path": "support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md", - "sha256": "8838d7d46ebeb4a6bbc557e1dba0d8146ea0fd87b1aa59c4f26319d6a06054c9", + "sha256": "9d07d11553a67b107cfedd0e3d01afe25e3e7eddb4cea75d1ca8e863f04f1acf", "size": 2748 }, { @@ -10642,15 +10789,15 @@ "url": "https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context", "status": "success", "path": "support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md", - "sha256": "d4240cfe00d73e0b7a9bece089f8e9cf25d2cd0a391dfa35bcdce90d0b47299f", - "size": 28550 + "sha256": "e09bb6c4391a5a9b97b02a9388e651da94e7b76e84f2992c7a74df4351776855", + "size": 28556 }, { "url": "https://support.claude.com/en/articles/11818288-why-am-i-being-asked-to-verify-my-payment-method", "status": "success", "path": "support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md", - "sha256": "37d9b2de680f62766564033b5efca8b2fb475eb1fd1c7b3445451fad5e825524", - "size": 814 + "sha256": "e43a191f2b2e82855e8fda3ceab0ea73fb7ef70917a1f9cf1865480f8f5fa287", + "size": 816 }, { "url": "https://support.claude.com/en/articles/11825384-how-to-update-claude-for-ios", @@ -10684,8 +10831,8 @@ "url": "https://support.claude.com/en/articles/11869629-use-claude-with-android-apps", "status": "success", "path": "support/11869629-use-claude-with-android-apps.md", - "sha256": "807e7a04b09597f50f9723efedb8b23d34946cb7968abcbc8a1022735deda135", - "size": 13995 + "sha256": "718e402f5b35583e5f323fc55ce1a8489834b0920bc9108ba8aef2700d42327d", + "size": 13991 }, { "url": "https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code", @@ -10719,15 +10866,15 @@ "url": "https://support.claude.com/en/articles/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans", "status": "success", "path": "support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md", - "sha256": "cb6bfc6de424a1eda61eb8e2c6ec85223bd9fc3c4adef41571dad2b20be669d8", - "size": 9713 + "sha256": "0534e986a312e9cab570eff63e77ae9af6fce1c5c6781610f6cd049a6b3e422e", + "size": 9705 }, { "url": "https://support.claude.com/en/articles/12012173-get-started-with-claude-in-chrome", "status": "success", "path": "support/12012173-get-started-with-claude-in-chrome.md", - "sha256": "a2409167f4453b46361194c9daeff891857cbbdb8cc57cec30df594f71a17b99", - "size": 14857 + "sha256": "6b6960287dffa52e435987a460453f996eeb50f6c8190827b5a7ee0391656018", + "size": 14853 }, { "url": "https://support.claude.com/en/articles/12053672-what-happens-to-a-user-s-data-when-they-are-removed-from-a-team-or-enterprise-organization", @@ -10740,8 +10887,8 @@ "url": "https://support.claude.com/en/articles/12083917-change-your-team-plan-from-monthly-to-annual-billing", "status": "success", "path": "support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md", - "sha256": "24d51e3c09dc3fb38b43a84e9c273a4f76ad078cfffad9c05603d1cc4331cb3c", - "size": 1394 + "sha256": "4c2d40a7bff98e67dd7cca8479534b930f58d131fee390e9e29e38c01e058fba", + "size": 1396 }, { "url": "https://support.claude.com/en/articles/12109679-creating-a-new-account-after-deletion", @@ -10754,8 +10901,8 @@ "url": "https://support.claude.com/en/articles/12111783-create-and-edit-files-with-claude", "status": "success", "path": "support/12111783-create-and-edit-files-with-claude.md", - "sha256": "ed40ec3544a81c5f19ef8789dc7e7a135988985294dee82a609c567ed78cee74", - "size": 17958 + "sha256": "3c8fe25ded95232e509baf38d21dd4253fe798e148b597304891ad2d543002ae", + "size": 17956 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -10782,22 +10929,22 @@ "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "8d749ad11cc0c59dae2a47238f3ed09992e9b7a876700935c8d3065b713eb7c8", - "size": 6319 + "sha256": "43691f5992657ea2cf6cb67b15c2bfb1b6abc62009f8646df742e039ef63e249", + "size": 6380 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "fc01e9af276fb853984baa828497a8339dabfef30f9890ac0f50065df40b317c", - "size": 4376 + "sha256": "cc756c466fee23a6251998ff1e7a0e4aaa351aec56672fdd179b381c5030d744", + "size": 4374 }, { "url": "https://support.claude.com/en/articles/12293051-use-claude-in-xcode", "status": "success", "path": "support/12293051-use-claude-in-xcode.md", - "sha256": "e3bf1e3c441e2876b89f9f474de10285a6db0e240178ee31ed484a7da8e1ccd3", - "size": 1911 + "sha256": "ddd17248c4fd8be47a81c9f901cfa336629e8e9bd613f2902273d7648f00702a", + "size": 1907 }, { "url": "https://support.claude.com/en/articles/12304248-manage-api-key-environment-variables-in-claude-code", @@ -10838,15 +10985,15 @@ "url": "https://support.claude.com/en/articles/12429409-manage-usage-credits-for-paid-claude-plans", "status": "success", "path": "support/12429409-manage-usage-credits-for-paid-claude-plans.md", - "sha256": "897225e63b46c95f79d88a423b0412a552757c201a07af9c5bc8cdd3ad77cfe1", + "sha256": "2bdb0e462ab187556b9f1d6367f3f1141669d1ca760c5c0475f7f80899bd37a9", "size": 7974 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "ebd60f54fdf40add83b67aaa1549f160d913eb66fa512afc5274ee24c6bbdc20", - "size": 5139 + "sha256": "a146042ed8b3e717bfa483a0f7b7e644ccd162f892cc1379b9144e9918e83c3c", + "size": 5143 }, { "url": "https://support.claude.com/en/articles/12489464-use-enterprise-search", @@ -10866,7 +11013,7 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "675e30a41ff883c01e99df6bba0fc70de570237256452a76bc0c8076d7591f11", + "sha256": "7e21cde3b51e8e214785578b98bb30c8fd692d5fc2693db2bd7d7e6659b0abf6", "size": 19146 }, { @@ -10887,7 +11034,7 @@ "url": "https://support.claude.com/en/articles/12592343-enabling-and-using-the-desktop-extension-allowlist", "status": "success", "path": "support/12592343-enabling-and-using-the-desktop-extension-allowlist.md", - "sha256": "7c103eee5c0d332fb43ed7320eeb50503f8e7416b22798061df3372fff376803", + "sha256": "29b5127b1c91a93c9990010b3798e670a0abe06027d3642e7f42021cf093026e", "size": 5718 }, { @@ -10901,8 +11048,8 @@ "url": "https://support.claude.com/en/articles/12618689-use-claude-code-in-the-cloud", "status": "success", "path": "support/12618689-use-claude-code-in-the-cloud.md", - "sha256": "50345fb4c29d3f0ec8c01ad8a477fa6852731bf1a800124dc85611215c656a73", - "size": 11060 + "sha256": "88e3142008f558f4931f7c740210f43969f02161364149f16b8ebe0c1817b90b", + "size": 11058 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -10922,8 +11069,8 @@ "url": "https://support.claude.com/en/articles/12626668-use-quick-entry-with-claude-desktop-on-mac", "status": "success", "path": "support/12626668-use-quick-entry-with-claude-desktop-on-mac.md", - "sha256": "745de6012b61fbc68141c76a5acd3c241bffb7aa55d35d17f97e489888579f9a", - "size": 5970 + "sha256": "f8b570fd9409459e11bc1878e99d59b3a39401e8d92c7d3124c751bfde1664a8", + "size": 5972 }, { "url": "https://support.claude.com/en/articles/12684923-microsoft-365-connector-security-guide", @@ -10957,8 +11104,8 @@ "url": "https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans", "status": "success", "path": "support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md", - "sha256": "8e425981fcb655fa1b6dce83111843fe1e3010db29c2689e7beba302a5e9bc1d", - "size": 15109 + "sha256": "fa830ee56d436f5cec721eb778e908c4e583059fc38271379fbaf029c15886d8", + "size": 15091 }, { "url": "https://support.claude.com/en/articles/12902405-claude-in-chrome-troubleshooting", @@ -10978,8 +11125,8 @@ "url": "https://support.claude.com/en/articles/12902446-claude-in-chrome-permissions-guide", "status": "success", "path": "support/12902446-claude-in-chrome-permissions-guide.md", - "sha256": "e80a6417ad6ab9d724b910a458fdd990e34cc4ffa55f9a2d8e3d6651afab85fd", - "size": 9569 + "sha256": "98a3977ed5919b66bfd9227dc28eee18f37c5f9eeb52c0952b733026a7a07009", + "size": 9563 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -11006,8 +11153,8 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "ace7870639c148fe7beea9dcda42af9c0ba21dd701df42bc80df136d51acf1e7", - "size": 5411 + "sha256": "f6073bdb31424566aae8bb5a5f1741933dd8a8f55b6ca410942a591309255d46", + "size": 5417 }, { "url": "https://support.claude.com/en/articles/13015708-access-the-compliance-api", @@ -11055,15 +11202,15 @@ "url": "https://support.claude.com/en/articles/13132885-set-up-single-sign-on-sso", "status": "success", "path": "support/13132885-set-up-single-sign-on-sso.md", - "sha256": "83aaee1724d99f8e2f87e383acfecc2108004854dd154d4977a38fb3bc714f5c", - "size": 13643 + "sha256": "d200d77b228d2d9bfec033087affe5ad75fb48b0a826d4b46bf8aa8c169abf9c", + "size": 13649 }, { "url": "https://support.claude.com/en/articles/13133195-set-up-jit-or-scim-provisioning", "status": "success", "path": "support/13133195-set-up-jit-or-scim-provisioning.md", - "sha256": "258a9f6e9a40eaab9a4bd7339476601e7bede944dc8bcfaa7a16c4488072de90", - "size": 22519 + "sha256": "5ca8f0a31e89ce7d53eba28b15beb10b607883765480b9ef4bc666e5df64e14d", + "size": 22523 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -11090,8 +11237,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "892aa5044e57d70ac6b56bcfb183a1be97f110629b29830b7548b444c4f79e26", - "size": 3703 + "sha256": "1335386927e0a5ed4b51247b2c7f62ab1795af293338544f4eef21a9193cea07", + "size": 3699 }, { "url": "https://support.claude.com/en/articles/13171706-crisis-helpline-support-in-claude", @@ -11104,7 +11251,7 @@ "url": "https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account", "status": "success", "path": "support/13189465-log-in-to-your-claude-account.md", - "sha256": "8b9a0b3f17c6c5042cb8b136706e11e1e8999f29ba8194ccb191d5b0b1bf481c", + "sha256": "cdb919c2e51848e38a4a0298b12bd7accc073b2544fa8917561d7aa3daae9e62", "size": 7039 }, { @@ -11125,22 +11272,22 @@ "url": "https://support.claude.com/en/articles/13296973-hipaa-ready-enterprise-plans", "status": "success", "path": "support/13296973-hipaa-ready-enterprise-plans.md", - "sha256": "08580351a3c69ae98fe01a0f5e2a92f9d50b6162a026d59e7e3103f16095ae00", - "size": 7350 + "sha256": "7c5e92a971383e06e89b11eb4f0bcd98c6615585ec1c28069e78d5cd5b8b0aa9", + "size": 7446 }, { "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "7453b481350de2b2841beb4d0bf580c9d8ffcbe862c83ee7b27da23201c40484", - "size": 2636 + "sha256": "f1bd117fd4cfe185f67b7f9880c46076619c20ce1107d98db798b06ce41b302f", + "size": 2634 }, { "url": "https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork", "status": "success", "path": "support/13345190-get-started-with-claude-cowork.md", - "sha256": "8b2277157ca64c233f2f957b9a000525946c3af2211454630b45069df2384ff5", - "size": 23060 + "sha256": "42bba68e580987218e52bc8e99edc663493112490fc813a3fe3538fe6711b3d9", + "size": 23058 }, { "url": "https://support.claude.com/en/articles/13346458-customize-your-console-appearance-settings", @@ -11167,7 +11314,7 @@ "url": "https://support.claude.com/en/articles/13371040-log-in-to-your-console-account", "status": "success", "path": "support/13371040-log-in-to-your-console-account.md", - "sha256": "fb40f9f78cbc73bba7353b4450e4ef7496991b69dc9758a60d2fa591e680d4d5", + "sha256": "a04136723b5eb062a895a5c66b58d1b0d812e5a962ccbbbe27217edea2b74094", "size": 4611 }, { @@ -11223,8 +11370,8 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "a626985929e0598763e7d1829c122d923fd5454bbc5885ecd980280ea5a40f63", - "size": 6513 + "sha256": "7ce13256947c4e6240eafa4d3384204ea67639402d994ef1ada22527ecbabdea", + "size": 6509 }, { "url": "https://support.claude.com/en/articles/13663666-use-visual-and-interactive-content-on-team-and-enterprise-plans", @@ -11279,8 +11426,8 @@ "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "9ae841c8843c1eb65fb42389afd8f1f282ea89232d5f06756e7ccdb30c4799ae", - "size": 15187 + "sha256": "4dbc847b4f34787f0f6922049eaa108ece890c0fe6d1f267e72cc796f142a62f", + "size": 15191 }, { "url": "https://support.claude.com/en/articles/13854387-schedule-recurring-tasks-in-claude-cowork", @@ -11377,8 +11524,8 @@ "url": "https://support.claude.com/en/articles/13947068-assign-tasks-from-anywhere-in-claude-cowork", "status": "success", "path": "support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md", - "sha256": "49bb05f6b79afdd1862a481d6fc3cee5fb88bf11e336cf66cbaf4a5a4494afaf", - "size": 9456 + "sha256": "1d589c17c72c2f112349793b81d2067a25f6f13808af92209df302d9105e5f37", + "size": 9460 }, { "url": "https://support.claude.com/en/articles/13979539-custom-visuals-in-chat-and-cowork", @@ -11398,8 +11545,8 @@ "url": "https://support.claude.com/en/articles/14116274-organize-your-tasks-with-projects-in-claude-cowork", "status": "success", "path": "support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md", - "sha256": "7c430fc39e10a1cc6d87ab6be0b5050bb314d9e41f581d0e2241d959c6e41f70", - "size": 8395 + "sha256": "6e8b20d56ea43b875a86cb20c9688fab3a29bc9152ec9ec1e9b7c3054f8690d2", + "size": 8393 }, { "url": "https://support.claude.com/en/articles/14128542-let-claude-use-your-computer-in-cowork", @@ -11468,8 +11615,8 @@ "url": "https://support.claude.com/en/articles/14499648-how-scim-sync-works-for-enterprise-organizations", "status": "success", "path": "support/14499648-how-scim-sync-works-for-enterprise-organizations.md", - "sha256": "41349445e188bb3a3ebbe9a4d48f892c78241863547798824a6c36b4a710f116", - "size": 7674 + "sha256": "73286ef5d855e4062b5171c9ba55ab2f1a48c780041d86e6c7a8eb3ceaee9575", + "size": 7676 }, { "url": "https://support.claude.com/en/articles/14503520-available-beta-and-research-preview-features", @@ -11580,8 +11727,8 @@ "url": "https://support.claude.com/en/articles/14604842-cyber-verification-program", "status": "success", "path": "support/14604842-cyber-verification-program.md", - "sha256": "f5192b772ab2db36f1c3bb8b883af2132fea8d6fea713e4fc0752fc3814c8da2", - "size": 25122 + "sha256": "a85f24dfd163c53d7a5442dc49e6ff703dfcc618e91264f4d95a653e56d2be88", + "size": 25124 }, { "url": "https://support.claude.com/en/articles/14625619-claim-and-migrate-accounts-on-your-domain", @@ -11664,8 +11811,8 @@ "url": "https://support.claude.com/en/articles/15167101-get-started-with-claude-compliance-api-integrations", "status": "success", "path": "support/15167101-get-started-with-claude-compliance-api-integrations.md", - "sha256": "1f4b3957223261edf905b861530c4b892e5915ebdb135767386b0c344903865d", - "size": 54144 + "sha256": "6efaab8dc7ac7a6c8314876d49f49b30632224ada786a04e96b1eb1c5e4e776c", + "size": 54145 }, { "url": "https://support.claude.com/en/articles/15171100-age-assurance-on-claude", @@ -11692,8 +11839,8 @@ "url": "https://support.claude.com/en/articles/15330088-set-a-default-model-for-your-organization", "status": "success", "path": "support/15330088-set-a-default-model-for-your-organization.md", - "sha256": "2f36645f52a1b47096edfbb193455119195cba3b936add001f4068e82b802aa8", - "size": 11311 + "sha256": "ed1e1e005a48dd8ef9bb67d7631f4e3f684fe994dbb0944c223a13dc8bd6ac54", + "size": 11313 }, { "url": "https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide", @@ -11713,8 +11860,8 @@ "url": "https://support.claude.com/en/articles/15402193-restrict-verified-domain-connectors-to-your-enterprise", "status": "success", "path": "support/15402193-restrict-verified-domain-connectors-to-your-enterprise.md", - "sha256": "dc608be73ca6f072b1ada7e049520d5e57257f6c2102f4821549726b0e1671e6", - "size": 5391 + "sha256": "fa40df8c30a1db3d6cf9a722f037aefa9c279ff01508329e333432b41e63db1a", + "size": 5447 }, { "url": "https://support.claude.com/en/articles/15422948-enable-us-only-inference-for-your-organization", @@ -11804,8 +11951,8 @@ "url": "https://support.claude.com/en/articles/15694740-manage-model-access-for-your-organization", "status": "success", "path": "support/15694740-manage-model-access-for-your-organization.md", - "sha256": "86f5038945041b2848e818c59d78de621e0ff5f14b6ee02f81e6b12477480db8", - "size": 10332 + "sha256": "8a917dce0845fdcdac9352dea388c247d70cf2dad5ffb2018d55d779832fdda5", + "size": 10336 }, { "url": "https://support.claude.com/en/articles/15707726-using-claude-for-legal-work-privilege-confidentiality-and-how-to-think-about-configuration", @@ -11839,8 +11986,8 @@ "url": "https://support.claude.com/en/articles/15936181-get-started-with-1password-for-claude", "status": "success", "path": "support/15936181-get-started-with-1password-for-claude.md", - "sha256": "1d38acb3123c34bd92c9ce049d3f70ef11e32abefcb49d59e1b12e788c07c49e", - "size": 5058 + "sha256": "7e8f6b8e1b6da007a35a6c22be6aa9c00e956c22b469898307b2669d8b3c1ed5", + "size": 5060 }, { "url": "https://support.claude.com/en/articles/16049681-why-claude-switched-models-in-your-conversation-with-opus-5-or-opus-5-5", @@ -11888,8 +12035,8 @@ "url": "https://support.claude.com/en/articles/16607638-understanding-your-pro-or-max-plan-invoices", "status": "success", "path": "support/16607638-understanding-your-pro-or-max-plan-invoices.md", - "sha256": "6725dd5990ce2a7dc79c266f42a35db8c99b2cbb816c1f97bdfdf5f55f5f311c", - "size": 5832 + "sha256": "f80fed7d2b5af859502186c15df1f5847537ab033ee4bee7711646e2308858a5", + "size": 5834 }, { "url": "https://support.claude.com/en/articles/16607668-understanding-your-team-plan-invoices", @@ -11972,8 +12119,8 @@ "url": "https://support.claude.com/en/articles/16893491-get-started-with-smart-reports", "status": "success", "path": "support/16893491-get-started-with-smart-reports.md", - "sha256": "6c47be551ba267bfdf99d77ccad35945332ae3528cd86988c7aad1f260f111f8", - "size": 15493 + "sha256": "c92092b5d0a3ba4e8c1e68fbdd12d12299fc01a064dfa8d11ae64e92f88debf1", + "size": 16031 }, { "url": "https://support.claude.com/en/articles/16923645-get-started-with-claude-docs", @@ -11993,8 +12140,8 @@ "url": "https://support.claude.com/en/articles/16951679-use-claude-in-google-docs-sheets-and-slides", "status": "success", "path": "support/16951679-use-claude-in-google-docs-sheets-and-slides.md", - "sha256": "ce2551f8770925ed8eaa81d487f6a1b7883912b74a14c63cb6f5c7c4faaccf1b", - "size": 21894 + "sha256": "0fabff91918c91b78116f6460b4fa182f408947e8de2af833dfcd57ca8af1732", + "size": 21892 }, { "url": "https://support.claude.com/en/articles/16952184-set-up-salesforce-in-claude-for-your-organization", @@ -12021,7 +12168,7 @@ "url": "https://support.claude.com/en/articles/17005973-manage-pooled-group-budgets-on-enterprise-plans", "status": "success", "path": "support/17005973-manage-pooled-group-budgets-on-enterprise-plans.md", - "sha256": "db86dcfe185e9d95a72ae4cf9d1d304cbe7d8020f7dcf2f493a521831f32313a", + "sha256": "9257aa0f85b6a5293c799156ad4afeb9a7845ae22dc48c0b7bb6f487d92d00b5", "size": 6982 }, { @@ -12070,22 +12217,22 @@ "url": "https://support.claude.com/en/articles/17203415-set-up-claude-for-intune", "status": "success", "path": "support/17203415-set-up-claude-for-intune.md", - "sha256": "768bf6c2a44fc6a6a43dfb3bacd8bfd0ca6fe9a5694fbb2fcc92c64cc8e2f563", - "size": 11379 + "sha256": "69e539675337a02bd9189eb450a2f995bc6167a926dd8f0767b09bb6e8930dbf", + "size": 11385 }, { "url": "https://support.claude.com/en/articles/17318731-use-claude-code-local-mode-and-claude-cowork-local-mode-on-a-hipaa-ready-enterprise-plan", "status": "success", "path": "support/17318731-use-claude-code-local-mode-and-claude-cowork-local-mode-on-a-hipaa-ready-enterprise-plan.md", - "sha256": "543942c7620dd3941a76992be324e017758b115438722c38489a8ce5fa90a057", - "size": 19893 + "sha256": "05d3a6eb825889a59162a23c3b0d47f2925b8737fe61929ea3219eeddf43d148", + "size": 20149 }, { "url": "https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude", "status": "success", "path": "support/17440474-migrate-from-standalone-claude-design-to-claude.md", - "sha256": "3297a2c89c2cfe84db4d3dd967da3ccf72ec8a042326ca0fcc2fbf65e33e2d49", - "size": 15293 + "sha256": "6d52b14bb11006e95d3d2a496f7cae232821dccf5b3090340c4604ce6c600033", + "size": 15277 }, { "url": "https://support.claude.com/en/articles/17444146-claude-haiku-4-5-is-leaving-the-model-selector", @@ -12098,8 +12245,8 @@ "url": "https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization", "status": "success", "path": "support/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization.md", - "sha256": "e795adf44f99e6129289e42a0ba2c1b1844ee751c5f697cd6c827fe7bf3e99d3", - "size": 22010 + "sha256": "0843af21d424fea383cc009a51a0aba2c483c9a2fe87997668d059076022a791", + "size": 22701 }, { "url": "https://support.claude.com/en/articles/17454700-get-started-with-claude-dashboards", @@ -12140,8 +12287,8 @@ "url": "https://claude.com/docs/claude-science/admin-controls", "status": "success", "path": "claude/claude-science/admin-controls.md", - "sha256": "6c9f3038408a7e3b4b5ea6be9558169587a31a82c5783281c45fe071471c7979", - "size": 53446 + "sha256": "753d5d98804d0d6b998ff5108c70479fdb9ba8e85b589d0dcb787ad3a1567639", + "size": 53344 }, { "url": "https://claude.com/docs/claude-science/artifacts", @@ -12154,8 +12301,8 @@ "url": "https://claude.com/docs/claude-science/changelog", "status": "success", "path": "claude/claude-science/changelog.md", - "sha256": "3d98e547eccbb47d1e94c9301bb531143e8b9419dd1a8b1e8978468ff2ad1f94", - "size": 22492 + "sha256": "5d0deda7214dd9e6948e83e57ccc1376da350e89275fec74beb10fdd15efffbb", + "size": 23450 }, { "url": "https://claude.com/docs/claude-science/cloud-storage", @@ -12189,8 +12336,8 @@ "url": "https://claude.com/docs/claude-science/configuration-file-reference", "status": "success", "path": "claude/claude-science/configuration-file-reference.md", - "sha256": "ee7cf74912a224c12d070800f60f2322e810b6ec601d570d196f9da49d92de59", - "size": 10764 + "sha256": "89d7c8d83320bec39228af4c27aef482074f40886cc06a372bbbd432bd1eb6c8", + "size": 10767 }, { "url": "https://claude.com/docs/claude-science/connectors-and-skills", @@ -12210,8 +12357,8 @@ "url": "https://claude.com/docs/claude-science/corporate-networks", "status": "success", "path": "claude/claude-science/corporate-networks.md", - "sha256": "3d2a3013e4e6770b349f3fc1c7a21efcf49bbc3d54e65e8ee598795fa60cac59", - "size": 39394 + "sha256": "e8339b7646b178f17b0f447247c1e1b52b5eb1938f38686ce7ab4959134f2c3f", + "size": 39408 }, { "url": "https://claude.com/docs/claude-science/custom-connectors", @@ -12301,8 +12448,8 @@ "url": "https://claude.com/docs/claude-science/get-started", "status": "success", "path": "claude/claude-science/get-started.md", - "sha256": "75141b1fd8353d84f50a44d39141ac77fdff7a61235bdce2e7497f29d9b03dd7", - "size": 21781 + "sha256": "1950716360186655df92d9d72ba10fe694dd5496f8424be071f946e2db010b04", + "size": 21918 }, { "url": "https://claude.com/docs/claude-science/glossary", @@ -12385,8 +12532,8 @@ "url": "https://claude.com/docs/claude-science/run-on-remote-linux-server", "status": "success", "path": "claude/claude-science/run-on-remote-linux-server.md", - "sha256": "5fcd97ab2ae57867675baaa6351dff87c6e39c8ef4312ed65d0e699ab307ea1b", - "size": 12507 + "sha256": "68577cdbbf7966de32cc46da4103532a3b8160977606ae485aa9e51065f56fc3", + "size": 12560 }, { "url": "https://claude.com/docs/claude-science/safeguards", @@ -12413,8 +12560,15 @@ "url": "https://claude.com/docs/claude-science/troubleshooting", "status": "success", "path": "claude/claude-science/troubleshooting.md", - "sha256": "aaf618fecab0c4ad3e3f121311900970c0ec425552b9c287ac97414fd29a638b", - "size": 9961 + "sha256": "c0d3caccac6f899cc98c03204dcce81ba1e55b2f13b2282e9aa3ab08594bc5f1", + "size": 10073 + }, + { + "url": "https://claude.com/docs/claude-science/update-claude-science", + "status": "success", + "path": "claude/claude-science/update-claude-science.md", + "sha256": "3c718dc3ddaad8d55b0c80a4643fd1b96c1f359077d52bd4ea7647de6f6c2943", + "size": 4152 }, { "url": "https://claude.com/docs/claude-tag/admins/add-connections", @@ -13225,8 +13379,8 @@ "url": "https://claude.com/docs/cowork/changelog", "status": "success", "path": "claude/cowork/changelog.md", - "sha256": "3a69de5621ede8403bc462a7a9178b1526378ef34091e83a922ebf3999eb4b29", - "size": 218556 + "sha256": "e4c4b27004d27b33ad3eee254aafe54e6669bfed18aa350aee421e807bd2816c", + "size": 219541 }, { "url": "https://claude.com/docs/cowork/guide/dispatch", @@ -13848,8 +14002,8 @@ "url": "https://claude.com/docs/third-party/claude-desktop/configuration", "status": "success", "path": "claude/third-party/claude-desktop/configuration.md", - "sha256": "c5e31217c977579f0410f91cef56f28ece05131800e13a09059a6a76d92f0682", - "size": 195152 + "sha256": "57641f1edbee84e0eb782775b9a7bf6d6a67e6b8cd8b41de12939ad1adc6e9f2", + "size": 195022 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration-changelog", @@ -14065,169 +14219,169 @@ "url": "https://platform.claude.com/docs/en/api/ruby/models", "status": "success", "path": "en/api/ruby/models.md", - "sha256": "ad0d0b4e80ed2ce607c9af3c2f627f37eff977fb3dd0c24e8c203f62cfdadcd4", - "size": 40279 + "sha256": "342da0c9499f79412efc3cd27a21fc40d4b348c9a7c4384eadea7c8c760b2c3b", + "size": 40339 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta", "status": "success", "path": "en/api/ruby/beta.md", - "sha256": "69c8cde53c4393502a6d77a21f57e91a4b315c5ff000776a8222695c31d3e8f7", - "size": 3291597 + "sha256": "57165f3ffda766b9cc5ef986ef662170fa9c7273a315c45e05b7fd1246c1cada", + "size": 3502964 }, { "url": "https://platform.claude.com/docs/en/api/ruby/completions", "status": "success", "path": "en/api/ruby/completions.md", - "sha256": "05981d651d49c2b622e291e1be05f6d9ceec86ac666bd681323a35be56194105", - "size": 16231 + "sha256": "6c904cfd3562b20775ecc98b6ee1a44f70fb589f2b14fac53050da97b626cff7", + "size": 16261 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages", "status": "success", "path": "en/api/ruby/messages.md", - "sha256": "b2f7df57a2aba08bc2160152eaa274f63bb4ad6999ff3d1ffcbe0de3a93ac82c", - "size": 1099666 + "sha256": "c0c6ca250f1b03ec43a30d82819723c43b127b14049ab1154d6d62261a2dafc1", + "size": 1213517 }, { "url": "https://platform.claude.com/docs/en/api/java/models", "status": "success", "path": "en/api/java/models.md", - "sha256": "8fbd1b08cff6ef01fc9f925df4c38449185385779d471bf16c0c1737920c35c4", - "size": 44613 + "sha256": "b5ed56998a149d7eece5f0e7445d0012550d6f9a366e5a8ad32cfe097b958f40", + "size": 44717 }, { "url": "https://platform.claude.com/docs/en/api/java/beta", "status": "success", "path": "en/api/java/beta.md", - "sha256": "c59cb47bd232d41c470dc26131af76296a750f79f616a8cbe66e57f59608912e", - "size": 3618970 + "sha256": "3cab85b3a6d8da8041abfb02b2758a67b2dc014802155e88494c584cd5b590aa", + "size": 3698081 }, { "url": "https://platform.claude.com/docs/en/api/java/completions", "status": "success", "path": "en/api/java/completions.md", - "sha256": "bf3d2fa9dfbfe975b82eb12465199f67f1435c2d9e84282e7277ad466c2c19a5", - "size": 16243 + "sha256": "dac04c9a86324b4e7c13eb58abb606a379f92df763c04e8cca8635d30c0732ca", + "size": 16295 }, { "url": "https://platform.claude.com/docs/en/api/java/messages", "status": "success", "path": "en/api/java/messages.md", - "sha256": "bed58f557aa039c34c8413faa2db17c1145edc72ce5fa1af6bdcf002953b1cdb", - "size": 1148638 + "sha256": "14b591e1c6300a2a858282e77a33001629c1982c0a4aa29fbea20c0da495534f", + "size": 1166608 }, { "url": "https://platform.claude.com/docs/en/api/python/models", "status": "success", "path": "en/api/python/models.md", - "sha256": "e08cbaf2b59f0a94cbe85ded511a2c0584a2afe36954dc06c96e427f60078acd", - "size": 41054 + "sha256": "737ea30a7d1f86a1d4c75d78c3740caeeca94105f563b32cfec56f8f0b00f308", + "size": 41112 }, { "url": "https://platform.claude.com/docs/en/api/python/beta", "status": "success", "path": "en/api/python/beta.md", - "sha256": "7d621abb6f73702a10ea7998e327bdfc0b83616fb84eab2fb003fd6d8fc3e1fc", - "size": 3334336 + "sha256": "6de77e0ca93660883bb1bbe7a064383120aba33fec170e19844e1a2e47200f71", + "size": 3395351 }, { "url": "https://platform.claude.com/docs/en/api/python/completions", "status": "success", "path": "en/api/python/completions.md", - "sha256": "5a0b498258fa03957a97234ec31a1ea22aa5ad3968cb200bfc879fd5fb243de3", - "size": 16575 + "sha256": "0bbcf544184c890fbb9435d145fa788e3776f0b37bd272abeea0dd3c2f0e5686", + "size": 16604 }, { "url": "https://platform.claude.com/docs/en/api/python/messages", "status": "success", "path": "en/api/python/messages.md", - "sha256": "68fa9f5e7d4dc8edc0340462f521ecd2dfaaa3c78584fb49c4a7b32ead452cbe", - "size": 1163654 + "sha256": "2be4422351533cda56c5398795cadbd134fa09fc5908f8925c1e1d3dccda54c2", + "size": 1181720 }, { "url": "https://platform.claude.com/docs/en/api/typescript/models", "status": "success", "path": "en/api/typescript/models.md", - "sha256": "b0e8d60d0b15dd4ffc49466211e4f42511cc9b420518afe858724dbf85129645", - "size": 41389 + "sha256": "a74790e23e563d4c22c986ed24604d7bbf60a5eaaf8f8b314ee95afc0c250b28", + "size": 41451 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta", "status": "success", "path": "en/api/typescript/beta.md", - "sha256": "252503c26b063ff702367e0bb5e3edaddb3b4c686d127592441370c1474bb86f", - "size": 3441112 + "sha256": "2a90fcffda7ac769ce77cd7e549169f893eb9621153c1b45321770248cd932e1", + "size": 3504147 }, { "url": "https://platform.claude.com/docs/en/api/typescript/completions", "status": "success", "path": "en/api/typescript/completions.md", - "sha256": "c1e4b18ea783ad4426389abf2b02067c10c1edc005503c8873e96850b4fbb33c", - "size": 16698 + "sha256": "0569e41ea2b90456e5ef36bded005ba41a558f0e11e52580d28777c58bed7200", + "size": 16729 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages", "status": "success", "path": "en/api/typescript/messages.md", - "sha256": "48323fa69fd892f05e6a6de0075e2f919f86005d94b5403fb798a3fb8552ed70", - "size": 1170956 + "sha256": "27932a8a78b0017a000af2a945d8d2dfdcda7cf579980cd79fb79d88c685db4f", + "size": 1189214 }, { "url": "https://platform.claude.com/docs/en/api/csharp/models", "status": "success", "path": "en/api/csharp/models.md", - "sha256": "f8249ddc09b7dd86330af96b92ec15599c68ca33b1571eacfbc2ba1303699466", - "size": 44846 + "sha256": "74570ab863caa58c65c36dbe34a8130c13348308a14984c2f70715d4c5777fdf", + "size": 45040 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta", "status": "success", "path": "en/api/csharp/beta.md", - "sha256": "bfbaab32c83cf436716ff924f146339911828f30231d9f366dad7ccf15073880", - "size": 3546267 + "sha256": "926f261bf00a14007c0519de2b5daa3a4c1fd2aac2b1f3756a688bd6fb21396d", + "size": 3638058 }, { "url": "https://platform.claude.com/docs/en/api/csharp/completions", "status": "success", "path": "en/api/csharp/completions.md", - "sha256": "70822c85e86f7e6c6e7445e494695467021086597ea6950cce08b27b8480377d", - "size": 16575 + "sha256": "cc56989599a4a764c80dc6ba50c32004075424874b54d3349027b89508897402", + "size": 16604 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages", "status": "success", "path": "en/api/csharp/messages.md", - "sha256": "0f89e589f74e542dcd956a89f34fb5d14bae968b6958131babe62932c1de8f51", - "size": 1153812 + "sha256": "c79b569ca2379a00153eb69860f5d67b7ce26c6e2912f7f1ba17f9b8fcd6b40b", + "size": 1172576 }, { "url": "https://platform.claude.com/docs/en/api/php/models", "status": "success", "path": "en/api/php/models.md", - "sha256": "63e0dca3c05777cf8e6507795831fec02ea66a9a3ee5bbecbe535dcff814efa6", - "size": 18360 + "sha256": "7cd0d92c2f3fea30d7132a0aba6e49530e578ea832646bcd947c900a98090be9", + "size": 18474 }, { "url": "https://platform.claude.com/docs/en/api/php/beta", "status": "success", "path": "en/api/php/beta.md", - "sha256": "edc96c3bbfa98598fbf0f4513187a8c5bb0f9e5d58933900389cd121aa4197fa", - "size": 1052912 + "sha256": "1e3755c20d08d997c6f3ea3da9e2e7e264422149bd969a9a0613bba3e36559dd", + "size": 1092352 }, { "url": "https://platform.claude.com/docs/en/api/php/completions", "status": "success", "path": "en/api/php/completions.md", - "sha256": "edd5b89e3cfb29d79a0926e2723c6285e911d5608c626a015e94e2a14d6c8bce", - "size": 16572 + "sha256": "db5c33fbef613d78eb8cae04151b3fc371fe7c99156a2fcdf6897beb483a1daf", + "size": 16601 }, { "url": "https://platform.claude.com/docs/en/api/php/messages", "status": "success", "path": "en/api/php/messages.md", - "sha256": "92ec592a585b017aebeca0c9d9f03fee4dc62c19e45fa5db980549b42cc5ab91", - "size": 285326 + "sha256": "ae93fc8fda5c31af544246e389563ec57aca2f3dd5cce46ba36de44d651abb4d", + "size": 285474 }, { "url": "https://platform.claude.com/docs/en/api/cli/models", @@ -14240,8 +14394,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta", "status": "success", "path": "en/api/cli/beta.md", - "sha256": "76724524022a270e6bb1f83b7421e8f12b7e422ab78d2bfdf54324560f8b6a20", - "size": 2543431 + "sha256": "b08ba74f447277b88dbc3260e5a74808d4804f5cff8586690e66420b97d92697", + "size": 2575677 }, { "url": "https://platform.claude.com/docs/en/api/cli/completions", @@ -14254,183 +14408,183 @@ "url": "https://platform.claude.com/docs/en/api/cli/messages", "status": "success", "path": "en/api/cli/messages.md", - "sha256": "0fe919c3e799dd66d888334d3258a6ad026124b97ada69317022fa0b97877f36", - "size": 956584 + "sha256": "77a1d7386d49725e5013dfb84e61ea7a1e80ea78277fbc69887cfc8dcc43cde7", + "size": 974506 }, { "url": "https://platform.claude.com/docs/en/api/go/models", "status": "success", "path": "en/api/go/models.md", - "sha256": "eba25020abf21c59a166c0a8a0702b77bd7b046c6225723909439c375888ed6a", - "size": 48265 + "sha256": "450af16bf1c06bf97841ad1b6e55c3d37154a17220f88ef68b161d384a8a220f", + "size": 48435 }, { "url": "https://platform.claude.com/docs/en/api/go/beta", "status": "success", "path": "en/api/go/beta.md", - "sha256": "60c1f769593e5f2410457280c16c6b13cfc5c47280b6e2f09ec3f0c9f34accee", - "size": 4098818 + "sha256": "1d58d9080e8be7477237ac50f60b56038fa22c7e1e2e58d9203c151636a8f989", + "size": 4198231 }, { "url": "https://platform.claude.com/docs/en/api/go/completions", "status": "success", "path": "en/api/go/completions.md", - "sha256": "d86d4b41ae394c5f91c1d155de378ca5f634f7897817fdeaf1e29d688bcf93c1", - "size": 18274 + "sha256": "bf993efccfbd138bda4d5d0a27e8100097bb2197ac71c2098b89940072572eb4", + "size": 18359 }, { "url": "https://platform.claude.com/docs/en/api/go/messages", "status": "success", "path": "en/api/go/messages.md", - "sha256": "a12aa4c8fb89e561485d118923da4bbdaa37a14ec8cbe639b79950eacd689649", - "size": 1258598 + "sha256": "7f9e26275076605ed43d841baebac5af814e85214a16cb7de058ef83354018ef", + "size": 1276472 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions", "status": "success", "path": "en/api/go/beta/sessions.md", - "sha256": "940519c989de8c81eb3fe216e654a6f4387c38ac7f4ba72c581ab897708a3dab", - "size": 1282048 + "sha256": "205646698cb5654f45b6372043c3e559879578355a7a59c2b6d297b13892d0df", + "size": 1283663 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/webhooks", "status": "success", "path": "en/api/go/beta/webhooks.md", - "sha256": "2963eb4094c62ecece07a2a4d328fb438a7c4a4ef1f51cf8a6373ee2055674e8", - "size": 32728 + "sha256": "5b988bdf08ee34bb9ccf18329e24224d196c9666c4662c1d30f208b73465e55c", + "size": 34918 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills", "status": "success", "path": "en/api/go/beta/skills.md", - "sha256": "32c113102dc22b6500774fe18c709b5be7381f76faec0dace134b93091592844", - "size": 73111 + "sha256": "9271e3c1377b417d4479afb75c82b0e73dd22e532d1f903cabceed805a83ec69", + "size": 73876 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents", "status": "success", "path": "en/api/go/beta/agents.md", - "sha256": "13cbe0795104d46947225cd9c80bbac1ee91a34668679bbc25114ee9754a2666", - "size": 482785 + "sha256": "c5185fb85e36c81bb14661e9d367ebca249f7d0813f05f5cd05298a2047bd993", + "size": 483295 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments", "status": "success", "path": "en/api/go/beta/deployments.md", - "sha256": "7616d3385e636f18490fa74caea1c546af606b91c397e5cf6657698497e7f159", - "size": 262176 + "sha256": "105348968d6c36e9ca17e7c265c98886ad5e4375d20df5beb9ed30efa3c0f89d", + "size": 262856 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployment_runs", "status": "success", "path": "en/api/go/beta/deployment_runs.md", - "sha256": "3ff8ec5797f43df6b27e17e9f98d46172e30987708ceede5a9b5211ba149e417", - "size": 39956 + "sha256": "d3a8edc81a60afa0213f9a7d8099ee191901030ab92c03fac6ccd26ebe01dd5f", + "size": 40126 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles", "status": "success", "path": "en/api/go/beta/user_profiles.md", - "sha256": "ae45ffe1a43d9094178b75bf0bce88779733e7fe7ad3356e1e0cfc8243d88d95", - "size": 77800 + "sha256": "d35e2dc0f9ca98985fb5bc0eb9070f115548de8278b1c6ee87d795436e54109a", + "size": 93482 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/models", "status": "success", "path": "en/api/go/beta/models.md", - "sha256": "97509a8f7c25d81b0d4055e9af5f7b47f81b2d028facde053c1dc0d3c87dcde1", - "size": 51673 + "sha256": "a72a08a75790e72abe3f8279c5bee0e39354ebbf9f682df02a7d3d194d4bc1a7", + "size": 51843 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults", "status": "success", "path": "en/api/go/beta/vaults.md", - "sha256": "8c92ecc956cd746f50941b64770ad4c20cd87a9853e998b538ab2fa3265864b9", - "size": 130870 + "sha256": "42f16c012095cb8eca06e1f68f06838c0c67fb52c2e7bd24d6b6801747464573", + "size": 131975 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores", "status": "success", "path": "en/api/go/beta/memory_stores.md", - "sha256": "219d375e7f103fc6df962adb2834493279f15b3cd05a04497dc9dfe3012b5009", - "size": 144523 + "sha256": "66e5a690d5725360aa35c7b28fa624944bc3f58f9f583ed9aa06cd38f48432af", + "size": 147520 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels", "status": "success", "path": "en/api/go/beta/tunnels.md", - "sha256": "2a5bf8515d560026d2a36e7dd184760d3059358a47edbc039c0959fd5df0fb49", - "size": 78957 + "sha256": "08f31889d17586ac011bccbb7a90073c549dc22df79df58c2a6ed77c5c878799", + "size": 79807 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments", "status": "success", "path": "en/api/go/beta/environments.md", - "sha256": "891eae4603ac9e9e1e8f38cc6a595e2aad661b16630db81c56b1c2e4f718e29d", - "size": 144331 + "sha256": "b10e086e1ace0c3aa65402f61a34a1257a25eb7b8530347f797cc3b15d821468", + "size": 145521 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files", "status": "success", "path": "en/api/go/beta/files.md", - "sha256": "79e8bba7001a094e7a5ce86145a736fdd842f44a30d773e59c1b12750a401e7f", - "size": 39378 + "sha256": "dd7b3b0823ec0c1ddd63ead1e2ee672777dcaf974c8fb5d8ce1da8c7d6e2e65d", + "size": 39803 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages", "status": "success", "path": "en/api/go/beta/messages.md", - "sha256": "9d03ba48fd1fc747163190286fef330b4a54f217e4ba65aac1789feeff9e2e8e", - "size": 3211471 + "sha256": "5faf350ee670fa8f9941db99b00758a060d2236ef25f192b4f73337b1ade98a8", + "size": 3237694 }, { "url": "https://platform.claude.com/docs/en/api/go/models/list", "status": "success", "path": "en/api/go/models/list.md", - "sha256": "1a87c5ad6334d11cc4a255f1697ac212dcb6208dd9bb3e3617f8f1ebf1968bb7", - "size": 16692 + "sha256": "491aff5cd0c8b3bba1ece323600bbadb27e611c2698c5bde524a25d11dedc872", + "size": 16777 }, { "url": "https://platform.claude.com/docs/en/api/go/models/retrieve", "status": "success", "path": "en/api/go/models/retrieve.md", - "sha256": "fa008c97b5a11395982dfd35c2f4ebbdf8e1e1bb7b91a201862af76d0b160dbb", - "size": 15191 + "sha256": "ee02a750907e1a5494cc8001ad657a01c8547a13c1cf505abd1f0f1cacae30c1", + "size": 15276 }, { "url": "https://platform.claude.com/docs/en/api/go/completions/create", "status": "success", "path": "en/api/go/completions/create.md", - "sha256": "57044895d14c5c56f8b31cbd0ec6d4b09b09fa5ae7deffd9056a0b90daa9c3bd", - "size": 14302 + "sha256": "c450725666bb03e3fee92dc4f31e99bf54af25745a3c21dd38e293b7e3d64179", + "size": 14387 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/create", "status": "success", "path": "en/api/go/messages/create.md", - "sha256": "d5b53da5469e7edaf9e35113e28be32f2cbe1f0e2e2b220c32a75f9b28557d3e", - "size": 145711 + "sha256": "0c991fec5ebbc17bbed386a936639866a00083f9782f2b8975118bf3d9feac57", + "size": 147919 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/count_tokens", "status": "success", "path": "en/api/go/messages/count_tokens.md", - "sha256": "fd2fddabbee8ab06bfdb7c35ed1797a0634f86ab94156603dbf0314a6053c04a", - "size": 102051 + "sha256": "aa72785efbcb407a9fd665cb59c154f605620a1abe8fd6f9457e277f14f73a76", + "size": 102009 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/batches", "status": "success", "path": "en/api/go/messages/batches.md", - "sha256": "ce948620c05a275024c3f2e5258f2c8c72ab62c3d72aa38ac4e2213ca47c0114", - "size": 304933 + "sha256": "843abf4e23d0bb459bf655738808b361bb2f9b891af372bee21545f733d9cd70", + "size": 314143 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/batches/create", "status": "success", "path": "en/api/go/messages/batches/create.md", - "sha256": "7407c2868b6fb350db1bfd8abeb5ef11febcd827b72fc8e2441296eae5393e34", - "size": 126113 + "sha256": "47026917ccecb611cffd224f635b52d8174f0846811c62cde12c0fd4de37ed1b", + "size": 126071 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/batches/list", @@ -14457,8 +14611,8 @@ "url": "https://platform.claude.com/docs/en/api/go/messages/batches/results", "status": "success", "path": "en/api/go/messages/batches/results.md", - "sha256": "7da47b05070c9af75d8e63cbab9f63cbb7547bad6fcd33dab34d538f8f5cf308", - "size": 41569 + "sha256": "f704254650bad11cd12f43bc53852ddd9831cf4f9b3028121cd07df529b6ba3a", + "size": 43903 }, { "url": "https://platform.claude.com/docs/en/api/go/messages/batches/delete", @@ -14471,890 +14625,890 @@ "url": "https://platform.claude.com/docs/en/api/go/beta/environments/create", "status": "success", "path": "en/api/go/beta/environments/create.md", - "sha256": "4a43e851b95d8986e046c8890cc5e4c9778f3b60125fc0c86a33415552572a34", - "size": 13314 + "sha256": "9e1a2489a6ae321aa52d228f2c8f491177369febaad109d474b4297a39f95fb0", + "size": 13399 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/update", "status": "success", "path": "en/api/go/beta/environments/update.md", - "sha256": "0150a6999a2f9504af270e6ac94313bed93aae3fe2f0f404c72e66e80a2f6677", - "size": 13453 + "sha256": "240aae6a2717cb303dd95a80522d3a09e0647ee953c1e0a87935080406606bcf", + "size": 13538 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/list", "status": "success", "path": "en/api/go/beta/environments/list.md", - "sha256": "acf7baaa01ed6be5980f4ee3876caa369642ff481267a34d917b0a083268a132", - "size": 10694 + "sha256": "a3c32db64cac6f207b4a98e54fae806bddbab2257b4e8043405b8243b110a3c8", + "size": 10779 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/retrieve", "status": "success", "path": "en/api/go/beta/environments/retrieve.md", - "sha256": "62a2b8e3135a9be4cae69eec433b39afd40f1aa7b6e655ad83a05a3282e2e324", - "size": 10145 + "sha256": "7138191dda6b4df9aaf324d9dd8d7534051aa1d4108d999e72c223f2ba4b678e", + "size": 10230 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/delete", "status": "success", "path": "en/api/go/beta/environments/delete.md", - "sha256": "bd2c0b06e5e472f3f2b7522988d49fd2d4bb9d4f63e6b771afb445f7f5d45ab0", - "size": 6822 + "sha256": "1ba0cc12486127f6f79eb33ec44fc7ba25f2f8c8d4711195779e7c60142b6904", + "size": 6907 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work", "status": "success", "path": "en/api/go/beta/environments/work.md", - "sha256": "eecb53d9fb70175083a41cc7f34ba57cbf4ef4225f8c0858c014414eedcd040c", - "size": 77343 + "sha256": "7bd9e6bcda89b1b8166e457400d1c8636157b5da6aeec60fff67620298b03aea", + "size": 78023 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/archive", "status": "success", "path": "en/api/go/beta/environments/archive.md", - "sha256": "b2f46bfbe7e2cee3382defc04c5e77e15dadab97d0470a981b8a45d17053e556", - "size": 10227 + "sha256": "0acf843a086bbdfd678e10ce1d1596ae4be67edb375b422f6be6463f0385fdd2", + "size": 10312 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployment_runs/list", "status": "success", "path": "en/api/go/beta/deployment_runs/list.md", - "sha256": "bc2b765538f17f8e329ae98d55c746a56e29e825f336f9aacbf1f386a6ad7647", - "size": 14331 + "sha256": "882e67ad04b6ea66d70428c5c530dbfd6322065ad3e69046450974c5e0d96983", + "size": 14416 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/go/beta/deployment_runs/retrieve.md", - "sha256": "4c4a60b7b9c9d3844ebd58ab44e6518b40684ecb92288b12360f86eaddcec8ac", - "size": 12963 + "sha256": "aa223f554c46d788e50e8c55679bdbbeeca514805ec2ee16347dcba2ec6b7172", + "size": 13048 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/create", "status": "success", "path": "en/api/go/beta/vaults/create.md", - "sha256": "60d1d05874cb7774feea52e39eaa908d7bc224862fa599bd0d6e1b45a446f9b6", - "size": 7489 + "sha256": "7eca182f3489e73e324c2266115adc34285e42f38fc5096c26df48e23bab201e", + "size": 7574 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/update", "status": "success", "path": "en/api/go/beta/vaults/update.md", - "sha256": "9a508748873035c69dc8dc3a4ee694e9e705ff305b8623095265d2fb8cd5e55a", - "size": 7628 + "sha256": "30b2e7623ed78f08584291ff82fa119367352d8bdddaff9929521f4cde220638", + "size": 7713 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/list", "status": "success", "path": "en/api/go/beta/vaults/list.md", - "sha256": "f2565053821616acce1b0a3ef922232c6c749d7822ddc4803c9ace4eeae77e74", - "size": 7807 + "sha256": "de8faf0583b40ca46429638bacc8e0cfb5809b2c5e5e58df6c9f7c9d56c760f6", + "size": 7892 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/retrieve", "status": "success", "path": "en/api/go/beta/vaults/retrieve.md", - "sha256": "49192c1d8bb320edc973ea717ff28ae1052a1ac486065f2d6a4cddd73ef33669", - "size": 7322 + "sha256": "4fe6b0243bb5d4ea1dd616c0fb4e48b67047259e3d9901ad946e83eeb1ca86e3", + "size": 7407 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials", "status": "success", "path": "en/api/go/beta/vaults/credentials.md", - "sha256": "4c6ca2bf1d1d4d0a26c9016f48096f335d26dc6cb4ae94795c0aa15c375338fe", - "size": 122581 + "sha256": "d1d50a56460bec1aead5d655b0c2bbcf932b7d4168ac602d39902266b8e108d4", + "size": 123176 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/delete", "status": "success", "path": "en/api/go/beta/vaults/delete.md", - "sha256": "7c186ae55700d3410c33b42d410380113bb2bb0d88f0c5b1db7766c000785c04", - "size": 6728 + "sha256": "c75acca5d0d98190466ae0f1c632e7f7191d6426d2f5ce59e2bc649253faa452", + "size": 6813 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/archive", "status": "success", "path": "en/api/go/beta/vaults/archive.md", - "sha256": "5962e13099d18e6087086ab47427197400e5707c1744e20a88513f1f7f508646", - "size": 7340 + "sha256": "035b28e99fe8b134b831d4c07a1a93b0639411f42b20e5d3b849cfa192ef4341", + "size": 7425 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles/create", "status": "success", "path": "en/api/go/beta/user_profiles/create.md", - "sha256": "975a82a206f62fc9aa78462b50ed4a63a516515921ad67ef28b255e01c26e79b", - "size": 15341 + "sha256": "539547317b2d75999fbe4dd59abffdbbde65fa4068a53b81faf1a53e3c09b0f7", + "size": 15716 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles/update", "status": "success", "path": "en/api/go/beta/user_profiles/update.md", - "sha256": "a26f8708bd941f3a0d98b5e408a08d5b693b66a949b1e07251753aeccfac0c56", - "size": 15340 + "sha256": "69f836df36b244e06d80460faac4db3528de8c37a8dcd76c0acc31425f490f82", + "size": 15597 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles/list", "status": "success", "path": "en/api/go/beta/user_profiles/list.md", - "sha256": "33a650efe983d5b28a1ad6037dec3a89eb40345a0cef517595726d34627aa220", - "size": 14545 + "sha256": "efdfa8b7e6e10268c963095d91cdeed1c50d40e45ae095fe3a90ed2807993c9c", + "size": 14762 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/go/beta/user_profiles/create_enrollment_url.md", - "sha256": "71d6471eca9c8e65319d06c0c12363265599c672bd36d881ac73a871e68ddeeb", - "size": 7297 + "sha256": "75fcbca946eddfb42ed56f7d2a655d59e36f978e8a9fe6a89600b2bcafc57a17", + "size": 7294 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/user_profiles/retrieve", "status": "success", "path": "en/api/go/beta/user_profiles/retrieve.md", - "sha256": "5ac46453504aec42a4eda0dfd11ac7081f7086d7ec620adc53655aca2f8dcb50", - "size": 13065 + "sha256": "c48bce501c19748c94bd25b02eb37ea64c936b322edba54409c7f0eed9ffa087", + "size": 13282 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/create", "status": "success", "path": "en/api/go/beta/agents/create.md", - "sha256": "1f71ef19a689d767114eff541e156eec370a47e44dd0a33d6505ac8d8166160d", - "size": 65155 + "sha256": "2ad9144ddc1723b340473992fd8379d1759b36545690e2ba4a6d923997cf850b", + "size": 65240 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/update", "status": "success", "path": "en/api/go/beta/agents/update.md", - "sha256": "e156ddb818b244d388d73b126b75cb9778a3bb37079ed7a6f0237d530b4a15ee", - "size": 66079 + "sha256": "e69c109c3cf2de11afdcc00ebb7046c05a25347730eb32aab27354a38a9c5a1c", + "size": 66164 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/list", "status": "success", "path": "en/api/go/beta/agents/list.md", - "sha256": "b471005180d7b85e9e61cb8733344b75687c306534689104cb841e50a4284bc5", - "size": 35136 + "sha256": "ed604ca07b5fcab2d91421b4b7658fe428377a48dca7b8cf06aceda30f6b27a0", + "size": 35221 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/retrieve", "status": "success", "path": "en/api/go/beta/agents/retrieve.md", - "sha256": "fe8cba0750386be43035a5549ec8b6eccd0b623990fee3959aa8159a505e08f0", - "size": 34366 + "sha256": "e64b5164416019d20f9822b3a1ec3889e4fedaedcc03048af65a88d83ec3c320", + "size": 34451 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/versions", "status": "success", "path": "en/api/go/beta/agents/versions.md", - "sha256": "4851b6f85626fda8c325e47fb01b387ada861491985d3bc67b941444ec9d112c", - "size": 34898 + "sha256": "138feb2b0760b060f32aacb9b8bef667346ce67c094e5d094ab1588fa84c01b6", + "size": 34983 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/archive", "status": "success", "path": "en/api/go/beta/agents/archive.md", - "sha256": "e0517f3697be11628a28cfabbb8d7e068c02249a9b11b40c451faf11f5bfc870", - "size": 34232 + "sha256": "4dcb8c52f2a826d727f558230055986a94f1b18fbacaf9cd4bc99c3b7a477c36", + "size": 34317 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/models/list", "status": "success", "path": "en/api/go/beta/models/list.md", - "sha256": "6aae965e61da51445511c7e5a4ce43373068fc4580e4c9a373ca560d81e5bd43", - "size": 17492 + "sha256": "78bb76ab123c1e75a9e6730d0670542802ebfadcac9daf33e5da90cd64eb9895", + "size": 17577 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/models/retrieve", "status": "success", "path": "en/api/go/beta/models/retrieve.md", - "sha256": "38856d8d6dd499e77d3d602f3ab3a24b67618ed75a74da2b5ce90c9243181b58", - "size": 15939 + "sha256": "dec7ef68c6b738ef752bdd37cb41f8bf1d90cc8cff78418a6006ca17183f66ac", + "size": 16024 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/create", "status": "success", "path": "en/api/go/beta/tunnels/create.md", - "sha256": "1b72fed5e35cc7e9026f1754accb12dc4457320c67b72fdf93547f157df0c5c4", - "size": 7747 + "sha256": "766b65268ddf5a11dcea0b1547909e75650fe07dc16064316b731b38cf8fd320", + "size": 7832 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/rotate_token", "status": "success", "path": "en/api/go/beta/tunnels/rotate_token.md", - "sha256": "e654cb78b8a3f1062030e45e7af96357f46388d5bebfed22c582017d20161c1c", - "size": 7420 + "sha256": "6a53b13d10d8b948cb21b70d68494970724a9b1e228d14bf23ab057da9b86cf9", + "size": 7505 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/list", "status": "success", "path": "en/api/go/beta/tunnels/list.md", - "sha256": "39267d070647a22ffecc83a36ad8a42b0809609e56d6c89bc4bd157015b619fd", - "size": 8048 + "sha256": "673932031fe21cb2836d489e26c67ca6c48d6a4711ef35bf4bb64b33fa5ad4b7", + "size": 8133 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/certificates", "status": "success", "path": "en/api/go/beta/tunnels/certificates.md", - "sha256": "06d62a45f6ac6ebfb516d9ab8a7045c6c17fcd9b261fcab0539bc824295fcd24", - "size": 33377 + "sha256": "7fa6465fa1733a35f468e236936f95df44350728d1cc20c910109d86e9416ddd", + "size": 33717 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/retrieve", "status": "success", "path": "en/api/go/beta/tunnels/retrieve.md", - "sha256": "c02882dd429832834c35d4eed04a7aeeeb812596bb2ada8ce17d44207de3b24e", - "size": 7549 + "sha256": "f0c76587ca03657967941fa908964fc7ece3b9fd3d894024cec804a1198b3614", + "size": 7634 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/reveal_token", "status": "success", "path": "en/api/go/beta/tunnels/reveal_token.md", - "sha256": "cf0562533726409e5c42a71c7affe1bfd209c0f0690c2f1178764a1c6cc4c560", - "size": 7305 + "sha256": "1f304285c4378d2d4044bbe1197aa37bbdf05cea04904b6ed76ebdd4d5eb11fd", + "size": 7390 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/archive", "status": "success", "path": "en/api/go/beta/tunnels/archive.md", - "sha256": "71db9b721557006ab593d7d5bb376bf7bea28c6aa6d17532d21662b982e8b36a", - "size": 7848 + "sha256": "0b57b3589af6d4a1f2c9c1318a6e788f8afddd1b35c13075b147c5b409e3f475", + "size": 7933 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/create", "status": "success", "path": "en/api/go/beta/sessions/create.md", - "sha256": "bbf807f2d9c4ff95d4ba8534d13e69716cc1a047a06faab241a6bb59c6129f65", - "size": 93175 + "sha256": "a8f489f6598e99801ded768c13a4234267c8a52b76b6b09ba744ea3a018a63ea", + "size": 93260 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources", "status": "success", "path": "en/api/go/beta/sessions/resources.md", - "sha256": "43c24c457ed75db26da7953ea1845e63d2e99d8ee10c1b9c1c11cbce4ab13ea3", - "size": 49277 + "sha256": "811bdf89d642e65282a4fa0c940e1ab4d1a339f9e8dc46ae1f28b88d54a89878", + "size": 49702 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/update", "status": "success", "path": "en/api/go/beta/sessions/update.md", - "sha256": "1a38b02caa16d912754ed81554dc9ac67b32f84ce7c8b95ada2272509827f329", - "size": 51929 + "sha256": "cc8a5ec32e45b3ecae9b6826bd7541a140f9733831dd8dc99cd3ea9ac851256d", + "size": 52014 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/list", "status": "success", "path": "en/api/go/beta/sessions/list.md", - "sha256": "6292cc7d3b9c34875f4115e9f10b07949dc2fcdcf0d5b684aaa517585c2b6c08", - "size": 53947 + "sha256": "923e9ce9aa5aba3af4103cf6395b7d2df4c45b043cfb5ec29737f9dae060ef5c", + "size": 54032 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads", "status": "success", "path": "en/api/go/beta/sessions/threads.md", - "sha256": "0bfc9083cf79bb95037d65fcf25dfde68d2d2929e247fd653e79c5ecad14b58f", - "size": 476065 + "sha256": "9024a040f15e25d01c10fd0bcc343c7761c62da9178bb60c54b7d376c6cb0fb5", + "size": 476490 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/retrieve", "status": "success", "path": "en/api/go/beta/sessions/retrieve.md", - "sha256": "4e75502d6b4df125ead978390008a8fd88d1d0a9f907e2823377a15c0b442707", - "size": 50565 + "sha256": "4ac049e9e58a2052e66d221fff0dfe046e10948e47bbf6ee71df94576f897da0", + "size": 50650 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/events", "status": "success", "path": "en/api/go/beta/sessions/events.md", - "sha256": "05a727c08427b6bb370aedc3c65cb955d6cdafd1c8d93703156575d958c7d1d3", - "size": 609221 + "sha256": "e144e6a6c65d0daac53897843fe401549b362b29c75f66ec82a08d00dd135abb", + "size": 609476 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/delete", "status": "success", "path": "en/api/go/beta/sessions/delete.md", - "sha256": "f6db8c1f790deba6967966124facf6274c89bd7e56d466b09daebc76819d8aed", - "size": 6689 + "sha256": "dc3f4be1eaefb01c531f6bca1ffaad01490b91d4b2963cd681103607ce8839cf", + "size": 6774 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/archive", "status": "success", "path": "en/api/go/beta/sessions/archive.md", - "sha256": "4404ddf1783bc79533dd448501d482d03f75188f0d02e866c4c2c18bf6b0f2e1", - "size": 50599 + "sha256": "af2a363bddb9fb48f3a4c0f0647a1505e34ba632d0d9268f502dbcd65375ba5f", + "size": 50684 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/unpause", "status": "success", "path": "en/api/go/beta/deployments/unpause.md", - "sha256": "a061bf573ec6d97fd8f1b4c35e524ad0a1993542ba015bf9cba13e3abd4e63f5", - "size": 24128 + "sha256": "955cc2e6f00b4d5fb5b4c914cacc6e14be73c45de762d4d62d2ed7583516b034", + "size": 24213 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/create", "status": "success", "path": "en/api/go/beta/deployments/create.md", - "sha256": "d1a8dfff9b8191fd66de2025f17042408caa4d8edd5a96bd3055f37c3120ab03", - "size": 35547 + "sha256": "5db2350aaf9838a4cd82c33eefd0a5443043bb48480f8311065a28d73c55c48a", + "size": 35632 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/update", "status": "success", "path": "en/api/go/beta/deployments/update.md", - "sha256": "0460cb00fc92ac1815ef1de90336a76cec13e5491fdb7c7aa85e9d9a20b4dd7e", - "size": 35099 + "sha256": "c268656bbe1c29ec35aa03f5e4a16e1226f688f6051d9a298bd374c5871b4e83", + "size": 35184 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/list", "status": "success", "path": "en/api/go/beta/deployments/list.md", - "sha256": "f99f538d3ffc4c62e9913741d6487bb48d837fb02aae90c24b7262e72e4c2840", - "size": 25207 + "sha256": "cdd89b361eef1a5d3f76f468ca9ed59b0413c08ca19a46f2dae2ee676267a413", + "size": 25292 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/retrieve", "status": "success", "path": "en/api/go/beta/deployments/retrieve.md", - "sha256": "54a45e1644fb42862e07b2104ca40283a6e93f6e90e5943cfccced1761e08da9", - "size": 24083 + "sha256": "f3f2755cdeee6ceb931add3425f15e69d8d7ff3e8a3253c63f5a0ba8bb0c7d9d", + "size": 24168 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/run", "status": "success", "path": "en/api/go/beta/deployments/run.md", - "sha256": "437ec7fbc0ccc8cf8b96fa58b7ab5fb22695c406d9b26817c4a99252b315f9d2", - "size": 12946 + "sha256": "e0f6d8ad18d3ebe4cafbe3c77f66b0049f501686657d2485cac9f7a5fe70b73c", + "size": 13031 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/pause", "status": "success", "path": "en/api/go/beta/deployments/pause.md", - "sha256": "6a828f0b60dded1f734a3ba3a949a1b29c8f6bcf595971b4402702f391b50267", - "size": 24108 + "sha256": "9d75105171c8ad649253a2b8df169da28aa68c289d17f1e911881380ac981f96", + "size": 24193 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/deployments/archive", "status": "success", "path": "en/api/go/beta/deployments/archive.md", - "sha256": "be5fd6dbf4df6d841da342ba9b52790d212d52e533e7ea8dcf28055d367dec59", - "size": 24128 + "sha256": "95a0ade5cc1040e46723dfc0e5d685d98616b57aa5b993952a4a31e58b233a8f", + "size": 24213 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/create", "status": "success", "path": "en/api/go/beta/skills/create.md", - "sha256": "08941dd054a35153f383f3b77d26c2f58d83913359fd3e6c1898a04788b3d5b1", - "size": 8814 + "sha256": "829d7e6fae88fbb7bba809d976c2fc9a7f9298e14477517c8b95650c33659e29", + "size": 8899 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/list", "status": "success", "path": "en/api/go/beta/skills/list.md", - "sha256": "3374c92ec844d2e8250512b17cab9842a3b6a211fdeeb129aa2226c85a2d5a85", - "size": 9079 + "sha256": "82a2519f44c0b1cbfa9ea07216f12c473944b70ed5fc1e016fa85dfa4fd8113a", + "size": 9164 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/retrieve", "status": "success", "path": "en/api/go/beta/skills/retrieve.md", - "sha256": "eabe3fe0583966d329c6b60eec38edecfe6634854f7f12eeb9d139717d8dafbd", - "size": 8478 + "sha256": "c178b950ca190d4361ad4752921c2df0763bbff01684415ee205f317ff3536f6", + "size": 8563 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions", "status": "success", "path": "en/api/go/beta/skills/versions.md", - "sha256": "2ffb0816454cf131853be1c917dc0e2f2c8c20d392d50185095c84550d616745", - "size": 38809 + "sha256": "b066b1571452517c27816d37c94abe3d70d04c5144896141292e9c7894a5dc48", + "size": 39234 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/delete", "status": "success", "path": "en/api/go/beta/skills/delete.md", - "sha256": "8f78bc23d24ce8182be984c677724f50b37c09eee35296b60038321f30932e9a", - "size": 6763 + "sha256": "e615c1277d154a250810f2b8a17337aac2d0e68f93b53309041dd3d21cf17e3a", + "size": 6848 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/go/beta/memory_stores/memory_versions.md", - "sha256": "d544f576fc9812deeb50d109b028946b653cfa86f52dfd4dede66da67014e4b1", - "size": 50697 + "sha256": "fe03ef334779fd0c14ef278373a0167aa257cbce81b1f584052c348703d2a86b", + "size": 51624 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/create", "status": "success", "path": "en/api/go/beta/memory_stores/create.md", - "sha256": "ca56389120be704701fa4f4c71f5898a7402cc72c5cc7479fe5873a8142a6aff", - "size": 9098 + "sha256": "a8a7f072cedb877d24504b22de6a8519b588912d40918a14efbe02ddf033f023", + "size": 9805 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/update", "status": "success", "path": "en/api/go/beta/memory_stores/update.md", - "sha256": "8eea3ae0b61b3e4f0aacf263f73ed4ebdcb68ee98e50cc704c30c25e378da52c", - "size": 9217 + "sha256": "9652b8c3e26638a6439aa95dffda9c416c75f198ab8039c04b2a7212117fce97", + "size": 9659 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/list", "status": "success", "path": "en/api/go/beta/memory_stores/list.md", - "sha256": "44a0c5303f8adb00d2f77246127e3d8f2e8015af1d418bc5a8b90899c3f9d5bb", - "size": 9350 + "sha256": "9160e1e3b5f945511274fb43aba0649f5f7e24af0e0a1ef32ee3e33be2cffd84", + "size": 9568 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/retrieve", "status": "success", "path": "en/api/go/beta/memory_stores/retrieve.md", - "sha256": "d80ef80f32684e6b7b332eb8a72d0381ac6499302bc0e6d7517a6b3e6b348821", - "size": 8511 + "sha256": "3eac3fea68f0723d0fdb295ba73d6db03febd1c3d05c958569e802213fbeea99", + "size": 8806 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/delete", "status": "success", "path": "en/api/go/beta/memory_stores/delete.md", - "sha256": "7489d9dba64d288afb2294c665d206a3e0147d65dbbb30c9b5fc04cc059453a8", - "size": 7066 + "sha256": "0e27c20fb44e375e06210bfb6f2179d1a32ceb1ff034fa3d9f6ed955077ad591", + "size": 7122 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories", "status": "success", "path": "en/api/go/beta/memory_stores/memories.md", - "sha256": "0e931db0bf2e3ed63626f7cc9904118166121033f3544398761264e4d03188f6", - "size": 65922 + "sha256": "782cef54e9868be68623f3875466e4b322c98953a46b56f1aa09d6dc18a228fe", + "size": 65630 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/archive", "status": "success", "path": "en/api/go/beta/memory_stores/archive.md", - "sha256": "54396015c66fe82c9524434770be879a6fbf5486252b5afefeee05ef8fcf87a2", - "size": 8604 + "sha256": "441960ad1f79baeae764a72c4a71095eabcf2293eda9c8f9cee30428a4b50dff", + "size": 8919 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files/download", "status": "success", "path": "en/api/go/beta/files/download.md", - "sha256": "69cc2d61dfa940946cc96de298688338e240061b01afff959d2d4b5aed58aaae", - "size": 6350 + "sha256": "b799b5875b3d602fa930063a75312312e9ba67b752be0c60ad20ab35e0571307", + "size": 6435 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files/list", "status": "success", "path": "en/api/go/beta/files/list.md", - "sha256": "80b7d40c2e603f5e0720f07b71a33ac13fe2993c3b36a5a6b7f7f2fea40bf805", - "size": 8742 + "sha256": "db52d7b4db21445f417a3c42d0b50a15defaea82aa9a6650f95b25558ffa607c", + "size": 8827 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files/upload", "status": "success", "path": "en/api/go/beta/files/upload.md", - "sha256": "df81b3b2a67905f8ea6ce3a15676518825b010e027a64e3fce99aaea0543bc7c", - "size": 8374 + "sha256": "e03c14672bcb4c95542c6f637dd723a81deb5c44007dd58652807575d34ffeb3", + "size": 8459 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files/retrieve_metadata", "status": "success", "path": "en/api/go/beta/files/retrieve_metadata.md", - "sha256": "9eb002b0ab1358fdbe3ab16a69d344ac0269026283cd1b7e9a606881dfa74f4f", - "size": 7946 + "sha256": "3d82d15c396827cd1cd014601ae7436d51004d5cd5697b32acd257baea747fee", + "size": 8031 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/files/delete", "status": "success", "path": "en/api/go/beta/files/delete.md", - "sha256": "fa40d6a97fbc4d617995614cf9f653e7b5c36e50ad8c7a6e6855a4c6f2cbec9b", - "size": 6627 + "sha256": "7bd50a4c19db511714546f1892afd8b269cabd0c4b09f63de0cba8976f07f50d", + "size": 6712 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/create", "status": "success", "path": "en/api/go/beta/messages/create.md", - "sha256": "89dadda6fbdd6a07f5996cd98c9a1fa0034817c464c6c600847b529279d987c8", - "size": 329740 + "sha256": "c12118b87b7aa570943598e519ad1afe3e88c46d3424d18d5ba83dbbc1f3a52c", + "size": 332033 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/count_tokens", "status": "success", "path": "en/api/go/beta/messages/count_tokens.md", - "sha256": "2896e9d091c5d0e34d3689b8ad6119671495f14f36e923b9cf1b32f119a99c42", - "size": 157908 + "sha256": "8b137b9eb4b29e455201edc12f6d9dcb8d403c21393773e863e4af0a2238ef60", + "size": 157951 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches", "status": "success", "path": "en/api/go/beta/messages/batches.md", - "sha256": "34b8b89bbb3ba5c18848dbc371c150e11a2062ff793cd5f4d0cd40ecad517e42", - "size": 889676 + "sha256": "d34f259aab75827c096a7849178cd3cccfa13e56e86148ad4d51239a4f086bff", + "size": 902013 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/create", "status": "success", "path": "en/api/go/beta/messages/batches/create.md", - "sha256": "5fe34642e8ba82f79a76a28df8610a2bade60c49756e7916fe423e128573ceb6", - "size": 190393 + "sha256": "a147d153beab2acf573eeb9b0b410f6c75238582970f285c050d46e6fa98c362", + "size": 193053 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/list", "status": "success", "path": "en/api/go/beta/messages/batches/list.md", - "sha256": "9920aa81da2721aa2155bb6f3ff8b5ec20b7f52fbb092af063ea4161451904c2", - "size": 11003 + "sha256": "12423159d11b8539dc200526cd3b6c1a1bcc14ff859964fd103ec2a3214dfc29", + "size": 11088 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/cancel", "status": "success", "path": "en/api/go/beta/messages/batches/cancel.md", - "sha256": "600d57ffa6cbfe83094044ccccaf5ab7b79ca48dbdd988962c89c94246253990", - "size": 10852 + "sha256": "0cfac6a895023ef9d8a1b6417ee16aa82040347f86f2a593aab526f311ef6fa2", + "size": 10937 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/retrieve", "status": "success", "path": "en/api/go/beta/messages/batches/retrieve.md", - "sha256": "5361ac4a2c43718b614ea586565d52afe640218972deaed11285dc0495912a2a", - "size": 10530 + "sha256": "c2bcc7b1d74fde8f57a437ddbce3e63f72ca42f25067134a2b39f79faad38ec1", + "size": 10615 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/results", "status": "success", "path": "en/api/go/beta/messages/batches/results.md", - "sha256": "be5e0562fe8f5ccb75b02fe7eb26d2132407431f3ee98f395e8c13e7234a0999", - "size": 172490 + "sha256": "1da812f2e63e85c11c0f52c58571408678f2dad98d01c56dd2df63479560c418", + "size": 174909 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/messages/batches/delete", "status": "success", "path": "en/api/go/beta/messages/batches/delete.md", - "sha256": "3021210059865164946954fd86fb6d83a146c1a660a94500f264e87a28129f64", - "size": 7115 + "sha256": "cd6739c5c652283d021c32ce3b7602b352e63a4dedbc11ceb3c43d19256fbdf5", + "size": 7200 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/create", "status": "success", "path": "en/api/go/beta/memory_stores/memories/create.md", - "sha256": "c681dca0a33111deb866dd4c24db5d7ee4e02a17153139cc2278725ba585869e", - "size": 10395 + "sha256": "2a916fc336bc9a2923c0b93e849a202c0f17e8feec2acde8282a1100d02d21cf", + "size": 10346 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/update", "status": "success", "path": "en/api/go/beta/memory_stores/memories/update.md", - "sha256": "f6ed0f5bfe4fd49b63ac4b5603201463dc7aaa4a55b6399b0bdb650164903a99", - "size": 10877 + "sha256": "600a005b196652e9b1b081c1e97389998799d3231009005991e4533efe91ab32", + "size": 10749 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/list", "status": "success", "path": "en/api/go/beta/memory_stores/memories/list.md", - "sha256": "30712fa4cf6dd88acad0fb1e1a00714ef551b24f42254bff752d970cfbc8276f", - "size": 11907 + "sha256": "ea597f0db989dbd9782686fd520653aa76d84f03cc80b5cd6e968111acf7ece0", + "size": 11900 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/go/beta/memory_stores/memories/retrieve.md", - "sha256": "19e7c73e96e96120dfe5145698779b547a25b1e52e3a4d76d784ffdd503d1c64", - "size": 9884 + "sha256": "d5087e3c56e2438d703993bb1365718ebf2e6344b3f37f44317b7293dbe87857", + "size": 9814 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/go/beta/memory_stores/memories/delete.md", - "sha256": "c7ab4f82a611ec21f1ad0932e9e67ca528afd891d562e8e65f53461fb7011121", - "size": 7769 + "sha256": "e768913f3a8da3ff0894bc166510d08e63bdcda32fdc876e70d7829acef58a83", + "size": 8008 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/go/beta/memory_stores/memory_versions/list.md", - "sha256": "42743fd48b7163ecde81fa4ab01acbdd7defe23516a230395211fa986656de33", - "size": 14846 + "sha256": "dc8cf7684e188937bfbd866f71568892b3cf10b06cbac9c21d1e548f5cf5a13f", + "size": 15119 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/go/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "ad3a1ac372381c84ba3e4044cdc2a6745e9659dfdd3f88b4932fb0b8f8bb4700", - "size": 13362 + "sha256": "2009cacc1d2839d170228d719b059b0cb424cfd89a94ecdbf9a56b15df197b1d", + "size": 13525 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/go/beta/memory_stores/memory_versions/redact.md", - "sha256": "0af1804d974176c52d0b7d6c1cafc34775c8f19023b165ab875ee14cbf77fa45", - "size": 12948 + "sha256": "727f5b346a3c516121719ddd345ce16dd391ad72f2cae9810db49b5a5539c17d", + "size": 13219 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions/create", "status": "success", "path": "en/api/go/beta/skills/versions/create.md", - "sha256": "18250ff40a3cc7a178f40a47f7906483b6e2d1b93939299d497a74faa00a91db", - "size": 7909 + "sha256": "11040650345bbe5d3535b026b277b7862582fbe634cbb5b5e43fa4200ded3a23", + "size": 7994 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions/download", "status": "success", "path": "en/api/go/beta/skills/versions/download.md", - "sha256": "209739cd1c3b97f71c1808a7910e28117093c8b2f2ae759268e2da94751fb802", - "size": 6834 + "sha256": "42acf72d23f4bf7962bf454309532f369a00c251fe899acbdb41785cea98aed1", + "size": 6919 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions/list", "status": "success", "path": "en/api/go/beta/skills/versions/list.md", - "sha256": "a17e9b7a03d9e8d59ecb8fe2a2d3dcb16f9bf28f9ef32a547fecdd969a077ac8", - "size": 8013 + "sha256": "d78c97c290460f733a1db2614f514e8640337d025d8ce9084b2e64115a99a671", + "size": 8098 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions/retrieve", "status": "success", "path": "en/api/go/beta/skills/versions/retrieve.md", - "sha256": "fa11bd5270423100df89d36556f4dc44f86728f6fd1721cb4b62318ec562921a", - "size": 7958 + "sha256": "ce8017b91a8e4c4be405ea148ccd66dd2435c3459403319af7b22ba7c91dcfe7", + "size": 8043 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/skills/versions/delete", "status": "success", "path": "en/api/go/beta/skills/versions/delete.md", - "sha256": "5b3cb30cfdd377ade1d246b327d333e4de44845b2a2f3807ddeb4cf7a5bd263d", - "size": 7170 + "sha256": "112afe0a0c3a3a3478b9b9fceeb4ab5366f5ea04a889ba5ca7dbded27d491cf1", + "size": 7255 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/list", "status": "success", "path": "en/api/go/beta/sessions/threads/list.md", - "sha256": "297a10448039a7bd339891d5680843de215ec915b1a97ad8e0b93927c5f5025d", - "size": 39031 + "sha256": "a6ae02ff15139c09591c3770a2ff9df8729478d85281038d9654f1d5465d5c30", + "size": 39116 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/go/beta/sessions/threads/retrieve.md", - "sha256": "10cbd52578405fa6923f74d15d578f9ccf9b1752dae679f59446aba612b97d6e", - "size": 37793 + "sha256": "a3957bfb8319f1373e3dff7781ac68f90a38ffb96c8268d1c847252e63873ec1", + "size": 37878 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/events", "status": "success", "path": "en/api/go/beta/sessions/threads/events.md", - "sha256": "bf12a99799ed585225c27d7453a2022c00bbb86a070f5b20e5c7e92e304b5aa2", - "size": 208898 + "sha256": "b9bbef0547498c88004316b902a5a74c38e65800fc0fae0299948918e536b707", + "size": 209068 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/archive", "status": "success", "path": "en/api/go/beta/sessions/threads/archive.md", - "sha256": "e6210f5932299b963ee476a45c7e3c6aacd82ac5a13a6b35eecfa837a4d289da", - "size": 37829 + "sha256": "d72f14ad6d7ccf91eb6b4a13211ca65857c12ea3d88657da4117deb70822d168", + "size": 37914 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources/update", "status": "success", "path": "en/api/go/beta/sessions/resources/update.md", - "sha256": "41c55c041987ddb62f6bda8d64f5a5e5a9b1e968c0c6ef816af7145c064ff776", - "size": 9906 + "sha256": "87c3efc609ea98971c45a28a7c966eaafbd37bc6c66d488a5a941669da1a5584", + "size": 9991 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources/list", "status": "success", "path": "en/api/go/beta/sessions/resources/list.md", - "sha256": "b8253ed4a293e281355e049efc7f0fd15102587dc13dfdfed22ae0ca93023c07", - "size": 10196 + "sha256": "924241a48acc2f91194abae885d0e9e9b8e0812607308cc2ec9dc5427253501f", + "size": 10281 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/go/beta/sessions/resources/retrieve.md", - "sha256": "2ad83a34d8f64e938982a5868e0bc89f3263252a142144b1e36766b9d9df4133", - "size": 9646 + "sha256": "c924fee4794b1f5eaac29d1aa82bdf97e31e2b579582034829bb9a7d447cd918", + "size": 9731 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources/add", "status": "success", "path": "en/api/go/beta/sessions/resources/add.md", - "sha256": "542d805e1a3287fe50bc294d6c21d380e1e68e2d2cb749636ab11c38787d77c7", - "size": 7388 + "sha256": "d14a41d1e6d5f57917b48e15c488a119a76b7ac89b33bf510bbda0dd7b660e4c", + "size": 7473 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/resources/delete", "status": "success", "path": "en/api/go/beta/sessions/resources/delete.md", - "sha256": "d20f6c181a854e91aca5032efac1df26a289972ff2b7b0111b519f775852e258", - "size": 6906 + "sha256": "930e579af2d41b16d8f806d77f0e0062b7d724bcfb310367553c00742eccf4f3", + "size": 6991 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/events/send", "status": "success", "path": "en/api/go/beta/sessions/events/send.md", - "sha256": "c29ff495bbb777409ea49f53b3b2067a16302a0051ae7a3c5089022f8af6e654", - "size": 30819 + "sha256": "ce9c1b7904cbf5919139522bf2b0c2b19236b0a4758a285ce209cb0441335e3a", + "size": 30904 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/events/list", "status": "success", "path": "en/api/go/beta/sessions/events/list.md", - "sha256": "75d253cadd775474afcf502359b8dc3e5eff040fc9e75e3ed985c823439f7670", - "size": 109373 + "sha256": "b06eca453de85a876322c61b1b49570a4446739eaf7ad3f417afd12d80e41423", + "size": 109458 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/events/stream", "status": "success", "path": "en/api/go/beta/sessions/events/stream.md", - "sha256": "bff9f9c790892a1bb58e14cbb6b6511b3fc6c33fbcdd23ca206db028ac93f652", - "size": 106018 + "sha256": "bc9058f017d4e188c6768b85e5d1c2c3e3cd9ea1bea26a835d4dcf583f53c7ab", + "size": 106103 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/events/list", "status": "success", "path": "en/api/go/beta/sessions/threads/events/list.md", - "sha256": "1a2724ad608ad4106f9bb0739c534c22548479d7e28b451cc147442d1c801db4", - "size": 102812 + "sha256": "3ac99aa1b1edc664a7c29c10bdd40cdaa0924114b75a4dfa6c6379bcae6b9035", + "size": 102897 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/go/beta/sessions/threads/events/stream.md", - "sha256": "f9263948d52c950e08adb0885372292fd2bc4bab937835aaa740080fee2550f9", - "size": 106219 + "sha256": "67238b54ae26b0a2d17fa5b1446408fea93de329e8529e41aa378dcc98a288e9", + "size": 106304 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/certificates/create", "status": "success", "path": "en/api/go/beta/tunnels/certificates/create.md", - "sha256": "ff8ea46dd1aaae3ab6b0a788a9b6f3a8564073d50795d8aed7f8e1bbf1a82b7b", - "size": 8233 + "sha256": "32383af499ea25e2a05fa8f481ed8219cb35b990ce3b19fb37c7938482d6b3ec", + "size": 8318 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/certificates/list", "status": "success", "path": "en/api/go/beta/tunnels/certificates/list.md", - "sha256": "fd05ab3c8d0826d12061ba64a051d443f39ceded8afc46681f1f7e378eaa79e9", - "size": 8427 + "sha256": "1b3f20bd833894fe0f8a417f7e10b14f3f6ec92703d5fb3d29c854eab0077363", + "size": 8512 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/go/beta/tunnels/certificates/retrieve.md", - "sha256": "1afaa0922e95f51c8ee5ba0a08eb655289ac882e8aeed145d9d027001f235782", - "size": 7979 + "sha256": "01f0e2a58b4f46cd73600306de1781fdc5bd227969a87da5c658fac68fd7e9a9", + "size": 8064 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/go/beta/tunnels/certificates/archive.md", - "sha256": "a07f02e4d021fd98c15c220b52594b43765d4eb88c42b2a9be48223fa64156cf", - "size": 8234 + "sha256": "c00405cd3770dce9a17e8118416a410370c7eeb4bffe9f9668fd7ed76d63b524", + "size": 8319 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/agents/versions/list", "status": "success", "path": "en/api/go/beta/agents/versions/list.md", - "sha256": "f4583aa956678e579cd46d2bbfa3c6da7693f734da48d9b11dbf6f485dffa1dd", - "size": 34897 + "sha256": "6ee4b86dd3a68c87609e433d13180aa5031fee03e18ba22fcdb1013470570224", + "size": 34982 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/create", "status": "success", "path": "en/api/go/beta/vaults/credentials/create.md", - "sha256": "75d778b725758096dc378d5ae8bb4eed670d19c771487fd171564671bf400485", - "size": 17127 + "sha256": "51278aaed14589694add98c4053f63ef7912bbe2c887f2558ad2cd4967ba96d1", + "size": 17212 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/update", "status": "success", "path": "en/api/go/beta/vaults/credentials/update.md", - "sha256": "c0a6516c308b3c88b5b44e3580fda29038f10d9a737fe9896f86b2caa745d9e3", - "size": 16553 + "sha256": "b44a70b8385da6a1f5837979421500ded5ed3743d538b6d3692cdbf568c6fa86", + "size": 16638 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/list", "status": "success", "path": "en/api/go/beta/vaults/credentials/list.md", - "sha256": "e169f5428c34af4bfa0bfbae186c647a7f8643a67755d5790e204b0bcf917d52", - "size": 12041 + "sha256": "bc8803a51a9d08bd4611036fe29b0216fd786efaf0817f7f068e56e95b0ffa59", + "size": 12126 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/go/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "0ae3d333305afb755dc7cc3726bc0ee0ea02e7c3d13e26fe4ffd452ef668b4b1", - "size": 10972 + "sha256": "f2cddf61d44cfc057f8d4e40292f96e0817abd773a454d730c449a492736f06a", + "size": 11057 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/go/beta/vaults/credentials/retrieve.md", - "sha256": "ce519667651e463c550058b5559855b9b061fe2bfd06ee6616cf2111d39f9a6c", - "size": 11544 + "sha256": "f1c1d97698777613eefaaee165291b392a33c24f413a53271e8a1646e2ce37b6", + "size": 11629 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/delete", "status": "success", "path": "en/api/go/beta/vaults/credentials/delete.md", - "sha256": "0054f69f055e7d4cc76b108d26b77dad140e1826e07c21f46e93ebc743a92f3c", - "size": 7037 + "sha256": "161546b3e4f3f61c1783d66673187cb3aae1159183df4864d0852ba243d7a4c5", + "size": 7122 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/vaults/credentials/archive", "status": "success", "path": "en/api/go/beta/vaults/credentials/archive.md", - "sha256": "3730beb6587cf675d59692018d43a1df96089d531fdbbd16ea2481a26a0e176d", - "size": 11564 + "sha256": "973dc330138783eef99823c8debdabfb1d30c0e7fdf909b8b30b2eedd4b76e49", + "size": 11649 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/update", "status": "success", "path": "en/api/go/beta/environments/work/update.md", - "sha256": "4e53b3461b2ab12cab30bfbaaa9840ad4c52c77c4814802e352cca630a6e9150", - "size": 9503 + "sha256": "e7d143473e4b90173266640c70387a09fe099543c5b2a076e4562f411fa2c281", + "size": 9588 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/list", "status": "success", "path": "en/api/go/beta/environments/work/list.md", - "sha256": "babd951b166d402e3eb197c03700a826dce66772e1c5fee9da7b35d0bf62aacf", - "size": 9106 + "sha256": "d3cf3c751b51836294f0031a6ff60a802b548216cf49e73abc1b9d50007ccbf4", + "size": 9191 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/stop", "status": "success", "path": "en/api/go/beta/environments/work/stop.md", - "sha256": "761052deb5dc157da6ffb3bedd2491cd6e2bdb22e9b78386fed4f657758383ba", - "size": 9427 + "sha256": "db5e3baa48365ab4619cb3f005cf56e40b4fdd4e0afb2aa0a8eb4b1586c490d5", + "size": 9512 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/retrieve", "status": "success", "path": "en/api/go/beta/environments/work/retrieve.md", - "sha256": "6273d1b1694e26811e652562ac15c060d534a7d801ebf4e0e97b29c23d8d73cd", - "size": 9225 + "sha256": "6c718ab1146d0c1e50fb3d06cd0461cf38c384895728ac44fe67878086965c11", + "size": 9310 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/ack", "status": "success", "path": "en/api/go/beta/environments/work/ack.md", - "sha256": "f953d1a2dce4ec2432f18a655a840b9350c528b11460b941b249616a25f1155d", - "size": 8904 + "sha256": "9c155dd8627a1f260752f245dcd9484520a08c79d1770680f3ccf7d7db2436ed", + "size": 8989 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/stats", "status": "success", "path": "en/api/go/beta/environments/work/stats.md", - "sha256": "90ef6198c3d1400088f8315d18e1b6a3eae1c073e2eca89d31fd1bf3e8256086", - "size": 7403 + "sha256": "d8499fc2eb98a467a5fb9e2ea8657c50baca6f784be1ed669affd4128576d681", + "size": 7488 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/heartbeat", "status": "success", "path": "en/api/go/beta/environments/work/heartbeat.md", - "sha256": "13851fb51ae1e69eda3c82717bb1bdd5dfcf8ee16be79b819132444ef8752ca7", - "size": 8256 + "sha256": "3692a4dfc6d480cb542c50c69e36a70eac85591f32cd9c796bb23fa9d29ffaf7", + "size": 8341 }, { "url": "https://platform.claude.com/docs/en/api/go/beta/environments/work/poll", "status": "success", "path": "en/api/go/beta/environments/work/poll.md", - "sha256": "c91fec2e6d96d711b2e0fbfb62d070d4deb0c701fde2b65225f4fd06b4149bb7", - "size": 9386 + "sha256": "6711b2aec508ec01202ea97d96c21ba01d3a8b8cc3825d3b207c7bddbb85d908", + "size": 9471 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/sessions", @@ -15367,8 +15521,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/webhooks", "status": "success", "path": "en/api/cli/beta/webhooks.md", - "sha256": "df9bcb8f628a772e72e5032b056f847e653cfdb94008f0631bccd8dc201b8fe5", - "size": 35371 + "sha256": "c9fdede1add0bda5dd09b8bd45d5346a05eb99296a41eb5c43fd7a27e288ab8e", + "size": 37705 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/skills", @@ -15402,8 +15556,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles", "status": "success", "path": "en/api/cli/beta/user_profiles.md", - "sha256": "19731959a31be821d98cb686d55e1b67e5cfb7804b62cc55514ce49f81084339", - "size": 41211 + "sha256": "32ac84df5b28ec210834fbcb69796ff5975b7148794474487bd0f2eaa3affb24", + "size": 45274 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/models", @@ -15423,8 +15577,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores", "status": "success", "path": "en/api/cli/beta/memory_stores.md", - "sha256": "2756c3950f1f0d0455261adbb30a909f94ebc1d827e650b42eab21759d33cc5a", - "size": 69887 + "sha256": "01f5cde5abf83e2786c46b0cdead666b9d8ab030f8ef255d74f246d6806eb39e", + "size": 71427 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/tunnels", @@ -15451,8 +15605,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/messages", "status": "success", "path": "en/api/cli/beta/messages.md", - "sha256": "3e13968e499cd5c8cd0ec350bbf7c24c7388f4cd47a91007f79837148b29119f", - "size": 2912320 + "sha256": "3a9cbf5cb4a21927dc2621b6dd14148ef59aebd5eecea6ba746ab4ad8c381f67", + "size": 2935296 }, { "url": "https://platform.claude.com/docs/en/api/cli/models/list", @@ -15479,29 +15633,29 @@ "url": "https://platform.claude.com/docs/en/api/cli/messages/create", "status": "success", "path": "en/api/cli/messages/create.md", - "sha256": "472ca49be9354574ff7379f51ec03dae5700b2195f7056049a838a73233af30d", - "size": 59240 + "sha256": "03472b8f709bd3987b65dd44c296be44c09d83ac08761ec3a684fd67b1379cfe", + "size": 61454 }, { "url": "https://platform.claude.com/docs/en/api/cli/messages/count_tokens", "status": "success", "path": "en/api/cli/messages/count_tokens.md", - "sha256": "389e51224e9f9517b5f5b43e6c30e536c895c896c475bce3b07a6443c030788e", - "size": 8856 + "sha256": "aa161c84f800e0e1002d1fea041ca7bf6bcbbd378b9bb455b80ef501f6613656", + "size": 8814 }, { "url": "https://platform.claude.com/docs/en/api/cli/messages/batches", "status": "success", "path": "en/api/cli/messages/batches.md", - "sha256": "f01cdba56c44be95913994ae2872bac5817f0ef25b2aca65bf54c8c0196e58f1", - "size": 154097 + "sha256": "fcb941fb279a94d84571d928acebb43d540432fc03fa52b52a330e831ed0b4c5", + "size": 163331 }, { "url": "https://platform.claude.com/docs/en/api/cli/messages/batches/create", "status": "success", "path": "en/api/cli/messages/batches/create.md", - "sha256": "0f9833678a0ee47eea08f972521c7c0767fc0c5068cfa4b2e7a8575f89bbe55b", - "size": 5216 + "sha256": "cb1a4bd11289a1245d9bf71736f6fa418d8ec5c4b10a797d16872924c79291f3", + "size": 5174 }, { "url": "https://platform.claude.com/docs/en/api/cli/messages/batches/list", @@ -15528,8 +15682,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/messages/batches/results", "status": "success", "path": "en/api/cli/messages/batches/results.md", - "sha256": "dc765b6c744cf283b777fe102a8c74ae6203b488f70e4e53098b9ec17ab99ff0", - "size": 34273 + "sha256": "abedc8f68f5277703ef5ff5b67a8f310293d7d89f6539ff71d6441fd4c87eae9", + "size": 36613 }, { "url": "https://platform.claude.com/docs/en/api/cli/messages/batches/delete", @@ -15654,36 +15808,36 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles/create", "status": "success", "path": "en/api/cli/beta/user_profiles/create.md", - "sha256": "7b9014afb33e1d82421d81542e60a9e4c393f7f07af5dc8be9ad4adda5cd454f", - "size": 8238 + "sha256": "cc8575fe4ac8d4d3ffb56e2db7549207fd2055fa8d11563a5c6eaa4caa2f9d84", + "size": 8528 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles/update", "status": "success", "path": "en/api/cli/beta/user_profiles/update.md", - "sha256": "b5050643d6dfc506090100979caebfdcae5720839373c0ef2a312c8f7dcc2a64", - "size": 8209 + "sha256": "7e719f19885911a838b65e7152200bd2cda1db3462d65835e9eaf371f2359c8c", + "size": 8381 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles/list", "status": "success", "path": "en/api/cli/beta/user_profiles/list.md", - "sha256": "4624f1db068882fd4d166390db630559824e031c5157bc4de6a32203225b817a", - "size": 7174 + "sha256": "8ef86b1767283b189d4cff9aadd9a0922e22cecf5037b804f4eabe1dce9d69e8", + "size": 7306 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/cli/beta/user_profiles/create_enrollment_url.md", - "sha256": "f1aa48cc01d21588913bf907a70f262f543867e95e3460f19543479d669a192f", - "size": 1800 + "sha256": "6fc093254afcb5945e4d2015f3aacb3e774f3a3eedbb62b53a7ac906a9df4072", + "size": 1712 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/user_profiles/retrieve", "status": "success", "path": "en/api/cli/beta/user_profiles/retrieve.md", - "sha256": "984634d0cec7d5c7cdcbb3822d062022c1203e1ba222b8f9923b7e51f0370155", - "size": 6510 + "sha256": "f7dc08106a62e813a9158985b68752f4612cb5e06025186c6fd80cc6a21f2e44", + "size": 6642 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/agents/create", @@ -15948,57 +16102,57 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/cli/beta/memory_stores/memory_versions.md", - "sha256": "8b87dd8ef805141143a7306a57a628cf3c978e4473c6395e09534382e976df7a", - "size": 36350 + "sha256": "7c65321d6ed061ae04b31abd4ac3119e02f88689e58bc28fb51ed09597824dc5", + "size": 36811 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/create", "status": "success", "path": "en/api/cli/beta/memory_stores/create.md", - "sha256": "094e9068e93d13246dff2c18f1240ad58d6d6584664556b95ee5c2b691af405b", - "size": 3600 + "sha256": "a0611244a787f7323e303fa91b9dcf1e983085868c09639f22acb47bced313ae", + "size": 4218 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/update", "status": "success", "path": "en/api/cli/beta/memory_stores/update.md", - "sha256": "abf0837d52d2ba0b97702313fb60af8676ff5fccf9f7d96110eb403f995b42e4", - "size": 3697 + "sha256": "467eaa86b6598fd4022d424810e1617304d2030ef79f32764c60816e49d1fca0", + "size": 4051 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/list", "status": "success", "path": "en/api/cli/beta/memory_stores/list.md", - "sha256": "933354a5aedf3b7a67bac21673b9c4c41da4b61410483808e79dff8fc562de3c", - "size": 4134 + "sha256": "e656259f70b49f5f3f81974478e22246f9b74e461e6f592246851af24be59e5c", + "size": 4237 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/retrieve", "status": "success", "path": "en/api/cli/beta/memory_stores/retrieve.md", - "sha256": "6db8ee4663204b1b74cc4df14cf95ef27a12b796eb258099f2f453c662a592d7", - "size": 3046 + "sha256": "2175cc3cb198b6f0b22ef2c617c999cdb7af9f78c2059be804113ee17c867d9e", + "size": 3257 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/delete", "status": "success", "path": "en/api/cli/beta/memory_stores/delete.md", - "sha256": "dd5fb06517fcd013f3e6bcb8362c0a61e82cb320334a6e0031fe029e5ab2222e", - "size": 1561 + "sha256": "a5a814ffaf88115b5e45b71d0b5ac25517364e367fb75bb45f5fa4afdae31581", + "size": 1532 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories", "status": "success", "path": "en/api/cli/beta/memory_stores/memories.md", - "sha256": "1c5b9b09c4b3c86a80f17c7e3f8726f2ce9ef25707011d91cbfa5f117aca1d20", - "size": 38190 + "sha256": "98e894eefcf7a30b00ec774424d1ca0cfdbbde49e82d3ae71d18ae43073a01ef", + "size": 37453 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/archive", "status": "success", "path": "en/api/cli/beta/memory_stores/archive.md", - "sha256": "baccbc206dfea6b1ea5066042a8a4ec6899121cb8751e0f9546f67f026085ad2", - "size": 3123 + "sha256": "916665c4bda0102c58a3031166ce5d43f9d46dc1623c33b15dd2db04e78daa19", + "size": 3354 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/files/download", @@ -16039,29 +16193,29 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/create", "status": "success", "path": "en/api/cli/beta/messages/create.md", - "sha256": "3a485a62e0379ee2ac60e89997409adda100bcfcc5c8bd0b71582e80274376f0", - "size": 215415 + "sha256": "de8340aeaa162bf7975ff0a591282ef7237a623922e082c7466bf7ec8602b8aa", + "size": 217629 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/count_tokens", "status": "success", "path": "en/api/cli/beta/messages/count_tokens.md", - "sha256": "b26ece42c146e38e05c84e707ea9735a30c8c71632a0e23a993941c4159de7a5", - "size": 10574 + "sha256": "ba80cd1345eac7bf437ce0192c68ced12eea4022f95b42c2cacbb3c44dd9951e", + "size": 10532 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/batches", "status": "success", "path": "en/api/cli/beta/messages/batches.md", - "sha256": "85f9cae2098d5114d1924bd80db9787a2e83b8c823bf010198efdd87f99cc493", - "size": 735359 + "sha256": "5c7d64de17c3d0a83c8fbdf6f7d9add1470b1d5e62a8d96bcab58bc9bd1a48b7", + "size": 744593 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/batches/create", "status": "success", "path": "en/api/cli/beta/messages/batches/create.md", - "sha256": "276018b5b6db1edd5ca6998ede662b2538679c1003a61640a943112db516ae8f", - "size": 5367 + "sha256": "bce74f592896e0faea29eee7e4929f40d90d8aadf203b747d7cc1352ac286d20", + "size": 5325 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/batches/list", @@ -16088,8 +16242,8 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/batches/results", "status": "success", "path": "en/api/cli/beta/messages/batches/results.md", - "sha256": "7991ffea34f7ebce4857373436b934536f2da4317ed3d491146c9425c88feb79", - "size": 182310 + "sha256": "e34b13d0eb393a0bfa041b27e703dc288ef440265418b346aeb985a1e2eb82bd", + "size": 184650 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/messages/batches/delete", @@ -16102,57 +16256,57 @@ "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/create", "status": "success", "path": "en/api/cli/beta/memory_stores/memories/create.md", - "sha256": "0c3e10e11b0e73a3cc8f151977c3ea0e6f23880189ad9d87bf2069c7dbecc4d6", - "size": 4890 + "sha256": "7a109117ef62c5de8981fe1f75ac95dbd1f41a1e94f0763e1f18da55c9bdcb60", + "size": 4750 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/update", "status": "success", "path": "en/api/cli/beta/memory_stores/memories/update.md", - "sha256": "d3970beeb9408575eb72e325e9842879700ab3ed49dcb07780b4c8dd37ed3384", - "size": 5343 + "sha256": "5e8760f3765dfcf5e3e62104bf9b5363616219f00dff33c0196e22cd7304f155", + "size": 5124 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/list", "status": "success", "path": "en/api/cli/beta/memory_stores/memories/list.md", - "sha256": "ab21e68e04a09ffce5892a63b57b83506098c743a69318ff4ef1266fdf410a1c", - "size": 6764 + "sha256": "a3b2981a06202c3494d0d023eca2af14e8d7aefcf4fa3951ce6149deb6931b17", + "size": 6664 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/cli/beta/memory_stores/memories/retrieve.md", - "sha256": "317ba8e4140206d0c44c4c7c4596ae32a09acd8effbad28e923665808b5ee59e", - "size": 4421 + "sha256": "ed6ca8be8d73569adf3b12911d237ebb14f27385733af8b33db8b6498e796b4e", + "size": 4264 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/cli/beta/memory_stores/memories/delete.md", - "sha256": "ff3a63fb0d5eb91c74327bb683b0edc8e45c9eeebe91d708ee3ea50a8c32cc51", - "size": 2248 + "sha256": "8ef0f833b031853a39d30cc76d1690daba5eeed662938eba594a3e87ce247329", + "size": 2403 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/cli/beta/memory_stores/memory_versions/list.md", - "sha256": "c1c3ce03dec8febd6fd1eaff9aade781b8fc96d7b8c04fc791f903a8596229c9", - "size": 9948 + "sha256": "3f6c164ff9c787579a8ab88a347b98f4cde1dc1e262b53acda660c1f657a33ba", + "size": 9924 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/cli/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "911f6c5a4f730887ebad7dc8a50dec7e5d3e066d0f334e5cef5284a3b31fe86e", - "size": 8432 + "sha256": "1f35beb6a40279aa1c23052d778c5a364d87c5ade79f18e248f02b2e4c23ab27", + "size": 8509 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/cli/beta/memory_stores/memory_versions/redact.md", - "sha256": "05eb36b3cb0438547bf7c05a61eee3c1dd52c35759b6de955a3e1f013ddf4c72", - "size": 8013 + "sha256": "853de71dfac51c3082357b15d18a7ba8f56c0f3abb0ec1da4dc3fcf1fecc619c", + "size": 8200 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta/skills/versions/create", @@ -16431,2290 +16585,2290 @@ "url": "https://platform.claude.com/docs/en/api/php/beta/sessions", "status": "success", "path": "en/api/php/beta/sessions.md", - "sha256": "2fe44d1bae4a75c48ceb7f67baaf00945fda95a8a928a4408456307a270159a5", - "size": 197873 + "sha256": "75a4c852b975096975c7996e7d44d45485475746d934999f07d9c51c9874d05e", + "size": 199270 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/webhooks", "status": "success", "path": "en/api/php/beta/webhooks.md", - "sha256": "4bd4b80b2c42b0ce435fa8eaf3e230f5de4f4294b9fe1f2766ccf71152d6c7ac", - "size": 22518 + "sha256": "dbcac219db91f6509c0d8e83006f4783c03ae49910c4408c62d16969e61ee9e3", + "size": 24024 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills", "status": "success", "path": "en/api/php/beta/skills.md", - "sha256": "64d5d4f4ba1106e183b4e0ad120bbf2837e5c1b424db1fe1c75a88ed0afd842b", - "size": 23613 + "sha256": "27c6e353c26e00d70d0f79d8d6ee45c836a88548f0cff61aebc6069d9582ceba", + "size": 24186 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents", "status": "success", "path": "en/api/php/beta/agents.md", - "sha256": "ab7fd019dd824bd152972719d6c53f48092a2cbed3d1761ccd4ef7e0241340fb", - "size": 81651 + "sha256": "7e856e1e50ce125cd06930f1efa91fd701fded8ce2e2829cda58fdfef9b4d17f", + "size": 82093 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments", "status": "success", "path": "en/api/php/beta/deployments.md", - "sha256": "bc69a6b6cb3c558a6e73d6d3369706c5502cb9f5ab13a625906b3c707fc8dc15", - "size": 55759 + "sha256": "8b1577bc23ab7cff4ddffc1d21456d3800fca7e7c0deef3ea608e40ece53442b", + "size": 56347 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployment_runs", "status": "success", "path": "en/api/php/beta/deployment_runs.md", - "sha256": "55e1a1eb994cb47b688e4b496a7b3edd81d2a068c2adeaad25f9361c9f59d098", - "size": 11921 + "sha256": "30ca8d8ede447c111c6ebe9ae443927e60bf2c2b3f04587824cab28ef17961ac", + "size": 12099 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles", "status": "success", "path": "en/api/php/beta/user_profiles.md", - "sha256": "66a31296f3e90f012860a75b212c9c34dc6f5bdf5237fc8d956d5b4f8856f678", - "size": 29283 + "sha256": "76d188b844ba0f266b45d1e7687f01d40f70a464659161e06c7267a30d9f6efe", + "size": 34412 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/models", "status": "success", "path": "en/api/php/beta/models.md", - "sha256": "56cb4eca7eafce673e02f56769ab043c11aad571f929020e2ef342cffcae81b8", - "size": 19640 + "sha256": "5d324e60a3f02da0adddb0ea5b19a7b220efe328543016efdbe34baa63ced970", + "size": 19754 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults", "status": "success", "path": "en/api/php/beta/vaults.md", - "sha256": "3c1470cfbed4c908af2d372fe69ec37b821e5a1dee211c2a5c73bf63e5ec3910", - "size": 32794 + "sha256": "5e69359511d34eca20138c416a9459cc94fab1b8d2b1d5a002214c83dfb8c89a", + "size": 33535 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores", "status": "success", "path": "en/api/php/beta/memory_stores.md", - "sha256": "def07f847ebf3e1122f7f84d78e825233e79916df5aeacbae3ed6da9c82459ed", - "size": 60268 + "sha256": "9ea799b88955a11c59404e24d2f09bacd12b06b2f3cf962bd87e47e3da930f17", + "size": 62356 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels", "status": "success", "path": "en/api/php/beta/tunnels.md", - "sha256": "387a7ca5afdc78164375ba7ee95557cca5f0d0ce01243fec50317b36274fa02b", - "size": 27065 + "sha256": "15f6e16f7d5a0666ccad4a0b0cdeeb11c1ba1271aaea9d21f1964914e6e54181", + "size": 27635 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments", "status": "success", "path": "en/api/php/beta/environments.md", - "sha256": "1e1f57d627d74701062d5227c8a2f6d91453e5272a2f808af833bbcda4a78cb8", - "size": 47301 + "sha256": "4b62c673c51dadcdb1d55b2185f42f45a58d15870e696af825670cff1a639607", + "size": 48099 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files", "status": "success", "path": "en/api/php/beta/files.md", - "sha256": "e7c1f2413d11d443e1823acb7cd1dd67092527fe22811e7d4cfd89ab4609f03b", - "size": 12478 + "sha256": "c1af05fbbe4f931a2fbad8e1c3d2c0d0bd7fbd7dfaa1c5c59ba64984bf85216f", + "size": 12793 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages", "status": "success", "path": "en/api/php/beta/messages.md", - "sha256": "c45f3207c1e9e1eda4d20e930480a0c7d3015888e2bcee24247ee0dc09e38a76", - "size": 376848 + "sha256": "654a11c714bec71fd18a411f610f237e28d0b8f22887a4a165993147c4ee0bc6", + "size": 382514 }, { "url": "https://platform.claude.com/docs/en/api/php/models/list", "status": "success", "path": "en/api/php/models/list.md", - "sha256": "65d3a479bdc347ed60ae562c1cb1d0b8acba7cbfdb23a76ffcdd87e6f5e25f7f", - "size": 6569 + "sha256": "35c543e97cb8025665ab969f35a9e762acf147ce73a23d330ddc9a6543e2943d", + "size": 6626 }, { "url": "https://platform.claude.com/docs/en/api/php/models/retrieve", "status": "success", "path": "en/api/php/models/retrieve.md", - "sha256": "6db6c5809b642edcdac8568d634e734aa8219dc1daab7139117e7ec90ec87381", - "size": 5250 + "sha256": "5b079e7634857b2a8969ea2d41b393a71b0c65f00246207afb97372060ed4364", + "size": 5307 }, { "url": "https://platform.claude.com/docs/en/api/php/completions/create", "status": "success", "path": "en/api/php/completions/create.md", - "sha256": "4d9eef8d81a69fde10bbc520c0444ec55568509b8c31822ad1b26706e2b80950", - "size": 13269 + "sha256": "e47f61069eca3851f391ce940b1ccbfde33f0958d25ed5c4ddceb8f5a25201d2", + "size": 13298 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/create", "status": "success", "path": "en/api/php/messages/create.md", - "sha256": "3af797f3522c8af3338bab35e5dbff06950237bdbf46e40ef4a6a7c01c0840fa", - "size": 21454 + "sha256": "69dac11e95523150daf511473595808bfebdb933ea5e154dcabe06b62381cf0d", + "size": 21465 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/count_tokens", "status": "success", "path": "en/api/php/messages/count_tokens.md", - "sha256": "4e5455caa3d5e6ee20010fa6cac38c1acf1353dbdc2927a68fcce319518fcfd2", - "size": 10444 + "sha256": "fd336a881f669b186e59846d87f698bc4f4072133f1462547f4c58516adb7a60", + "size": 10455 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches", "status": "success", "path": "en/api/php/messages/batches.md", - "sha256": "2ab5fbab26121e328c5131f53e20e5064a0248328b168c5e11fc870987b04d08", - "size": 26766 + "sha256": "c4215b4f52c0e8a2a67d9a8cffa23f19684078158bbc0c2f9f6fed9785f2b8d7", + "size": 26892 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/create", "status": "success", "path": "en/api/php/messages/batches/create.md", - "sha256": "ec3ba6b662b9d68420f00e1339a0b89627102ec0d196b78053cb46a102e0ade5", - "size": 6753 + "sha256": "c89ed0f723f16958aa4e461228128f38068b9c81a11318141c5a3c21ae9c27bf", + "size": 6764 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/list", "status": "success", "path": "en/api/php/messages/batches/list.md", - "sha256": "43f301d93d43e2e14ea8bc90f19abf2627486df5f424cc282a52fe26f973d791", - "size": 4376 + "sha256": "6dd8f7bf735f417253dafcf9b8c8ea8822d75d7322525d430ffd0f67a53241df", + "size": 4399 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/cancel", "status": "success", "path": "en/api/php/messages/batches/cancel.md", - "sha256": "dd33f259cdd1540dd914257751baf7a4e02fdaeadc0426cfe2a045e33b3a3367", - "size": 4166 + "sha256": "911022ce5cf4e7f201d12ea0ed3402ff12ca36f21ab7b1dc4aba19fbcfffe544", + "size": 4189 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/retrieve", "status": "success", "path": "en/api/php/messages/batches/retrieve.md", - "sha256": "e05b456bdcb82fb39ba14ac44dd71b37810e6cbc0a3649cc7435fe8938581d0e", - "size": 3858 + "sha256": "354d5a124a51a4eed1a12534f2e701e194bb5f7874b70bdb3bbd3b0101331c47", + "size": 3881 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/results", "status": "success", "path": "en/api/php/messages/batches/results.md", - "sha256": "2392f0bcdb95095320681e208130894a195b368a3b44a1fd8f78194f0413cd2b", - "size": 2130 + "sha256": "84d8fa8e00d89ef1784794f2c22f856495cc8422f974204de01bdb83e64144c9", + "size": 2153 }, { "url": "https://platform.claude.com/docs/en/api/php/messages/batches/delete", "status": "success", "path": "en/api/php/messages/batches/delete.md", - "sha256": "f3def6afeaa36586102f4608908a46267a507d0e3abb8af364ecb1fa9bb7cae3", - "size": 1711 + "sha256": "8a2680b484a8ce099c9691f30f103c8e7134d643c94e8937fdf6fe0a59e39e16", + "size": 1734 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/create", "status": "success", "path": "en/api/php/beta/environments/create.md", - "sha256": "e3da601ebeea767a6c213bc91acc3cc7746451925d4a3bb7148c5664f72c7ba5", - "size": 4284 + "sha256": "e3c21d55d6493be90698d86f001ad86e19c55d2a0a6937a40b6e0d39db30fcca", + "size": 4341 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/update", "status": "success", "path": "en/api/php/beta/environments/update.md", - "sha256": "6849d5c604cf2d878a06772db307193b3433349a1e88a7594d6a834dad1f7bb6", - "size": 4398 + "sha256": "b2c46bd4995adf69ecffa10cdd393735e1c2365c48e437eefa6e73b15ef825fe", + "size": 4455 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/list", "status": "success", "path": "en/api/php/beta/environments/list.md", - "sha256": "ac07cf28734c6ca18d3f47f458469641bc88b068594b58f5b749d52b1a0fef7b", - "size": 3685 + "sha256": "52e90f37a5010ab9aa2c93ecef36b5d1b1c29e07412ce5bc4b87c3f2b5020155", + "size": 3742 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/retrieve", "status": "success", "path": "en/api/php/beta/environments/retrieve.md", - "sha256": "86a40715a232028fe4c7557745d167fab93524947696b24cf20a253351727276", - "size": 3087 + "sha256": "de0710eb4547add4da69943f09a15696b3a06ad67906732ebf808b6b374a9b95", + "size": 3144 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/delete", "status": "success", "path": "en/api/php/beta/environments/delete.md", - "sha256": "541e4204b0099af0f141293be5348bbf9f19df27850bc2e42a21d9ab7eac8c6f", - "size": 1588 + "sha256": "87dfb9c885c03581d91f8a556ab961704c57a6e3ffbb8987b676ba321cd9c28f", + "size": 1645 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work", "status": "success", "path": "en/api/php/beta/environments/work.md", - "sha256": "46c5126c382d3979ac5a6f5034a229a72b967dcef54884e5247d54a2fa52359c", - "size": 26593 + "sha256": "72d5538323207a9bc20407cd4a807bad55e4318bf979942a58e04cda37f90262", + "size": 27049 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/archive", "status": "success", "path": "en/api/php/beta/environments/archive.md", - "sha256": "f7fa3d9dbe0bba34704973b79f00b9150c6450013b5819042323ce094d3bbef6", - "size": 3153 + "sha256": "cdf8f1114a837716cea1d31db85e71752d1d104a077976a5f23f91a2429abb71", + "size": 3210 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployment_runs/list", "status": "success", "path": "en/api/php/beta/deployment_runs/list.md", - "sha256": "54b29b365ac05e589c64fb90b37a482a46ce856109169d8d3fad40ff79dc7d76", - "size": 4396 + "sha256": "56da5c10c1b12708126bcc0e2e540a7f08a2c1cbbf99187b02f3909230624af9", + "size": 4517 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/php/beta/deployment_runs/retrieve.md", - "sha256": "d6d222c4aff78cc3f28cff7da5fc1918c7fb2ca849e31c76df1df80c3cec13d6", - "size": 2638 + "sha256": "6b2027b5e8bdcc76a78211d8f9de4d9310d9286695e29eb0293c51dcb800f56a", + "size": 2695 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/create", "status": "success", "path": "en/api/php/beta/vaults/create.md", - "sha256": "19e923260154c01763e81c0336007d4ec8a8191a5c30db9e48c2fa327413749e", - "size": 2293 + "sha256": "a886fdffa08df0b1d82886d0d77ee843118a51995ad3b48b3d2b189e46e833ce", + "size": 2350 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/update", "status": "success", "path": "en/api/php/beta/vaults/update.md", - "sha256": "0f34a683a642dcefcaaa4dd13dd9f356ce4d3f43d430575c604d861face2f572", - "size": 2444 + "sha256": "9978558d9f339cd03887fd46c84ac80900dfbb860bb54be37f01238579dec806", + "size": 2501 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/list", "status": "success", "path": "en/api/php/beta/vaults/list.md", - "sha256": "ec1648c75f098ddcac0ed85f0f6349a00f0c51d7fde4af0ffeb8366727411d85", - "size": 2590 + "sha256": "a8a13ad08c50c4ed9ed5003e4f18c29a243d2fe08a243d877f5c70e179ed0928", + "size": 2647 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/retrieve", "status": "success", "path": "en/api/php/beta/vaults/retrieve.md", - "sha256": "12902cad6cdf6489b5db73ac0a9f8fe97202b5ed6f8f89484615a9982b9a2e32", - "size": 2076 + "sha256": "fb1796d2327d0a322ed7a8b3f0cd33a77288902efeb7ede589d3a4ed5c12f851", + "size": 2133 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials", "status": "success", "path": "en/api/php/beta/vaults/credentials.md", - "sha256": "47f0e701ff19342280ad21b5e0ec55dd6f3a52c4f1fd4c7a2e2ff949f79261f9", - "size": 32644 + "sha256": "9bd4538d11d884e98c7143c75a4d4c7eab9d2febe975d68a1627b08465697086", + "size": 33043 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/delete", "status": "success", "path": "en/api/php/beta/vaults/delete.md", - "sha256": "22ca14b8354d8bbd28916f6e4fb1739d0fb4d0e90c9500cef3a700c991d20e50", - "size": 1547 + "sha256": "fd906ef67a5d5653a433b07fb825898faf354ca03ee39f6a797ca8db6c6cd5c5", + "size": 1604 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/archive", "status": "success", "path": "en/api/php/beta/vaults/archive.md", - "sha256": "ef0bddf8ba6e86dcf2b4725c764f0d11ebd445e38b4e4d238a8539737fbcc802", - "size": 2078 + "sha256": "2df977e274ada045734c9ee629fbcc79023f57fed14b33fa84b9c1e245c4534b", + "size": 2135 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles/create", "status": "success", "path": "en/api/php/beta/user_profiles/create.md", - "sha256": "cd877a1a23285c0e9559280e58e86ff19451dd29f0727583fe9be0357ba3fc2b", - "size": 6560 + "sha256": "5cc2d1c4dbf3878d9943392b36c6649373f5e29a919adfcf4a6e3c3d58df2af1", + "size": 6920 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles/update", "status": "success", "path": "en/api/php/beta/user_profiles/update.md", - "sha256": "a31118c1eba098573c62ad54126c5b6bfb456b971c305050446497b24e533398", - "size": 6553 + "sha256": "fa1331701b0c32f4a0547185ff302ae36caa901919902d195bea7d4b46578c80", + "size": 6785 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles/list", "status": "success", "path": "en/api/php/beta/user_profiles/list.md", - "sha256": "5c198327472f16b7b9e7f70ae534fbf945a620a3d4004a448110ea13baa25eb3", - "size": 4978 + "sha256": "5581110b185c48c55e3f1e652d555fd519b723ca4005c7232ea35196191d0893", + "size": 5176 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/php/beta/user_profiles/create_enrollment_url.md", - "sha256": "9ab8ed387c65bef66dfa9cc88cad7e78eaede7374f17db3431a7d52aa1dff079", - "size": 1999 + "sha256": "b0b2f3156977a6ebe7b5610d53a76fbc7ab9fe96334ad364e93b2fb072898f21", + "size": 1973 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/user_profiles/retrieve", "status": "success", "path": "en/api/php/beta/user_profiles/retrieve.md", - "sha256": "e7b0305e1b645b2eec8d60a145b7efc642786d189a1b46cc81073b2b5e0f639f", - "size": 4290 + "sha256": "f96408e32c4a15fbd065bbebba9514844a5ca8113cb28144a05e1e5ab3321f47", + "size": 4488 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/create", "status": "success", "path": "en/api/php/beta/agents/create.md", - "sha256": "82aeeac60d9c5e64eb8ce5ff0eb51a9804c990c0958fde657d4352da1e01473a", - "size": 7221 + "sha256": "5caeb67b97cb9bf97ba889d0c8afdac2a2be23bd481d91a2efaec3a4670de6a8", + "size": 7328 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/update", "status": "success", "path": "en/api/php/beta/agents/update.md", - "sha256": "ef813d05abeb5760ebd364a0d813bc849d10727993effadd1195cab34aaa75fa", - "size": 8298 + "sha256": "0206b3c2da1eda7927812163f41c968fc6959abf358b7d2745f9524a01b0ea13", + "size": 8405 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/list", "status": "success", "path": "en/api/php/beta/agents/list.md", - "sha256": "c91df664312892622b6545ab6951a6829c1988d0701c1e259899eead8e7dfbd1", - "size": 5516 + "sha256": "5ddfd0c0c1c83525fce1263d702b0b4edde405c3c9531a477fdddaf4b98bb702", + "size": 5573 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/retrieve", "status": "success", "path": "en/api/php/beta/agents/retrieve.md", - "sha256": "cf36a3dd4351c0e5387003e8228f8b31f45f67048ea17a76084494fb68415268", - "size": 4587 + "sha256": "f085adbc70ae0b8c3fd2eb96592079636d0af81d9367ae3cfa2eb8cae7d0f4a5", + "size": 4644 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/versions", "status": "success", "path": "en/api/php/beta/agents/versions.md", - "sha256": "7d561b0b4bc362f144b066492c3018c09d3a6f52fab115ecbfb0f9e223322fcc", - "size": 5110 + "sha256": "8f1946edb531f8c8d10c31d21db6bd8a6196b06d1445f390a389e05c289231e7", + "size": 5167 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/archive", "status": "success", "path": "en/api/php/beta/agents/archive.md", - "sha256": "e25d066e648c4118079df3dbc5f476a80994d66e07cbf9431fd3079e09e0e50b", - "size": 4446 + "sha256": "296afe4d9ec0c42bbc7b4270a2b1715514d4ce1f99eeef34017f7d0c43a4c992", + "size": 4503 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/models/list", "status": "success", "path": "en/api/php/beta/models/list.md", - "sha256": "2f9077e680a2ad1dfc26269797ec2609c5af81e268df0d5c2b3bb46e1e1dc3a0", - "size": 6823 + "sha256": "98cae1eab274bb72c7050f3dcc5f0df6538722489451c3790b6f1e6ff358bf39", + "size": 6880 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/models/retrieve", "status": "success", "path": "en/api/php/beta/models/retrieve.md", - "sha256": "d9703a8e8a7ddee5d2d459728a592de65eefa60aafaa6c7016de528eb1ea665b", - "size": 5476 + "sha256": "d41041b58f942e7c578090eada831af33ad16736c3de6238d96f48d791cfd880", + "size": 5533 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/create", "status": "success", "path": "en/api/php/beta/tunnels/create.md", - "sha256": "2168d767ab874ee2f708d9a7099b34b7c2119579712211f3b57ad5dc4f6a60d1", - "size": 2580 + "sha256": "6d3c228ca1ae96b8de5199119cb15fd13d64514aa8c401571fdfac4f33aea287", + "size": 2637 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/rotate_token", "status": "success", "path": "en/api/php/beta/tunnels/rotate_token.md", - "sha256": "fa052d7ef8efe6bc7a73105f9c39e3dcbf56c8f17975aa427b23371f3a3eb998", - "size": 2261 + "sha256": "2c646679f3111ecb05363f23c033351ff839f93c86b3c3e4cc857a5a0c3c7068", + "size": 2318 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/list", "status": "success", "path": "en/api/php/beta/tunnels/list.md", - "sha256": "26a66d2e18210001fc18a16b0e46574fd8bcd31463f67045e95cbe33a42db4f2", - "size": 2922 + "sha256": "0aa85265444fec25fa5e0c4e8b785c93d180eecda0d8e580f61a4208218a9a7c", + "size": 2979 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/certificates", "status": "success", "path": "en/api/php/beta/tunnels/certificates.md", - "sha256": "f216df5452740be81c2d77f7dff0e6519ae8456c0ef903c3c96e7595b92d6e71", - "size": 12405 + "sha256": "8f799c96f9213e5d182e0574caf4be3c98c1a3bac727f6ee83160d5c5d42b382", + "size": 12633 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/retrieve", "status": "success", "path": "en/api/php/beta/tunnels/retrieve.md", - "sha256": "111260ff651e8217c7f0b7225b0ddb083f57cad5cc3e16e7ae0f64b465657b7c", - "size": 2395 + "sha256": "927c3fbef23d61ffcfa63da5fcc8c9642fddd4656683331ec43365a540b9c486", + "size": 2452 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/reveal_token", "status": "success", "path": "en/api/php/beta/tunnels/reveal_token.md", - "sha256": "7623f7ea58bd92bf493ca8e0ab6ca9feeb06216ebc528c98c9097064a6974668", - "size": 2149 + "sha256": "eabb7aae045d3fc4c487847db3428500c6354f5b539057f3b366b9c2022e3604", + "size": 2206 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/archive", "status": "success", "path": "en/api/php/beta/tunnels/archive.md", - "sha256": "21680abd46895a61763aa819f8ad1d16581071521068d21bd569dcba21ca30a4", - "size": 2678 + "sha256": "aaaffa6c9be755a89371415dd982e44b783ffa49054268a2a28423ffa086c55c", + "size": 2735 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/create", "status": "success", "path": "en/api/php/beta/sessions/create.md", - "sha256": "95793d40dc2743eb1a57752b297792edbbd5b767f2eb35c07de616888508e566", - "size": 9605 + "sha256": "8dc774b8f3aa0091ac9072663a812a74e4f8400f668bd5b5f47056b425c273a3", + "size": 9695 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources", "status": "success", "path": "en/api/php/beta/sessions/resources.md", - "sha256": "1751892e37ea921d99b5b777d39ab65407982940beabba8a2efabcf794ab34ea", - "size": 17912 + "sha256": "ed9cb796cd35c9f73a855cee017bb80d5b9471b3a1897a2b930f30049956d213", + "size": 18197 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/update", "status": "success", "path": "en/api/php/beta/sessions/update.md", - "sha256": "d700300f8e68322edee6622c3565aea670f03f9b08c993a6c4ef1ecd0387535a", - "size": 9894 + "sha256": "7e6c3235a26fb54dc5e307ce81863758fea3e334f8de651ec9e91c4255e673bf", + "size": 9984 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/list", "status": "success", "path": "en/api/php/beta/sessions/list.md", - "sha256": "7240b4a6221f9772dda08971deadc06dd64113b4996b187ab72ed8e38b3bdc79", - "size": 10680 + "sha256": "aa58d32e8cc6d60a0db7ef646240a5dfbe6b1f2dbfd4a83e2c7c2c44e825c132", + "size": 10737 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads", "status": "success", "path": "en/api/php/beta/sessions/threads.md", - "sha256": "b37b1a5646081c41d9c812b34b25b8e135add56a78172da658df67cbd500b9c6", - "size": 90357 + "sha256": "c086307a486a5bc8d8f4567cf295b8d30e264ecb012a6e3d41eea572a5ab4ef7", + "size": 90768 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/retrieve", "status": "success", "path": "en/api/php/beta/sessions/retrieve.md", - "sha256": "d3f4141af33efd8a3710793c8c8a77b6e83448ae35c892328ec4a1221a83a640", - "size": 7649 + "sha256": "fe31de60ee8b2e319234865b5cac17ea5c1c9eb4b929cf3ec6332cfa55023015", + "size": 7706 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/events", "status": "success", "path": "en/api/php/beta/sessions/events.md", - "sha256": "95d463083ee75f7cec960966dfa0982eb2f89a72d44a150d6217de3f2b6383d3", - "size": 142573 + "sha256": "4c019ed077c5bc7758941f1271407609dcf656d091e43cda51e6b1a35d25c3ee", + "size": 142866 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/delete", "status": "success", "path": "en/api/php/beta/sessions/delete.md", - "sha256": "2c488b81da9c513fb6f3ac63e8dd86aa817c25960518b98f3c7763db8993152a", - "size": 1475 + "sha256": "604a18585dbe2912eefe16a5d8162c12eced2b6964cf1b3e62cc3f2b0e833d5d", + "size": 1532 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/archive", "status": "success", "path": "en/api/php/beta/sessions/archive.md", - "sha256": "d8906056985b99a98d61574988b5ba7297cbce92ef48d62216eb796b211f4940", - "size": 7667 + "sha256": "771b9a68f61dc38c490f0f06a7d9cf2dc9fee1df8f162a9903cf1492190f1f52", + "size": 7724 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/unpause", "status": "success", "path": "en/api/php/beta/deployments/unpause.md", - "sha256": "67e2dbdfbabf2f58fb31d3283d69460cbc0c5ce773f5d16cc494a5fe001bf73c", - "size": 4623 + "sha256": "c12e7f69495075a619d072aa22f71fc6078a2d41eea48be220185237b3b7ba83", + "size": 4680 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/create", "status": "success", "path": "en/api/php/beta/deployments/create.md", - "sha256": "c7cbd0c3a2cd6c8b006ccff24c25aef82715a9311ae23f6e9530a3dc6e768267", - "size": 7073 + "sha256": "5c9a9ab3fdda4378746b5991e4d8562171099e8a5bb5e5b8320ae5f53d01092a", + "size": 7163 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/update", "status": "success", "path": "en/api/php/beta/deployments/update.md", - "sha256": "7e68020003f48244ef11f6f0a25595247a37598797825d58f7a4bc7ec4f92a86", - "size": 7381 + "sha256": "60edff9967f095b9228a0fafd8ec9b29a6114c74436713f2f3e75f6fa6421c73", + "size": 7471 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/list", "status": "success", "path": "en/api/php/beta/deployments/list.md", - "sha256": "f48bb302e6ad2b882fdd1ecadd907aad38d336182e15e5232bc984f49e232f3c", - "size": 5987 + "sha256": "d8df23c3bcefcab4dd5c69732975b32b255eaf69e389b54d424bcf255b169bb8", + "size": 6110 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/retrieve", "status": "success", "path": "en/api/php/beta/deployments/retrieve.md", - "sha256": "934b6f4268ba1d03b6c187a10587c42f98d77939c57d4ca5e3919cd1ab1fee27", - "size": 4594 + "sha256": "ea0cc82261c32a5138523e60a5ff721567ee35a9414443d2bc089b035c7834d6", + "size": 4651 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/run", "status": "success", "path": "en/api/php/beta/deployments/run.md", - "sha256": "7977bcbb5316d304112dbc3dc25f65835ca6719fa375fc47af8c233656fc0183", - "size": 2619 + "sha256": "2c036ed2d98410214e7dc083ae004d2e2fd80d8919f04feb2756ade491c6796a", + "size": 2676 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/pause", "status": "success", "path": "en/api/php/beta/deployments/pause.md", - "sha256": "ec118ece87e7ccd824ae38c392bffaf5cdd30905f79642e263629fd7e3c5902f", - "size": 4607 + "sha256": "05b2b2b247e5ebf5631a601140e54179e4459bc0c1da74b5028be5596ac71fd2", + "size": 4664 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/deployments/archive", "status": "success", "path": "en/api/php/beta/deployments/archive.md", - "sha256": "d111c6acb04f0c0417b6b2e9dce84a6a242855dc5e1a22bbfe7ddca9f5da5759", - "size": 4623 + "sha256": "1521f1ca9e8168c5f87c6c49c0bfa28bb62ecab7988c707782290e51cc63a595", + "size": 4680 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/create", "status": "success", "path": "en/api/php/beta/skills/create.md", - "sha256": "ad81d32baf221e9333d487462999e24d73e5fcf2382261d72d3fda08ea15c34e", - "size": 3032 + "sha256": "dc0a667f57be734a1e9d50d07d9720b3d18d8833c86667e51e1d435d525425ab", + "size": 3119 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/list", "status": "success", "path": "en/api/php/beta/skills/list.md", - "sha256": "5bfc3c35548e9338f09f12aa0f195e565c08bdbdd260be917e6dcb1d9c677925", - "size": 3251 + "sha256": "4dc4b51c0a5ce7a7ecdcf8d7b71baefeae2d9affd5d97afd450c87d1d604898f", + "size": 3308 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/retrieve", "status": "success", "path": "en/api/php/beta/skills/retrieve.md", - "sha256": "2745770afe41f391cafb5ca84707ec89c651c0d50bddca84b3651f0493d2810b", - "size": 2641 + "sha256": "6d967a8532c8b697a7bdcd40c251d8a9b24085e02e7c5e9dd7238362ca09f61c", + "size": 2698 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions", "status": "success", "path": "en/api/php/beta/skills/versions.md", - "sha256": "1784b4777f42d514370c85022933c749f7e9ea15369a336b813a5629a2a2ad1f", - "size": 12909 + "sha256": "91fcfa98c1470157b78830ffc61c6b5fcd12dbeec5b24666a3430f5887dfa967", + "size": 13224 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/delete", "status": "success", "path": "en/api/php/beta/skills/delete.md", - "sha256": "4f77798e4ee00797074b27ee6a39cfd071c5dc68a3a732ede710285597def917", - "size": 1622 + "sha256": "40b43a2b21e6326b0a41a929ae63c25ed9f1287cf82f0688876769da1e6125d5", + "size": 1679 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/php/beta/memory_stores/memory_versions.md", - "sha256": "7370513d4d65a1d630fae627e75e847b3539020181620ca7b2f5d40ca4b59e91", - "size": 22377 + "sha256": "17753008bfc123a7ef48b6c1be2afae0f6f540458abdb3011f583a04c68b1806", + "size": 22676 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/create", "status": "success", "path": "en/api/php/beta/memory_stores/create.md", - "sha256": "37383f4dfb189bf74a80450e5a1ba49b18d3c37ce7d052f93072f4034dc374a7", - "size": 3766 + "sha256": "76a119d3e84c85fdc133c930757df4276e5ee099a3f44f6a89ab660bcf977f92", + "size": 4441 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/update", "status": "success", "path": "en/api/php/beta/memory_stores/update.md", - "sha256": "52bf532857c6796b843f159b759169fb166c76494ada2a38561fec7a0b54982d", - "size": 3878 + "sha256": "4bac1560093f42ac048d03635d906177ec584f3812059bc7309dc51be0cecd14", + "size": 4289 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/list", "status": "success", "path": "en/api/php/beta/memory_stores/list.md", - "sha256": "a9824abe01e21180bbb9d3bf1656a4aef19b7d56e35bc2928b2696bb4ef2fe5b", - "size": 4121 + "sha256": "a69b21081555227f1fb4d9f6afc1837e80c6852cc84cb4db9bb3592d6d8779ab", + "size": 4312 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/retrieve", "status": "success", "path": "en/api/php/beta/memory_stores/retrieve.md", - "sha256": "0b8b887c95330e5292cce7350448b6215911dc018f05b861e737574c37ac95d1", - "size": 3132 + "sha256": "3811f58a14586c7159a77e13da640f63b94ef5494518c3993f9711d52628ed7d", + "size": 3400 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/delete", "status": "success", "path": "en/api/php/beta/memory_stores/delete.md", - "sha256": "a5a86c198b9b503f3ed08569b11a2c6da5553f2d0df7af372ab1a7599f0c5592", - "size": 1852 + "sha256": "9ba6980345fadf9025692d706e39944044febd11da3dab8f74036a5a6b4014fa", + "size": 1880 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories", "status": "success", "path": "en/api/php/beta/memory_stores/memories.md", - "sha256": "345a71b7fed78c97ba8bfd40cbe7ca3f0dd65a5d694aece752f0c198e019a4f7", - "size": 30591 + "sha256": "6f540a7db6aa4ac6f98dea951023b6a89a9805ea693efd4f1676b1b84da929df", + "size": 29982 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/archive", "status": "success", "path": "en/api/php/beta/memory_stores/archive.md", - "sha256": "0e3ff612c581e508b3e85327bcfb42cea64e3a904d41df12598b2a0b0175fabb", - "size": 3209 + "sha256": "f14a3b143c3990cfab9fca90bdb8c617346b3cab80e992c840247b9f9a2236c1", + "size": 3497 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files/download", "status": "success", "path": "en/api/php/beta/files/download.md", - "sha256": "9445d9cc20c53697e937cf56cb2b1a41d80d8e3c10e286d56ec8ad1c6bc76c1a", - "size": 1193 + "sha256": "b0ab13a50a19654b2c377be1bc6d3d387f701d2d8e2a403495163fbe652be6bb", + "size": 1250 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files/list", "status": "success", "path": "en/api/php/beta/files/list.md", - "sha256": "f30210224923a8cd2ed036b068f7a8f112f1bb6716be7668dee5f8c12528c3f2", - "size": 3389 + "sha256": "70236c2a8bd9a32c855e0672cc952fd547598e3e09bfa56426abf6c5e4cc2420", + "size": 3446 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files/upload", "status": "success", "path": "en/api/php/beta/files/upload.md", - "sha256": "7ce9ef9e2303eecb5c70ada5faad90d55a20521b2214b2a51e346312e90fb0bc", - "size": 2939 + "sha256": "e1bf023984793213b88a8339b871bde3e23f95a33337134d679cbc5a5ecc5621", + "size": 3026 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files/retrieve_metadata", "status": "success", "path": "en/api/php/beta/files/retrieve_metadata.md", - "sha256": "bb087b264f81ce16dd49416cbe482e99eead26482635df9da46d3ca11000bce6", - "size": 2517 + "sha256": "3232b216a10cb135f81452bd8cce74f237c8bfa6882ce2692325548311dcc2cc", + "size": 2574 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/files/delete", "status": "success", "path": "en/api/php/beta/files/delete.md", - "sha256": "a81aa64e3359032e79e5e83cccac80bb265e9f4f483ddf664a8a03203acfbc8f", - "size": 1463 + "sha256": "ee1e2538d14376e89432b21104f421b91e7f0725ee0bc3b54c3ab50e006ff5ca", + "size": 1520 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/create", "status": "success", "path": "en/api/php/beta/messages/create.md", - "sha256": "1f0c0d7f26bfe9b82bfd22cbc7ab42d00f2392bd0c14630a2a5f4b79a8646f3f", - "size": 30921 + "sha256": "94b71605f97f9082d04fe33a920d1de3086a05f97cd919d5cc197da999cb4842", + "size": 31030 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/count_tokens", "status": "success", "path": "en/api/php/beta/messages/count_tokens.md", - "sha256": "78cedc9922dccefe6c36d21d1519629ad1c2a2ca7e8f374ef11b62ed1d13a588", - "size": 13373 + "sha256": "979ebdeb155d148c36b30ca74cafcb1ac468f2bdb82ff8333846df7d2de92225", + "size": 13482 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches", "status": "success", "path": "en/api/php/beta/messages/batches.md", - "sha256": "f87db846416aa26cf0a0682bbacb8dccde8ea0917412b4cecc58700c1b4b59d7", - "size": 29693 + "sha256": "164fe9cdaaf69f7824acc6ae5134103b57f1146f7d1eb508a1a8c29e0a3bc397", + "size": 30087 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/create", "status": "success", "path": "en/api/php/beta/messages/batches/create.md", - "sha256": "3708cc937f2b6a4829e36c5286936400a0caaf94b37b644663bc76a3b3ed4cea", - "size": 8458 + "sha256": "025bd31a90e144da21df22b8f5ee479141e1845cdb8fbec1342a09c706e75f3c", + "size": 8567 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/list", "status": "success", "path": "en/api/php/beta/messages/batches/list.md", - "sha256": "2b06f83ff13cd4129002a286ebbbfbd863a21899b44ae6475f8485b4cf83b2c7", - "size": 4602 + "sha256": "39310ce74a57608662dc517111424530c2abc91657e6a5f427c35c3e418a72e0", + "size": 4659 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/cancel", "status": "success", "path": "en/api/php/beta/messages/batches/cancel.md", - "sha256": "354eccfac8eab3c116e6afa35111f13120846ed3826074b2732f7d591aad1024", - "size": 4403 + "sha256": "6e2b22c5c809e5dff85e6a305735da0d9411313330fbc80654aaa152aef1e997", + "size": 4460 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/retrieve", "status": "success", "path": "en/api/php/beta/messages/batches/retrieve.md", - "sha256": "ac3a9c5347244532c4947a424c6ee0548e192d5a92c7831279bf9f39600b6637", - "size": 4095 + "sha256": "69ef30966238cdbdd759ff19e8132475e7fe0751354a821cfaad8957ef0e5c41", + "size": 4152 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/results", "status": "success", "path": "en/api/php/beta/messages/batches/results.md", - "sha256": "6377b599d416c02987381c15baae9ebdf8bb8ae9ae6dd63a9c998571db844971", - "size": 2379 + "sha256": "71664e0a56f46cd3e063214da5060bce7a73234f57426a38889db5e38aae2497", + "size": 2436 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/messages/batches/delete", "status": "success", "path": "en/api/php/beta/messages/batches/delete.md", - "sha256": "06d440ae38c9dae71b65b12de42dd4288bac9d1b69ea8ba0d9179b7314d5316b", - "size": 1948 + "sha256": "f0c1c3d506b2639c2bb308631c35660ef2e9186546804cf33277684347c47b58", + "size": 2005 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/create", "status": "success", "path": "en/api/php/beta/memory_stores/memories/create.md", - "sha256": "f82defe45a65f20cea50e43d756ef21d93858f34540dd050f17bcbc92a4a73af", - "size": 4787 + "sha256": "0b9c1a30bcbe67618063e0d6a5873fbe69129b8324195afba098952c1cac9ffd", + "size": 4677 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/update", "status": "success", "path": "en/api/php/beta/memory_stores/memories/update.md", - "sha256": "43b4cf58be76c0c61c8e803cf272ec95fbb10e13f4e2eb2a0da8eaae21fdb3fb", - "size": 5444 + "sha256": "ee26b99f0ea6ff0f5f9bb55087c5c204d9ef1e2caae405c8c6e5b24cd9e23af5", + "size": 5255 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/list", "status": "success", "path": "en/api/php/beta/memory_stores/memories/list.md", - "sha256": "b60a7eeb6e0f474b75e81b651691d7894f22f3290a6b9a4d36677aad47bb5a8a", - "size": 5643 + "sha256": "ccce8c19d80fd54e500f34dea7baf2932d8a7c294579fc1beff0333ac19570a7", + "size": 5673 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/php/beta/memory_stores/memories/retrieve.md", - "sha256": "83aec4a8dadc7ea571103012c8e7f5d07b3664765f70553478fcb0773c95cc1e", - "size": 4343 + "sha256": "adf044082b62dff399533ee377675fb09ccb6cdbc0505bfd8c4b7ed8dc3fb214", + "size": 4216 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/php/beta/memory_stores/memories/delete.md", - "sha256": "9da660843b3c3638d4d88d580eb9afc2ebd21a932b537c95484fdf0c906a90e8", - "size": 2179 + "sha256": "cc38c93da1e511bab458eb52098d8aa03091b705bd5d3b0f697cc131aab825f2", + "size": 2236 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/php/beta/memory_stores/memory_versions/list.md", - "sha256": "1063ba66f36bba9f06a86728af0e8fe5eddb00c7ed5b1abb68b5374adeed922a", - "size": 7239 + "sha256": "2bf94f2038a6354cf3792a9a7d21218ac5fa259bb0847e67020645702dc556e7", + "size": 7450 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/php/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "f04b207199e472362244b2ba081d5726e1e09406fdc87713d712b968044e1a28", - "size": 5421 + "sha256": "dc8c308ef6962b50ee2ff678f325d62db7fe165d8cc7c7985b0388b18fe6a14e", + "size": 5440 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/php/beta/memory_stores/memory_versions/redact.md", - "sha256": "cd8ea456299fbc9cb34b8f324f8b82816c2d237656f9858462a62b3a4b7983f2", - "size": 4927 + "sha256": "b0d65caeb996d9e554d27b5ca950267ad2bbfdee766b4f8f58083151bf8707c2", + "size": 4990 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions/create", "status": "success", "path": "en/api/php/beta/skills/versions/create.md", - "sha256": "034d2b50d8b9178fc2b2d4c37e1e2d87a74c111469aa9dcf734c0c29daf70251", - "size": 2763 + "sha256": "3cfa1c0386348a809ddec2c7047f04a0edcc3992f13bac4f9330708a12c51aa1", + "size": 2850 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions/download", "status": "success", "path": "en/api/php/beta/skills/versions/download.md", - "sha256": "025528cab31dd8ebbc583683cc7aa7aeadf1beb5102baa27c83889a39f3672bf", - "size": 1660 + "sha256": "b4dcb8720cede8f1b2e20eb2eae060366702324335a18f6ad517224facf24e0f", + "size": 1717 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions/list", "status": "success", "path": "en/api/php/beta/skills/versions/list.md", - "sha256": "b888603246bb90dc3dacc3e7da2117b4e2fe98fbb604004b602c78fcc8112215", - "size": 2843 + "sha256": "4bf7daa8cad8c1e543d3c4a73f28852e91744adc77361e2457e7aae371b41ec6", + "size": 2900 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions/retrieve", "status": "success", "path": "en/api/php/beta/skills/versions/retrieve.md", - "sha256": "74e58790c44ca5cd637d2c60cf250f5a68febe6ee55c5e9787fae4e5e80af102", - "size": 2798 + "sha256": "03603cab7e6f8a95fc3e658b613dbca5943fb8479361a951f4c4adf668c6e6a9", + "size": 2855 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/skills/versions/delete", "status": "success", "path": "en/api/php/beta/skills/versions/delete.md", - "sha256": "0f7c1c183d8672aa34d9daf957bbb05d1161f04c8ec3b7bc45f2706ad4331a2e", - "size": 2005 + "sha256": "617f3150c186d0c6361ecac118117db36fbff1ee82a425b09767b43a26f3cc52", + "size": 2062 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/list", "status": "success", "path": "en/api/php/beta/sessions/threads/list.md", - "sha256": "814b055940dd2eeece3b3916a2145d22faa92292b04f94368db9679316252c69", - "size": 5504 + "sha256": "75daea1205c95749dae96da78f0d1ee3b947a7f5c4fd9c3b1aa1eee465ff6a23", + "size": 5631 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/php/beta/sessions/threads/retrieve.md", - "sha256": "53e035c12d4005b8c30cb9c6145bfb9616e569b05d8b8632ba5eb5f157b6e755", - "size": 4623 + "sha256": "19f0e30a41d2eaae94a922ee4930d2c334900c541b1142015607007969ceef3d", + "size": 4680 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/events", "status": "success", "path": "en/api/php/beta/sessions/threads/events.md", - "sha256": "e4bb3b2c6c4e7bf45a8cb7e67ac2071ea22e7123b7935fc7d40bb9c927089481", - "size": 49415 + "sha256": "530d7a34e24c9f99b9b25d3613c4bc6c6f10cd8336c8b2c011d1499efe5f6af2", + "size": 49585 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/archive", "status": "success", "path": "en/api/php/beta/sessions/threads/archive.md", - "sha256": "23610323071fc951dabc6aea292ac074f515ddbff13884046fb0bb639ad604f9", - "size": 4641 + "sha256": "3c5f955d38e69bd483bd9c9b741728ffb234b013d17675b808aff18be52302aa", + "size": 4698 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources/update", "status": "success", "path": "en/api/php/beta/sessions/resources/update.md", - "sha256": "dc198bb84fe2b69b05046c0a06d925568eb5d3fb83c91146842cc1b581d99040", - "size": 3623 + "sha256": "d591af9f07f6dc66ef2d406d4996d3d0349b607adf29215b112665c80e1fce3f", + "size": 3680 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources/list", "status": "success", "path": "en/api/php/beta/sessions/resources/list.md", - "sha256": "a25af639f56725d6d18ad04a12352ca99e9c35c6ec3c8979551bedc549f98e0a", - "size": 3977 + "sha256": "dc6068308eafd38ae597c820094821df4bb55c95028e01fd31b65abd5f82854d", + "size": 4034 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/php/beta/sessions/resources/retrieve.md", - "sha256": "f6bcc588c2d349debdad03b7f1973ba723468f14d3b5ec1629832040c34cb75c", - "size": 3398 + "sha256": "6481addabcb5049b3e0f8dcedaf834e88643a9c3561223f512e2be52f8263da6", + "size": 3455 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources/add", "status": "success", "path": "en/api/php/beta/sessions/resources/add.md", - "sha256": "6bfbc47c265692079e7a80e9a9b5c95f9ed0a8e0f7a72072bb9ef4efd231410f", - "size": 2160 + "sha256": "0d94c0c85e2e75a08eba7f9f260e423f68c6d05466b3f14f8ae1143df5356c35", + "size": 2217 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/resources/delete", "status": "success", "path": "en/api/php/beta/sessions/resources/delete.md", - "sha256": "0eb9a11ae538045b59b1dbc8b8c12833fda2d0d44e7eccdd405148470b41a231", - "size": 1709 + "sha256": "8276732c26b432b16e47ec09ed1dcb5ab3691794c40f52fb9179a90495e93b06", + "size": 1766 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/events/send", "status": "success", "path": "en/api/php/beta/sessions/events/send.md", - "sha256": "23e1e96b3d08e2ad77c119e2a45d0b4f616481935c51f4df9cc6e22cf4a6e92d", - "size": 1957 + "sha256": "d485d4900e6322b7ba893f057997ce0087312f44319e6e4abb1409dcdbfe41e5", + "size": 2014 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/events/list", "status": "success", "path": "en/api/php/beta/sessions/events/list.md", - "sha256": "25a8dad2fc01b23ffea51c7b18079224df993ad6f2524aedd53b0b79805dbb80", - "size": 25484 + "sha256": "5dce181ea701c6bf93fd262b2482437ee4c19d16b098cfb70c96a7db5d45d760", + "size": 25607 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/events/stream", "status": "success", "path": "en/api/php/beta/sessions/events/stream.md", - "sha256": "0aa842f4dc95f345fe041dcef7bbdaa018ef082233862043e2fd2821e2195b72", - "size": 25263 + "sha256": "2ca7b772b7f25cba70c32b7e7f32d574bbbdd2abdcf1704d01819f1aa5e3a0ad", + "size": 25376 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/events/list", "status": "success", "path": "en/api/php/beta/sessions/threads/events/list.md", - "sha256": "d568c569385b28c272c83d962b720e0796841758f150087611820ebe2f0680ab", - "size": 24073 + "sha256": "06b4b28d7147897a7170c3ca2c1f0cc75e8676004ff9b2dba0d7b75ae72bddc5", + "size": 24130 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/php/beta/sessions/threads/events/stream.md", - "sha256": "6f23e9ffeb4f30c7b05b85106fc9fe8b508fe806db40b0ab7ed844bf1aaa44c3", - "size": 25476 + "sha256": "f538e8d2c1b42395ab20f5a8f530a0159dcaeaf2b17378b9a8c7fde1fe083d61", + "size": 25589 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/certificates/create", "status": "success", "path": "en/api/php/beta/tunnels/certificates/create.md", - "sha256": "6942d287a513993267194336bd32ca049abecb23da4c978990594a52ba7e4acf", - "size": 3001 + "sha256": "4a100173d84a78630e4fa6316f460ca8764fd19ab4332747e58a8e23c6397c71", + "size": 3058 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/certificates/list", "status": "success", "path": "en/api/php/beta/tunnels/certificates/list.md", - "sha256": "e7d60086015455ed6de8f5b64cc1852a74e97aec92cd8866d8a7a3d09667953b", - "size": 3232 + "sha256": "4bdc96111adfd5e8f5825cbe666abdc74a7757e72629722596949fd6b741b0e5", + "size": 3289 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/php/beta/tunnels/certificates/retrieve.md", - "sha256": "be4ff5087b96ac695c3fd1acbfb4c1278658d1d025c4e26c93dd6348ff177605", - "size": 2764 + "sha256": "a1871f3d782d8c6232d85920f44b28613926c627c5f481e5f23971c7daaea8ad", + "size": 2821 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/php/beta/tunnels/certificates/archive.md", - "sha256": "a2ab444203a3dad11e893cb14518f5bba38bb63ed2927b99685269eab591fe98", - "size": 3001 + "sha256": "194be18da7d6dbd9a44f5b1814e3f51c41c33c229a0064e301bd0f23479ee482", + "size": 3058 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/agents/versions/list", "status": "success", "path": "en/api/php/beta/agents/versions/list.md", - "sha256": "262aeba286794fe34ef86ad731e77e0cc0bdd818c7f512ec9c62b966b2465a18", - "size": 5109 + "sha256": "b15106002bb47ace76e2f600698156ea43485f23310704c15ebe0e4e7d8f9573", + "size": 5166 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/create", "status": "success", "path": "en/api/php/beta/vaults/credentials/create.md", - "sha256": "f7cf90f430de650d3a78f91a60480f688ba2ee3d489e45020721c62c44b1819a", - "size": 3150 + "sha256": "2a6e1f2f94c66bf22479c16ba14bb6cf5f6ac16a0bb7238f0b0f8eb05e6412fb", + "size": 3207 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/update", "status": "success", "path": "en/api/php/beta/vaults/credentials/update.md", - "sha256": "cc7f426600d5b3fcfbd56d3315c9adb28951cbd812112f13b0af3f1aa161a5d0", - "size": 3559 + "sha256": "e5c0d8a5ce7d872ddfc3bff711592ec8f1340a00bdc81031bf2228285a5ed9e6", + "size": 3616 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/list", "status": "success", "path": "en/api/php/beta/vaults/credentials/list.md", - "sha256": "87f70d8d12665b999a656ce51fdadbfbea6d1d9c21f9bed351272a2d01d32a7e", - "size": 3212 + "sha256": "6b7870c10422960095e3523bd21fa61f14b9b6c6637fde13996dcebc6a788dbd", + "size": 3269 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/php/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "b94882c84a6e8adbe6b29f5ec9e663fc5511b9f3d29e28edb4bed10faac005f2", - "size": 3121 + "sha256": "3b1b3fca6112665a0a32937779c0b9e4ee8a4075b813928703e549d2e9186353", + "size": 3178 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/php/beta/vaults/credentials/retrieve.md", - "sha256": "bfb05afa5d476e510ec4659823c94a31e33fe8f5a014ff4f2d9f7efc9fd76f66", - "size": 2693 + "sha256": "cc88303cd4490e5ae3c9d58bc5585c9a2000e71783ee9aeb5d043e786cdf69e3", + "size": 2750 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/delete", "status": "success", "path": "en/api/php/beta/vaults/credentials/delete.md", - "sha256": "e80b5fb32b92104e39bebd1ed7f837d0394561c1c3e5b3b4e20f7de68759572f", - "size": 1837 + "sha256": "5cf405e9fed9cc24eb4ba505e9440947b1f443fdb60a3e5b9c4703733cba6bb5", + "size": 1894 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/vaults/credentials/archive", "status": "success", "path": "en/api/php/beta/vaults/credentials/archive.md", - "sha256": "51f087abc53e52e69fae9f7ad9f30318466273da0e26445486b75e9e4606e48d", - "size": 2695 + "sha256": "25b09b5364612e77f3112ba969f8508cb8d76696174b2688d9f6b53609aebf3f", + "size": 2752 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/update", "status": "success", "path": "en/api/php/beta/environments/work/update.md", - "sha256": "12ffa04421dfe125bebcaa137b0b32b317b0418876f3a7c40c2b5793a7cec01d", - "size": 3516 + "sha256": "6f6c248d97652e76b2c897f22eb210f0173c5adf0b1d812d2003b9fbe67842a1", + "size": 3573 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/list", "status": "success", "path": "en/api/php/beta/environments/work/list.md", - "sha256": "d2cb623ee042db2e7e7aa2b35cecb0d18da235dfc152e226bce4a3025100d6b5", - "size": 3107 + "sha256": "2de14e1592c311cc1689e9ef64e18b175bb7a2178a2919a70a14d45be82aaeb3", + "size": 3164 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/stop", "status": "success", "path": "en/api/php/beta/environments/work/stop.md", - "sha256": "b55b2224d454ce9ec3ac28a600eb155b3882522cdee417ed18f24678aac40bc0", - "size": 3417 + "sha256": "0e89bfffb4fe6cb0d7a3e4290290ded92ea2f7a73804a1f6120a17836a100efb", + "size": 3474 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/retrieve", "status": "success", "path": "en/api/php/beta/environments/work/retrieve.md", - "sha256": "48f22aa30c9241c41c8f60cb3347ac9e9667b8d0ef6f9d330825cda51724377c", - "size": 3299 + "sha256": "3a581532aa1a52af93b84af81bdf9e47549a7b92749efcd088856d59b0c968d7", + "size": 3356 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/ack", "status": "success", "path": "en/api/php/beta/environments/work/ack.md", - "sha256": "3fa578b3a1c8659467ea1908c32f5af7bf8b103ff89dee4c2a7b21ff4953b7b7", - "size": 2913 + "sha256": "463062dccc9c63dac028ed95e61de20ba33366e58ada16ea9ab4ed1a45503322", + "size": 2970 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/stats", "status": "success", "path": "en/api/php/beta/environments/work/stats.md", - "sha256": "7dcf1a8b2fd52cedeebdc817471a8ac3e0989488c699b2bf8d775d408f287cd6", - "size": 2094 + "sha256": "50e189daafcc5be37cad8c27329693d5c8d7855f4c417f25b738ffcbf3c4929b", + "size": 2151 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/heartbeat", "status": "success", "path": "en/api/php/beta/environments/work/heartbeat.md", - "sha256": "ff777cc1740c05ff13689115352a2233288e3033d5350fb712cb802b8439ac89", - "size": 2468 + "sha256": "a1f1482f8e1691617ef1a153ac0ff66a4bebb3b7672a8365b2ab1eddd358d69d", + "size": 2525 }, { "url": "https://platform.claude.com/docs/en/api/php/beta/environments/work/poll", "status": "success", "path": "en/api/php/beta/environments/work/poll.md", - "sha256": "fb26553b85bd430edd50b30858aa43d714723a1b467369a4c89d2850101eef9c", - "size": 3447 + "sha256": "d34dd88380b48cc0987f4991b6072b51d17ea823e27784959b53142fa4f982b5", + "size": 3504 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions", "status": "success", "path": "en/api/csharp/beta/sessions.md", - "sha256": "3acb80c3f6f24f6123d85c29e75e510f7fc848d1fdae38218ab8e2a9304f568b", - "size": 1207027 + "sha256": "16c8a7a755ece87f7ff1dcd276e0dc98576bcda0d2b8065d5c8a6477d4372f72", + "size": 1209227 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/webhooks", "status": "success", "path": "en/api/csharp/beta/webhooks.md", - "sha256": "d3bb15da5c2287e43e260f24b1838c95fdcaf038fe09da9d63350ee2c0f76b32", - "size": 38967 + "sha256": "fae41b78ecb934e38c33fbd98e8dc9249370dac743d07b87ce48260dc5274031", + "size": 41445 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills", "status": "success", "path": "en/api/csharp/beta/skills.md", - "sha256": "a660d823448df0af13cbca28ccb51b65b5c3b8d257c31ae33e76ad0dce37390b", - "size": 54543 + "sha256": "6bdfc3e9da6320ced64155b305e184ceeb59dbfe5082859fd13676938e472e4e", + "size": 55544 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents", "status": "success", "path": "en/api/csharp/beta/agents.md", - "sha256": "5aed39282e25be1221710c4d60ed4bba774e7b3a642a832eb22bc9715a3e7f53", - "size": 455526 + "sha256": "86c1f368d97eab55118bf7d5d1cce0355937bbd272cb5b91ea3eb9e81a59a39e", + "size": 456147 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments", "status": "success", "path": "en/api/csharp/beta/deployments.md", - "sha256": "10ff68e3109df12a8bf6adbd2a461a3e19a46278506237fa1835c9bacd2ab8d1", - "size": 225382 + "sha256": "4e78938ac00ce96c4beb17f776221791a5acba8c8539198f3703e99f24d5e06c", + "size": 226348 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployment_runs", "status": "success", "path": "en/api/csharp/beta/deployment_runs.md", - "sha256": "8a12cdc6375de0ea4d0c6b4ee3a27b936d7435880e442ec57a198d6d3156a55e", - "size": 34090 + "sha256": "3a62f8846d2e97457f31850aaacb22fd19d3bfefae6aa63218b536de378023b1", + "size": 34310 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles", "status": "success", "path": "en/api/csharp/beta/user_profiles.md", - "sha256": "238820b9b821d104b26f854210f5900601786237228dc83435c7b3c5b5347b70", - "size": 60355 + "sha256": "34f161d039d5b79d391b29b359c8bb20b1a26c62b0b32c89b46153962cac21c5", + "size": 72291 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/models", "status": "success", "path": "en/api/csharp/beta/models.md", - "sha256": "147f3e1d91e14d4f6c50713a2749b3e98735c09e6f4053098327ec5cad14afb6", - "size": 48175 + "sha256": "01b2a3bb46b48ad2999bd06d9b5a8fff2f728939425c598484be49533dc24ae2", + "size": 48379 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults", "status": "success", "path": "en/api/csharp/beta/vaults.md", - "sha256": "fd0b554b2dbd7d5af77b446b768575b0a547faa1c385001f6cb9715dfdc0b6e3", - "size": 102770 + "sha256": "5bc5b4fb968c58b920df81d8d89e5ecfb6162ade1ffee1beb20089306d015b54", + "size": 104221 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores", "status": "success", "path": "en/api/csharp/beta/memory_stores.md", - "sha256": "55881292f622ff68e2244d81b7b6660615fe9ca42dcc5f547dac3043e83927fe", - "size": 116129 + "sha256": "995163d8e7951c22d6cb6491682cb1aa2a6dfc74e97778a8514da310b2ddab80", + "size": 119588 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels", "status": "success", "path": "en/api/csharp/beta/tunnels.md", - "sha256": "26a87ed9b6bdae94e7da96743f2d61a05f4815daf1aebfc1258c7e6307a549c4", - "size": 59870 + "sha256": "6a3234c685113bd70dcdf8236c8553ff4d3e6a7ed21ad6a0dcad31cc607dcb8b", + "size": 60952 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments", "status": "success", "path": "en/api/csharp/beta/environments.md", - "sha256": "32dc4944a8c1e25a6c0f7c1b6f1bfc53449f6395600c1c6152bf07b23d1e6548", - "size": 115383 + "sha256": "c98bebefbca76d24ee2538304ee5850e7a3ba2bd95f8ecf56246ba0877326f55", + "size": 116969 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files", "status": "success", "path": "en/api/csharp/beta/files.md", - "sha256": "10a93152bd180a3bdcef11b8ab2adf3ebef59247f3f70c31722075ba04230c41", - "size": 29471 + "sha256": "e80ed9616149bcb82ec5be67286eac4dbb5501c8a9d795971e1e77d67aa7630e", + "size": 29995 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages", "status": "success", "path": "en/api/csharp/beta/messages.md", - "sha256": "4b83a9e4b51ce1cccb10bba704de78710d79385f5f6c052029286b73337db522", - "size": 2868029 + "sha256": "546a98791e7c2a05d9e87738f9e6efc86faba6410339c6a7dbe0f2cb9e41753f", + "size": 2895422 }, { "url": "https://platform.claude.com/docs/en/api/csharp/models/list", "status": "success", "path": "en/api/csharp/models/list.md", - "sha256": "8871edeae6d5114b4c0dff1993989cc262486e019442765a5e24ffc5abb6a1cf", - "size": 14629 + "sha256": "da0897a68831ee7658aef4b90e7c35a99d8e37a3e3c245f4506326cac01a3415", + "size": 14726 }, { "url": "https://platform.claude.com/docs/en/api/csharp/models/retrieve", "status": "success", "path": "en/api/csharp/models/retrieve.md", - "sha256": "c785d0473f8c349597cfe2553c5b39b25b9bf60b19245535c9f66359de26ed46", - "size": 13327 + "sha256": "29f014286ff068f26c0e7703b7b82ef25d254608d8c40aa2011ee7bd45c15752", + "size": 13424 }, { "url": "https://platform.claude.com/docs/en/api/csharp/completions/create", "status": "success", "path": "en/api/csharp/completions/create.md", - "sha256": "d1d5014e3e3f9d2e0b0895fd6abb7a2232820019169377260e8e7272f753f112", - "size": 13272 + "sha256": "82d0bfc05ea5550b68db168de9460263db209f9fc9f316561c19252c0ea84c9e", + "size": 13301 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/create", "status": "success", "path": "en/api/csharp/messages/create.md", - "sha256": "0c4c0e76541df067df45b69a41a4c5394f46c9ab9a710d200b127a88c5280bfd", - "size": 130311 + "sha256": "1717473feeeb9bdaf398688894b10c3a6d1fb4bfaad80ca74d3e2c36c015a92e", + "size": 132591 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/count_tokens", "status": "success", "path": "en/api/csharp/messages/count_tokens.md", - "sha256": "fc429134a905097b21581c2c8c9c46801e6cd0cd3cdc06dd437757a142b9ea63", - "size": 91081 + "sha256": "b060690e7ad61640aa21b08d81b87b8669eeecc50c40088733d8863527e638e7", + "size": 91087 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches", "status": "success", "path": "en/api/csharp/messages/batches.md", - "sha256": "2db9228248ae803a13d5d80c9e7ef8bff4511ca216d2ffd0e84db22a72b5cd40", - "size": 275236 + "sha256": "560469408c5db9433d76f74b4b3008e56e5bf368a3389aef8c80c1c34b844d62", + "size": 285144 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/create", "status": "success", "path": "en/api/csharp/messages/batches/create.md", - "sha256": "aed228c5006869d28396f705e2c2bbdce81a9fef55c439a77cd594ef48489786", - "size": 118169 + "sha256": "1b0a623f8ad88c562346ecc116ba426970ec92f8331651ef51eae10928a0b485", + "size": 118449 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/list", "status": "success", "path": "en/api/csharp/messages/batches/list.md", - "sha256": "ea9758a9c8554d5062ebda03402fc23112c605a243a40911de1351226874cd8f", - "size": 5403 + "sha256": "191ef019a3925f84b277d5bee45db43f6cac25e7d2f8450da52de2b4a99ba22a", + "size": 5459 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/cancel", "status": "success", "path": "en/api/csharp/messages/batches/cancel.md", - "sha256": "bbcede8dc1269b50416cb052dfcfc86dd179986133a59be12a4f43a8d5eb420a", - "size": 5267 + "sha256": "de5f009da45b697a43dfd4cd625adc99cae3128e58e61dbbe7e718f5c40bfd52", + "size": 5323 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/retrieve", "status": "success", "path": "en/api/csharp/messages/batches/retrieve.md", - "sha256": "a4cc4b89ed2580994befb8c452675bd759dc0430058bed1b036c1910fdaba8bf", - "size": 4963 + "sha256": "584887ff149dba037b40545ab5cf6178c800c6b5e4dba3395f9e8fb39ee61f9f", + "size": 5019 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/results", "status": "success", "path": "en/api/csharp/messages/batches/results.md", - "sha256": "8280ccfb6d389997b922d48274c41734fb159f04e5a4ea06b15117db4d64bb2e", - "size": 36266 + "sha256": "9a1e2825acaf13564af0da68715d12d79c25acc82e90754de3049a8c29a9f543", + "size": 38680 }, { "url": "https://platform.claude.com/docs/en/api/csharp/messages/batches/delete", "status": "success", "path": "en/api/csharp/messages/batches/delete.md", - "sha256": "0791b93005145c716fc4b83580bc8406862798063b6034895c467217fec237dd", - "size": 1683 + "sha256": "6f0b992dd2c2946d0adf772e502637f0e37255d2c6683544f94e66cf8d32d200", + "size": 1739 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/create", "status": "success", "path": "en/api/csharp/beta/environments/create.md", - "sha256": "09bbe70b8bc16750553017e44feab62a606c66284a37a78914fdf50349a440cd", - "size": 11238 + "sha256": "23d4740eed0a4aeb245dc14d90e6cd5f71ad9ca842a6de39de86c4ccf7e31e17", + "size": 11346 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/update", "status": "success", "path": "en/api/csharp/beta/environments/update.md", - "sha256": "c6df23e4d087fecbd3de0588a62ae0055a9613e9a9e9fcc2da68544ccee93b33", - "size": 11328 + "sha256": "e8a1f6babf5a7ccdebbadad6e93a219746a44e6ad2c97dbabf2cb456cc3a7a52", + "size": 11436 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/list", "status": "success", "path": "en/api/csharp/beta/environments/list.md", - "sha256": "a6f2ba8eb57c0de9325d54aaa41ac593642d02d23a20abb4161878de62d6af73", - "size": 8806 + "sha256": "1c36e667da7840c0226cc15e6ba57ecad6c915eb562dda968dfe5dcb8450b039", + "size": 8914 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/retrieve", "status": "success", "path": "en/api/csharp/beta/environments/retrieve.md", - "sha256": "5193ac79620777975af6c09bc3df2773d9d6fdac02de3172c69ecd64c9af5f15", - "size": 8302 + "sha256": "8475e23968eab89462bffd06ac9c59573c3bf08ffe7101541cf213eef18791b9", + "size": 8410 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/delete", "status": "success", "path": "en/api/csharp/beta/environments/delete.md", - "sha256": "7494f2fede3dc6a57417677e9d8edcb5cb7feda047f1813f49e6e44e5f1f4d1b", - "size": 4787 + "sha256": "b044924905677babaad6d7e9ac373fcab58e5d11926e3a75d79379db79841af9", + "size": 4895 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work", "status": "success", "path": "en/api/csharp/beta/environments/work.md", - "sha256": "bfe687c6bc06d25c9de07dcfb9dab5db92125d27a3cea85c9ad23c583d4fbf41", - "size": 59154 + "sha256": "8fbc3d5750f8c826624f0dee4f6288c4c85a05d51ce978d6e24f01607cbc1edb", + "size": 60092 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/archive", "status": "success", "path": "en/api/csharp/beta/environments/archive.md", - "sha256": "4ec79910e2dd3b98c4aa21d04750acc9156406470068b9fa142f9dd7d1365ca6", - "size": 8366 + "sha256": "5a392d849090bf1a566f3079337bad0a555486ffcf061c7b55460e590e3ff051", + "size": 8474 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployment_runs/list", "status": "success", "path": "en/api/csharp/beta/deployment_runs/list.md", - "sha256": "0d76ab412e76d01ed034113119e573e9809437f9f9633bebbb1497e9141e433d", - "size": 11830 + "sha256": "3355411fc6dd06142d31e7e5401004ab8e84659b1e7a24e67cc6b6885d69ddb5", + "size": 11940 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/csharp/beta/deployment_runs/retrieve.md", - "sha256": "90f1535c81d051f406d4f6ca3ffdac0c7f3c0ec1f591621bffaf251ed58964bd", - "size": 10593 + "sha256": "83927fda9a9c928b2c85d17c268f32b93f3b351b06d9b0fd1f8b2ce3e7bae6ba", + "size": 10703 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/create", "status": "success", "path": "en/api/csharp/beta/vaults/create.md", - "sha256": "ff8e938f64ab9677f9dafa860346f1a4eeb51e06b74092b407c378501db08528", - "size": 5602 + "sha256": "7c852115e9824488e6cf89d54763ff75913fe226ead1c93b477db885834381bb", + "size": 5704 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/update", "status": "success", "path": "en/api/csharp/beta/vaults/update.md", - "sha256": "e9086d2c400f95de0156eaf0929fcc1472dce320f4da90bf55af0a7805ece708", - "size": 5713 + "sha256": "83251d6ce1449a3c26fd8863eaf6cb512f50f5d4b680f4c11dec0b856934180b", + "size": 5815 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/list", "status": "success", "path": "en/api/csharp/beta/vaults/list.md", - "sha256": "b54d114c3b4d73a81844996eb5455c1b5b53a9d70b04861c2a47be4b953ae496", - "size": 5867 + "sha256": "59cca73c7c1fb06382f990a93392b6523eff31788154ebaa023dc264277fabe6", + "size": 5969 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/retrieve", "status": "success", "path": "en/api/csharp/beta/vaults/retrieve.md", - "sha256": "ec6c362dcb0a8123ee7cf2477c358673a55a480bd0bca4ce80e34ef6499fcc9d", - "size": 5440 + "sha256": "66c799ec3a02f786024788bec2f01cbf3473e0f1200f8aae2d0fa381ea633871", + "size": 5542 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials", "status": "success", "path": "en/api/csharp/beta/vaults/credentials.md", - "sha256": "84c520fed13ea4899aa5117ff6163f03eb1ade60e2f50074be1a18c64425facf", - "size": 102822 + "sha256": "c326940b027fe07f5bd7d73b39dcad387e6dd1bfe11c7290d65dabe058d515d4", + "size": 103661 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/delete", "status": "success", "path": "en/api/csharp/beta/vaults/delete.md", - "sha256": "95601e6b3b6239d6cba7389a2bd18664ec22c74964436d48fc81b44caaacb9a9", - "size": 4729 + "sha256": "c839b96a492b50b14ca28cca67dcc765cb210b180e1b76d601e0d9be7181d669", + "size": 4831 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/archive", "status": "success", "path": "en/api/csharp/beta/vaults/archive.md", - "sha256": "0a270c33acc34d876ff469a6bbec65d924c676370cbe2200868d340b65402e75", - "size": 5440 + "sha256": "12acdc59e7ad131a160d31a28b84de177dc83c33f35e0beacc98966f310b7ea3", + "size": 5542 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles/create", "status": "success", "path": "en/api/csharp/beta/user_profiles/create.md", - "sha256": "8b35ed3408784a0fe776fa31d910bd92f1af056aaa978a17fbf4157567ca4321", - "size": 12139 + "sha256": "bc21c92803368f897354b4622b196878636cae942cb1b66d301b67f6863f5e00", + "size": 12555 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles/update", "status": "success", "path": "en/api/csharp/beta/user_profiles/update.md", - "sha256": "1bebe4cda213b997ee46e3e1f013a2f90fb0a28beb77f9b6c6746365985d0637", - "size": 12123 + "sha256": "59d065ba5a61548b9e1f703fc06c6a2fd3146189d8185bb192098da5683bfa4b", + "size": 12421 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles/list", "status": "success", "path": "en/api/csharp/beta/user_profiles/list.md", - "sha256": "fcc804c0d06a5ca55d49bdc6ac8e9e36aaa079eee1a80c7e00220f18d1daa7de", - "size": 11222 + "sha256": "d8f93d2fd2dd62a6d817547eb1067c469dd91d52745d30fbe227e82d70e90d39", + "size": 11480 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/csharp/beta/user_profiles/create_enrollment_url.md", - "sha256": "499eb319b79fd470a38778c7f1b0dd1cac7c14c49d15a031a8b4e178addf7de2", - "size": 5323 + "sha256": "baa4e03d6f59af9299438eaa729cb94e4b46ab0ec02cee38547ba4b73020915e", + "size": 5343 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/user_profiles/retrieve", "status": "success", "path": "en/api/csharp/beta/user_profiles/retrieve.md", - "sha256": "a6080510380b89c3a9f6003e72714b5b9f0585b511e7c858dd60c114a4306e1f", - "size": 10119 + "sha256": "76fe8dba7bebed4f7c4a655a5f09a6eed7fd65b1bebafd756a267518cd59d106", + "size": 10377 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/create", "status": "success", "path": "en/api/csharp/beta/agents/create.md", - "sha256": "f51a22101175665cac161990c32784bbe6ec7c5d5f3eccaaf0f050e63fbcbb9d", - "size": 61754 + "sha256": "2f72750d1a418b5dd05163fc0b3852bcf0214380ccfcfe271fde3445a7d699b3", + "size": 61856 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/update", "status": "success", "path": "en/api/csharp/beta/agents/update.md", - "sha256": "01b1cd1033d089f17b14bd239b85573e210ab6f615e05163c4f5e84b382ae071", - "size": 62620 + "sha256": "49a81f870fe267aa40aa75e34395ab4525639327d66e936ffc7739c70d21dd7f", + "size": 62722 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/list", "status": "success", "path": "en/api/csharp/beta/agents/list.md", - "sha256": "dd4ee2a0fee58440b4e4c350a593554bf7e33c466fd5a9dd882b68647d466b9f", - "size": 32511 + "sha256": "f8fec189a3d228ec47ae4a1852791e216f801656f11a9dcf70ee006dad5d0b8c", + "size": 32613 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/retrieve", "status": "success", "path": "en/api/csharp/beta/agents/retrieve.md", - "sha256": "c7bc86ddf3fd15e626bd5b0b32620ab3bad16eeb17a5586651546ed38c110c91", - "size": 31799 + "sha256": "fd999c50548e7a6d6ef6a23f3ec1a2760b47d343ccede13e0aec30e561c1e856", + "size": 31901 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/versions", "status": "success", "path": "en/api/csharp/beta/agents/versions.md", - "sha256": "5ae65682a2394a0015f01ab017b9dbe3b9791ec78f29b19526e97b85a83ace61", - "size": 32316 + "sha256": "d69717215a57d0e8dffde2062c07dd0efd79cc1ba71f6167ec1462f5d43e16d4", + "size": 32427 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/archive", "status": "success", "path": "en/api/csharp/beta/agents/archive.md", - "sha256": "7335a965bac3d763c4319f00d388cc98f182675d2bcba6b880abd0437cf54988", - "size": 31671 + "sha256": "d5f7b3bfac5597fd484f857a2f310f6ba47fba9d5734476d74b6d5cce760ea51", + "size": 31773 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/models/list", "status": "success", "path": "en/api/csharp/beta/models/list.md", - "sha256": "97dbf09c80bd75849a0c070d97741aa78ebd291f36f6d466aa7d7e1926278594", - "size": 15376 + "sha256": "f5be33c94110911b82d94021914e31e0bdd6988dfbe11c2aae1ca6bb36cf7852", + "size": 15478 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/models/retrieve", "status": "success", "path": "en/api/csharp/beta/models/retrieve.md", - "sha256": "9703a0bfffdb1b058b64e45a4f5a781499c60aac42752738e1936e5d67be3563", - "size": 14050 + "sha256": "222410e0da07705fc47d2eddd553e6f3ae3b153828de2fc2b1b199ca0293f47e", + "size": 14152 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/create", "status": "success", "path": "en/api/csharp/beta/tunnels/create.md", - "sha256": "aad1a5edcd4a1b1f9bfde9e8fb8d343ee21f9218df94f7559dc4d4a7869d4066", - "size": 5820 + "sha256": "aa9f0fc9891ac2fa199b3c8749847c93c9b92bcc5df9214f94e55957f8b32bd0", + "size": 5923 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/rotate_token", "status": "success", "path": "en/api/csharp/beta/tunnels/rotate_token.md", - "sha256": "82418d25362e4afdc46e99d710053f9a7a3e9d97875951f17748e1fd8ff0332f", - "size": 5440 + "sha256": "098728ed3523207c5d66b0d76370a09e45e2bd5ca44b20c719390526c529d33e", + "size": 5543 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/list", "status": "success", "path": "en/api/csharp/beta/tunnels/list.md", - "sha256": "c6d5dd6367523b10753a7a71428f1be2257f55c241fa875abeb93759f72efea8", - "size": 6112 + "sha256": "7e9204b9f2e572149f8782e6c145c1d68cce32fa154cd1268c8318e134ab3077", + "size": 6215 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/certificates", "status": "success", "path": "en/api/csharp/beta/tunnels/certificates.md", - "sha256": "08d2638fc55f7343027272ddc58b7d357910515c317bc570028f2fa7d3ed6f85", - "size": 25898 + "sha256": "a7f7e266b0f4e69fe973edaada8142e79bd987aea722a7165775c2970aa1ca72", + "size": 26362 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/retrieve", "status": "success", "path": "en/api/csharp/beta/tunnels/retrieve.md", - "sha256": "ba4f2a43d96cd4e4181e077ce319d6bc9a8b182f011ff51502e6354121e3c0f4", - "size": 5658 + "sha256": "99025b8014f173fdf68a8cac19e7b7a702e73d584ef3b20d3933ae4fbcb7414e", + "size": 5761 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/reveal_token", "status": "success", "path": "en/api/csharp/beta/tunnels/reveal_token.md", - "sha256": "3e87b7318b495161222fa9401038b072e8874efa1386b4ea91e5e0127e853849", - "size": 5348 + "sha256": "257e99eb64100f78937492109a57f231edd0ce27944270a3eddc3d4bd37f66fd", + "size": 5451 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/archive", "status": "success", "path": "en/api/csharp/beta/tunnels/archive.md", - "sha256": "e9045542692cdc45cdbedc29eee55ad86547cb1d0bd2a4f6ada6983208e67550", - "size": 5939 + "sha256": "7a86bf4abc6d6902fa99a7d5c9ed0f312341d3fcb78074154f70967f8f64f681", + "size": 6042 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/create", "status": "success", "path": "en/api/csharp/beta/sessions/create.md", - "sha256": "189901efa125f5aa65844d9de274cf4e64f4a60e215c5dde8a212519c22b9b9e", - "size": 87932 + "sha256": "b9f740ad1d395ed5e0363dee08f341559ea6424ad09d24dfeadd5de296f63ea4", + "size": 88036 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources", "status": "success", "path": "en/api/csharp/beta/sessions/resources.md", - "sha256": "533bffa23b0c6f38de37522f979aead9a61060f4c4f56abc80498357ee0dfbe4", - "size": 38434 + "sha256": "4aaa3727e4cb5b9e6a2d3fd1bd526d4f57676bc8ac5eb184fd97474a00f6be59", + "size": 39038 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/update", "status": "success", "path": "en/api/csharp/beta/sessions/update.md", - "sha256": "6aced02d167e1647559ce6c7ba2e2bfd1ea6b259dd75a3333603cc66c9912262", - "size": 48911 + "sha256": "f4f85e2bb05b0dbc83415dfa9174551c8ef47bab4c4b059dc3037e338dcf0e76", + "size": 49015 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/list", "status": "success", "path": "en/api/csharp/beta/sessions/list.md", - "sha256": "757f62e77d51934e974b4b7e0c356f38952f457e03e0b196ca20ccca1039ada2", - "size": 50396 + "sha256": "955e002bcb615e44cffaae16e70862f3bcf14d770221f1e58c0996328b07dad8", + "size": 50500 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads", "status": "success", "path": "en/api/csharp/beta/sessions/threads.md", - "sha256": "1edfc885c44e05fd408f5728b413f1e16d02560a6979b58217811828f6905222", - "size": 453016 + "sha256": "6279e550258e07af8863179ba902fb6429dcf98ad39a737b6ed7b8ee1cb7f2b9", + "size": 453590 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/retrieve", "status": "success", "path": "en/api/csharp/beta/sessions/retrieve.md", - "sha256": "9eea176ef33500d9af362bda5d5bd3f5d4308627e460536f241cc6f250755fdb", - "size": 47603 + "sha256": "e5656f431c4b52a21a3fe386b12da67be477b2cf09bbba65adbec97ff9da8e63", + "size": 47707 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/events", "status": "success", "path": "en/api/csharp/beta/sessions/events.md", - "sha256": "094bfe1f1b5dc561cadb403f5643b1fbbd5d91de52f203ca46fc2d781008acd4", - "size": 577727 + "sha256": "96194b0a99fbaac3ff54422beb04cc64ec7ffce62b341fe30cd195b103b8fffc", + "size": 578125 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/delete", "status": "success", "path": "en/api/csharp/beta/sessions/delete.md", - "sha256": "3fadbb034835fbd987e0626bc64f99ca806d2b417a7ab72465f6f8946a487722", - "size": 4686 + "sha256": "dd1317a2ef30e3a56dd1ea565d48af61e5c15464f149500ec5bbd668a8622d63", + "size": 4790 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/archive", "status": "success", "path": "en/api/csharp/beta/sessions/archive.md", - "sha256": "fa53219399d19243f8e6e5c593ad4be7c9bbd90e10f4af9b046d6203b4714574", - "size": 47619 + "sha256": "3506821ef136b88442d48ce03020d80a43b1a5759cb09fb5c0266fa819e1d474", + "size": 47723 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/unpause", "status": "success", "path": "en/api/csharp/beta/deployments/unpause.md", - "sha256": "3903177b301e6f4e1b17bb3bbdbdfa9280cc377ecdfcd6afea22ebae82bd6eec", - "size": 20545 + "sha256": "b739b5c3ef6f6708a51b7a9ac87cb95c86527c2773957eadb6100ed7aa1bcbee", + "size": 20652 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/create", "status": "success", "path": "en/api/csharp/beta/deployments/create.md", - "sha256": "612769365cf762cce9322b7824737f92b592e902acb1c6d8a297ba3b18d46bcc", - "size": 30723 + "sha256": "40e5abee87c266ccda9c85112cfbf42543648f990ecfdcb1116d59dbe0c67823", + "size": 30940 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/update", "status": "success", "path": "en/api/csharp/beta/deployments/update.md", - "sha256": "16d0def9247ddac15764389bc50bbd562aa50742ade8693556563ed5fc577e56", - "size": 30483 + "sha256": "ad5dd30ec2c26aeb1a24bc053993cca302d54893a7466d882a225c2326a98e46", + "size": 30590 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/list", "status": "success", "path": "en/api/csharp/beta/deployments/list.md", - "sha256": "65a8f002279d49b15fb9c52ec6890bcc6c934c84f1e92a7955898132f9bdc08b", - "size": 21531 + "sha256": "38a9613fd9d50e0636c8522ce7012f6387307d2e473814975b5947bb8536d900", + "size": 21638 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/retrieve", "status": "success", "path": "en/api/csharp/beta/deployments/retrieve.md", - "sha256": "a8d2de20e520472265857381be6d442b00e3ebb64093461abd98f8d1defb2dc6", - "size": 20518 + "sha256": "51809e3d8064ee4dd414f7e4956133b5186bb4042435fb1dcd69d499aed85ce5", + "size": 20625 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/run", "status": "success", "path": "en/api/csharp/beta/deployments/run.md", - "sha256": "3f894b5cedb6e7c8030102cb578972a48a434aa449f8d098b385bb22d22f1b3b", - "size": 10558 + "sha256": "88e8f8b55d7d83c61ddc7681d9234cc7469246c0fe1c5f0eeff71cd0a1a3b5e0", + "size": 10665 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/pause", "status": "success", "path": "en/api/csharp/beta/deployments/pause.md", - "sha256": "322561d24594b9cdccf0e3fc2dea473825ce18eafcb9085b7d011f6fdc0c4416", - "size": 20525 + "sha256": "90ba68d0070642deb0b730da0116164d482fdc8303fb33bad2728afa0e4771fb", + "size": 20632 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/deployments/archive", "status": "success", "path": "en/api/csharp/beta/deployments/archive.md", - "sha256": "17103c534a3221f2df02effa30df22c8a5770d8e926f152e8dbbf19defcb5b49", - "size": 20545 + "sha256": "b55810b63972f07032316ffe7dbb35213b584aa261b21aaba08a1216f57f6ebb", + "size": 20652 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/create", "status": "success", "path": "en/api/csharp/beta/skills/create.md", - "sha256": "5dfa044309356a57d41945a20c46aeff6357e397fb5406ff2d6940ee8fd66a11", - "size": 6691 + "sha256": "44f1db8d55748087d1218005eed8239add7ee17f78620a86575cf82055d4365f", + "size": 6812 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/list", "status": "success", "path": "en/api/csharp/beta/skills/list.md", - "sha256": "82ee1b4c061213d7f360cd30a281eb51dc451bf4907d107dfc3cc1a7ea0e5ea7", - "size": 6943 + "sha256": "e2b7ab8f6e1fe77d398b95145db83fca11b10402d41d43c8908ac1c30c52ae03", + "size": 7045 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/retrieve", "status": "success", "path": "en/api/csharp/beta/skills/retrieve.md", - "sha256": "cc83ceb7b22addb5b92b952ca9e888ec4544fa2701aaa424f651b3a2e55490d5", - "size": 6386 + "sha256": "55c85f93fc314c3a2d9c70a65c3ea90fdb863607d3794825f3e7c67e7578841a", + "size": 6488 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions", "status": "success", "path": "en/api/csharp/beta/skills/versions.md", - "sha256": "41a875822f9160842c751be30a6cdc2ede7feceb03ce9932d44baa2c070f1303", - "size": 28947 + "sha256": "ceb40c98784228827b96616f376229e80a6f26f9930dff277bb2c035cca9ec26", + "size": 29521 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/delete", "status": "success", "path": "en/api/csharp/beta/skills/delete.md", - "sha256": "4bbc0cb5ca246ae924ad4b6ecb44e703cd136a7e8b73a1fae698575cd9368f22", - "size": 4771 + "sha256": "db9b66061bf132b92d474bc069f0c1b5735b303e21be3072870b4101fa2d355e", + "size": 4873 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/csharp/beta/memory_stores/memory_versions.md", - "sha256": "8a6ac2c37bb06cbfc733fef4a52d97d7a7e5fc3bc31d0a89a2350fff18b7dd38", - "size": 43239 + "sha256": "6d11ec82fe20c2176f7672d08257c2efb95e2dcc7537437ac6e482a51dcf72b1", + "size": 44296 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/create", "status": "success", "path": "en/api/csharp/beta/memory_stores/create.md", - "sha256": "a2621cf32af91dc5125df50d66fc02dc0863ce69315a9ba51f79ea5b86a5248a", - "size": 7194 + "sha256": "649904b6ff8a7af8d1bcb2ae65691882c2f1c1c3cf43535013cf87bea7e5a204", + "size": 7932 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/update", "status": "success", "path": "en/api/csharp/beta/memory_stores/update.md", - "sha256": "cdc489b93a21dc3e66c610d24596745360b3d79cea7f49ad11a6262b2d9ee5c8", - "size": 7286 + "sha256": "86c72cbb003925a81cf3ef4c168e49baf069a276eb903348aea56a64577bc7b8", + "size": 7757 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/list", "status": "success", "path": "en/api/csharp/beta/memory_stores/list.md", - "sha256": "2b666e860f7143a796725e9e73461e2dfcc9fb0058274e8d63fb9f39a5309b3c", - "size": 7389 + "sha256": "14288e39a68cccc35c891ab527aa828a653c748848a50fac6eabdcd84ad2106d", + "size": 7634 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/retrieve", "status": "success", "path": "en/api/csharp/beta/memory_stores/retrieve.md", - "sha256": "2421053deca31227b822ffb8781f70797106c85a37e3a65173160576a0b3a843", - "size": 6632 + "sha256": "ae6a6311a0605663c8ec416803e11d0a9a4487160ddab97630683f6ffc226873", + "size": 6954 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/delete", "status": "success", "path": "en/api/csharp/beta/memory_stores/delete.md", - "sha256": "8ec072597fc6642525c416c6bef62428cbf68bc3125687d90c5f45accdf3c2fb", - "size": 5061 + "sha256": "62fc07d18b282d1b5740802eee5bc0846079e216a38bd5e1658d7bfabd1d6a8d", + "size": 5142 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories.md", - "sha256": "0ea4c712c0e4b8c231a5096b4d3db21d568eb16b0bf8a7bb1622a4d487634285", - "size": 55323 + "sha256": "bd9e46aece79297e79f509c51e6f4bd9d1ab1d372e0ed68a1fc7bdb5d1316e12", + "size": 55199 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/archive", "status": "success", "path": "en/api/csharp/beta/memory_stores/archive.md", - "sha256": "7032d0afd5784c348fbf295695115f9e053d7e8c80b935378247f0b7413a568c", - "size": 6707 + "sha256": "4e7545e8ed9e1fa39c739ef6240d2d47e59f47b2a8b7f0503884956216a584a6", + "size": 7051 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files/download", "status": "success", "path": "en/api/csharp/beta/files/download.md", - "sha256": "9827cf1db323bfe16ffa87ad539ae584d9e9473cd8b73743dd152baf2aa645fc", - "size": 4300 + "sha256": "5007ddaa427a2616238ac9c6e8b04030dc6b35c07ab9972dea3096ad05976a08", + "size": 4401 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files/list", "status": "success", "path": "en/api/csharp/beta/files/list.md", - "sha256": "9584213a69e95de7d473c0c8e01a2b2fad08008926e125bf732c73e731c55e32", - "size": 6782 + "sha256": "44bde625ce8056c5b4f22a3e1208b091fb94ffd423ea30dc023a0d169c36919b", + "size": 6883 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files/upload", "status": "success", "path": "en/api/csharp/beta/files/upload.md", - "sha256": "93308aaec026bc450e568272465cae1aae77f0e897ef2dc2268b94498a8f9d72", - "size": 6396 + "sha256": "d12e885a23be028a0c3b02ffd27c52ffa18ad61048c892e5a839107ac97c21f9", + "size": 6516 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files/retrieve_metadata", "status": "success", "path": "en/api/csharp/beta/files/retrieve_metadata.md", - "sha256": "e81027a1268506a0bc4b73046ce6455a63894ca74899929d78956590051ced72", - "size": 6032 + "sha256": "aff83f513128ef4efa643148cddf8b165844064c166244f4dd794c53ee080792", + "size": 6133 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/files/delete", "status": "success", "path": "en/api/csharp/beta/files/delete.md", - "sha256": "902793650d8ef36347b2d9260557721fd155f43b095dc0d8262ba2e5f2afc791", - "size": 4593 + "sha256": "82ebad618d1e8afff02cf668d168e9df6c45f1689a2e2c2cd9173bd8f3085fd2", + "size": 4694 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/create", "status": "success", "path": "en/api/csharp/beta/messages/create.md", - "sha256": "f131b080addbce7c7efe32b8ce9962f7cedd3e18ef187dc0c29a902f42031d46", - "size": 295318 + "sha256": "5623a5bab6e5bc2389ce74f3b3f322a321064e1cae787a9f0fa5dca505cc68b1", + "size": 297777 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/count_tokens", "status": "success", "path": "en/api/csharp/beta/messages/count_tokens.md", - "sha256": "0d2a423bfdfa1cee4ff99535b13a7ea0ea43809d26cd685b169cebc58780510c", - "size": 140953 + "sha256": "261a469873a14944385b82a28e74ff9c7041ad9dbfe35c35fbcac83752a7d298", + "size": 141138 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches", "status": "success", "path": "en/api/csharp/beta/messages/batches.md", - "sha256": "444043c787da5066aee76c2ab138c1c44a03fa6027c50a9437cbd093cf6478b0", - "size": 791705 + "sha256": "3821cd6f7b63bbc413d7195abbe78d224ec76fac710fb730aa21d9a9558e7404", + "size": 804824 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/create", "status": "success", "path": "en/api/csharp/beta/messages/batches/create.md", - "sha256": "6744b0af843104c832a70ebf93f77b34cf46560f5f9645554b92155bfab800a5", - "size": 177849 + "sha256": "7aebdb37b8ece1b846b8786f82e7f2de6af07b70caf20f0992bb3cc9a7d24c5c", + "size": 181060 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/list", "status": "success", "path": "en/api/csharp/beta/messages/batches/list.md", - "sha256": "a87f7ffe3c00d9ea5de663f2b306b810195d4a5ae49d5fe217a14981e4d6d446", - "size": 8816 + "sha256": "03e1a50a8d095927685d448c23ba04f47231ab0356f0eb4ba4d7cd3948b93579", + "size": 8928 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/cancel", "status": "success", "path": "en/api/csharp/beta/messages/batches/cancel.md", - "sha256": "4b16b7165393ec05cbbc3a9baa72dc402402048267b407cfb3e370be48782078", - "size": 8692 + "sha256": "f515f1b514f30b30af537bca172191ad8fe76e516be8e823cce89f80aaed0798", + "size": 8804 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/retrieve", "status": "success", "path": "en/api/csharp/beta/messages/batches/retrieve.md", - "sha256": "04b4342b4a738b0bf09f134f7a2f1a80a1f14321afb9c98c7ba428b6c814b3f6", - "size": 8388 + "sha256": "9796a7a30a0e7cc2533e91865bb3b0bfd4ba3c43c385f57c03df9515dd988c8e", + "size": 8500 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/results", "status": "success", "path": "en/api/csharp/beta/messages/batches/results.md", - "sha256": "85ce1cfde8ba14a6b72b4102dfd649bc68efca0548b80d097ac267bd5fdc190d", - "size": 151702 + "sha256": "89fc98e2a4efa8fc756fd9416af8d95c5ea150a52c73d2b384f45bf9d16c4897", + "size": 154172 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/messages/batches/delete", "status": "success", "path": "en/api/csharp/beta/messages/batches/delete.md", - "sha256": "a161a8f3ac2675ac5614388bc4d14dd7c4f95f7ef51ac6baff35dd2f48171259", - "size": 5104 + "sha256": "6e1ca29566a8231fd27d043ccb0f0ca2279f5fb68d7fce92bf53015f89b22bc1", + "size": 5216 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/create", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories/create.md", - "sha256": "38a745ea3dcfc4cf4d26e784cc8e327e2ece737f7731250ffac6dfc90c21cacb", - "size": 8449 + "sha256": "cb4eb913392599a877c5737d5d272d4239dbc87df8e9b1afc2e362341f7548cc", + "size": 8432 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/update", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories/update.md", - "sha256": "2411b30d79fb28426a8fe5ff879d78380640401574917bdfd6dee7e439189259", - "size": 8887 + "sha256": "f09c181d68ef15020e8b035a3418286fbca9b8ac2fd02679adc165112b76ae1b", + "size": 8791 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/list", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories/list.md", - "sha256": "58903409d31a3ea9b959f3fd9785da70f6c951a1aca7751d752b74698d3af9bd", - "size": 9878 + "sha256": "bc23a02fd3e74f157795146119bdc802a3df270e7d96c4ad2df276d9e54589f0", + "size": 9903 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories/retrieve.md", - "sha256": "23fd0789bd7c170bec292f3e156205a7cd3b06da4e869c1ff193d447ffec6a0b", - "size": 7966 + "sha256": "b80d6a0298cfb3b22c2f0998ff841ecc52b59f78cfa51aa927ee1472e70637e8", + "size": 7928 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/csharp/beta/memory_stores/memories/delete.md", - "sha256": "7a6642f3ce4f17e6aa9461efb6d18bfdae3baaf775435f0909282937d778e3a8", - "size": 5740 + "sha256": "53c4e58a66d8d92e3f68815bea969a7d15aa504f4344d9e71eaae95d7b4c5f79", + "size": 6015 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/csharp/beta/memory_stores/memory_versions/list.md", - "sha256": "48f4d1802277a644f1790db5d813ae126389343b74086fb5c6326e61ee71cf23", - "size": 12442 + "sha256": "74b042199f4489972123b8aa9c2d53a9d3b0ace66fdd44253b983d58d49bb080", + "size": 12757 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/csharp/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "4745164cdca9a27736d579363a853903aa7804efdca0d7a1c32c05cfe5c4d95e", - "size": 11105 + "sha256": "d0e93a3573b9c9666ba55456358add7bd40e11786b56f39571e841d229df983b", + "size": 11310 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/csharp/beta/memory_stores/memory_versions/redact.md", - "sha256": "67861cc942d23ef50d6c5ebb892e3d47876c8941b936577f6b7782fe197d527b", - "size": 10680 + "sha256": "01bf4e5ffd25a373a33fd11b63ae0dfcdb768451906452f764660c5b138a1a39", + "size": 10993 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions/create", "status": "success", "path": "en/api/csharp/beta/skills/versions/create.md", - "sha256": "18e99201b136341a0706c415b9f5dcabec18dce9ad12a51ae5c5bb5815f9caca", - "size": 5967 + "sha256": "64593e90dbf43ed51490241f4e33858c57b57fe45480256bb0ced7571d17006d", + "size": 6097 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions/download", "status": "success", "path": "en/api/csharp/beta/skills/versions/download.md", - "sha256": "9321ff4a3101e418e0562afb1478042d86d9e28b53c97599bb9d7e6482d05c7a", - "size": 4779 + "sha256": "67e9a134730a34f8ec9eae37105cdba589ac179040b1297f8d835fa7c03d5785", + "size": 4890 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions/list", "status": "success", "path": "en/api/csharp/beta/skills/versions/list.md", - "sha256": "cc37a5e32bd96724e8d1e936ef9b8a2607f3450b320179cfa949016a3bbfb6d8", - "size": 6055 + "sha256": "922d13f2ba9d3128e49956502a20e4e959b837d283d0be5838a7e90304dde234", + "size": 6166 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions/retrieve", "status": "success", "path": "en/api/csharp/beta/skills/versions/retrieve.md", - "sha256": "77a2e16cb8253c387ffb114ba5c08295af18ee702727446fb63a4ad42a2bced5", - "size": 6031 + "sha256": "95a1fe6a8af0ba3f8d9590312df44e2d95090e9633c25e6ed60e31df174ecfbc", + "size": 6142 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/skills/versions/delete", "status": "success", "path": "en/api/csharp/beta/skills/versions/delete.md", - "sha256": "2f78660e6abb24771dbedec65a76339d0d0e848ae23c87fbe9b1915042c4fd98", - "size": 5170 + "sha256": "60bc0500e07b51f88ea1e0fc82ae50f953050d21179c523c24cb7ae938b4d517", + "size": 5281 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/list", "status": "success", "path": "en/api/csharp/beta/sessions/threads/list.md", - "sha256": "1f3005dc7c06f67018fbdc3906f28cf9878ae61005f3403067163dc1d5312251", - "size": 35517 + "sha256": "d093163564c39bce67f7f2d13259957c6458734fe7f826c5bcfd029e0f2a7720", + "size": 35629 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/csharp/beta/sessions/threads/retrieve.md", - "sha256": "20d8774741ec550cee5543119717079661e7fe939e1d9f2e422729762336b9bd", - "size": 34640 + "sha256": "04cc7a9c98e7dfbdf1adfcee5a333d3be97f3d009ae5f8423748941fe39963cc", + "size": 34752 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/events", "status": "success", "path": "en/api/csharp/beta/sessions/threads/events.md", - "sha256": "180a16d0a136c40fb3f1241fd406ad708668c78518b33c321e1478e780e1eef0", - "size": 200376 + "sha256": "9d1647694a663b5458db1ebba0470a72389d434ed0606e3db91668fab91eaa80", + "size": 200614 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/archive", "status": "success", "path": "en/api/csharp/beta/sessions/threads/archive.md", - "sha256": "0db999ff2574630bf077d8e97d6f0f2f8266c463c7faad4f7ea056f765dc422b", - "size": 34656 + "sha256": "232c469c0779a8422fe03db7cc58d27835f796df9cba7ba1219516d275e2e7ba", + "size": 34768 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources/update", "status": "success", "path": "en/api/csharp/beta/sessions/resources/update.md", - "sha256": "c698157aba461ec30679bc7e0e2b321cacf5b0dc9b4fd6de56c89afab0bd9736", - "size": 7702 + "sha256": "1d5f5ef5c8bbff47f1bc1b3fab7a3b99f4fbe23051ec8b7f899402a59a617709", + "size": 7816 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources/list", "status": "success", "path": "en/api/csharp/beta/sessions/resources/list.md", - "sha256": "5059f83c56543d579f923a68dea230766be4d75e9de91b2df72a13a71ab6c42d", - "size": 7984 + "sha256": "70c41d73abce280eea42fd4ea243a66d7816c69c7ca64552ecd3dcc82fb9a145", + "size": 8098 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/csharp/beta/sessions/resources/retrieve.md", - "sha256": "db848aaebc39c7e75d632ff0edf8f244d5da9c28aec4f7f7d85efd06c5fede62", - "size": 7470 + "sha256": "7a61003b9e1f413ff4f44e0749bd3c888bf4f96f54dae24b2ab56365a584b41b", + "size": 7584 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources/add", "status": "success", "path": "en/api/csharp/beta/sessions/resources/add.md", - "sha256": "7c99ba2011ca806b63141aab8443ce12529824add3c457c52e41d57cf5c7240f", - "size": 5467 + "sha256": "944c767e59993d73b6cf7595f30e8ab88ce2430d8cf46d47c499a43124cce6e4", + "size": 5615 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/resources/delete", "status": "success", "path": "en/api/csharp/beta/sessions/resources/delete.md", - "sha256": "fd73d91f293ca6378404b8129488aee918d1ee08f8e144840b767adcee777901", - "size": 4925 + "sha256": "00348df1b55f8da7b578b4b253fd2f2537b50a8e62e780d8da9f076419814638", + "size": 5039 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/events/send", "status": "success", "path": "en/api/csharp/beta/sessions/events/send.md", - "sha256": "c88f5df1b6881e1ed34595c16973df5eb15d857ca1eafeb267b7a81cb11116a8", - "size": 26964 + "sha256": "88a44c1bce02ab2967539e2253acd981d4b9d06d02bede89d20626915d8eb580", + "size": 27140 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/events/list", "status": "success", "path": "en/api/csharp/beta/sessions/events/list.md", - "sha256": "f93282d8586187cb3384bb4bacd3912dcaf50f0ae475ed74802feaf0da1ed553", - "size": 101928 + "sha256": "9fd4244d830a3a85da21629968314da438d6934e4752eecff76246455542be3e", + "size": 102039 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/events/stream", "status": "success", "path": "en/api/csharp/beta/sessions/events/stream.md", - "sha256": "c7aaf74447320be10a50f8a2761fee488813d9d0564dfc8cd78773f48c460aa2", - "size": 101694 + "sha256": "e9a781677c96ae7712192aaca99859cc2f84241de79d73124d2708e74bc39032", + "size": 101805 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/events/list", "status": "success", "path": "en/api/csharp/beta/sessions/threads/events/list.md", - "sha256": "0184ac97323d95f9feabbbe9d3c93c6a3f1e1265b3ec4f2e02e06c4d5eb7c5d1", - "size": 98609 + "sha256": "10a4fe2e075015c00f543c2c5926eb2a09be32428d75ebcdde4169014e86a7e8", + "size": 98728 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/csharp/beta/sessions/threads/events/stream.md", - "sha256": "1ac395e09c015b0a56618b1a63fa5821a5cf34cbad291aa5fa0a6ac370674958", - "size": 101904 + "sha256": "7fe856c8807c8c151713c11176813dfc9c8d377c42d08f357b9e5c4f52c425eb", + "size": 102023 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/certificates/create", "status": "success", "path": "en/api/csharp/beta/tunnels/certificates/create.md", - "sha256": "618b56bab9b34374fbcef642de24da913469a40b13222e6b9d1192e7d5986402", - "size": 6353 + "sha256": "475fc5f2b5654d79df04bafde6d9a00961a902114ebac3653c62116ddfac64e7", + "size": 6469 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/certificates/list", "status": "success", "path": "en/api/csharp/beta/tunnels/certificates/list.md", - "sha256": "abab49870aa7d12013ce846b935e34282d30b942a45eb2535110dfb3068c218a", - "size": 6500 + "sha256": "2ab29a7325bcc0d48804f90301391e40e3fbe43ad9751e6228fdfe13ec5e0c5d", + "size": 6616 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/csharp/beta/tunnels/certificates/retrieve.md", - "sha256": "15f73e4d28f969da7fd668fda949f633413846dbbf7b18dd00049d99014a8419", - "size": 6107 + "sha256": "0e55a57c2af08369b0a6967d11aabe97105d9643fa9834672058c42aa8ee7810", + "size": 6223 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/csharp/beta/tunnels/certificates/archive.md", - "sha256": "bc5923ac124c1e3337f836b115f7b18a375c65f67b29c8d1af03880ff761e41c", - "size": 6342 + "sha256": "a496366ab26dce741f779576d6f369ca2bfeab2e6933a9c61f116b1ea405b12f", + "size": 6458 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/agents/versions/list", "status": "success", "path": "en/api/csharp/beta/agents/versions/list.md", - "sha256": "bc23e7680e99ab6ffe2044e0d0a78c958e4292959cd79c03b0d2d6d26090054c", - "size": 32315 + "sha256": "a5ba67d8851fb295d8c072e19507aa2065e3714547c2e402a94060394fd69564", + "size": 32426 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/create", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/create.md", - "sha256": "fd3fa29fbcb7402f75abbcdbf9970e9b538068f99af76baaf9b2a8b71d46163f", - "size": 14484 + "sha256": "77789336697adbf13d53e2b758236bb492dae8c802fbd31b1c0f52c80b32e226", + "size": 14639 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/update", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/update.md", - "sha256": "5ed65a8da5a932be9e513598ff72301b394a925ae2ac733337f4a3a754d802ed", - "size": 13856 + "sha256": "00b4fda4b8d7e5eac7acdc95e47233e4f2b93d396a61fa57c7f7d818ddda2bf6", + "size": 13970 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/list", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/list.md", - "sha256": "d659427b4314486ebac3752bf7ceda4a40fd7a80bba60e6b40f40c7a28240a27", - "size": 9764 + "sha256": "0a792e012d1d0b301edd922359c1a6a120b7b510c3681926a19ef9f6bacd646e", + "size": 9878 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "d9049f6a39bf19c74dd556c7ac20fa36d73cb09cfe9e31cfc52ea2ff685e0f36", - "size": 8456 + "sha256": "ee7ccd24761fb7b9ff7ef78b053c079744f5dfe6acda5948ed58deb0217a1705", + "size": 8570 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/retrieve.md", - "sha256": "6aee05f9f60cd128b356eec523a4f2b7c6efda361a68e3af58a8b0ae83bce8ca", - "size": 9321 + "sha256": "484fd8131dda6a5a77349ea50332377e7afbe3bc17ec9944a7cda3b0c9bf40df", + "size": 9435 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/delete", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/delete.md", - "sha256": "9aa1f9c5cd8861299414b41d417f89f086eeff798232ae20c97a489754b7a055", - "size": 5028 + "sha256": "04a7b6549ece6ec650f3c9f1e47d45d147fa91d5cf9576bf9ff70ad990448b13", + "size": 5142 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/vaults/credentials/archive", "status": "success", "path": "en/api/csharp/beta/vaults/credentials/archive.md", - "sha256": "8ec75804dcb30d2e271b9c5f9b4ca48c05dd8b6eab4220327703e1e4b6cc03c0", - "size": 9321 + "sha256": "caccecf336da431eb6edf1f964fa5c03bba5177ca4c571ac2469bb1f4b64cd8d", + "size": 9435 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/update", "status": "success", "path": "en/api/csharp/beta/environments/work/update.md", - "sha256": "01d2472ebabd546e728a04a1944d2ed4c23fbba420304cfd83a38030c5fd8762", - "size": 7352 + "sha256": "3a7dde0bdc358ad41b187ed90d5b059841e08920780fa566d2c44b5b2a44d2cd", + "size": 7499 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/list", "status": "success", "path": "en/api/csharp/beta/environments/work/list.md", - "sha256": "4466d86139d0c00c1c58e81ccbf64c7a144918a3597cd6cfc6906e3e51e763c5", - "size": 6970 + "sha256": "38fd7a1a1f8e103252f633031ef8c0ef61950bdb03a776bd1be9bf2a7d224e71", + "size": 7083 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/stop", "status": "success", "path": "en/api/csharp/beta/environments/work/stop.md", - "sha256": "11b081ac4d56d30c96d0e79c39810943677be9926ad92367b3b9edd56fc2704c", - "size": 7160 + "sha256": "07e8fe70826d66dabb29f4382a8f0213452980a07e7d07c3bec9c6e49e15eacc", + "size": 7273 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/retrieve", "status": "success", "path": "en/api/csharp/beta/environments/work/retrieve.md", - "sha256": "d3d90529cbac779a78ea0e00d78698ee35aa5503223e74fe051f6fffe7b635a0", - "size": 7102 + "sha256": "97deed600ce828815888a2b6bb93690bd1ef34a29781434ba6ff46ecd0ec4058", + "size": 7215 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/ack", "status": "success", "path": "en/api/csharp/beta/environments/work/ack.md", - "sha256": "19acab683d5ca0876146f8e02fd380b7d71533b33a0c2f9b9be0e62ff42a5961", - "size": 6781 + "sha256": "6ccbbf965e8976ad68ad3d634f95a789a4d9be6e0c8ba8063e4c6cabc343c9be", + "size": 6894 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/stats", "status": "success", "path": "en/api/csharp/beta/environments/work/stats.md", - "sha256": "f7bd25f26d5f488ba9265fe1c995fee11a153711da2b203d11d393798f2ac602", - "size": 5392 + "sha256": "1cfa6e1553ff2b0d872adc18d90d5234b069a788874bf35aca6880e4a4e16438", + "size": 5505 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/heartbeat", "status": "success", "path": "en/api/csharp/beta/environments/work/heartbeat.md", - "sha256": "ac7b64690df20ea7443ef6f8d05212b3b0e0450f103825b6b61d5bc94320fc23", - "size": 5767 + "sha256": "c36201f93268b898597f37d3ac322d7512037f8fa2033f0443b3c9b2f16e3904", + "size": 5880 }, { "url": "https://platform.claude.com/docs/en/api/csharp/beta/environments/work/poll", "status": "success", "path": "en/api/csharp/beta/environments/work/poll.md", - "sha256": "e27227d4c1a25fa5be61c876c7fa3d6701d58f7a507054841e72b55b84e5cc17", - "size": 7195 + "sha256": "bb586f5b9bf602341567e1019ffedf90ec614c7c5eda2d5e5567f39057c468c5", + "size": 7308 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions", "status": "success", "path": "en/api/typescript/beta/sessions.md", - "sha256": "3e66f1504363fd5031d54f3a3ef0a2f1a0349974d3c8879195232f32e0f1955b", - "size": 1224224 + "sha256": "2deaa7b688005a8a2f3487d4c012b5002caf9246971b91861ffedfaa6c79e88b", + "size": 1224813 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/webhooks", "status": "success", "path": "en/api/typescript/beta/webhooks.md", - "sha256": "fb577fcb141e2404839fa4c6a493f12396f1a96acb5c05ac5f3e96fda84cff12", - "size": 34812 + "sha256": "03d7a875d4346f1fd974e1140db9095c999a8d97343a00d5c5afbd5fd7163f33", + "size": 37110 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills", "status": "success", "path": "en/api/typescript/beta/skills.md", - "sha256": "5b954e1912201ae47da2047cd8c68e647abc7e9e63c78662dc84e98d52c80963", - "size": 43515 + "sha256": "a6e0ae9b4227e35b0d788b25a3601abd2213e549a960b4ed6a57be8994eef409", + "size": 43794 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents", "status": "success", "path": "en/api/typescript/beta/agents.md", - "sha256": "659d1baee43d073fb7c9414e87fb2325eac39afbc80ba67b3cbb9e98a689437b", - "size": 470263 + "sha256": "35609c7ceea6edb7a6c306219282ed6aa597007ddcb63ca86c2a974635e88f76", + "size": 470449 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments", "status": "success", "path": "en/api/typescript/beta/deployments.md", - "sha256": "9eb98ea37a741938db6cda182db2089f619358311cfb0e515c6542b9f974813a", - "size": 225095 + "sha256": "2024d948a6d644aa0cd7f83d0cde34593cc52d2c3bcbcd22e97abe11332b65e8", + "size": 225343 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployment_runs", "status": "success", "path": "en/api/typescript/beta/deployment_runs.md", - "sha256": "903251e6505d5eee98e785b341d96c2abb0490bea7cdc50f3054529e18ddee3b", - "size": 32902 + "sha256": "455c4652abae25c07ab64b2ce1df256d90a088dce3f41c5b64dd0a295b45bd6d", + "size": 32964 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles", "status": "success", "path": "en/api/typescript/beta/user_profiles.md", - "sha256": "12cb16c86cfbd295967d1a324b0db1cc595531dac94b7da09d395c52ee54185f", - "size": 58257 + "sha256": "2ab4c15fa105f3562ae486e54e7e5832951144f93ab1f74857423a72694b65ef", + "size": 67145 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/models", "status": "success", "path": "en/api/typescript/beta/models.md", - "sha256": "52bf8d6e526d166cf9b57ed183d938650a960693e3cc45a9529d863aeeda55b7", - "size": 44632 + "sha256": "1e367b1b8adfeac9c3be9ea92f2da35da95bc38c40d5829f7e40488b3453448c", + "size": 44694 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults", "status": "success", "path": "en/api/typescript/beta/vaults.md", - "sha256": "ecc6c3ef37b67d4102c7118fbf26610b08e13565f09f42984a096f69fa473e8d", - "size": 88601 + "sha256": "4c3a448ac660f947002f07f4944f9c6b3e8955bdc71b46147c5e64559b1b874a", + "size": 89004 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores", "status": "success", "path": "en/api/typescript/beta/memory_stores.md", - "sha256": "49c684acde92d26ca91bdab0531710fc92e39fa3e9b9e1117c1a83d76079c1d7", - "size": 101449 + "sha256": "5afd8dad933ec95784c59b1a5c4fa3985142afaad0c7c0623aa5d0b5102cc684", + "size": 103778 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels", "status": "success", "path": "en/api/typescript/beta/tunnels.md", - "sha256": "e6714933c8334ab2711e5649c4e58fa950d1d2106df7dd66f20cba151c766424", - "size": 47256 + "sha256": "a948c60a3b8ee961d5b2d19d9968b654d0e7109b4f9ded424f581ec8f61cd152", + "size": 47566 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments", "status": "success", "path": "en/api/typescript/beta/environments.md", - "sha256": "9e366b8248cf73488871b214f30c26a5f81575711613da07c6d580d6969c090a", - "size": 97387 + "sha256": "3030c2985cfbb8c8e8bfc0247ac89fd70586face09522159b32484090c35b559", + "size": 97821 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files", "status": "success", "path": "en/api/typescript/beta/files.md", - "sha256": "30efe401ea0e3a331e1f2f7bff87a5aac21ddf8edb020d8ed85dcaa639adee9d", - "size": 23521 + "sha256": "e97c5ca879732f70ab17d46cc66376ad7d132756e0e03f5f0a27a328a0e0303b", + "size": 23676 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages", "status": "success", "path": "en/api/typescript/beta/messages.md", - "sha256": "afb305028d3c341fed54482ef5d0b510678f480d3737d21d64d9cee653a9c4ae", - "size": 2910591 + "sha256": "f3eabc8ed19e1adce7695ae91d1f4cbff29596253c92512bf5481735114df98c", + "size": 2939363 }, { "url": "https://platform.claude.com/docs/en/api/typescript/models/list", "status": "success", "path": "en/api/typescript/models/list.md", - "sha256": "a75958f1b0ed6249008cd05ec5bab241ef251e1fd42d4446822d3b3aed55b136", - "size": 13210 + "sha256": "1e20bb7265bb2d1884c8097145609585aba319df0de3c806747011c3a907ab0c", + "size": 13241 }, { "url": "https://platform.claude.com/docs/en/api/typescript/models/retrieve", "status": "success", "path": "en/api/typescript/models/retrieve.md", - "sha256": "45f858cbea8705e84f5b386d8e2d49cdc68069734bc7b6698dc907f07e7bc602", - "size": 11866 + "sha256": "c137c36f1e43346c91339c98f9798b21578ba3e77698c37117dad898d13b00be", + "size": 11897 }, { "url": "https://platform.claude.com/docs/en/api/typescript/completions/create", "status": "success", "path": "en/api/typescript/completions/create.md", - "sha256": "ae16ade133f495852f9b3ec892a48a1fd00f35cd736f0a374acfdefa639f043d", - "size": 13387 + "sha256": "9f32e9e5e23a9efdbc6f7de960da5f046a2ab411584a5ee6bebcaff9a6c307f5", + "size": 13418 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/create", "status": "success", "path": "en/api/typescript/messages/create.md", - "sha256": "de2b96852224f07c4b2f180de16075f8446b7bb654da287ccadb84671b7c87f5", - "size": 139969 + "sha256": "26f31869174a7e74342493bda9e27c2c5282bce9f6a0ddba3555ee63bd8d3762", + "size": 142225 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/count_tokens", "status": "success", "path": "en/api/typescript/messages/count_tokens.md", - "sha256": "abf56d5b392ace71bfd531fe4288e062757bda8b694f9a6a54cff3709804d80b", - "size": 98021 + "sha256": "6a7a3ebaae94c6f4a89b95bb5e88f48e9be74b4314278dd09db469716b2f6610", + "size": 97979 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/batches", "status": "success", "path": "en/api/typescript/messages/batches.md", - "sha256": "7e351c4fa906d140b5343d6a5e9cf1326a139a62512dbf3e8e1acde35ad354b3", - "size": 276858 + "sha256": "0d06d2918c3a1fa31f84a4bcb87dbcb7d6624d3ffc2d1d2e0cc24438d26e6863", + "size": 286260 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/batches/create", "status": "success", "path": "en/api/typescript/messages/batches/create.md", - "sha256": "09a01853fb0313f3ff7a10b13c97cfc813faacbcaab438e338669f7fd9bf31aa", - "size": 114442 + "sha256": "eebf839d2c359a6dd73f836d71bc7d18eeb77ca6a7eb242010ec773e84a82457", + "size": 114400 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/batches/list", @@ -18741,8 +18895,8 @@ "url": "https://platform.claude.com/docs/en/api/typescript/messages/batches/results", "status": "success", "path": "en/api/typescript/messages/batches/results.md", - "sha256": "bd214cad3c62291b03af12560e61a4c4181f7bd953b2226115d6cfc822359b70", - "size": 37642 + "sha256": "ba451f128d83a96fa7155eb3103f681ce7963e21031001292a231f44e712e7f8", + "size": 40024 }, { "url": "https://platform.claude.com/docs/en/api/typescript/messages/batches/delete", @@ -18755,1037 +18909,1037 @@ "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/create", "status": "success", "path": "en/api/typescript/beta/environments/create.md", - "sha256": "3d9a9b968c031f9fab11b72036ae54b5304afe7895f4d81a74cc80f0be7c5d7c", - "size": 10060 + "sha256": "8bbd33d7aaeb39e6f599b27cfdd2ea824c89e085496fff8310761ef2d098cea9", + "size": 10091 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/update", "status": "success", "path": "en/api/typescript/beta/environments/update.md", - "sha256": "32c766201976ac449fb48e71c8c573ed67ea1acc5da3f7b1df179f0bdbc8abd2", - "size": 10153 + "sha256": "d17c45ebf4c31c1859482b9990a8f14b9cf72476b9af9f56ff631f1bade2b1e5", + "size": 10184 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/list", "status": "success", "path": "en/api/typescript/beta/environments/list.md", - "sha256": "d913679d95fedf62fd7ae91523c0b54dd99e46f7a6736b6c748d180d768ef249", - "size": 7555 + "sha256": "ce1c3b63676e57c1dcc8de98a3074fe0804b8b857595e58a65f7c1bbc46bdb11", + "size": 7586 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/retrieve", "status": "success", "path": "en/api/typescript/beta/environments/retrieve.md", - "sha256": "7ea77ed38b2cde0cdecfebad15056faa48727d0668b5bca4311460e2aa6c844e", - "size": 6976 + "sha256": "794493313997fd1b1790adc9241ae67cacaa1151b994ad79825bde4e166a0131", + "size": 7007 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/delete", "status": "success", "path": "en/api/typescript/beta/environments/delete.md", - "sha256": "7d154bb8525ac9e31034f2548554725429ade24c7ce7fb9fb321d9d2c6ca0047", - "size": 3613 + "sha256": "e03ebfb46cef12b2edb6f425374ac64962585007a5b2d57728d90ae83db3bafe", + "size": 3644 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work", "status": "success", "path": "en/api/typescript/beta/environments/work.md", - "sha256": "3223e67868103f0117ed2b253cc1467c13e1e4da1fcdae1820c72b1ac0c604cf", - "size": 48589 + "sha256": "abb6b35c661323850b5b2b8b0a4c67842c02a2c4c2a3e206fffa5ee2e0acb27e", + "size": 48837 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/archive", "status": "success", "path": "en/api/typescript/beta/environments/archive.md", - "sha256": "a420b503a8da685d66e53ffe55f4084007c353685cb9f8534744572eed615b3f", - "size": 7037 + "sha256": "362fc9e3f81a3d01ff7f2f6a0d39764f793717fad2c5f5bf430d14792d436585", + "size": 7068 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployment_runs/list", "status": "success", "path": "en/api/typescript/beta/deployment_runs/list.md", - "sha256": "92c8a9dc3a59cfd62241cd9014131f26c34b8b30e6ad4a372610b44a3167dd4c", - "size": 11157 + "sha256": "82ae4cfa0416fc06d3faf524bb51461bdec12786a20d54b4b6511cbca8e8b857", + "size": 11188 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/typescript/beta/deployment_runs/retrieve.md", - "sha256": "def8cd5ed851e5fd5d1a43d7f1d3f4043aa4a05825134b10639f7677cf36d670", - "size": 9614 + "sha256": "0a8ac4aa67e176e3e4eb89e7246e72fb121aa32be8ed81cb0c19e10fc7b657ad", + "size": 9645 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/create", "status": "success", "path": "en/api/typescript/beta/vaults/create.md", - "sha256": "6847177a327d533c93d181dba4bed13c8f36db82ebf29cc83b857a30ca96ea11", - "size": 4317 + "sha256": "539c87558f969bc324ba0683cb00d39e389266235fa27b35d2245298ff7a90a5", + "size": 4348 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/update", "status": "success", "path": "en/api/typescript/beta/vaults/update.md", - "sha256": "f1f63cce73ebc2288de134239a924008c1d769b3bbe67028e39f759dbe3cd609", - "size": 4434 + "sha256": "5ba5ca96dc23eaed6db60b2e3a1015d324248d0ceec94eaf9dfc8e3cefc9f489", + "size": 4465 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/list", "status": "success", "path": "en/api/typescript/beta/vaults/list.md", - "sha256": "c3e598b1cd9450871d8aee7c05aea5adf243760604f3e9d517a83b1d6837a78d", - "size": 4683 + "sha256": "f9813ecff441a9b4b7c90f3d07805909d8797c493793bf330ef24cac36a327f4", + "size": 4714 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/retrieve", "status": "success", "path": "en/api/typescript/beta/vaults/retrieve.md", - "sha256": "ca4226ef4b7f2cda625372e0cd0840b5e8fc15118aeb768c8be227d99d0a6cab", - "size": 4153 + "sha256": "b052719e663b8e31083dabe3296aa9c7d610242adcb2d9e7018fa479c55ff0af", + "size": 4184 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials", "status": "success", "path": "en/api/typescript/beta/vaults/credentials.md", - "sha256": "349a68a5464b7f858856a7d0ff22fbd4ca91fa135c33352865af734173f85f19", - "size": 97609 + "sha256": "1dcfbfc31c59582452c72412bbce030b6c2e923e7d967a8f173c65ae0b1187d4", + "size": 97826 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/delete", "status": "success", "path": "en/api/typescript/beta/vaults/delete.md", - "sha256": "5671e1601a3ac853246fd276ec6e1c35b5bf1992e555ff4ce170ca0ff6800b6a", - "size": 3519 + "sha256": "d5dd93bfa0fa9ab7a19be2264edca82432a231622383b57323593625aa19c998", + "size": 3550 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/archive", "status": "success", "path": "en/api/typescript/beta/vaults/archive.md", - "sha256": "e14b04dfcf4eb1dba57ffe78126cce03431805523a139c81aa6b2e245aa37779", - "size": 4154 + "sha256": "379e8d9b1ad73216058b3ce03bf9a9947b260c04f60daa3f68434b4e41827236", + "size": 4185 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles/create", "status": "success", "path": "en/api/typescript/beta/user_profiles/create.md", - "sha256": "6b1e3417c266deec93403063c7f34ee2ff3f743cc9cc09866c55e77789e1ed64", - "size": 13028 + "sha256": "98392f357e03039568f9782ae6f72e4889e87b33cdfbc40d0070a6c50518b404", + "size": 13357 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles/update", "status": "success", "path": "en/api/typescript/beta/user_profiles/update.md", - "sha256": "f9310ad20e095c9b6cf7a4fd070ece3609ced03fb972c42d54473b45b4929a2d", - "size": 13000 + "sha256": "d9cf1c77216ddd81644b5c1f2f1b78d9136304b65a336da369dca9465647f450", + "size": 13211 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles/list", "status": "success", "path": "en/api/typescript/beta/user_profiles/list.md", - "sha256": "dba7789d2171279350f1839276eda504ff9de0d9620591daf929dfaf7fb8a4ae", - "size": 9987 + "sha256": "293ad5098e1a17bfba5a8861b0b96d4a344a83888d055c25f446045f0a5ff170", + "size": 10158 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/typescript/beta/user_profiles/create_enrollment_url.md", - "sha256": "8367bae87b2dcbe5eea518365c4b52b22ec1cd12a01d22699288b12933cc811e", - "size": 4088 + "sha256": "f5c947cf7d5ad682fb327d6ec88f564f439ea287c36225b52edb3ad7ad02053c", + "size": 4031 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/user_profiles/retrieve", "status": "success", "path": "en/api/typescript/beta/user_profiles/retrieve.md", - "sha256": "7f6bbec2dd70038f273861efce52218870a1f238abc06daaa3959f25a5a00f56", - "size": 8818 + "sha256": "94ba576616e23fa34a60c74069c55106a77d052c139a18236776d6daa3fc34f3", + "size": 8989 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/create", "status": "success", "path": "en/api/typescript/beta/agents/create.md", - "sha256": "c7ffc2921b9cd3072b9657713f384fef05a9698f283345af7eb8a0a7e90b20cc", - "size": 67247 + "sha256": "a3d8b8920182eda49fc7e2be3f0eb146b8a944eddadf2c86e8d847bcd1d567dc", + "size": 67278 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/update", "status": "success", "path": "en/api/typescript/beta/agents/update.md", - "sha256": "ae9eb4ae712fcc84b79824e34d11b9b2cbcf4415a7859b59e5fe2c61586d41f7", - "size": 68208 + "sha256": "7cc37944650754619a6fa38d18e3d420127fa786bc08836cb7db6b3fb7e86e51", + "size": 68239 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/list", "status": "success", "path": "en/api/typescript/beta/agents/list.md", - "sha256": "304cd6cd25bf07015bf622496fcb1d362ce34d4c8397a0690e42c52dd402dbc5", - "size": 31522 + "sha256": "be8126cffb4fd88ddc1ef1d041e369275912d7fb53580f39090328b0aacc848e", + "size": 31553 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/retrieve", "status": "success", "path": "en/api/typescript/beta/agents/retrieve.md", - "sha256": "563c79d40e0b34c0c7ef38ce6608c9ce33a7359a30424c610c38dedf18c6e092", - "size": 30718 + "sha256": "c50957166fa3615019985604f11d0edfcd3532f52039958d1ac3a54a8abf8dff", + "size": 30749 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/versions", "status": "success", "path": "en/api/typescript/beta/agents/versions.md", - "sha256": "2ef8baa9ed0e8b462a67b7b68f8b55cfdb87425bcaa98061b935365412827e61", - "size": 31301 + "sha256": "8bc5f065b845a0ac757904bd96527d891a165831c44007a173220470a7cfdf38", + "size": 31332 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/archive", "status": "success", "path": "en/api/typescript/beta/agents/archive.md", - "sha256": "ece202beb15d1e000a7cd3cb14548b4d096f25e5598679b42daa7295e12fe94b", - "size": 30586 + "sha256": "ebd4e9404d36371cb0040a2a895c3519281a9a999f0819d80ead418a382f5b45", + "size": 30617 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/models/list", "status": "success", "path": "en/api/typescript/beta/models/list.md", - "sha256": "35a7b220b713571f870ebac7e2c1715f4f192342a314b2bfc3d4112f3d5fe773", - "size": 13946 + "sha256": "9c3dcce65d595bfa863e2126152ae56bf2b5eb030d8c8790bba22054c4346403", + "size": 13977 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/models/retrieve", "status": "success", "path": "en/api/typescript/beta/models/retrieve.md", - "sha256": "9544b29b859593ac118fe1522da39693f0114d0e23cc88f8c9e3a8e39374d187", - "size": 12566 + "sha256": "ccecf76e244bab3688c5bb29ae407a521f851269b27996ade7325215e8779118", + "size": 12597 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/create", "status": "success", "path": "en/api/typescript/beta/tunnels/create.md", - "sha256": "3631a8bb4355c14ed961a72febf3d507cb3fc526e4efdca60daee6ebd610e3b6", - "size": 4586 + "sha256": "26c26be6718044a1046fc90772ed28467f641754f8556ad735f5128042f7ab1b", + "size": 4617 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/rotate_token", "status": "success", "path": "en/api/typescript/beta/tunnels/rotate_token.md", - "sha256": "a667c75c0d78f1c95e47f37228c88d5c2caa454b6984545b8a4752430b8920f6", - "size": 4208 + "sha256": "51aa484f4b5ad711456786b039359fe56986f258cad1299ed17b1a4258d5d251", + "size": 4239 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/list", "status": "success", "path": "en/api/typescript/beta/tunnels/list.md", - "sha256": "92cadf2720436a1812a8fa8a8c998cd6a800935612223331bd3031368609bf05", - "size": 4912 + "sha256": "b8f74c150696a08223390a8d5d20deb457076a064c99ac63bde38ff4d76e2c71", + "size": 4943 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/certificates", "status": "success", "path": "en/api/typescript/beta/tunnels/certificates.md", - "sha256": "c83014f4e03a051b9a74824d60e03a572680ca14e9d0dc25d3a967db4d67a4a1", - "size": 20745 + "sha256": "a5b162622fe157d18b15e9852c4f6036ff49938d9030a602741e5a525729c138", + "size": 20869 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/retrieve", "status": "success", "path": "en/api/typescript/beta/tunnels/retrieve.md", - "sha256": "098de0d45d398b65c18fc077c9cf577ea72d5414d8ae63cfaccf2f653e940ba3", - "size": 4396 + "sha256": "e4effb475e8f79060230dc68d1189d8364473e00fdf9ac1a25534d9d8b29bebc", + "size": 4427 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/reveal_token", "status": "success", "path": "en/api/typescript/beta/tunnels/reveal_token.md", - "sha256": "7cfc36a78d5aa87532284aca755dfbd6f6ef21cd4108890209bf8e97ec494e43", - "size": 4109 + "sha256": "026de85b6a79a84895fd8e0fa5987b9283d83853bff4ff592eb5e364c99e9882", + "size": 4140 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/archive", "status": "success", "path": "en/api/typescript/beta/tunnels/archive.md", - "sha256": "c12dc0d3ac296bd945b2093e3feda7ee70e1bbfe67743d400afc3dda1577acf1", - "size": 4678 + "sha256": "5bbbab3b5b458186d57582ad36cd0a7cd221645bba33ff29a3309f8238ed8d6b", + "size": 4709 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/create", "status": "success", "path": "en/api/typescript/beta/sessions/create.md", - "sha256": "16ceaf2f43748ae284108da6f4a1eeca0ec5c0be7eb62c19e97027b346eecc1b", - "size": 87090 + "sha256": "de84e5dea9a442358e864f97b07fde2013e328d39df3be5446502e297e7cedd1", + "size": 87121 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources", "status": "success", "path": "en/api/typescript/beta/sessions/resources.md", - "sha256": "aaa634079802bcb5e58a6326a9244bd62f71991e8cacca603a72d29e1587dae5", - "size": 37252 + "sha256": "5b25050b3e48c3efdb130c83456c5b9d588e089fc3c0a387b3d5b3f20210a8aa", + "size": 37407 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/update", "status": "success", "path": "en/api/typescript/beta/sessions/update.md", - "sha256": "8cc994e2ee47214118033accc38af3ab396945b9c1759bcd783a4c3535c019c3", - "size": 71740 + "sha256": "b79ffb597816df2c2aa4e0f5495d2d51d50d0fa244bf62b1a75043a9f13a3834", + "size": 71771 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/list", "status": "success", "path": "en/api/typescript/beta/sessions/list.md", - "sha256": "fd61dcb87dbd30659326d3c4210531389a120c45f743026792f9c6581282c553", - "size": 49480 + "sha256": "20b948057dd2c9606641bdc5ec7d15ea1e490631796959e458fbdc527e3bba1c", + "size": 49511 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads", "status": "success", "path": "en/api/typescript/beta/sessions/threads.md", - "sha256": "7d004f11263c344ebc6a7c0ddb62491ae4cc307aacd7b45167d3517128c4e3e7", - "size": 456446 + "sha256": "e62ead5c557eb79f3d5cc3a255046aebe75f2569cab5e63a70e4cdf8ac23a3bd", + "size": 456601 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/retrieve", "status": "success", "path": "en/api/typescript/beta/sessions/retrieve.md", - "sha256": "ccf75387e7b41f5cb92051f4fd011c0fc0ca92323ea42c6b7faecb353208ab45", - "size": 46564 + "sha256": "bf36beec8131e1521ae191d39d5ec9e8b538c9fcfd2173994c9a24858a347519", + "size": 46595 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/events", "status": "success", "path": "en/api/typescript/beta/sessions/events.md", - "sha256": "f8cdadfc9a99c1d283e91b6eb256e50d5dd7929cbabbcd5d1ba87ee83c6f2d5d", - "size": 588196 + "sha256": "d0c5a5398260e84ab55507fc998d98ac92ee7da68627fdf6d51dc3ef745177bc", + "size": 588289 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/delete", "status": "success", "path": "en/api/typescript/beta/sessions/delete.md", - "sha256": "dc748eeb10e5343172713347f40ba02b1612a7a776a305933d4628aed6f3b0ff", - "size": 3478 + "sha256": "7946ddf0a1e3a3788f8711b2a8532ad6de52b1a07488c5a580708273ecb976e4", + "size": 3509 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/archive", "status": "success", "path": "en/api/typescript/beta/sessions/archive.md", - "sha256": "c478002f99e92f9ed26ba4568789f0a17396e9dbdcb85f87e8c1a36ba79f5527", - "size": 46581 + "sha256": "843cd92b712774be3b91b290c43275d43dc44e3ea685774cc92812c99c856751", + "size": 46612 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/unpause", "status": "success", "path": "en/api/typescript/beta/deployments/unpause.md", - "sha256": "131223f8a3d3835fdc5883e9462027e9fe4a59c6bda2103db4895682ee2cc46c", - "size": 19702 + "sha256": "7419b50a62ba072e474baf68f4aba3b0c0e0992a0c3b263169ccc91b51faaadb", + "size": 19733 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/create", "status": "success", "path": "en/api/typescript/beta/deployments/create.md", - "sha256": "fb8653ecd9cf2f69b10f3a4e106fff21cdb8351d36e0fa7ccd201868e15f1db2", - "size": 31350 + "sha256": "012eff81b6863fedce64a91616bbd9e8931402afb980c2525fd6f51079f09c22", + "size": 31381 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/update", "status": "success", "path": "en/api/typescript/beta/deployments/update.md", - "sha256": "dd72ec3035337fbec20be944e7ee4798abaa28816c7af68dd8c40cc275518c3f", - "size": 31425 + "sha256": "d3a1a1ce84325aafaa2c5d81f65dba652168862fd7f27c6f438a5ca8c78cf19c", + "size": 31456 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/list", "status": "success", "path": "en/api/typescript/beta/deployments/list.md", - "sha256": "e463bb4e3ddd866d1a80e7f57ec44f0e42885be41fee97c00fdcfbe56d2dc9d3", - "size": 21078 + "sha256": "69834a2af1afe5630a73e46d1e4ce4f7ad69055482ee5b915dbf9255062bcc03", + "size": 21109 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/retrieve", "status": "success", "path": "en/api/typescript/beta/deployments/retrieve.md", - "sha256": "8f05455ebe066e5721a8671a045dadda602f29acfb639570affdc539cd178bc7", - "size": 19674 + "sha256": "20079a5ea5575373ef93d275c25a59e72b6296e6ec4b95c21232700870c8db5f", + "size": 19705 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/run", "status": "success", "path": "en/api/typescript/beta/deployments/run.md", - "sha256": "cd374e07b5513644c5a1723145b3d6b6c8ce1f26a2f035414f572c712a485624", - "size": 9587 + "sha256": "6858af7749019383456eb4a6ea453335d5634ef372884cd8dd9d9cb4a4d0d898", + "size": 9618 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/pause", "status": "success", "path": "en/api/typescript/beta/deployments/pause.md", - "sha256": "f7b8500fc951cd413fe95f327f57c170422b09b53c807a00003e06e20206d176", - "size": 19684 + "sha256": "59970477c978170d719d18ab3687a7cb7fef263f10bad1bae91c0e7ae8aaf8f4", + "size": 19715 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/deployments/archive", "status": "success", "path": "en/api/typescript/beta/deployments/archive.md", - "sha256": "87b80575ae505dbac6a7b633cc0f6d267378603fd3ed64a502a7f86f2eee6b00", - "size": 19702 + "sha256": "772ff577cd63c171b0b667482b08a347f4540dab7493a6a34727758fd9183516", + "size": 19733 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/create", "status": "success", "path": "en/api/typescript/beta/skills/create.md", - "sha256": "ab6d32bfb7b1bc302411f7eae5e562eed20c95b8885b6c5ffb057e4933e34038", - "size": 5420 + "sha256": "4ff8288cbbd86fba24adb539b7b403b6eeb296e81d099477f89b19272bd2205e", + "size": 5451 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/list", "status": "success", "path": "en/api/typescript/beta/skills/list.md", - "sha256": "43eb96021a74daf6dd5bc84b2f5e137c62b65edbedb7d53047a8ad853af5daf2", - "size": 5749 + "sha256": "d96baeff666e6dd716419405a3b3a2d090470c7868528e5ed2318d38a353ff9e", + "size": 5780 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/retrieve", "status": "success", "path": "en/api/typescript/beta/skills/retrieve.md", - "sha256": "d6e3bae98585b2a31199c2c349d96b311f31533beedb1563a47b059a675ca434", - "size": 5123 + "sha256": "32b1980adf8cac84a36226b3b726b94c1a1abcde6c4ec8b8e0e69061c9e35e4b", + "size": 5154 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions", "status": "success", "path": "en/api/typescript/beta/skills/versions.md", - "sha256": "6c0723f52c148a2906f18b32ae63f73c38ce55ed1931a921d8cd8b7ad85167d7", - "size": 22891 + "sha256": "1067b79f0a107e883f2c0c6ef258a03918e40e2f07d2027000f86327d90efda3", + "size": 23046 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/delete", "status": "success", "path": "en/api/typescript/beta/skills/delete.md", - "sha256": "d0565a7e8b9c59f65c441077806dcdb6352285cd034da3019ab316a2decd13f5", - "size": 3571 + "sha256": "867f0b5ef22916d7a185e694a0ed71064d10c52cf4b05e4bb173e1c1ac0ab5f0", + "size": 3602 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/typescript/beta/memory_stores/memory_versions.md", - "sha256": "78cff62b4e35f3eee0909fa9e366d66674cba13a9e5f39fec22cdf01bf777940", - "size": 40795 + "sha256": "ef38d0894b93eeeefba6d7422ff83fd0932bcf8459b094f1551756bfa963c7c5", + "size": 41592 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/create", "status": "success", "path": "en/api/typescript/beta/memory_stores/create.md", - "sha256": "228f726d020c492f3f8557a2202ac14fa5eb6bbe8aab2b6f8ed15f769affc2a0", - "size": 5899 + "sha256": "42d28aeaf113b4589b0a663cc00c5acac6e961b4fdcedd27390f2ca3bc8f4b04", + "size": 6568 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/update", "status": "success", "path": "en/api/typescript/beta/memory_stores/update.md", - "sha256": "72354c17c5924537f23ff521cbd5eaffd2c29d5bfc029e30af9b312c4a761a37", - "size": 6006 + "sha256": "d840974ade52b2c22f6b37b46d43ab2c9a4b45ec94f242517cfe5556deaf5db4", + "size": 6402 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/list", "status": "success", "path": "en/api/typescript/beta/memory_stores/list.md", - "sha256": "0332c560646a256dcefade2bf937f6db2b0fc7c8914f7e69daaa4f199926ae72", - "size": 6203 + "sha256": "12aa4a2b3745ba0702e6ba12742cc0ae43ee89e40c17047e9f092293f80eca72", + "size": 6375 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/retrieve", "status": "success", "path": "en/api/typescript/beta/memory_stores/retrieve.md", - "sha256": "ab719814108b7716eef58a12ce1a19e6c6516bf38a2aacae47701f3cffe004a7", - "size": 5337 + "sha256": "859f523473c0ce2076cc7c565fc625e6f2de692790dacf8af068ee80da9edf2e", + "size": 5586 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/delete", "status": "success", "path": "en/api/typescript/beta/memory_stores/delete.md", - "sha256": "f15f4173158296c7a8f62b0719f27591954242104e69853d369767fe8cf854e7", - "size": 3852 + "sha256": "03e7fe48fbd9864072a4f64ba5350d81e6798726940f3e86c19061fbb25e8970", + "size": 3854 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories.md", - "sha256": "35528f44266c2803dd0bac60e8c408b487b088992356f78aea6fa801ad630bfd", - "size": 51451 + "sha256": "fbb59bf467d46a5bd629161ade4dde7badc765078bd54409874efa5f2a06fdd8", + "size": 50905 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/archive", "status": "success", "path": "en/api/typescript/beta/memory_stores/archive.md", - "sha256": "45ed4372786b91e182e84760b5844fdf273bde7be9af80b728e0c21e6084756f", - "size": 5409 + "sha256": "f01bebc7b06f5944c4619523f640e6dc5c6fe166cdc1cb6c4bb7d8105c240b46", + "size": 5678 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files/download", "status": "success", "path": "en/api/typescript/beta/files/download.md", - "sha256": "237a3bfee20f3e171df638037606cd2b8069436f27031bc8a2d9287f60338a10", - "size": 3195 + "sha256": "a3e356e25c9d77a16951f4b2d5ee6238d272cdf6d026a8a5a9222a6267d8be9e", + "size": 3226 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files/list", "status": "success", "path": "en/api/typescript/beta/files/list.md", - "sha256": "41187573978197ee7611b719cc7bbe8e91945a8a9ad4a448448764315f65d0dc", - "size": 5617 + "sha256": "0da22168bda6c5341ab291c11152c4723f2de7fb69ac182313cd731ef189a6db", + "size": 5648 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files/upload", "status": "success", "path": "en/api/typescript/beta/files/upload.md", - "sha256": "603a761c00a982368f3253c707b0414630e38e96bf4f0779fd8daeba9921b52a", - "size": 5182 + "sha256": "14ec2ccde36b5c5c329a02677db9b45b11fd6722af3c3e7cb8cba21a7f357544", + "size": 5213 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files/retrieve_metadata", "status": "success", "path": "en/api/typescript/beta/files/retrieve_metadata.md", - "sha256": "301edf4b3b79074abc795cd6c8080dec0084dfb879980180d5ea6abae76e0e36", - "size": 4775 + "sha256": "f3defedbad4cff557a54807e9ce60eb508ab7fc1b8ac28046f819ed73e06f291", + "size": 4806 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/files/delete", "status": "success", "path": "en/api/typescript/beta/files/delete.md", - "sha256": "2468d2e85dc011531d57b0a33f588c7d833c5a86cff9b1bdc298aa3fdd3432b1", - "size": 3420 + "sha256": "83de44409c9298ae131210c1b8b72fac3a987880d1ebe9fe757059c7b8a296c7", + "size": 3451 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/create", "status": "success", "path": "en/api/typescript/beta/messages/create.md", - "sha256": "ea7ae85cc2af4b55f8dc879d0b979aa124212519558d6f796d32f0cb7dbfa950", - "size": 308043 + "sha256": "d67286871b06b1db7fbf0eab5bcb63b934a0d25a5456888347944248d9cc8c1f", + "size": 312903 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/count_tokens", "status": "success", "path": "en/api/typescript/beta/messages/count_tokens.md", - "sha256": "ef9de7f2f0868ea606f725b954a5c4830ad7712499b7f5d449484992d7661406", - "size": 148732 + "sha256": "f31f591206293c9098384270fc3cd07b7077da679336cedbd58c42fb41db1ddb", + "size": 148721 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches", "status": "success", "path": "en/api/typescript/beta/messages/batches.md", - "sha256": "122b70222061ccf44fbfc7103be6ea54f77d196101c1d4e39d4fa800ffac34b0", - "size": 794990 + "sha256": "6924d48a9f7eedeb54325b74c553945ac4d94a8baa736e35d50bbc2e8f07c823", + "size": 807203 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/create", "status": "success", "path": "en/api/typescript/beta/messages/batches/create.md", - "sha256": "928a5e2b22cf35bb8c871427a44f60b6fd5fdff368b48205645d7cc447c7d84e", - "size": 171553 + "sha256": "fa2b386cd6ee9ea2b1d7f66a3cbf24eb9e74fb46d9eff92884ad5fea9fb78252", + "size": 174167 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/list", "status": "success", "path": "en/api/typescript/beta/messages/batches/list.md", - "sha256": "c7fba119c6aed1e1a55e35d546644e5be147607c03af222b7ae96ec3ea95d5f5", - "size": 7672 + "sha256": "27b736682f341d292299890416187aa68f1221c8479f51d1441af773265a4bf7", + "size": 7703 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/cancel", "status": "success", "path": "en/api/typescript/beta/messages/batches/cancel.md", - "sha256": "7d44be9c353d027eb2c653210750093bb71d559753a0cd2d4bdf0737574561d8", - "size": 7478 + "sha256": "d4f8264e1d4b2fc496bb59c527e564b85aa97a68e268deca22a3b43bffbf1c79", + "size": 7509 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/retrieve", "status": "success", "path": "en/api/typescript/beta/messages/batches/retrieve.md", - "sha256": "8ea57905f6edd83954e29d3cdb718625ae1181c7c5e116b75158e87c00c2e58d", - "size": 7172 + "sha256": "72cebb3d935e30a71c80ab8f4b5fa56dabf398a593478fa7cf0eac8a710fdbc8", + "size": 7203 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/results", "status": "success", "path": "en/api/typescript/beta/messages/batches/results.md", - "sha256": "67e7a266345fca3a480526ec643f2dbcfd739ccda9caf64628bcbba96ddcf0cc", - "size": 154490 + "sha256": "3f2e65cb3486a7b593079e3ea5b86d7b03e14477886dc01fa539afdb443fdf8c", + "size": 156903 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/messages/batches/delete", "status": "success", "path": "en/api/typescript/beta/messages/batches/delete.md", - "sha256": "d07010441362dd537624c6a7d3da2a96de0f6232e7a6085c2d22224515dde582", - "size": 3918 + "sha256": "78ec5657bcf4e85a0efd67d8b6dcf1707f52af3a54e97cbdbe9f6bbb31253663", + "size": 3949 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/create", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories/create.md", - "sha256": "79b87b48ec749b2719d2c7a9fbb39cecc953722276f04e1e5b0ebcb41a11b4a1", - "size": 7485 + "sha256": "c3cbb60caa48c14db5f33ceac4711fdff79b4755cf43a3bc4943e6590f4f21bd", + "size": 7382 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/update", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories/update.md", - "sha256": "97274872a8d4a672c50cd6d01feee0552ac4a15f20467f1341320c68eb3bd397", - "size": 8310 + "sha256": "9037ad2bcebe7da7c68e5afb717d474877d27526c736357d87451bf41599e246", + "size": 8128 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/list", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories/list.md", - "sha256": "8d1e05873890d384e38a6868567bc0fdd8791056a5411a9d91bda9bf3e35569c", - "size": 9095 + "sha256": "463aab7ac046ee03c7f864061efd2f4381dde1449038caabb5bb5c9da82a0dda", + "size": 9034 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories/retrieve.md", - "sha256": "7b875faa99161c5efc85662f85ff03f1b3d1cbe7595fc9172c4c738fca302afb", - "size": 7007 + "sha256": "efffacb149a8397861ed395f5037824b6bc016b007bac83ad2652523b22a8b41", + "size": 6883 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/typescript/beta/memory_stores/memories/delete.md", - "sha256": "3a83dc0fe7b77ad6c2ba48b5c4b273f9eaa92b29d94ed3f57c1d570b5b67168a", - "size": 4537 + "sha256": "273272c11022d487129251f67cced86810798ca457edc23da3dcc239e387abd9", + "size": 4730 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/typescript/beta/memory_stores/memory_versions/list.md", - "sha256": "9f468126bf1631983637aa5139ac182c07d8bba8aba1cf929e91923add5f11ae", - "size": 12115 + "sha256": "bf4c17ad6cb8047fd9486b40d1023c9346453179dae6975e5d20710421c5403b", + "size": 12342 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/typescript/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "3ad79e923413449319d8806dca3fb54a03f322ea3abdb973794e2aafa2471dca", - "size": 10171 + "sha256": "aaa9a805cfca6a4514212ef29df52dc994b474e3f1b225a2f5ec49e45f54f617", + "size": 10288 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/typescript/beta/memory_stores/memory_versions/redact.md", - "sha256": "faea2824910aebe9c2704076eba913369667b1e5dd50c7775a4347955bdf647e", - "size": 9434 + "sha256": "697191dbb8a8cc893d5f7e1553b5766636e988e6139383f6f500926a1ccbba4f", + "size": 9659 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions/create", "status": "success", "path": "en/api/typescript/beta/skills/versions/create.md", - "sha256": "ced6fc8ef834298f198c8b81f7047427d2d5b620f8f73083c1a8240e9472cf88", - "size": 4689 + "sha256": "1b5e34e7de9d3a86791110675be9291998c081088a67b49a4228c48281ffcbcb", + "size": 4720 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions/download", "status": "success", "path": "en/api/typescript/beta/skills/versions/download.md", - "sha256": "ad9f0b1da0de96edbb41637800db09c177db21229b5a4f3cc410b3d907151518", - "size": 3658 + "sha256": "5dcf01ad9e2f710c62b31df2b97da46e3f7331c964d601a09466357561170051", + "size": 3689 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions/list", "status": "success", "path": "en/api/typescript/beta/skills/versions/list.md", - "sha256": "ae75e0095b988bc1f7ecf4b6fff2c9199ea0c7e49747959c6f0c2a204ff1a4c4", - "size": 4879 + "sha256": "e4c2acd6e147c12cfaa2af62a790cd74ac5e66c776b0dfccc30313804699649c", + "size": 4910 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions/retrieve", "status": "success", "path": "en/api/typescript/beta/skills/versions/retrieve.md", - "sha256": "62c2a852f5f8d8b02e255d79bc29b4d018b45955b2b82a9a97c40dc300d523f6", - "size": 4778 + "sha256": "86732de41e8f671457eebbb006a6c1f50122fff6701779564a0cc0b50f947f18", + "size": 4809 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/skills/versions/delete", "status": "success", "path": "en/api/typescript/beta/skills/versions/delete.md", - "sha256": "b23dbfc4fd458a045a3bf3ce78eb91e28f1d63a4710b736eabf5eea5023a68cd", - "size": 3965 + "sha256": "034a94979af2d4a90642409591277f895a7e893d6fc13261ac55efcd5dd49275", + "size": 3996 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/list", "status": "success", "path": "en/api/typescript/beta/sessions/threads/list.md", - "sha256": "0e67c19ee8254225a5ca908e85ab048807d876bdc09b029ba5292e1beff5e805", - "size": 34827 + "sha256": "6b216d902ed7dfd8b68a41e3a977fa504323e5332753462311ae60b4e5ef50f7", + "size": 34858 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/typescript/beta/sessions/threads/retrieve.md", - "sha256": "f3980692739e5c9dee2b71bdc9325168e39563ab1ad8606e42e23331d4801789", - "size": 33892 + "sha256": "fd00631aae5226f7067c6a8cb2708368d87239b7823e2f561da383a555c88fa9", + "size": 33923 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/events", "status": "success", "path": "en/api/typescript/beta/sessions/threads/events.md", - "sha256": "8b68e3a03448bde47dd37e797b11fba0811af9537a040c81d3d9362cecc49827", - "size": 202724 + "sha256": "e31e58abd7b0c990edab3b0921c2bafb77e85cd633c17dcb2045140c5e156ffe", + "size": 202786 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/archive", "status": "success", "path": "en/api/typescript/beta/sessions/threads/archive.md", - "sha256": "6eb6aeb83f70e9d0f539e0976dd93b225bf7ba2f39425ecf0c61ae5df471557e", - "size": 33909 + "sha256": "6a8a10e36c6103c66347a39998740ced1a0436290fda2e3cd5e127ea411b7c2f", + "size": 33940 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources/update", "status": "success", "path": "en/api/typescript/beta/sessions/resources/update.md", - "sha256": "9de2a65c6ad4014477e47fa356a7f799ee2a3ce38073a7b3b38501d8e2fea9f6", - "size": 6459 + "sha256": "1305323434552ed2446baf1767e7817883299167179d076d53955825d5175c50", + "size": 6490 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources/list", "status": "success", "path": "en/api/typescript/beta/sessions/resources/list.md", - "sha256": "a1e170c2000eec5d2b6fa309f2266c9fda8887cb180384f66fcc142a3c245610", - "size": 6859 + "sha256": "058533c1ab4e541acb406d2a7cceb945b45f13022ba375d8e1cbb7d51febf09f", + "size": 6890 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/typescript/beta/sessions/resources/retrieve.md", - "sha256": "8e60f2a49a922e7b3f0aa5100a52c63f63b1d1100f2c39650b1e57e2955dc4e3", - "size": 6236 + "sha256": "02c1ac3442bd74b530571e47457c34cff4ea854dfef2168140665dec16a2b251", + "size": 6267 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources/add", "status": "success", "path": "en/api/typescript/beta/sessions/resources/add.md", - "sha256": "b9f41c2d832391c957ed5c5774fa96ac479f927cd89ba34fcba0025656b1eddf", - "size": 4143 + "sha256": "c5e832ebb423a052af1ea9bde1147bb1962613ee7fc94a82c2ead1fc7b4db48f", + "size": 4174 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/resources/delete", "status": "success", "path": "en/api/typescript/beta/sessions/resources/delete.md", - "sha256": "08904eae0d35a3c61d9d2007489cdef8ea2d4b5048a664c222c4911319f372c4", - "size": 3680 + "sha256": "44dfd1d967e7a9e56edae8a40243d2e63eda1fbc8d8dd63c6518cd099edddfd8", + "size": 3711 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/events/send", "status": "success", "path": "en/api/typescript/beta/sessions/events/send.md", - "sha256": "41a612324e0c2f1e0a464bc8208f444f3f6fce42d3f8c18066bc4ffa950ebbb0", - "size": 26695 + "sha256": "8199569ac3249ed76c962663b4b5537a88c1e772cecb1f14b5a5296cf5a155f4", + "size": 26726 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/events/list", "status": "success", "path": "en/api/typescript/beta/sessions/events/list.md", - "sha256": "20a80681a176f370d178d0ac38ad160da238f5adf8e5746ed63bed6bf62439ab", - "size": 102294 + "sha256": "1699d065e0c6744ca0ffdba5af61cf6a031a6fb53d12c1beabff8f0ebc00321d", + "size": 102325 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/events/stream", "status": "success", "path": "en/api/typescript/beta/sessions/events/stream.md", - "sha256": "f5490d11c8f78544be0526dcb7d0c243ff3c1b2fa4e6242ff54f8c23c197916f", - "size": 102799 + "sha256": "c86fe3a998aef42a4f6279edb97ec83d14c689face92b033678ed0b28254c117", + "size": 102830 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/events/list", "status": "success", "path": "en/api/typescript/beta/sessions/threads/events/list.md", - "sha256": "99488275bef92b823625d39f754156b5101562cf916de66f87719af2d698bdc0", - "size": 99859 + "sha256": "e1cd0cc442d246349452256c3ac462aaf9fab0f800906cbe2ace776015f59145", + "size": 99890 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/typescript/beta/sessions/threads/events/stream.md", - "sha256": "f24a081344939cda3d087cf558caa7bf49a0ab5314fc3f1eb97df5e2afb0bc2c", - "size": 103006 + "sha256": "5cc7175ee4308ace05afb461319ff1606d23bf30fe273749e1cd4be99a1f339e", + "size": 103037 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/certificates/create", "status": "success", "path": "en/api/typescript/beta/tunnels/certificates/create.md", - "sha256": "7dd368285250aae653d0e10c4eda3ac841608bd5848f14b25955bfab92c2e92d", - "size": 5064 + "sha256": "988a6ff1ee559c734f0e932a52465390fba46a8be0265daa9f9531dc6e61f3ba", + "size": 5095 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/certificates/list", "status": "success", "path": "en/api/typescript/beta/tunnels/certificates/list.md", - "sha256": "c042c6bd2f3432ac2151daf494d8571db881a7c6836573340f3e7baf6bc3d4fb", - "size": 5290 + "sha256": "239f2add479cdc08f845b19c346683b0bccdadf3f51e891ac4f18a93700cef54", + "size": 5321 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/typescript/beta/tunnels/certificates/retrieve.md", - "sha256": "1bd4edbdfd985feb808662906cd5a8b3cc3eaf6383acec1721cfed4f5a75b47c", - "size": 4818 + "sha256": "4eb0996af50b7fcee2f06558e5aaec8c8080cfa96552c5ca2cfef2e9718c6d43", + "size": 4849 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/typescript/beta/tunnels/certificates/archive.md", - "sha256": "ea8bd538c283f4b4cb391cd7cd1a5f96a74682ff4a2da706f9924c697494cc3c", - "size": 5054 + "sha256": "d754572e878acc7acd5cbb21583e1cf2c256241c58710fcc845a28737bca2ecb", + "size": 5085 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/agents/versions/list", "status": "success", "path": "en/api/typescript/beta/agents/versions/list.md", - "sha256": "29c386ac7d1fc4cfd1cf6304774d95e9d9eca63f4ade4b78bb3865d3fd7324ac", - "size": 31300 + "sha256": "28c47fcd5bdd1f1edbf202901b60e97fa476218b2ec3528a61ba4e0628adb020", + "size": 31331 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/create", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/create.md", - "sha256": "2f0db059e34dc8b2468e072d669ebf6902c4971e0634df6c694c524eb022b903", - "size": 13731 + "sha256": "2e3ef296b7b5bffdc288dd966389db666ae521f9743c5caa8f01abcf50cee7e3", + "size": 13762 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/update", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/update.md", - "sha256": "8a09ee095b229e6edfb31920cc72a0bfcc0b7a2f283f6f9e6a49e07129bbe56c", - "size": 13291 + "sha256": "0d73461f555888efbc083a5faef8899a26d387b53a7a70a6856dbd47108ddd2e", + "size": 13322 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/list", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/list.md", - "sha256": "2a26eca2e232bb952c20d9b0022c17ead014b8da3674f71140fb9ce3d82c1f10", - "size": 8937 + "sha256": "547544ce99bff47c9a848d986fdf43cca18816b6d680c3055d5a3ddaf105645b", + "size": 8968 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "a90df73d3d18ed9d5901d7937cb4125ab0dc62c49476bddf9021a724abceb6c9", - "size": 7156 + "sha256": "56c0df8b9c1aba9d17eccaccb02b1de12ab05f2aada719383f395ea8bfbad504", + "size": 7187 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/retrieve.md", - "sha256": "0ad4dc4fb2c912d3e7e04c98ee511556facfaa45294114bf59c47999bff8adda", - "size": 8392 + "sha256": "56cad22160b05700ec2a4d31534127514669aeb4653d936f9473ab483e5d8bfd", + "size": 8423 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/delete", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/delete.md", - "sha256": "c23727fb0611b55ddf20769b1d6b93715351aa1949fd2670db550317c9277420", - "size": 3817 + "sha256": "29f129bcfc640608989fe34a0328b5f5d6d4f820f0695cb23e3f5d98fdfc7535", + "size": 3848 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/vaults/credentials/archive", "status": "success", "path": "en/api/typescript/beta/vaults/credentials/archive.md", - "sha256": "79560fbd8ba49abfbd6eefa74359cf9613eb70e0da797eb207cab066f01b23a5", - "size": 8393 + "sha256": "96772b8b12140a3a29a1f8c1d51c3edbf711d93c0f8453131d353bfe590348e8", + "size": 8424 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/update", "status": "success", "path": "en/api/typescript/beta/environments/work/update.md", - "sha256": "0a160285f049f7d9d0f235e3e85723338286f0a5fec60e80fc3f7f72b8665fb2", - "size": 5994 + "sha256": "fa2fb0fb853cc132f505ab25a750ced744e92db6ead5aa7e7bfb37ec206b28dd", + "size": 6025 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/list", "status": "success", "path": "en/api/typescript/beta/environments/work/list.md", - "sha256": "cfa4f46c27a67c424eb491608794e48bec53357f084bdc0c90b3e728084fcefe", - "size": 5744 + "sha256": "4f17aeb87fef2f07fca3b177e67f5f2c39eee53faefdd56a5512d7175f5bcf1b", + "size": 5775 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/stop", "status": "success", "path": "en/api/typescript/beta/environments/work/stop.md", - "sha256": "b015200507b5809e5d9797ca4c0dc2daa948e41a7116592aa0dfe24e33d44848", - "size": 5866 + "sha256": "f7bc06eacd8f418a6cd2da9c6afa747fe518c3f872f9585962fa6531bdfa357e", + "size": 5897 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/retrieve", "status": "success", "path": "en/api/typescript/beta/environments/work/retrieve.md", - "sha256": "5dabdd818002b780fd4ecf89ba10b41dd939e9a4758ae5bc4934dcb17d6ef9fa", - "size": 5799 + "sha256": "3bef78950cc8d033debd81caf6476c3155a24a511cce6c58eb7adb1f7dcc2c52", + "size": 5830 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/ack", "status": "success", "path": "en/api/typescript/beta/environments/work/ack.md", - "sha256": "142be354ba7822c2b1048edbdec109bc969eb352e5af43cc2cf563a315e24610", - "size": 5480 + "sha256": "227d9232c16ef826334599cfd95e56386cf2315c55d397fad3e50bd36c400208", + "size": 5511 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/stats", "status": "success", "path": "en/api/typescript/beta/environments/work/stats.md", - "sha256": "88d55b39c3217743b251621b0343628fd9aa55c945f1494239129ae56dfe059b", - "size": 4217 + "sha256": "069d0d706bf2f6aaf86cc16fa8a45e0860d54a6d07ca3099e1a6b711db61a2cc", + "size": 4248 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/heartbeat", "status": "success", "path": "en/api/typescript/beta/environments/work/heartbeat.md", - "sha256": "f2f7cc94e0e4b37b7df058e1f53acaa90407aca82b7f884877793fc2af47403f", - "size": 4569 + "sha256": "bf8a919ec9963c45fa9adf25edf112c41653a1803b03917cc8c55be7acf5d2a8", + "size": 4600 }, { "url": "https://platform.claude.com/docs/en/api/typescript/beta/environments/work/poll", "status": "success", "path": "en/api/typescript/beta/environments/work/poll.md", - "sha256": "0ca2c1369996d9d3150b07cdb9d0e9ee349232ddfd9b24a348d2ee9b47c4d2b7", - "size": 5680 + "sha256": "d549ad54802d214c973912cd81f89dcc638b751ecb8893ef9571f0c3f971fbe6", + "size": 5711 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions", "status": "success", "path": "en/api/python/beta/sessions.md", - "sha256": "3b2e7295808c06f4271032f0e3e3dd0792062ca9f7ff50c7cda637baaf98a10b", - "size": 1170163 + "sha256": "31a8242bb95e5144a8fb79f91894d0b1654ad1c29b9afc76867f37bb8493c808", + "size": 1170714 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/webhooks", "status": "success", "path": "en/api/python/beta/webhooks.md", - "sha256": "9827bbe589c549ca9d3831c95bb443a1458722aef0c1ae8c2cace5ee9daa6608", - "size": 34106 + "sha256": "7be33dc2c44044b6345a3a14edc3b45b3105e172a291cd0fecf4234256d5de19", + "size": 36380 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills", "status": "success", "path": "en/api/python/beta/skills.md", - "sha256": "c4b551b1a76669205ea498d70c2f8033f70345a362d0891d1281915c9f66724f", - "size": 41893 + "sha256": "97a0187f329427becec5c453e19abe1aca60cc355f6087f72bb392a6952d4276", + "size": 42154 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents", "status": "success", "path": "en/api/python/beta/agents.md", - "sha256": "bb017a8144783cdd6472d3362950e234e4926c56ce41bcc295c2e76ff823a614", - "size": 450862 + "sha256": "ad57503e4b80a3d28f98a5a14495b3cde149895a875808e7bb37acab16141a8b", + "size": 451036 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments", "status": "success", "path": "en/api/python/beta/deployments.md", - "sha256": "7a96083ad455cfbcc0d64bdc245f82e8be8ccb8fc88338b451ae31d0e09fb068", - "size": 218197 + "sha256": "4e39a0dd7753a98de6fcbe3ab885cb6c9c89767414e30e8612fa9ac98159aa0a", + "size": 218429 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployment_runs", "status": "success", "path": "en/api/python/beta/deployment_runs.md", - "sha256": "15cea7298e536c8d19aae231816fd737bd2bdc47249b6871f1ed636fefb35b31", - "size": 32281 + "sha256": "d1239596c6f5759ed60592c80c10f967a22e557305b3bce0036fc663697b9d56", + "size": 32339 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles", "status": "success", "path": "en/api/python/beta/user_profiles.md", - "sha256": "6996b9842e116828dba62365e75cea05043cf7894b58b9443e39b66183d54dc9", - "size": 57711 + "sha256": "372c7914915906ebf000a47b25656d26e431aeef32377f9fcb4d96c4b44db2ea", + "size": 66316 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/models", "status": "success", "path": "en/api/python/beta/models.md", - "sha256": "e50bf45f2276659fab90fa827cb9c188e2144f687156b4be26b1a8a6e67624fd", - "size": 44282 + "sha256": "09d72b51e358c511941391b956f3bbd0e087754b4a791e5e8e78151649ad5e82", + "size": 44340 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults", "status": "success", "path": "en/api/python/beta/vaults.md", - "sha256": "6a05c60326a51fc8782348a9a20d7b8d6e561fbefdf030a625b947403729d112", - "size": 84053 + "sha256": "b575d66efde8536febe452eaa0903150383763340e5b59cadff24894ae45477e", + "size": 84430 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores", "status": "success", "path": "en/api/python/beta/memory_stores.md", - "sha256": "da18ec04ceed409335920c8f314713446a98e5ad310009a21865d3ec9386e165", - "size": 98953 + "sha256": "071deb37a4a02536cf0ca5bf38eab1b75db906bde5efe8516a57856aee39a0bb", + "size": 101172 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels", "status": "success", "path": "en/api/python/beta/tunnels.md", - "sha256": "d5bcb6787760e3c200d35bbb1e27e2fa3f00a3e455f7a87709bddac178a86033", - "size": 45592 + "sha256": "15d978fa2ab78a1776f4b8066e77c79f9eb74e0e96c7e65c1c37702271cd433f", + "size": 45882 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments", "status": "success", "path": "en/api/python/beta/environments.md", - "sha256": "591402cdd18ff5c87294336999a238832bef817f5e75b2467d05ea82c2e1eaae", - "size": 94753 + "sha256": "021ae566ba96ba1ff9d534cea1afc102a8b8540bfbf9b74bd6561a0087207842", + "size": 95159 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files", "status": "success", "path": "en/api/python/beta/files.md", - "sha256": "3b60c6e79f4483fe5860853e4f8f8b9e5c9f57dee6706705e7b378400577521e", - "size": 22681 + "sha256": "651f60cf6b868d41c7afd6e91593fc6136a714bb67c1c0dc478cb417e708ea07", + "size": 22826 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages", "status": "success", "path": "en/api/python/beta/messages.md", - "sha256": "fac97f30e235d3e89345e0563c42f465c95c480674bc44bbef7405af8a7f4387", - "size": 2903064 + "sha256": "8da7512de5f4fe39ddc287ca54b93a3002a2654bcb41fd0ad1a0ebb67749f5b0", + "size": 2931560 }, { "url": "https://platform.claude.com/docs/en/api/python/models/list", "status": "success", "path": "en/api/python/models/list.md", - "sha256": "a50d1fdccf2e058cab67dd70a1d5e0eb9472f66231ab713d9bc71b8d18bd86d0", - "size": 13032 + "sha256": "4e69ccb5164826bcc8807b1bfd84b023d6b7529f1a86d947b80548332f449a7c", + "size": 13061 }, { "url": "https://platform.claude.com/docs/en/api/python/models/retrieve", "status": "success", "path": "en/api/python/models/retrieve.md", - "sha256": "75920c3f0d48922b92d3693139e3340dc1b4c69f1671354cecc575fdd8028dd5", - "size": 11727 + "sha256": "03c7308aa80bc4cfc9b032f39a4add04a6934b7068a2b1bd71b8339f1e9105e0", + "size": 11756 }, { "url": "https://platform.claude.com/docs/en/api/python/completions/create", "status": "success", "path": "en/api/python/completions/create.md", - "sha256": "dd5c482f5e9cfcbb4040c1118dfe11597fd03952f8cd6d5201624392603f65b9", - "size": 13272 + "sha256": "1c11acbf4a7c36e7c01e5c119417d5383e5e742e7d923c6d2870f4c4778a8edb", + "size": 13301 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/create", "status": "success", "path": "en/api/python/messages/create.md", - "sha256": "b42a20ba5f322c1d02efdd9168b8f7ca11177de04ea1a18841374a5b3eb28f3a", - "size": 135868 + "sha256": "78721e0a29b117fcf5e37eeb67e9283b95bb06fb1441751dc1e942353096ade0", + "size": 138100 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/count_tokens", "status": "success", "path": "en/api/python/messages/count_tokens.md", - "sha256": "5f68cb900a9bd101dafd5f5c48da12534d52b28f5b825928feb119305d3fc5ca", - "size": 96271 + "sha256": "d923b7c8299d32b925601b5b8dc711a82f5b37284900c51a94de0fdce7745392", + "size": 96229 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/batches", "status": "success", "path": "en/api/python/messages/batches.md", - "sha256": "679c167fab2a3e1013468bce6b794f033665c8fef5fab5244e8c75e04f002e79", - "size": 271441 + "sha256": "aadc56f5f638aaaa7a731f3554af04160b3d73bf24522ef9125141bb40cef0d1", + "size": 280747 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/batches/create", "status": "success", "path": "en/api/python/messages/batches/create.md", - "sha256": "608cffeb3435d912733cf12230b8011089e7e2ecd0bd86ce857c63c55a2e41f6", - "size": 111065 + "sha256": "08fa876004eca5831202efb71d8503b77761ac29869c89894c22958b81169693", + "size": 111023 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/batches/list", @@ -19812,8 +19966,8 @@ "url": "https://platform.claude.com/docs/en/api/python/messages/batches/results", "status": "success", "path": "en/api/python/messages/batches/results.md", - "sha256": "adc1d36d76c0e83234e1dac5f739dbf71667b6262142ee1d7b7e001b76e07bcb", - "size": 37098 + "sha256": "b6f955943f0d3c001dd02748169e7a9aeb822c80a751e958681055da2e614d4e", + "size": 39456 }, { "url": "https://platform.claude.com/docs/en/api/python/messages/batches/delete", @@ -19826,1037 +19980,1037 @@ "url": "https://platform.claude.com/docs/en/api/python/beta/environments/create", "status": "success", "path": "en/api/python/beta/environments/create.md", - "sha256": "2916cfcbf7cbb6c4bd65948f4eea0973a237488006d0eaab5ba5561d4a8661e6", - "size": 9685 + "sha256": "f7a93f0ea595807a9b1fa5f99054e2b0595c6fb7121326af17f222695dab6781", + "size": 9714 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/update", "status": "success", "path": "en/api/python/beta/environments/update.md", - "sha256": "2081902418069f58ff4035de410164efec5ab490f8910acf6b29fb36e292230a", - "size": 9804 + "sha256": "1e4f1f924f741e3dce762f4b1c24408f7f1adbd8b498e4beb45592f30e39b286", + "size": 9833 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/list", "status": "success", "path": "en/api/python/beta/environments/list.md", - "sha256": "06fa251cc75b66951653112feb2807701e60c00984ef9f6180fb0d46661ab282", - "size": 7290 + "sha256": "68e068efa7dff9dd88bdc3d6e80dc290fa1cf4f0ed4558a665d44b1f20d7e8d6", + "size": 7319 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/retrieve", "status": "success", "path": "en/api/python/beta/environments/retrieve.md", - "sha256": "da251b81606ba619ba7693a9416ccd93e2ed6101456f1c050fa672728930d902", - "size": 6754 + "sha256": "c498da560ffb90abe004348390d86145efd5abe4e9f4b223d6c6e924c4c2c795", + "size": 6783 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/delete", "status": "success", "path": "en/api/python/beta/environments/delete.md", - "sha256": "eab9cd6a4ce56521d50a0e2fddc1f79ff5772625dba5c54ace60468769a3a501", - "size": 3459 + "sha256": "e831cb9f51c07392dd76d521a07ea7aeb5e0b0697d21a75cf02c6ce2fc37ecc3", + "size": 3488 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work", "status": "success", "path": "en/api/python/beta/environments/work.md", - "sha256": "3a668dd53c1eab6faf50ef14eff2a0e33d3be6be1484650cb72795ed94d29a9b", - "size": 47561 + "sha256": "e0c9448a6506bf88190376184e9d204fece7ff774728087a8be064af3cffacee", + "size": 47793 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/archive", "status": "success", "path": "en/api/python/beta/environments/archive.md", - "sha256": "81d5abfcf2901edac08159ed0d1b63e607d7cf04ceb0154646bcc62570e30801", - "size": 6820 + "sha256": "63a0496d757377e4965470bdea9b18447b3eaf6a33894a9c8e513ac00a875351", + "size": 6849 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployment_runs/list", "status": "success", "path": "en/api/python/beta/deployment_runs/list.md", - "sha256": "facf59ff6f73e0eb439f2d6d18d8155dad9693683dbf861949e89611b90d3d7f", - "size": 10867 + "sha256": "77a02979b31b1b8ec560d4c3aa7dbb177fa18ca0335b236eb95a3bfc59fa973d", + "size": 10896 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/python/beta/deployment_runs/retrieve.md", - "sha256": "2659e90f8dc6bf9684d7654383daa8dcf65bf7b93365fa8d73ef82cd85031247", - "size": 9377 + "sha256": "985d87cbcef7c7b116db7a25c9cffbeb91ba3a058965db2fb3855d518bde6980", + "size": 9406 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/create", "status": "success", "path": "en/api/python/beta/vaults/create.md", - "sha256": "33703012722e593df497a623e098a8dd26c95d0d51afd48c39dd76b4f2502939", - "size": 4139 + "sha256": "ff98d8a6ec6818fae5719eb290c96eda2d5621c1b90aa5e2d748d6ca3d322518", + "size": 4168 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/update", "status": "success", "path": "en/api/python/beta/vaults/update.md", - "sha256": "e918d4d0f2465917db5d68f869532078b4a3c4619745e1e6d5e1071ed3a336d7", - "size": 4269 + "sha256": "335504fb6bf4ac5ccb07f9f5fb99691b936d8b75aaebd5cf0f49ff8b3e5f3f2b", + "size": 4298 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/list", "status": "success", "path": "en/api/python/beta/vaults/list.md", - "sha256": "0e88b772d3cca5d5a55a39ebc7e54baa23efd35b915f5e3e18893f0b2408e411", - "size": 4442 + "sha256": "4fff80f261ad12a851f14c4222c0e28ae900e39b1ad3fa7f59c50fe36d8247d3", + "size": 4471 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/retrieve", "status": "success", "path": "en/api/python/beta/vaults/retrieve.md", - "sha256": "c5d3d6f712ace0cfc2d8059a2d1aa725c27a88dc93691ecfe9f48ddc50f86556", - "size": 3995 + "sha256": "653d5b4fd564be0d871ad2962537967fc38a795ab8cb4b6d87c09c155a84055f", + "size": 4024 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials", "status": "success", "path": "en/api/python/beta/vaults/credentials.md", - "sha256": "cde1de9e2d5afd81dd499a384546a2691ec38130b757cc02676c3f554332c9de", - "size": 93067 + "sha256": "099fa687c5e5eccec26550c5e3245ef07272a9bf282b39c6f40c3b9177792464", + "size": 93270 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/delete", "status": "success", "path": "en/api/python/beta/vaults/delete.md", - "sha256": "5023291a0e7c3d42fb3d49731342c820362d92aa4719e6fc18354836da6fd8d6", - "size": 3367 + "sha256": "78e6599894bd1b7c6213896c87155a2de75e9fa813ac9af5fead4ec8c3c5972c", + "size": 3396 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/archive", "status": "success", "path": "en/api/python/beta/vaults/archive.md", - "sha256": "4fe1afeba04371a06a7fb39ca17fa614c146ee872286c0075ac907ef7b8083d0", - "size": 3997 + "sha256": "aa0dceca76baa404244dcaeb25bd318d245f9da30076250bfb7b855eaca66fdb", + "size": 4026 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles/create", "status": "success", "path": "en/api/python/beta/user_profiles/create.md", - "sha256": "70715923ccc9be8ee05e8eeca77539ca01352089d01012cf43330d60b7e9f42a", - "size": 12898 + "sha256": "16ecf331c9b737804ef42494c5518deaacc6a3b5e705c83bf6ad2fd2eec6f0a7", + "size": 13226 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles/update", "status": "success", "path": "en/api/python/beta/user_profiles/update.md", - "sha256": "445d2497606a5e4d914576ed7ba24dbfbc8c840b9a0c28745a47c207d939d391", - "size": 12883 + "sha256": "f18f4d26230345205b9e30953100ebe80f066d01c6cd00826c400737895e05c1", + "size": 13093 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles/list", "status": "success", "path": "en/api/python/beta/user_profiles/list.md", - "sha256": "ed589f8744d59466159f42a1257c8dde5c5eb0313952a042e9c342c60a85f0c5", - "size": 9818 + "sha256": "b43319d4256deeb540cfff8f1c68c05634697bed7099194b6e174acac7fe066f", + "size": 9988 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/python/beta/user_profiles/create_enrollment_url.md", - "sha256": "7cecf8d8927d324fb10b9a07cb17a8e90d91ccb530971a39368ac1d4a970b5ba", - "size": 3934 + "sha256": "24de651c50157a11abfacaacb02b60e85596ba0a1c0686e5d4472177401789fa", + "size": 3875 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/user_profiles/retrieve", "status": "success", "path": "en/api/python/beta/user_profiles/retrieve.md", - "sha256": "a198a4377fa3c59461559cbe515c114a7a1224ba724699633b8cd8aa670449ae", - "size": 8715 + "sha256": "d44df59bb43f30fdada09c5d346f11b49e842e2e54b236101c352e10667e3ca5", + "size": 8885 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/create", "status": "success", "path": "en/api/python/beta/agents/create.md", - "sha256": "f06d75f623c1b16739d8465ea08db03d5a7725d49a592b320648ad55424b7f7a", - "size": 64013 + "sha256": "4ae747781600f7cd93215c868e24a8ffead47a2f5852b353b5089936f7008c21", + "size": 64042 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/update", "status": "success", "path": "en/api/python/beta/agents/update.md", - "sha256": "6a283d81336d2d4d71260421b1017c1c70c39dc62fbfc014d1b33ee8ab5d494d", - "size": 64974 + "sha256": "3a2de7fd9358595ef1dd438dd1093c5cd71efbb59a1e8aa60fc3a193470596a4", + "size": 65003 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/list", "status": "success", "path": "en/api/python/beta/agents/list.md", - "sha256": "41bddd0abe4251fb3a99e22b5343cd25935a115d35faf4abb130aeb9f1d6698a", - "size": 30247 + "sha256": "8273e9e35e01f72339337fc741df4831b191e9efc27d1fb36dba2d8ac0b967e4", + "size": 30276 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/retrieve", "status": "success", "path": "en/api/python/beta/agents/retrieve.md", - "sha256": "bf767536b526f3b359faa0966437c96d3b063a033b6100ac776d7e7f6c72cc0d", - "size": 29494 + "sha256": "4de4a4dbf2a094edafa8f0f361ec1765e0b28dcf3e4b7b995dfc28f3f5d939e8", + "size": 29523 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/versions", "status": "success", "path": "en/api/python/beta/agents/versions.md", - "sha256": "c90096ff87aa8739dbec410bcdabc8f06d3198a57d271a5465d7583429fb4fd9", - "size": 30005 + "sha256": "719f33374c7921f9b18c3358aa6fbd3b83334968c3195be3006d12a9c9000b82", + "size": 30034 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/archive", "status": "success", "path": "en/api/python/beta/agents/archive.md", - "sha256": "b24e5d2cbbfbec37d10f971f0380f348d4a0489fc30e28bc53b5fcae39f97b9d", - "size": 29363 + "sha256": "4d2322d001af1b6e322474cc35179009df40c8f2b3cc6388ecd5030581bd6c5b", + "size": 29392 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/models/list", "status": "success", "path": "en/api/python/beta/models/list.md", - "sha256": "5b72b72ae02ac31acad23075e9b9d5dbf9f18c77cc1f2b80210af8d9906cef07", - "size": 13761 + "sha256": "527876a448a5538508aadd2b0b581cbfc11585d05840b58ebab557b168ab2ce3", + "size": 13790 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/models/retrieve", "status": "success", "path": "en/api/python/beta/models/retrieve.md", - "sha256": "86f31a0708fa3397a1ef2683f565dbba8395a6bcea38312c4137f4749b47f955", - "size": 12430 + "sha256": "bcd91857f1e20b131886ad2ca64ed08bea2fd672223f3f4493fdfb294b969cfc", + "size": 12459 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/create", "status": "success", "path": "en/api/python/beta/tunnels/create.md", - "sha256": "6642779041ec88fc2e6b46bb71f12aa0ee984279b825e63d4fd961407634e644", - "size": 4414 + "sha256": "f444a943d3bb99bbbc1ae5753bb95beb0eb3d9c31fcec4862c142c3d887f047d", + "size": 4443 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/rotate_token", "status": "success", "path": "en/api/python/beta/tunnels/rotate_token.md", - "sha256": "2ee5b5324e0adbeea41b295f36244de7064b8e939612ff6c4fdd80d240b8bfbd", - "size": 4044 + "sha256": "1236f5f3ca0a6af6c0e6b581d42aec066a571136c2506c36d3245d7cc0f60db9", + "size": 4073 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/list", "status": "success", "path": "en/api/python/beta/tunnels/list.md", - "sha256": "aa009698f4b3d488eae946e4a77ede0a12fd485276b89fd4534048062d453e29", - "size": 4704 + "sha256": "262dcd48a7211ed5eb171008431569ec5186751d27d7022f880dcd34d7e9feef", + "size": 4733 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/certificates", "status": "success", "path": "en/api/python/beta/tunnels/certificates.md", - "sha256": "6a1473bc22289d93eeb6cf8f78a88b2a4cee0a72833181b8b041cb9a238f4008", - "size": 20065 + "sha256": "efaee6b5fd9fd960ab57355f09c39a5093cd8047159e3bba744d87c333bb2343", + "size": 20181 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/retrieve", "status": "success", "path": "en/api/python/beta/tunnels/retrieve.md", - "sha256": "24cfc643104795423f9ebccddeb4ede9aae2ac3bd62f2785e0a55f09540452f9", - "size": 4244 + "sha256": "d09a32db37c02bd529465f5c665d598f835fb62b88c5fba6b36644d7dcb03a23", + "size": 4273 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/reveal_token", "status": "success", "path": "en/api/python/beta/tunnels/reveal_token.md", - "sha256": "47187be1327b4c5aaa9d4883f9c47197cefdc9f803d812b55a3af5fdddcf2fff", - "size": 3951 + "sha256": "14b9067891642b48853351751c4f08f190f34b1d8f0127f81803653f1ff906ef", + "size": 3980 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/archive", "status": "success", "path": "en/api/python/beta/tunnels/archive.md", - "sha256": "8ca16456679e219f3155cdfc6b22e5c4aacd0643112033efcc416c7b68322bcb", - "size": 4527 + "sha256": "d0fb6c1c8b1f31b0774872751ad02b1987f005b51ec6b24a62cd0392448560a1", + "size": 4556 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/create", "status": "success", "path": "en/api/python/beta/sessions/create.md", - "sha256": "e22055e473961710c951bf492e27a4b5a40829334f8f0720648fd11cbcdc45ca", - "size": 82707 + "sha256": "ae7c108d42a91ee2613ee237e0a1f0d6e3b793e29b97275b4d38dd89b10da899", + "size": 82736 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources", "status": "success", "path": "en/api/python/beta/sessions/resources.md", - "sha256": "cddf2fb89733937e2ba8f2f6e6858c59dd80fc597e995c63cc754ff0f6562318", - "size": 35452 + "sha256": "e7b6ebf3c4dd1a16a0da03bdb7f854ae9ad29874f57d853216d35a46b48f86bd", + "size": 35597 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/update", "status": "success", "path": "en/api/python/beta/sessions/update.md", - "sha256": "d95d8f62b4888adf9a5d5f1624b9883f139bc0ccd7873b9bf05cd8661ea86225", - "size": 68529 + "sha256": "a1f7ec36fc1e7eb6eb5a979b63cb0fc50464b51b7f7ba28aee9e08a7266cc388", + "size": 68558 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/list", "status": "success", "path": "en/api/python/beta/sessions/list.md", - "sha256": "e4ff78cb218f6b31b64d17ddc38a08b49c9f4fe0f2b123cb4b393b2006a96d5b", - "size": 47803 + "sha256": "fc482b18395be32aca4a69f94c271b7c54767ad980ceda90ebd0315586d8ae4f", + "size": 47832 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads", "status": "success", "path": "en/api/python/beta/sessions/threads.md", - "sha256": "f160da93978d1d66a763d94ce05da8351c06a9a4d8c50d54b299c59151fff913", - "size": 436108 + "sha256": "3c5e21f0556975e9d9c25836e69accbbd6ee8f4cffae0f1900165fca9e1448c2", + "size": 436253 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/retrieve", "status": "success", "path": "en/api/python/beta/sessions/retrieve.md", - "sha256": "3aee76abfffaa04bf35743e12e30167950cd6c2aa4b3bf27de936f8804d3103f", - "size": 44907 + "sha256": "289d219f67c41055fc61c8cd36e3321ff3554a360585031e862bbf8cde7ef1e7", + "size": 44936 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/events", "status": "success", "path": "en/api/python/beta/sessions/events.md", - "sha256": "f5dba38c9aa2f50dc4c90529e190ed8f8dd44af1d8848a723e2dcb7af0eee3d1", - "size": 560351 + "sha256": "446ea33db867abcbe0277b8fd24278485d4c0ef0ffde6b6ce463fed6c029c0e7", + "size": 560438 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/delete", "status": "success", "path": "en/api/python/beta/sessions/delete.md", - "sha256": "07bcdb34927c4f5e245bb096a0aad504c99d848861d40f78c09888e2295e4e19", - "size": 3326 + "sha256": "4c1daff18cdb7003e64adda3333c597347fa3e5ac6284d6430667209ec19fbe2", + "size": 3355 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/archive", "status": "success", "path": "en/api/python/beta/sessions/archive.md", - "sha256": "f0694eee8345ae544d8f45366d0b6d731bc5e043ec6f706559e16b803c32ac61", - "size": 44925 + "sha256": "ddca502859724a1e5c95cc25e727e95914e61f825fef44ab8f1b64bdf73e9e00", + "size": 44954 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/unpause", "status": "success", "path": "en/api/python/beta/deployments/unpause.md", - "sha256": "237618558ccd35d132d2fe99fc18b466ee3c513e4b700a7b204ca66506807176", - "size": 19251 + "sha256": "0cd158625325a04d20152dcdd9856e3085528570a40e2fe5ebce6156579eb979", + "size": 19280 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/create", "status": "success", "path": "en/api/python/beta/deployments/create.md", - "sha256": "053f23382b729f765c1101fc174f1c21439fe846edefd8f78704bcbe23587eb1", - "size": 30118 + "sha256": "93102fd6f2aa5bd148a2daf09f8e67cd3f711cb224ec19bee9a5c502d1cb3516", + "size": 30147 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/update", "status": "success", "path": "en/api/python/beta/deployments/update.md", - "sha256": "74e39c1705cdf456c3e5a7eb48f49f8f873acfe3c7ab52583f725178e8c4a32b", - "size": 30090 + "sha256": "1cfbfaec347f57f1b476196e6fecad8ee745173af10dc380674217990de43383", + "size": 30119 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/list", "status": "success", "path": "en/api/python/beta/deployments/list.md", - "sha256": "6a881d305986a5e876bc29c5942912e156bea2ff99732c70ce990773036f026b", - "size": 20559 + "sha256": "2163340dd0c1a936a1f95a55e2c8d6841744a413b06da922a66260123585bf1b", + "size": 20588 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/retrieve", "status": "success", "path": "en/api/python/beta/deployments/retrieve.md", - "sha256": "d5c31c25c0559b2aab310d2d6b134211eb46cf73102f2b7102d65c1386ccabcd", - "size": 19222 + "sha256": "046d6e0f03fb62e6a388a06d337240bfdcc1979ffa9d1662a68b2682b076445f", + "size": 19251 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/run", "status": "success", "path": "en/api/python/beta/deployments/run.md", - "sha256": "492e93a8461fb5af90b4166070fdf149f3c3afffc763759ee5f7d2d745b8d089", - "size": 9350 + "sha256": "71f75859e91a4c9ee7f0bcdbc808b21959b11c43702d88dba26d9e3bb9c19193", + "size": 9379 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/pause", "status": "success", "path": "en/api/python/beta/deployments/pause.md", - "sha256": "679bca34ddd00ed33d5c5a119cc42ea76be962aad4db6268014d5eeff2ec0448", - "size": 19235 + "sha256": "a140fb561b4ea8a53d3e59cbaa95f6c65699b7ceca9b9abe97c4f759793f93ee", + "size": 19264 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/deployments/archive", "status": "success", "path": "en/api/python/beta/deployments/archive.md", - "sha256": "5e25656f0b3e3e97d627ed51f757f340ee00e2a2a60e0e42e6cbf1073e8de5a2", - "size": 19251 + "sha256": "900a5711839432e911f1c17e0d88a33b66de5a1876754040cd4acdf4a09a9389", + "size": 19280 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/create", "status": "success", "path": "en/api/python/beta/skills/create.md", - "sha256": "ec110a6498832bf60f25e4ee0fd222ab9459e66cd20de134e1a55c4b15a56b9a", - "size": 5223 + "sha256": "0422c74c6773b2f430126555c482db2a75e3ad94d467a4d1658a2c766f14fbd8", + "size": 5252 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/list", "status": "success", "path": "en/api/python/beta/skills/list.md", - "sha256": "444c8c5d7ccd1c90dabc76f0f84a695c9630b0f78156e8fd923cab8cdd5ee5af", - "size": 5533 + "sha256": "74ddd3a2256dff233226418ca6f19468ddac6464de668929acc8d49077eec9bf", + "size": 5562 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/retrieve", "status": "success", "path": "en/api/python/beta/skills/retrieve.md", - "sha256": "71b6b24db3a96a4bb93e3524d49eaea0b8a7ee39771445bc91f18dae4ca779df", - "size": 4971 + "sha256": "333dcb8ebf5e42af68d53729002b0a50f9aab656f21db0b793aba9d616f1bad6", + "size": 5000 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions", "status": "success", "path": "en/api/python/beta/skills/versions.md", - "sha256": "dd217a46d0d3a3b75d98a9d8f79ca65e00ef557a54de3dfc1c700af3235829a0", - "size": 21957 + "sha256": "930dae1c60fbff261f799dc7f2a7983b92a0a2de936245af253900e726f73022", + "size": 22102 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/delete", "status": "success", "path": "en/api/python/beta/skills/delete.md", - "sha256": "d28d24b40dbff8b6e452c694810cb43e6d608047aadfa5a4dac0738023e3fa93", - "size": 3419 + "sha256": "0ed77d0adcaec2ed1deee0259a2f7a503c15b02e71209509150243e8f6d79f15", + "size": 3448 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/python/beta/memory_stores/memory_versions.md", - "sha256": "6e55fda67b3ac08c99531bdc623841418011533263ac61761e0159b4214d2a9d", - "size": 40196 + "sha256": "1641511d5dabfc93e57200159b56898dfbe0eecea4e8212daf2f80268e2afc92", + "size": 40965 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/create", "status": "success", "path": "en/api/python/beta/memory_stores/create.md", - "sha256": "0f3547971b657fc25c113172ae0ec849e1ffa518177faf757a349966b5523d33", - "size": 5718 + "sha256": "5f3e873c9c21aa8b9e9c0c6d95b02b7fad6c96b3016fad70aa2b09882c2ba5c6", + "size": 6371 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/update", "status": "success", "path": "en/api/python/beta/memory_stores/update.md", - "sha256": "0a01986bedf398dd48550d52810b0f90fa5226269dad7fc2c00c92c53d877370", - "size": 5838 + "sha256": "887b4c728532ee3ea68e5a72df6eb806f61e7eda5ae90a69d43bb0a6c1e23e51", + "size": 6224 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/list", "status": "success", "path": "en/api/python/beta/memory_stores/list.md", - "sha256": "3c5947660156c8238a5295e62e8c1cdf8709284d8b7b1578b2484f8820fd4d83", - "size": 5975 + "sha256": "0b65b78739feafe9cbf3b648326bdfa16e0a91bc97581b9a4657aad6cb2196a7", + "size": 6141 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/retrieve", "status": "success", "path": "en/api/python/beta/memory_stores/retrieve.md", - "sha256": "a6f337337797480bdc95b25bf2422b192c28ea953a1dc723f2d0a772ea0b6ab3", - "size": 5183 + "sha256": "f8b39748d629bed30ad6bf2c74a7b0d012707ccea068323dd2c6a826a148f044", + "size": 5426 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/delete", "status": "success", "path": "en/api/python/beta/memory_stores/delete.md", - "sha256": "500cd7d868c6abd3f7009f9c086b5b5c8c18bd52ad8ffeb08381addf1e0f778e", + "sha256": "4a2d2216f27b3a22fa3a7c06939f9e012ce897acb9e95a66d681b196cbb86c2d", "size": 3707 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories", "status": "success", "path": "en/api/python/beta/memory_stores/memories.md", - "sha256": "ed2dda85d2cd59dfc6352611b56b3cfc9bb327393269914de8e22c59e73a2679", - "size": 50412 + "sha256": "71861024c9f876debce181bf7a3ea48b3594cfe485c0d21458f9a0fa76345d2f", + "size": 49826 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/archive", "status": "success", "path": "en/api/python/beta/memory_stores/archive.md", - "sha256": "6b3922f6e1993ec1bd1909c637127e295540b5b7060c370e509f03648cdbae31", - "size": 5260 + "sha256": "c671066a19a9d3893e3a8fd0f7500c7e4156875c203464c7a1ff582d77dfa1af", + "size": 5523 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files/download", "status": "success", "path": "en/api/python/beta/files/download.md", - "sha256": "2a3f87a3ad2e312370ad23a201e3de4e5191fd11b929d7c1f16b79c1e57f52c7", - "size": 3016 + "sha256": "5a4fae71833b50e825520d824d6c9035210bcdbdefdd25a9a7ff26152ad5e81c", + "size": 3045 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files/list", "status": "success", "path": "en/api/python/beta/files/list.md", - "sha256": "780ddc818be5234a0e1d29adde938f339a1dad2f6ffb270fdb9df5ca39664ee2", - "size": 5408 + "sha256": "8fd9c781948e5476ea541594d540989e0e0b2b1f7292bedb955cef4db9660c47", + "size": 5437 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files/upload", "status": "success", "path": "en/api/python/beta/files/upload.md", - "sha256": "2387d0d2b139ac4dd47eef6a1d061f26d9366f13608a176975bcef96b1ea7507", - "size": 4980 + "sha256": "7934a365f3e0250785722faaf2dbcf524115f16d8f27f4002549e5ed8de70404", + "size": 5009 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files/retrieve_metadata", "status": "success", "path": "en/api/python/beta/files/retrieve_metadata.md", - "sha256": "38616aaff96749257301391c42b1c3345723018ed3c4308df252ec914a5ba8ba", - "size": 4626 + "sha256": "fe703ba4bdbf45b7a18a019c19be7a7d738c6f6f6eeebb7a9bc48017b66806a2", + "size": 4655 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/files/delete", "status": "success", "path": "en/api/python/beta/files/delete.md", - "sha256": "e443f5b223211eab5a37670c54e3d21d417221d131c4690887990af281ebb1b3", - "size": 3277 + "sha256": "0d5c56cfe6aefa6301bfb23d12757984ed748edb451595608569c6bf1e9868c0", + "size": 3306 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/create", "status": "success", "path": "en/api/python/beta/messages/create.md", - "sha256": "1847d072698be8a0c3fdc158847044476f31aa45bcfe87375fe8f209dc7dfb14", - "size": 301874 + "sha256": "df00729fa4643b151fec7c231b0565f5feec183810bae67f60c37a387f94fae5", + "size": 306678 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/count_tokens", "status": "success", "path": "en/api/python/beta/messages/count_tokens.md", - "sha256": "d0346ee2aa4f65fb32c5227b671eeb98de588463a7d6a164886f48a95d51219b", - "size": 144637 + "sha256": "cc1326b33b6ebe7a1cad3de0f2aeae6015fa9961f17729c30f509d157f01bc6e", + "size": 144624 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches", "status": "success", "path": "en/api/python/beta/messages/batches.md", - "sha256": "228ff92bac963b2f593cd7872f7105c149ed911b58e3d6717b6651d30a8abe4d", - "size": 788435 + "sha256": "3f9749637e6a8a024125e3aea420f46da52135f9e2c38f1e0cce9ea604f019bc", + "size": 800510 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/create", "status": "success", "path": "en/api/python/beta/messages/batches/create.md", - "sha256": "a2269443d6876bf1d44849209e0f7355e53517a79f1762ada388073919271905", - "size": 165689 + "sha256": "6059545e8195fe9af79df4bc855c603afcd8dfdc911a72208a2dd6265f5408dd", + "size": 168271 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/list", "status": "success", "path": "en/api/python/beta/messages/batches/list.md", - "sha256": "d82fc9a76e012b109290a5a5c0c06c066f0cd67ee4528408cf14e639562cbd52", - "size": 7467 + "sha256": "c07d7c727308625b018e484d94b66b539d73f52c45e031e9fb2979546781e2f6", + "size": 7496 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/cancel", "status": "success", "path": "en/api/python/beta/messages/batches/cancel.md", - "sha256": "49b0b45741efbd712a374685f0be76f0ebf468824584b7626918a6674dc2a61a", - "size": 7343 + "sha256": "963e6f6d743b9099a268738a41c209080f8c1b3a4eb8dd52a3173cba6bab9fb8", + "size": 7372 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/retrieve", "status": "success", "path": "en/api/python/beta/messages/batches/retrieve.md", - "sha256": "4c33930135eab85e0e0687a3bf1fd815a92a052efe8fcd48af42329ffb117764", - "size": 7035 + "sha256": "536b3fbec0bdf47e298eef1de0c459b1a684bdfe1bbfb5799159d9dfc9e62b16", + "size": 7064 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/results", "status": "success", "path": "en/api/python/beta/messages/batches/results.md", - "sha256": "2337123b92bbd871db72f0d2fad29ac189deeb7e20ea31913a13611e31fb3527", - "size": 154308 + "sha256": "e3a713dc38d9a7151fadd3e8f87b25dfa770a2a9d25320f47b7b7ff3a74e51c9", + "size": 156695 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/messages/batches/delete", "status": "success", "path": "en/api/python/beta/messages/batches/delete.md", - "sha256": "173df5823a6bb72a7d4651d89edf88db060a1dfd36db6054062c222c875b3db4", - "size": 3774 + "sha256": "200661c32484b5ab2abd525176347aa4e828a63d4ff45abc3627cbbaab03ed13", + "size": 3803 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/create", "status": "success", "path": "en/api/python/beta/memory_stores/memories/create.md", - "sha256": "123fdce8b160f7254cc96b39233ef55390d640b70dfac7a916158026af225423", - "size": 7306 + "sha256": "284b2497dcf247ab519582e064adc8ca4eb0183ea8e5b52b58ac4cfc42de6a72", + "size": 7195 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/update", "status": "success", "path": "en/api/python/beta/memory_stores/memories/update.md", - "sha256": "f0a903163685bc6d4cacb79fd8a6624d1076d8babf3e9c8537f005435a4daa37", - "size": 8137 + "sha256": "9c451b13f1bbfcb5e63c44a42433a59d955dc98c65ae426e55c7e09ced5b28db", + "size": 7947 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/list", "status": "success", "path": "en/api/python/beta/memory_stores/memories/list.md", - "sha256": "37776ab6013b2daa35c2ff8eadd91d334ab711bfe1c08b9f46fbc596469d7899", - "size": 8782 + "sha256": "9dd032e5fc661f4b8abc42695b157fcc26e4b65894aeb25cf234beb4687943ba", + "size": 8711 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/python/beta/memory_stores/memories/retrieve.md", - "sha256": "edcdaa9851ec1969254cd689b0efede6e1166c1c5fd94c32873f3e0c8f5bb4f8", - "size": 6825 + "sha256": "546c436063d0245e291bac57a28f5a97e0fe08dc8a14a99a4f3d9a7958e258eb", + "size": 6697 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/python/beta/memory_stores/memories/delete.md", - "sha256": "bc537eea0f9723b7d6a03e0f1fbf60894c59340eae56e64eebdaf4174d2fef8a", - "size": 4370 + "sha256": "6ff57c14e18f65e2faf72a4533953d57d751003b152528a0767c25c2cc6a83c4", + "size": 4557 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/python/beta/memory_stores/memory_versions/list.md", - "sha256": "66ec15549510bdb623a0874b5dbdc4b4b1d2829a60f5cec97be1ed72a689cf03", - "size": 11908 + "sha256": "97e0670b4247bda068a04a2cddba0d4f489e8f68e3dd63aed43cb10e2665f162", + "size": 12125 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/python/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "dc480c77e123860da2a4c88684f0565818cb9e2e2f0583c5b61e28d31514ee79", - "size": 10018 + "sha256": "9618ec243ee17322254f6ef6cc3b17b172c75d7754193a2731d4f9c17c89aeee", + "size": 10127 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/python/beta/memory_stores/memory_versions/redact.md", - "sha256": "21ce0b2b7326aeb28049f919cee529b4ea80505d2d55ffe25357f9ee26be4437", - "size": 9286 + "sha256": "9d825d1af5f99c87c5e9f4b3985f200e217aac333c28bbe04f643ccb0ffa17ec", + "size": 9505 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions/create", "status": "success", "path": "en/api/python/beta/skills/versions/create.md", - "sha256": "0ea1c258bbd0007987f07c7c35604019756483acbe9f0b726283612ce458cda7", - "size": 4502 + "sha256": "600d200925ad50053715e4b310a014eb853baac20a4d39fb90ea63ddc8831d05", + "size": 4531 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions/download", "status": "success", "path": "en/api/python/beta/skills/versions/download.md", - "sha256": "b1f527ef716c74e2b9c5bec3915d14af14631dc267e50f95f5d707f842a5adb9", - "size": 3463 + "sha256": "4535586a9c9df9ca8d5e2d14a909c7df5a62fdbc8c6683b32b72fe582cc32e7e", + "size": 3492 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions/list", "status": "success", "path": "en/api/python/beta/skills/versions/list.md", - "sha256": "6e084a134dcec68cd89940543d5b4c618652b9e2b9a8d9df5acc1358f330be25", - "size": 4657 + "sha256": "ed68648bec840def10eded2f5ff2e8429d719f3fc84d6f9cda764c3b4394c43c", + "size": 4686 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions/retrieve", "status": "success", "path": "en/api/python/beta/skills/versions/retrieve.md", - "sha256": "777e1f451b77c07fec1d457f5cf30f859d842ac3961af94067530019ff858cfd", - "size": 4601 + "sha256": "e31816a6c36d67760c53c7c6273b7503251d048bf5003cd7ce46d3e4462705a4", + "size": 4630 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/skills/versions/delete", "status": "success", "path": "en/api/python/beta/skills/versions/delete.md", - "sha256": "fc66a9ec48a516f7dc34e6907ca6c7a7d9becc9a899118ad11d287f7f2cbfc1f", - "size": 3799 + "sha256": "d65ccd076fd3945871146b3c800e5fc39627367800b94ea7cbc25a24f777755b", + "size": 3828 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/list", "status": "success", "path": "en/api/python/beta/sessions/threads/list.md", - "sha256": "1734bb3d78cfaf8a0095bf3114242ca0b0f62c8001b75595cbd89846f7a327af", - "size": 33354 + "sha256": "2ef82ce6a6992baa2bacc38e580fb657026ff6e94defb641a269ef5eeccc0905", + "size": 33383 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/python/beta/sessions/threads/retrieve.md", - "sha256": "6fdbdf5e32629938aad9ede9976fa56f4414e163b3c70e4146f2619392572a29", - "size": 32505 + "sha256": "60e8dfdce9023973e46a29d46505ba2ae270155adf37cec585e7f94e5b8a41e4", + "size": 32534 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/events", "status": "success", "path": "en/api/python/beta/sessions/threads/events.md", - "sha256": "a6218d2c6e7b53895b92393abf2ebb29549124cbffab9572a8f976e258cc2b77", - "size": 193278 + "sha256": "c0b86565256c5166770256f806848a300e8b7df13b75d8393c64d412cce83600", + "size": 193336 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/archive", "status": "success", "path": "en/api/python/beta/sessions/threads/archive.md", - "sha256": "4588bb05ba4c2f81db39baa4d031a276e478819ea93adbd6efcda88a22b93745", - "size": 32523 + "sha256": "534cdbccad5f92bbd030f1dbd05df72e61659b47a86c72d60f67f08e20b5459c", + "size": 32552 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources/update", "status": "success", "path": "en/api/python/beta/sessions/resources/update.md", - "sha256": "f888f1f659c62b9d7598221e855aacbb92354495b8cddced54246170edf7442a", - "size": 6139 + "sha256": "20851458e7a0e3947d48c53e64008a52d14d788596af116b97a46b4483b1accb", + "size": 6168 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources/list", "status": "success", "path": "en/api/python/beta/sessions/resources/list.md", - "sha256": "dd2f831bb51df96c6d408b938956d0eeb6af21fa4dfb339fb19e45351aedf8dd", - "size": 6465 + "sha256": "b317470cf4acb499b75d7d34493e66390cec2574d4b6f80e79473703a4f46520", + "size": 6494 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/python/beta/sessions/resources/retrieve.md", - "sha256": "3e71dfda3631b9ee3624e552a50679ce73f2c387c3f894c460911723b945a805", - "size": 5920 + "sha256": "d5cf365cd9b68c262d16225f7a34475c5e1491f2f32155f47b8cfbaa359dfac0", + "size": 5949 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources/add", "status": "success", "path": "en/api/python/beta/sessions/resources/add.md", - "sha256": "37308dd677d7dde4df04e2f3559e3baca834526b786c1c19013e7f8fd3235068", - "size": 3983 + "sha256": "a5a0e866121da372f8ee5fcdc347f1badb4be5af5a3b76ed60777eb98e6198c5", + "size": 4012 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/resources/delete", "status": "success", "path": "en/api/python/beta/sessions/resources/delete.md", - "sha256": "22454aa008607909d070874ca727fed913442922ae67bd37021a35462de1479b", - "size": 3523 + "sha256": "97dc406f370f11861502fd6a309a620f1e3457b3963a7430dc48d2792c872678", + "size": 3552 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/events/send", "status": "success", "path": "en/api/python/beta/sessions/events/send.md", - "sha256": "d3383264bd73a1a98b80613a0a7e178c0b73bc04d7f111514ec13194cd6ecbc5", - "size": 24988 + "sha256": "510cff8a32eaf6272e4387e95dca2f365548d42b4105ab4cb5420cc74bc8927b", + "size": 25017 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/events/list", "status": "success", "path": "en/api/python/beta/sessions/events/list.md", - "sha256": "34dba306c62138383d262deb725e6b6abb2001e4f0236587757d2dce0952354f", - "size": 97563 + "sha256": "7a1785d7d8c82c8f2192e2ef7025252104ddf0bc0a783cf1d94d52a67a3974bd", + "size": 97592 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/events/stream", "status": "success", "path": "en/api/python/beta/sessions/events/stream.md", - "sha256": "5d0e5c1c2394713a74443fa5df7e7b49faad99e843c7f2b943bedcc9f6d7b58e", - "size": 98097 + "sha256": "e00c14a4326c4c017fc529dc22812f753ec76d395302e127e4c1ad600a93a831", + "size": 98126 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/events/list", "status": "success", "path": "en/api/python/beta/sessions/threads/events/list.md", - "sha256": "d700a0b2a83bb5bce9cea0860c88750f0157af97afb580adc380fd86cd7893fb", - "size": 95135 + "sha256": "75f972f8f2fa77b5297a9ec1cf3db0d5753d027c19bbbb1e9c0eeb56b9ac7b99", + "size": 95164 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/python/beta/sessions/threads/events/stream.md", - "sha256": "4cc421f45b78f2be75828b616ac62ae95645037933e7eaecd290d413219155b2", - "size": 98280 + "sha256": "0ef891533d1b13e6e840a6bbcd0cd9e2c62d168dcdc6622edec387c8a8dd2162", + "size": 98309 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/certificates/create", "status": "success", "path": "en/api/python/beta/tunnels/certificates/create.md", - "sha256": "a198569a39b5e0d34b40ce6369c2fc2932967597783b44ec7a57971c17a221d9", - "size": 4902 + "sha256": "e436ab7dc5546260c1d62c1935f44d2a099e780d6aecd31c75ef1378e072317d", + "size": 4931 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/certificates/list", "status": "success", "path": "en/api/python/beta/tunnels/certificates/list.md", - "sha256": "efdd9b15adf430053fe2a0cb4ca8294b447b10890ea00863cb7d73f0454ef964", - "size": 5073 + "sha256": "317be5180d8b6098c8103b417abe0287f0ffa8a4fdd014487f33f29aef641861", + "size": 5102 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/python/beta/tunnels/certificates/retrieve.md", - "sha256": "c0f210bff750202aa7a8e3d156b55478df4f3b3eadbd4b7e68b97a6f41a8f5ba", - "size": 4657 + "sha256": "b151ebe72cff63b11978b1480964dcf3e90de48462cae5e8ea19de486457da6b", + "size": 4686 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/python/beta/tunnels/certificates/archive.md", - "sha256": "76250b91321154a4430ca9252ede3f4971caab94b8119efdbb97d0208ee9c38f", - "size": 4894 + "sha256": "becec1be399d270e0740e189431219c52613160ec9986408b9d1466420d10b39", + "size": 4923 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/agents/versions/list", "status": "success", "path": "en/api/python/beta/agents/versions/list.md", - "sha256": "1ae51d541c717713f97060d75daa0efe5d2404702b0dca280078a0d7c853af81", - "size": 30004 + "sha256": "00c1f9cdd8d167000929150b0dbd8e5d7c2340a89a50f3d14d35932cf3954b90", + "size": 30033 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/create", "status": "success", "path": "en/api/python/beta/vaults/credentials/create.md", - "sha256": "992c668f52d03cc964d3f22ee9978783561754a395e6ff175b9c4e605068c4ab", - "size": 12862 + "sha256": "7748fe01ff212f8ca028c243e590e36c508dde39b1eddfad2a20a99da508a995", + "size": 12891 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/update", "status": "success", "path": "en/api/python/beta/vaults/credentials/update.md", - "sha256": "f5eea6f9ff4949df3ff06ec27702342d7d0d219df311a2e5b577c3dce035624d", - "size": 12522 + "sha256": "6ead5224c33c846309464afaeca8d8a9315e5fe6ead3e285a2bc544e9ed5c04a", + "size": 12551 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/list", "status": "success", "path": "en/api/python/beta/vaults/credentials/list.md", - "sha256": "3316faf24cd2984c41f9d014161d2fa5f0a296f7a4b7ed4b4fb5ad15fa9a42a3", - "size": 8352 + "sha256": "f24c35f1db5a22673c05bc9748f0637a0a173fb0d30ceb0ecf774988018ddd02", + "size": 8381 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/python/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "20463f260ad9fa23b19320dcc38da0f6c8937cccb9927ab97ccbb98033bcaa13", - "size": 7006 + "sha256": "86378590bd62dd2ac459fd777c1be5a6324ade47b6e5e9e16e86418c4e92430a", + "size": 7035 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/python/beta/vaults/credentials/retrieve.md", - "sha256": "c0dc7954a9a6a573cf4447723d9f4362f3a78a198e2fad8cb128bf3d414dd528", - "size": 7885 + "sha256": "40dfb057dc2bdc3657a59e4ebc28b86f881a8e66de6b4df28e5d3e6d83648164", + "size": 7914 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/delete", "status": "success", "path": "en/api/python/beta/vaults/credentials/delete.md", - "sha256": "4712dd44771ec8a219025bef28bd1bda5bb761e85a9371112690bbcc1b4c3321", - "size": 3656 + "sha256": "d9313e8a379abc6c8a34149f260ed35881fd96bacb87e5f2b3f32ca94a38cd4b", + "size": 3685 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/vaults/credentials/archive", "status": "success", "path": "en/api/python/beta/vaults/credentials/archive.md", - "sha256": "94c2bf8b55acdb3c3c554407567b9e563b58c916e84f0b9fdb1a1cc4a78bde03", - "size": 7887 + "sha256": "9b5fcb7e7cfbafebab0154b8e75780111c1dd569c31beb366d2126fe3bc66c46", + "size": 7916 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/update", "status": "success", "path": "en/api/python/beta/environments/work/update.md", - "sha256": "601339b2f24c7687d6305360ce7a771457dd415ee15e9d01eb3191c1818b4136", - "size": 5827 + "sha256": "920d5a4c6f7d6f5cc3e4d23cbe81618d9767acf222d3f33f8d56007ff134bc42", + "size": 5856 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/list", "status": "success", "path": "en/api/python/beta/environments/work/list.md", - "sha256": "3e83f41e396fd3077b4916193d943af967ba655e84d7575a54b0908b422d231f", - "size": 5537 + "sha256": "ba3e9a5ea49eeab85cd70579d0eb3e429c41e286eccb6ef492aab449d53695df", + "size": 5566 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/stop", "status": "success", "path": "en/api/python/beta/environments/work/stop.md", - "sha256": "4fcef89e0c11d176aee078a055a79765c260cbb080a7591e99fbbc1f4207fe70", - "size": 5729 + "sha256": "401fb35f7341d8c5629919072406fed4fbbde87bc61535a1e1dbe89644ffcedf", + "size": 5758 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/retrieve", "status": "success", "path": "en/api/python/beta/environments/work/retrieve.md", - "sha256": "f7125c51fc9b3908886ef71f52df2ae7d0cce9a44103f52ad49d081555bbf9da", - "size": 5638 + "sha256": "5d0602730407c21b735b78a0b5536bf2b92345ff1167642403eb3c5f7dd47353", + "size": 5667 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/ack", "status": "success", "path": "en/api/python/beta/environments/work/ack.md", - "sha256": "bd91898adaceff1ed3127cddbb997cf2e25cfc5f03cfaf893faa0899f148f63a", - "size": 5324 + "sha256": "1d0e700e6ebc4df4bcfcd3d8e9213ac731e2921dee0ba8e336b1e11a3ff707cc", + "size": 5353 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/stats", "status": "success", "path": "en/api/python/beta/environments/work/stats.md", - "sha256": "609e0338bb607ae396dbe25c1d60c940730c2ee0606f83f2904a49f8c87ce5c8", - "size": 4072 + "sha256": "ccf9244fbe17c90fbbc1e0a9ddef32e9a71f0c771867abec2199093fb67b26c2", + "size": 4101 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/heartbeat", "status": "success", "path": "en/api/python/beta/environments/work/heartbeat.md", - "sha256": "9fafa9bb3c32699edb5a388459ad7902960e2a788ed74abc10a945d7c734206e", - "size": 4399 + "sha256": "20ad3f4c9d7ab9b589bb4bad46a3cc3ce29f71cb8c691b6ed1c42662701b7ad9", + "size": 4428 }, { "url": "https://platform.claude.com/docs/en/api/python/beta/environments/work/poll", "status": "success", "path": "en/api/python/beta/environments/work/poll.md", - "sha256": "1fdca3dbb043ebffa0826a7270531eda287a470e2afa5b80af5cc3f4e81b90de", - "size": 5772 + "sha256": "44da95bdb5a15075bc4e81deee89c0f6aa114f3eaf853dae9dbc86ef4e454aa2", + "size": 5801 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions", "status": "success", "path": "en/api/java/beta/sessions.md", - "sha256": "95f367b1e6675abac0d2d1f7e5d000c922c373e3c94116bcb11a8d5f791fd934", - "size": 1180328 + "sha256": "362c951acf82643b684c47d3342ad7519d52dfb0ded934a4be1a3ab4f8d27c1c", + "size": 1181316 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/webhooks", "status": "success", "path": "en/api/java/beta/webhooks.md", - "sha256": "cc08d51b8443e0b8d76a372c6b6cff68802bb15dced3d3ccfa4dd38f4c699962", - "size": 34918 + "sha256": "0903773152aa3929c8d1302439e93e3ec74687782767045590f160c54fc954c7", + "size": 37222 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills", "status": "success", "path": "en/api/java/beta/skills.md", - "sha256": "a309c0910a695754e875ee45327eee4adbd3ad0224f3b1bfdfc6b0d9deb6705f", - "size": 59113 + "sha256": "29a3fe251b401399dba1ba60668d8d23a553a3495266692730287b9ee1a1a067", + "size": 59581 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents", "status": "success", "path": "en/api/java/beta/agents.md", - "sha256": "865ca52ca19a0062d3d4b5e44a9a4846e503119c398dea3f26e927628adaa614", - "size": 448590 + "sha256": "0d53bee1dd910ca31c37e0088cd4334af71dccab438d3f01a0dabdeea2b0b4ab", + "size": 448902 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments", "status": "success", "path": "en/api/java/beta/deployments.md", - "sha256": "727e2682781bbf6feeb9dfa34bc743d003c41323f99b4e4ba011c2582e49115a", - "size": 220894 + "sha256": "b4f2e0f40c1807f7570002145db29a19839438f60a961c2fe44c08a8381e912d", + "size": 221310 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployment_runs", "status": "success", "path": "en/api/java/beta/deployment_runs.md", - "sha256": "151b2016087c5d6786d0ad278a7ecc87c4e4d67f65949420f872bbdd29b62e54", - "size": 33676 + "sha256": "800388fa96e3b312564ab0ccb265e283219df9eeffea66ddce09a8784998df4d", + "size": 33780 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles", "status": "success", "path": "en/api/java/beta/user_profiles.md", - "sha256": "d876b4142b6c06d921cd58cd639db1444a4708ebb8ad06bb908e234bfea2eacb", - "size": 62580 + "sha256": "a51537f3723479ec532d6aaab55aa4b898c837a36a2629410122f7bea7b7eb76", + "size": 75311 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/models", "status": "success", "path": "en/api/java/beta/models.md", - "sha256": "87c511ce7a77296fb23ce865d2713579e030a2ebaf4dfa6864a27e39b72b172d", - "size": 47866 + "sha256": "8da4b4500857331a66505c5c5986d892338de68213a41b3494f9c331991c3026", + "size": 47970 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults", "status": "success", "path": "en/api/java/beta/vaults.md", - "sha256": "75efea2d66a276b86972a3c3182cb6acbb204d10d493ccedeadbf805f1167f38", - "size": 108485 + "sha256": "e9c3d8321cc39d2cb3a00d4ca66835a8bd6f7e88638c8523a9ac79cfa1dbd1c4", + "size": 109161 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores", "status": "success", "path": "en/api/java/beta/memory_stores.md", - "sha256": "5f854c0446a39ebba0d47f5654a158cacbe9f66255b03aa1680e845a4b42b3e2", - "size": 123275 + "sha256": "e8e5833d60e45b6acc7739014cd1f5c70da261ee34fe506b2b02acdd8a1800cc", + "size": 125838 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels", "status": "success", "path": "en/api/java/beta/tunnels.md", - "sha256": "53b0a22b1eb5ce66747251492412acfd25808d9fcb826ab1bd84a806eaa19d46", - "size": 64950 + "sha256": "889537940cfc1ceeda5cadc91692d42ea965c23308cd3b0adb5f14cc8bb48417", + "size": 65470 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments", "status": "success", "path": "en/api/java/beta/environments.md", - "sha256": "6ccfbde66867aa51385d59e0c475d0e296676710be8ba1598b6874d4bc7d78a9", - "size": 121443 + "sha256": "c603dd5afb7080b54403bca99474f69fa60f996b27c508d6b862315b9aab505c", + "size": 122171 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files", "status": "success", "path": "en/api/java/beta/files.md", - "sha256": "7a378987767f2eaf05763cf8bc89091ec5232372faa41a14632fb7f18bcf635b", - "size": 31956 + "sha256": "dc69b2f2af3407e024fa455dd292e16271b106d726ffb3fe6b53ede78eb06cfe", + "size": 32216 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages", "status": "success", "path": "en/api/java/beta/messages.md", - "sha256": "99a812a49da40b899e2366c96ea4813661dcbdd28d67d95a79658d18e5c00109", - "size": 2894666 + "sha256": "862574225bd56ec044bb96a9aaff11352a7c3ca16a8601db2565b245def573b3", + "size": 2920727 }, { "url": "https://platform.claude.com/docs/en/api/java/models/list", "status": "success", "path": "en/api/java/models/list.md", - "sha256": "dde378566d6c1c2ffc1e5d0c3fb32d54a4193eca6e83c12a4e50f12cee7a8aa6", - "size": 14850 + "sha256": "9c97ddd951cb40f825af472949c1d9f489cea865e3ac795da651b8e0e290d1fc", + "size": 14902 }, { "url": "https://platform.claude.com/docs/en/api/java/models/retrieve", "status": "success", "path": "en/api/java/models/retrieve.md", - "sha256": "f7dedf1a650d99b12b6d51b1f5cd822bf1eaa99dd5f98f99bc02a29a76d00297", - "size": 13545 + "sha256": "51315fbfe50b56469ffc93173f53ff761935639444b2570af2d01ba0baecf371", + "size": 13597 }, { "url": "https://platform.claude.com/docs/en/api/java/completions/create", "status": "success", "path": "en/api/java/completions/create.md", - "sha256": "4a3c4c7322448263caf49ab0a74b4b11e94a77cb5fadba42886b5b88ce6cbebf", - "size": 12591 + "sha256": "5941221c30ef29d66d0acb992ab287aca6d44138982ea19d9ddff7c9a2921d0e", + "size": 12643 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/create", "status": "success", "path": "en/api/java/messages/create.md", - "sha256": "0d4b8558425dfbfee04a2e5d70badfb9e35129087d619d9003caf5363db7e311", - "size": 131301 + "sha256": "139ea900bec48939890cffd6c81d53f49ea277df3b42d5e8b82f49f08062f3e6", + "size": 133521 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/count_tokens", "status": "success", "path": "en/api/java/messages/count_tokens.md", - "sha256": "ec2cc77e31301d237607f59c194cbf19cf155c27a11c2fdd2e32b708468f8a6d", - "size": 93234 + "sha256": "a306a8b2fab8baae60dd6653866dfe9b5a9f99c922e8af3204268509d1020f14", + "size": 93192 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/batches", "status": "success", "path": "en/api/java/messages/batches.md", - "sha256": "86eac7731489a22f879cf261320103d27f389738209838738204e3eb8fcf4b79", - "size": 269823 + "sha256": "b4cc3b438c3173b65d676508f9cd3905b3d6d83c0750b2f9418067421d70552b", + "size": 279081 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/batches/create", "status": "success", "path": "en/api/java/messages/batches/create.md", - "sha256": "1d185ab71ea98f7c6463fd4a422a9ba3e8ba3ddef9fc009e6f602ca010e3c3b1", - "size": 116112 + "sha256": "6a80d55bafc6e5770dcc42578d7283fe7d1a950795fd567cd83c71131edf6b0b", + "size": 116070 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/batches/list", @@ -20883,8 +21037,8 @@ "url": "https://platform.claude.com/docs/en/api/java/messages/batches/results", "status": "success", "path": "en/api/java/messages/batches/results.md", - "sha256": "1453879d1fd46bb5f8047c5f8bfb318235de4da2940f6cdee17e61c57ff5e7bd", - "size": 35477 + "sha256": "76d9dcffde22b85903d40c2e6dfae574fd797dd9c3a501662e581546d1b0de5d", + "size": 37823 }, { "url": "https://platform.claude.com/docs/en/api/java/messages/batches/delete", @@ -20897,1037 +21051,1037 @@ "url": "https://platform.claude.com/docs/en/api/java/beta/environments/create", "status": "success", "path": "en/api/java/beta/environments/create.md", - "sha256": "fcf6f6a74c089a9e097792557827953f33ade3022e8acb8062d1494d42c10a82", - "size": 11662 + "sha256": "4bf82bfde6fb1106a0c8559ac36b87ed0d9c8ed31287d10986452bce7d572f28", + "size": 11714 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/update", "status": "success", "path": "en/api/java/beta/environments/update.md", - "sha256": "1e2a98cce892534cbd2429273a6b5735f80fa6a3c5675e34c48900d2744164d6", - "size": 11668 + "sha256": "39c514664030f9e2e5908211cc5178c11c66ce4a965bd2f361b5d2da918d0e6b", + "size": 11720 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/list", "status": "success", "path": "en/api/java/beta/environments/list.md", - "sha256": "7e478baa533e49e2bb5d444a7044efaf65082fdc5668dcf7780cd70001c15967", - "size": 9105 + "sha256": "3a58564811c16507195f191149812e01aaae3ac19b810bdf5f4dead2ebbffcea", + "size": 9157 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/retrieve", "status": "success", "path": "en/api/java/beta/environments/retrieve.md", - "sha256": "f52cb397e95581d351841cb39c18bac1e731bcdc05c09ac2ebb618bdf87a3b56", - "size": 8581 + "sha256": "534064e718ea46312ecfdade95151841528e446c7e5fecbce117a2d0823374f7", + "size": 8633 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/delete", "status": "success", "path": "en/api/java/beta/environments/delete.md", - "sha256": "bb0d6167958dba34c651dca000f37a31b5ba47ea37302c92a6a73407d78974e9", - "size": 5287 + "sha256": "8517955eb957da08ad70cf3364ef73cebb0c3a14fd682a6a2092264ae362f792", + "size": 5339 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work", "status": "success", "path": "en/api/java/beta/environments/work.md", - "sha256": "051648943ab9ba7d930a17d633f22c8904fb7a62c6fc0801dc71ce9dab3c8719", - "size": 63242 + "sha256": "ac042667ea3e52b119028716687fe9290e31ceab2289b8914f800f29bd67e310", + "size": 63658 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/archive", "status": "success", "path": "en/api/java/beta/environments/archive.md", - "sha256": "28e2dd1945842147d65dd7ec4e95e985a7a0c51c9dd9e9af6cd390a1e6bfc64f", - "size": 8644 + "sha256": "0925431951fca53f37b1746db439acadad529fe9892fda3d99662162739e1429", + "size": 8696 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployment_runs/list", "status": "success", "path": "en/api/java/beta/deployment_runs/list.md", - "sha256": "75486c7888ddabe416a33e39fab2530435245f3b3852ee5afcab82acefe2556b", - "size": 12027 + "sha256": "22084ebda8720c6b477cca356e87223dc48ce29b205b5ce4c664afe170aa2f8c", + "size": 12079 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/java/beta/deployment_runs/retrieve.md", - "sha256": "9686ee687c7e495ddd2e2048e74a3a6d2be55c4e313922d47fd7be17d3447743", - "size": 10721 + "sha256": "cd264381330c4a871d6d0fe6c7b3a67875f31609edc59f3a0db1f8523c5e386b", + "size": 10773 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/create", "status": "success", "path": "en/api/java/beta/vaults/create.md", - "sha256": "2dbad48bdd8800d99e010d40304303063e6fe95bab3a989092eb2bb5bb88d29e", - "size": 6081 + "sha256": "68f5138c4e0bce40cd5f296fe08e940e84835a86613607f0f7d41b2801fc32a4", + "size": 6133 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/update", "status": "success", "path": "en/api/java/beta/vaults/update.md", - "sha256": "31eca2e4fa44bd164d994741df1744dfada2ab1536a7c3d6ebf441669b9439e8", - "size": 6119 + "sha256": "9267ef4ac0b07014ae6864ffc2b13ab3f8a116ff18e04c2deb0af85f1a8ac205", + "size": 6171 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/list", "status": "success", "path": "en/api/java/beta/vaults/list.md", - "sha256": "1fb1cf84f1d2eb8d3d720efce3811e63c6cce3369ef404cf07f7319f904f0e3e", - "size": 6279 + "sha256": "81a68cfee9bfdb9e061c8f6acfd7ee614b554692e759e310865c0c6855fb7a5a", + "size": 6331 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/retrieve", "status": "success", "path": "en/api/java/beta/vaults/retrieve.md", - "sha256": "7461ecd268d923f32506de1c799e6fdc136e7a185ca1a8b68ec7e8965cd329f1", - "size": 5857 + "sha256": "a7c90d8d9e7263eca9168c294acb81127b9e57e554ec7cfdcc442b7231cf3d89", + "size": 5909 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials", "status": "success", "path": "en/api/java/beta/vaults/credentials.md", - "sha256": "a69ce1dd5d63f0bef5dcc35aee11a3e73ed88a6463175ee5f9d529ba6d16f7f4", - "size": 105124 + "sha256": "fc084b8ea52fb6c6572183db31d960d983fb7594ac89d2ae39f70dba1489369d", + "size": 105488 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/delete", "status": "success", "path": "en/api/java/beta/vaults/delete.md", - "sha256": "04a87288f18c5a3e61bc693d4080e4018ffebf4d6b3c153ef9b5554c9465e8f5", - "size": 5217 + "sha256": "10fd5080d53e373c01cafb8198631d44d8b809176da1d236ce7490937db80448", + "size": 5269 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/archive", "status": "success", "path": "en/api/java/beta/vaults/archive.md", - "sha256": "97952effa175416253218cf64359f0304e4ac8f3da9a5e11fc7a27c594516109", - "size": 5856 + "sha256": "f562a04999edf8f01a49e292f04fa9b2d3418f8681a5ca5bb1453721acdf8499", + "size": 5908 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles/create", "status": "success", "path": "en/api/java/beta/user_profiles/create.md", - "sha256": "f573bf289e4c1dd6c4b25b5b12d5a24a515c9469fe606eb48b87e6e284c3be55", - "size": 12608 + "sha256": "df8fdf9fbe1dd8df0b8baa4bf64038f66684024c32d4328da20d53e2b98f5669", + "size": 12959 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles/update", "status": "success", "path": "en/api/java/beta/user_profiles/update.md", - "sha256": "7ac45369684cf5e6a7bf40ef6e1ac37fcf2286f08f0d183f3f147edfe0afd49a", - "size": 12567 + "sha256": "e0697218f9916bcaff2d94c4f4e621cc2d1ab0a410440d236fae016a4304c05c", + "size": 12800 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles/list", "status": "success", "path": "en/api/java/beta/user_profiles/list.md", - "sha256": "162fb41eed801965c1efc80e9120b5303d91763590c15b671d7ef6c887539e16", - "size": 11669 + "sha256": "b64fef259afa9b65cab80a0f84936e921af013dac85cf04f34a6c006a1cd5983", + "size": 11862 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/java/beta/user_profiles/create_enrollment_url.md", - "sha256": "0250f7d80e73a22ca8d9b7b46c312e82965cea87cbb4851dd56301eb370dd231", - "size": 5825 + "sha256": "ed02e40c033aa6b376144a0a07bd40751b771675d1697fc3860d48230ee02476", + "size": 5789 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/user_profiles/retrieve", "status": "success", "path": "en/api/java/beta/user_profiles/retrieve.md", - "sha256": "c19b042bc87a484f81c9348225b166176d5199c4ed2bbfd9cf7b36a94d48295c", - "size": 10536 + "sha256": "f09a51137a9495589c5cb46e5336b9fbeed77851cabb06032cd9d49ad0634791", + "size": 10729 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/create", "status": "success", "path": "en/api/java/beta/agents/create.md", - "sha256": "e3e69605c79ae60cdc459324f79e062434f15cc12b7ad7db194209628f932e62", - "size": 59466 + "sha256": "f5510c0a436a4b1f8c1885b7fad77d5cebe19ea10f076ab1d166d6b26acb8f1d", + "size": 59518 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/update", "status": "success", "path": "en/api/java/beta/agents/update.md", - "sha256": "6598a2ddfbfa17a8b508fd0f47abc85a9fe6692e41062a69bc6a59e7a4b62004", - "size": 60219 + "sha256": "8c5b09afecac521ee13693af751f90a1a7eb3a9de877a8a1170d935de122a60c", + "size": 60271 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/list", "status": "success", "path": "en/api/java/beta/agents/list.md", - "sha256": "a3a1d9d0cdf4356aef844bac5b4e7b64e4911090783d70b35be68a4e50f05124", - "size": 32173 + "sha256": "b7f0e204b45d68d71e300154997e602f47b4aa2bab6040c4ebe5c574d1fa2841", + "size": 32225 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/retrieve", "status": "success", "path": "en/api/java/beta/agents/retrieve.md", - "sha256": "6dc0526a8a01d4a2501fe4d7663da21730da5d5dd5a6714e7f6ddbcb77d061cb", - "size": 31457 + "sha256": "0e183d2003e00c3be318925b793ede61bf4939a015ff81826a6297dd2552ae6e", + "size": 31509 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/versions", "status": "success", "path": "en/api/java/beta/agents/versions.md", - "sha256": "8fa1dd7e48e69ecd07cec8c0039e0e85bba6a16a3caf24621704e49266479953", - "size": 31957 + "sha256": "811ea83c9144f20b617b1934f816f5e19a1e3b08793c9815e4c0fdc6bfa8bf2e", + "size": 32009 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/archive", "status": "success", "path": "en/api/java/beta/agents/archive.md", - "sha256": "5ff3334eebfd6fbf99b82fef3fb31f82ce885077132ccf89ef93c5e6dd12f2d6", - "size": 31317 + "sha256": "d0e7367b6162371222ae61f7dbf32874b12caf3d0e2d39c4569f2973c6b705fa", + "size": 31369 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/models/list", "status": "success", "path": "en/api/java/beta/models/list.md", - "sha256": "c06b0d91a7a6f7209fab5a9bbf44cef5c8c824a8a6f722aacea1cbd9797d904c", - "size": 15587 + "sha256": "82bc9fee8b34e525e8577588e0844c2d9e17fdb0ccffeda097732825533cac3a", + "size": 15639 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/models/retrieve", "status": "success", "path": "en/api/java/beta/models/retrieve.md", - "sha256": "b79e82e3baf22e09b7c475f1ba1121a9ec4f8e84637e6dd19fbcce4b85458042", - "size": 14262 + "sha256": "4e524a501e26ca609072637488a718255b94b9bf09f877c516babc1568fb7257", + "size": 14314 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/create", "status": "success", "path": "en/api/java/beta/tunnels/create.md", - "sha256": "1740baecd732d067f662be5242f2136fb364f2064638764ff74f400ef1d4b624", - "size": 6306 + "sha256": "326592802b8248e0a41acbf5f143b412aa8721127cdb1ebf81830e644d9914e8", + "size": 6358 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/rotate_token", "status": "success", "path": "en/api/java/beta/tunnels/rotate_token.md", - "sha256": "eb2efff32dd04319b31fb89ebae1ef37f171778b266f03e96e9fb592c8773735", - "size": 5932 + "sha256": "46d79efaf00ad448d213633159936080406ee16b8ae3afed83eeaf912a992ebe", + "size": 5984 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/list", "status": "success", "path": "en/api/java/beta/tunnels/list.md", - "sha256": "bee9c3bb243a5acf810eaf3663d8986a1d18b6ccf7b5fbc8f6f30c04c621571b", - "size": 6584 + "sha256": "1282461f17a22daf6ec7fb1d1fb3745e003080b42c7288e061a2f7dba6c1b4e4", + "size": 6636 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/certificates", "status": "success", "path": "en/api/java/beta/tunnels/certificates.md", - "sha256": "2197e3b0ce9387f6bc934ac906e762464e7e0d8d601f5263b3adfdd70e1da981", - "size": 28116 + "sha256": "39244828715ccda0c10bad3bb7893703fae142a487133dda87512e3cd2650114", + "size": 28324 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/retrieve", "status": "success", "path": "en/api/java/beta/tunnels/retrieve.md", - "sha256": "11e476220bd01093a68e0870dfcb1b903346a247877f1392c5eda10a5eb8964e", - "size": 6122 + "sha256": "d31fed31a9eb69bf24187b553a4e9853f5a2e6f12af7e7126a4995f9c5a28db4", + "size": 6174 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/reveal_token", "status": "success", "path": "en/api/java/beta/tunnels/reveal_token.md", - "sha256": "3abb78cafd7e632d1c363f13f238064e5c209dfbff6d903401e96807d8deadc5", - "size": 5831 + "sha256": "9893ffc9712cc0b26d3de71c77f4e6b34915d20b108f0c414a2b1a1696c78cd9", + "size": 5883 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/archive", "status": "success", "path": "en/api/java/beta/tunnels/archive.md", - "sha256": "c8946c88707835c4d3d04de5b05ca6d36c3b47a23a6a66d2b56d02d3580bd913", - "size": 6402 + "sha256": "007a2f6c2fd99a0cf252cfa52552b549c0a5e59799f7688387931a77c8e8f5e0", + "size": 6454 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/create", "status": "success", "path": "en/api/java/beta/sessions/create.md", - "sha256": "d625ccb9d6f994ba0f516d6e544284ee1fab16fdcd530901612283b02bc93f93", - "size": 84597 + "sha256": "4a6d2706a1daa4104993966d78c6ab68871e925caa755ab33d6030cc05e464a9", + "size": 84649 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources", "status": "success", "path": "en/api/java/beta/sessions/resources.md", - "sha256": "62ec35a58dc514b65edee2e5d71f5e9352d33216ea552da0935b5ae2497079b0", - "size": 40299 + "sha256": "6a279e627c43f6f55534621414718ce7f49ace22a9a57f4fc4ec8ca717020878", + "size": 40559 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/update", "status": "success", "path": "en/api/java/beta/sessions/update.md", - "sha256": "dd58a7bb61a7fc0395c31ee02ab91793d875f7438a8a05321d982f236f0ce7df", - "size": 48034 + "sha256": "5fce78e275667c661fef78011756d8644cba8727daa2579e938ff8df64856360", + "size": 48086 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/list", "status": "success", "path": "en/api/java/beta/sessions/list.md", - "sha256": "cceadadb90aee35e291b7198931c0d324903ebb7081515ff1f42e890f6bad84d", - "size": 49599 + "sha256": "d639ee539fc04eee41186e557a125bb799efa2029b300bf039e84bc8b6734f0d", + "size": 49651 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads", "status": "success", "path": "en/api/java/beta/sessions/threads.md", - "sha256": "053cfdae20452e1dd7afdc2b87f50029bfd341cedd14f998a898343d5ef6b505", - "size": 442606 + "sha256": "e0c05a905cfffc81bfa837c6236414fa5f5a4b87a67859dbdb0f7bac65a52cb8", + "size": 442866 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/retrieve", "status": "success", "path": "en/api/java/beta/sessions/retrieve.md", - "sha256": "9b2a3f03db47e7497a0a4eb2fd7849fac3a57c692a9b8e543ec6f1b0639776c0", - "size": 46717 + "sha256": "809b2cc7a8d76e05d0e40f7b64be90ed42084b69c8c757efff22fd2bf7cf1bdc", + "size": 46769 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/events", "status": "success", "path": "en/api/java/beta/sessions/events.md", - "sha256": "95ecdf2b7e4d3f2766ca85dbf07c9f68f7328751a20ee92195f10d179fe181ac", - "size": 557847 + "sha256": "0ffa5c58f97e2ad294113b959293ff02856d4b39335ddf95a6d14c5e9bc1a784", + "size": 558003 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/delete", "status": "success", "path": "en/api/java/beta/sessions/delete.md", - "sha256": "f876a40ecaa9a5a9efcaaa4741b57645b72ffc5b97814035713ee13b57459de3", - "size": 5180 + "sha256": "0538c0eb4d3488629db7a7c0ef551502dd0baf3e8cc4297e754c869c46522488", + "size": 5232 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/archive", "status": "success", "path": "en/api/java/beta/sessions/archive.md", - "sha256": "4d7b0b5983be7faeea2ca89eee54ac589bb826f3e3fe0328af158edf6ffbac25", - "size": 46732 + "sha256": "0e556a330ed510e3ae5f865bac1e7f9df8f30d68df87bcab4d3ae04fa9113fb5", + "size": 46784 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/unpause", "status": "success", "path": "en/api/java/beta/deployments/unpause.md", - "sha256": "2d6f65871699214bda39e95fc8d9c763af2a1ebfca67449d8a337cfdbfa21eed", - "size": 20304 + "sha256": "f9c2895819e16c49585cdd38819e5b3a4485bbef6ec36e0082ea90018b9d5205", + "size": 20356 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/create", "status": "success", "path": "en/api/java/beta/deployments/create.md", - "sha256": "27d009023359b56b5607f23251e4fd6d90e493c2011fd0aeb4950fbf315225b9", - "size": 30287 + "sha256": "de6d18909a27f03023369187ab9e4da999e2e46b63177d1cc7be9d8d228c0b4a", + "size": 30339 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/update", "status": "success", "path": "en/api/java/beta/deployments/update.md", - "sha256": "825b6a185db956086f77114340b4a77c23b4b89f27c581e255c1435c30ce4306", - "size": 29918 + "sha256": "3883b11cd0cfadf6e5008641ed5fdcf2f39e079082b3f658c306b0383abe9e5d", + "size": 29970 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/list", "status": "success", "path": "en/api/java/beta/deployments/list.md", - "sha256": "0907da1412a0972ddf730ec4d9d37732a48d9a91e30693317130acf4a70d99b4", - "size": 21336 + "sha256": "deac50cb05933b6439172bf919e6c0a9d6cfd8daec03fcff3e0804fda60f6693", + "size": 21388 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/retrieve", "status": "success", "path": "en/api/java/beta/deployments/retrieve.md", - "sha256": "ba0626b3f5eadec23b1618a9d349e461d5a001a3743d50ab6fab2ab1434c6fbe", - "size": 20278 + "sha256": "662749e50875f6ea4e81c780ec30537b48fcd71f66b86f8db3aa035bea1e9849", + "size": 20330 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/run", "status": "success", "path": "en/api/java/beta/deployments/run.md", - "sha256": "8905190a2cf1dd248fa7bfdcc1877efe2ed51626e9bd1ef13642fea4104cc146", - "size": 10678 + "sha256": "92f21c43c12c69ff1df2cca2675a50676936d37adf0655738357872f36d71bc8", + "size": 10730 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/pause", "status": "success", "path": "en/api/java/beta/deployments/pause.md", - "sha256": "73a5a8defc535d16d74e956f8961b4eaf0a814347a06594aa4b805103e766f7e", - "size": 20282 + "sha256": "6e538b1e7546cbd86648119dfddee255dbffd286dfbee3603c13d62d1c0d7302", + "size": 20334 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/deployments/archive", "status": "success", "path": "en/api/java/beta/deployments/archive.md", - "sha256": "4d2c8fa7862d72734adb1862e10dfc46c8a91ecfe38c069c124b48cfd8d4c2d4", - "size": 20304 + "sha256": "0b0518617cf61eb6d38fb03efa4b33d9d5b97db480ea85c87fffab9a5771bb34", + "size": 20356 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/create", "status": "success", "path": "en/api/java/beta/skills/create.md", - "sha256": "e91caf8c73f498516538b8e073c9996afd4c8861c43cfcc7cffd300d60909bb8", - "size": 7219 + "sha256": "9b598a2937d2eb50ea1af2bb8c7897fc2856d218387b1b03f8b348aea899ed37", + "size": 7271 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/list", "status": "success", "path": "en/api/java/beta/skills/list.md", - "sha256": "2290915da1748a37a86dbb08128da3f3bd258c69fa2e1f1127839d86cd95612e", - "size": 7369 + "sha256": "eaeb6f68edb36128474e54588a2a4047e112b7fa32471d77024e06876ca62fac", + "size": 7421 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/retrieve", "status": "success", "path": "en/api/java/beta/skills/retrieve.md", - "sha256": "00520e7fe8ec571d35f0e9f9ebcef312fd342abff0bb92f0ea182e99ffa6c8be", - "size": 6812 + "sha256": "eb1584559209f5667bd322fce58d4bc2b0c38ccada2ace1d1c28f1c0efc8564d", + "size": 6864 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions", "status": "success", "path": "en/api/java/beta/skills/versions.md", - "sha256": "6d1e175e5d8e255f2e7500ad4e233c821edd2c0128156060667c40437a0a775b", - "size": 31669 + "sha256": "2ded495b45b346ded1bb6b756c9b64dac7f8cdd0529e45db1513e1c753e5c66c", + "size": 31929 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/delete", "status": "success", "path": "en/api/java/beta/skills/delete.md", - "sha256": "2821c1163373f0db0bf2ac8caf910adfcf6df412e61668e2389949249966a3a9", - "size": 5257 + "sha256": "b591f41a67a8105b84a31f421dd58d75c1bc9261c15d360dac3a233277f1c985", + "size": 5309 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/java/beta/memory_stores/memory_versions.md", - "sha256": "c63a8a46560a8d1ead00451217e6f3b22670236d7cf9074e536a541122c71e89", - "size": 44786 + "sha256": "fb5a5fa84267894e7dfa1c0a101fa9c4b31505e67a14ccaa3d8770f5b30cfbaf", + "size": 45622 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/create", "status": "success", "path": "en/api/java/beta/memory_stores/create.md", - "sha256": "f631583a6bf500cd299fed37f7d1a21f400b03f719ac9392e04048119e5643a3", - "size": 7704 + "sha256": "484f9f0418a26af4cc88723cfc51bcdfec9b1f0773ec75ccbc33a9ffdaa92b80", + "size": 8382 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/update", "status": "success", "path": "en/api/java/beta/memory_stores/update.md", - "sha256": "73541521972d676f5959399d1e275e745c021b0c1ac2ff84f06151c6c2d5bc99", - "size": 7710 + "sha256": "f7d2c77c508240581e5e65db6cac79c7f18b6385fc70f61344da0d2700439d97", + "size": 8123 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/list", "status": "success", "path": "en/api/java/beta/memory_stores/list.md", - "sha256": "eab2c05942e78210be5ef30fe1ced63ae9137014f04fc2adcc502733186627df", - "size": 7842 + "sha256": "892be30d0b4a0165cf7f745f14a64462104f3efab63ed24523ba062dd9bfc4e9", + "size": 8029 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/retrieve", "status": "success", "path": "en/api/java/beta/memory_stores/retrieve.md", - "sha256": "27199ebbe24dc16f1253afd144ee4b134f3ea1476abf3e0b8676c434e010e50c", - "size": 7058 + "sha256": "99faac70567674e0764664ceae7d3dd1aa51d66ea1907b1d951a0470e434f52e", + "size": 7322 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/delete", "status": "success", "path": "en/api/java/beta/memory_stores/delete.md", - "sha256": "5337a94de5dde1b02abc77bf4a8e4bee99801886ee699ea513a280892064e205", - "size": 5567 + "sha256": "c257624aaa129c17102fe9e88e7a963a1bc597ce5f74fd032f8a9ac29f3a4546", + "size": 5592 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories", "status": "success", "path": "en/api/java/beta/memory_stores/memories.md", - "sha256": "f7b632b2dfac392c31d904550acdf2432e3109f584390ba27a51ecd08fb9cf36", - "size": 57805 + "sha256": "b1b22e5184e6f3b111d7ea03c08d2e8c65c9eabd51790d334ae5db0f63f8ec43", + "size": 57352 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/archive", "status": "success", "path": "en/api/java/beta/memory_stores/archive.md", - "sha256": "18b4bc3f8095a7d3d44c7b7d33109fd2d9680abe4d5e36eb8d88201abbb6cc00", - "size": 7132 + "sha256": "8b8c419649043062a602e502630af4c952377231195e4284f1aebc47cedad11c", + "size": 7418 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files/download", "status": "success", "path": "en/api/java/beta/files/download.md", - "sha256": "9bdcec83b67c1d03110a1e21db79a1506b1e45839c6ebccb8ee7d58af56dea51", - "size": 4789 + "sha256": "db3a960ab4f9781e72aa8b4418bc1918baa9e58c8b2da74ac3ccd537cdb79b1d", + "size": 4841 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files/list", "status": "success", "path": "en/api/java/beta/files/list.md", - "sha256": "043a8e38f86ac7b9e4d74fe78778d5965ae63f09380e48df5bf287cf70d352bf", - "size": 7241 + "sha256": "3066ccbbf7c60b8d9fe0a53027c6da671844894f680bad7255c7a1ee3b10db76", + "size": 7293 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files/upload", "status": "success", "path": "en/api/java/beta/files/upload.md", - "sha256": "3efbe627744c0b4514b8c47ce2d7dfbe0514d9179f46b2abcbc616e79367aa30", - "size": 6993 + "sha256": "4da5d914ac59d362004015d97a1c70909f8220ce2a65ed5c23b23d5cf5e3f50b", + "size": 7045 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files/retrieve_metadata", "status": "success", "path": "en/api/java/beta/files/retrieve_metadata.md", - "sha256": "fb722e989c5ba1301e08f0834d2a5a0aa95c7b8603b17a8bdae6ce7a07bddfcd", - "size": 6508 + "sha256": "c7d54d887de96f0efb226bf766b3133a460dd419d55752fa6608b0eaca0e4b02", + "size": 6560 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/files/delete", "status": "success", "path": "en/api/java/beta/files/delete.md", - "sha256": "2d3d0c9b979ceea5bbb15a6998000db228f2ed8403e41dcaaae4101a002a60a8", - "size": 5088 + "sha256": "78eaf9c3fef73b3091f66a9b40b7450c70130fbf724f89404d31ac1fd891bef5", + "size": 5140 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/create", "status": "success", "path": "en/api/java/beta/messages/create.md", - "sha256": "7804ad938a0bc80e4087ac69916b0a3a85138905ec92232119afb1f10d5f0a88", - "size": 298335 + "sha256": "5730c021970d2b404c3d1c1bc57e926f2bc7934d3b82717170cbd7e28ac6063f", + "size": 300607 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/count_tokens", "status": "success", "path": "en/api/java/beta/messages/count_tokens.md", - "sha256": "9fa39b0e315b87ffe929d9077e955a90dcf86aa6c32d478dd78887af24ea9ad4", - "size": 143140 + "sha256": "e2d16dfa7bfc4064c0e6b1132e85b523d26d51170cff650bd74f77bfe7d2e92e", + "size": 143150 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches", "status": "success", "path": "en/api/java/beta/messages/batches.md", - "sha256": "570b7471951b49e9cc62ba0eb10235b7b559cc0f4f95a65f88a449e1509e167a", - "size": 792975 + "sha256": "c4219ed6c9b8d9af0649b9a2341a3ce663bd64ce6739f8fbee575e2c213a1edf", + "size": 805164 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/create", "status": "success", "path": "en/api/java/beta/messages/batches/create.md", - "sha256": "3019ce9553f4acbb95febf3e94b6c701d7825b48076b8e6031af51be298f0e4b", - "size": 173900 + "sha256": "77e2372ad4b9bd747d99bde2d4d95d136e00e6ebd2ff190a276053c41771cef4", + "size": 176529 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/list", "status": "success", "path": "en/api/java/beta/messages/batches/list.md", - "sha256": "71605ba82fbcc4a31304f9f715110aafc8404bca29654bd9091af5a1b25dac90", - "size": 9236 + "sha256": "d06f3c41bfd183b0344dea7a42f8e6fd0ab13f6b008d1e5ed11c18d5ff06b9e5", + "size": 9288 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/cancel", "status": "success", "path": "en/api/java/beta/messages/batches/cancel.md", - "sha256": "4e464bb7dffffec878d1c41fa3d8048d75fb24e20ca7a877793d04a8b3957a4e", - "size": 9108 + "sha256": "f0a1d817c67d51baf178331d8e6c2f9f3738106b93eafb2184389075530b1c6f", + "size": 9160 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/retrieve", "status": "success", "path": "en/api/java/beta/messages/batches/retrieve.md", - "sha256": "5b60ee927217000f42ff0a75f82d47c8d7a6eb555d234651120c9ed653dd31c4", - "size": 8806 + "sha256": "94b7ce1e2b880553a3ca3452f7c10176d80b13af18a9faee3a55f797430ba887", + "size": 8858 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/results", "status": "success", "path": "en/api/java/beta/messages/batches/results.md", - "sha256": "4b217d42a53984c75737ee3eba930ffff3d700cc54cfbf48636fa1c25b5143ee", - "size": 153024 + "sha256": "3412c05c9391acade67e4de9fc17fcc32ec6bb81cc9f58e9a493b738cfff457c", + "size": 155422 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/messages/batches/delete", "status": "success", "path": "en/api/java/beta/messages/batches/delete.md", - "sha256": "ae59cecee1c2a50cbe6a3ffc0614d32e5aaaa771ecfd25ac92a60305e7485811", - "size": 5612 + "sha256": "e2f4a47825f067f731335b0f515b95106b7bdd5de4ccabac2fcc3ad91b0ef5fe", + "size": 5664 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/create", "status": "success", "path": "en/api/java/beta/memory_stores/memories/create.md", - "sha256": "9236259bada3afb565c2132b9210abe448c3c5dc639bb73a5d4f8db233d9a7c3", - "size": 9009 + "sha256": "bf1505d7b3afda2270cd9e33f3b61936a6d1f0bbce3f45912bc06fbe47e6b6d4", + "size": 8927 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/update", "status": "success", "path": "en/api/java/beta/memory_stores/memories/update.md", - "sha256": "321208717097a1a7888f049aed6bceba3842e18e1e7780ba83ff298950816fd3", - "size": 9468 + "sha256": "810efc29e917a0ba679bc577dd392c36121c38bc5366c600c8e941482ae09810", + "size": 9307 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/list", "status": "success", "path": "en/api/java/beta/memory_stores/memories/list.md", - "sha256": "fc453cd8e2cfc1bf5011dce35aa0fa1cec4f028c6e356d0050035a011f96b9ae", - "size": 10312 + "sha256": "a8db794a2276a090e1fc06bbf491ad36006c3f298c619376c10f552dc9791826", + "size": 10272 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/java/beta/memory_stores/memories/retrieve.md", - "sha256": "f08bcb27cfa27e210bcae67690de69a9b47ef8103d97c927d3147952d9a17824", - "size": 8523 + "sha256": "b8efa4bf9fb2a92218780c28361d7d3df5bf5c2fec56d8012e826e592544d5d1", + "size": 8420 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/java/beta/memory_stores/memories/delete.md", - "sha256": "474d53b098ff4135d4d4bd1da5415bf7d4e486cb095b01e066f41a8ce5232b1e", - "size": 6355 + "sha256": "8124498723922ec5bb94b8d8457bc1402ebce5d21ae2a21c896e3e676f501aa2", + "size": 6563 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/java/beta/memory_stores/memory_versions/list.md", - "sha256": "1b00a71f23ed7f8dbdeef584c8e8f328b03f806a6ca780da3198dc674e77366a", - "size": 12988 + "sha256": "6a1a520db3fbb60b77d91e2a93e1da2569859928eb711f4752d3c14a7e1fab8c", + "size": 13230 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/java/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "9a681c70cc04487d9e26b215d7afb372c3826ede8f674ed91a87a0f338877317", - "size": 11709 + "sha256": "12354f1d93423eeb17ad6367ab4dff8b07e80d37e8015ec1ec9a61d60804facd", + "size": 11841 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/java/beta/memory_stores/memory_versions/redact.md", - "sha256": "7ca19d493e5df9365a7ee79bc09f35d15ff9bfb585d69d4f74912fa7f18bc59b", - "size": 11270 + "sha256": "6dafce72d5b2a2ef7c65996bd3e02b693aee871a703490169d60d910adafaa80", + "size": 11510 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions/create", "status": "success", "path": "en/api/java/beta/skills/versions/create.md", - "sha256": "1d7c853251beef14398066f22be48d3d4063895df20b6814432221d0ef578e10", - "size": 6545 + "sha256": "1db96ab1ed173640545cf6b859d17d720e040575075151e9cc1ae3b184505b6c", + "size": 6597 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions/download", "status": "success", "path": "en/api/java/beta/skills/versions/download.md", - "sha256": "d6434b8025ee5d0f149846c93b0788b01ea366dbfcefce028726dc670467104f", - "size": 5368 + "sha256": "2e8dc7e42563935b55b304636bb7e1024b0ea8df1b06bb11f2e92f8ca6c87ccf", + "size": 5420 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions/list", "status": "success", "path": "en/api/java/beta/skills/versions/list.md", - "sha256": "b7fa4f9bf781a32510337b1223b5c7719b3322cfb11726a0fdd4277dfbdfbcb1", - "size": 6503 + "sha256": "06371b3307a1352fc52ddab7317fd4f4987ba1b2bacd1700223c72944762ae62", + "size": 6555 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions/retrieve", "status": "success", "path": "en/api/java/beta/skills/versions/retrieve.md", - "sha256": "d9b107f6be6aab41ea14ff43691fe9d3bf4a0a97faaa9441ed307da9f231433b", - "size": 6590 + "sha256": "0b66f111380d700387f42b6073ec84a8b8583a2b420804304fd6d39a70b83df9", + "size": 6642 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/skills/versions/delete", "status": "success", "path": "en/api/java/beta/skills/versions/delete.md", - "sha256": "65fa926375ecf761583c2deab2bf6dc3e1eedc02a77d004bd587b0fad360a39a", - "size": 5769 + "sha256": "2eafae1e6af7e49be36b18ea814243cc332814ec8ccf8062cb8a45ff8f14d546", + "size": 5821 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/list", "status": "success", "path": "en/api/java/beta/sessions/threads/list.md", - "sha256": "288af68ef94168a81d25c3287248072374c04ecf370a337f260ba30d40240514", - "size": 35377 + "sha256": "217246f1839ceafca80bba11b887c7a435b5842a51cf5089fda8f7248d2d0b01", + "size": 35429 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/java/beta/sessions/threads/retrieve.md", - "sha256": "891a0dab3491eca30a894dd33eb48dd4c12138ce69fdfb0cd8041ae401d420fb", - "size": 34628 + "sha256": "ad6652fe38c14a61418c93317b90307e3556d211d493e6d445ea1d9130cffc5f", + "size": 34680 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/events", "status": "success", "path": "en/api/java/beta/sessions/threads/events.md", - "sha256": "bf5bbadefc650be8e7e5790ed8d7d13bd949ef4a1703f77d8d052260e82227cb", - "size": 194697 + "sha256": "ccf52a929c9087b5af97fc0ae763a8a57205e2678b38adb65f3b3c135bd0c8c0", + "size": 194801 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/archive", "status": "success", "path": "en/api/java/beta/sessions/threads/archive.md", - "sha256": "971002f96c69b8c57ef2fb3f34da54f508c3017967ca397fd98de2fe17ef19c3", - "size": 34642 + "sha256": "d578777913fd4284ea4f87fae77016a89ad388c2118db45e56549ae63cb7d043", + "size": 34694 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources/update", "status": "success", "path": "en/api/java/beta/sessions/resources/update.md", - "sha256": "694792d4bd6dbe4e4740387fd8dd0b9c77cd157ed0d42d393009705b5deb9f40", - "size": 8116 + "sha256": "114586c4e9c9b69a3a126ca8f4665455cea7fbe159d7bef9aee378e953a442a9", + "size": 8168 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources/list", "status": "success", "path": "en/api/java/beta/sessions/resources/list.md", - "sha256": "ae94acd15ccbe860aa9f68bc4ecad9c1ee6509011bef781f1828a8c4d9b4259d", - "size": 8271 + "sha256": "432ba394e3fa8931da9cf3e928fc3aa28909dbf4db858bce69bfdbe2b77a7a78", + "size": 8323 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/java/beta/sessions/resources/retrieve.md", - "sha256": "8d5637eda5c7fe16f7e50a1fe90c1a23c2640592f7c7e400da10c8f4d4c66490", - "size": 7894 + "sha256": "77f1d43eb53f632d981580917887a6445050c6f0df0f52c172a9d91d1ffd73f2", + "size": 7946 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources/add", "status": "success", "path": "en/api/java/beta/sessions/resources/add.md", - "sha256": "ac81c6bc4594ba60a26a033288f86214de5961cc661fbaeddabe6b78afe8d4a9", - "size": 6108 + "sha256": "25974158a42643b933af2143aebc74e85390af082b549f43978f6b11b4701153", + "size": 6160 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/resources/delete", "status": "success", "path": "en/api/java/beta/sessions/resources/delete.md", - "sha256": "6e8097ba8c834e14946e2c4d0b26daafef6cfcf4c0c45409888168877d2ba1b2", - "size": 5502 + "sha256": "e1175737850587bca4babe5e8c3fec6278dbda9f42d0633b40e669ce69aae797", + "size": 5554 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/events/send", "status": "success", "path": "en/api/java/beta/sessions/events/send.md", - "sha256": "aa98290c208fea89376fb2b5f94704bab65940174891a78bbc736264b9176ebc", - "size": 26769 + "sha256": "a925787423760c2bcd3121a8095d8c2045d6c5f094f2f1789667ea2644c9590e", + "size": 26821 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/events/list", "status": "success", "path": "en/api/java/beta/sessions/events/list.md", - "sha256": "339b38aca20b2c163e551fa498f16d205a670d6190d0688b3532a4351acbc872", - "size": 99123 + "sha256": "b6ba7467190868fe28fc0cff25d4a637c8b03ea5886e14aca8a8d8689f177db6", + "size": 99175 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/events/stream", "status": "success", "path": "en/api/java/beta/sessions/events/stream.md", - "sha256": "6f394c884ea00ac41bfead0888489eaf4a4781b3e9eba953714c0e32427686b9", - "size": 98751 + "sha256": "4ca26388786a3bacaec07d4dcc8576a1544d331750a12e924c24758112e2edad", + "size": 98803 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/events/list", "status": "success", "path": "en/api/java/beta/sessions/threads/events/list.md", - "sha256": "91ae853933487f2efa7813f58f06d0505bd8ceb540921221cfc64574dcd5d408", - "size": 95766 + "sha256": "e21229a11877415d1e97910fa40078afab8c878102c23a3daa48492b7fe1d735", + "size": 95818 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/java/beta/sessions/threads/events/stream.md", - "sha256": "397e402023b1d88fe594c5f53b7eaae19f02fb32d25893c3a545791a44b0786d", - "size": 99066 + "sha256": "c70ec67b9226de65a311559fbe4ff142dab44753d440642fdac33cc1adc54de5", + "size": 99118 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/certificates/create", "status": "success", "path": "en/api/java/beta/tunnels/certificates/create.md", - "sha256": "c133d3f3cb0487c437d4c0d96c4a60f6b62216f402181300b96a257af45190e6", - "size": 6938 + "sha256": "ba738ef194b7a9d3a5a9e7eb2b0f72f2889d78e9e7a71ea53aec54d364a9f86b", + "size": 6990 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/certificates/list", "status": "success", "path": "en/api/java/beta/tunnels/certificates/list.md", - "sha256": "a27564bed0d386407c2733a667281f9ed0aa57da0cdd7141c0910a1fb50b3fdc", - "size": 6992 + "sha256": "2edd2f241c9c8afddec5453053d7697dc7c4b94a0c0353977f283f3715e75a85", + "size": 7044 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/java/beta/tunnels/certificates/retrieve.md", - "sha256": "7bb8c6378c00690adacd621ca93d708fac76f9b07e47e10d4d3c1e326e108767", - "size": 6696 + "sha256": "1e23c43e0acc113f5ecc73296ec66a5006b3fb4536ffc2698029838f26d064f9", + "size": 6748 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/java/beta/tunnels/certificates/archive.md", - "sha256": "7d48206c34d3a9c361be047fa8a3debbab303278baa727a11abb03e2cccada44", - "size": 6929 + "sha256": "ccf7addb8ce1c3db1f42f058168110adbab380a16426be9a2b08c565a5c33007", + "size": 6981 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/agents/versions/list", "status": "success", "path": "en/api/java/beta/agents/versions/list.md", - "sha256": "7ebc48898df9b76ade0db25752a1af53a489b495850356a2d0f72416a0985071", - "size": 31956 + "sha256": "836e0dc62cdc26850d679ac7ba2bbe294111bf9d7b732144f53eba4477fcb1d3", + "size": 32008 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/create", "status": "success", "path": "en/api/java/beta/vaults/credentials/create.md", - "sha256": "91ac20d0f62575cf6f85298daa38d3e852d2505d6e16fa05f5ac83ca8468a9d7", - "size": 14919 + "sha256": "8e652e3c11f2ba0dae90e46ad34357a03dcfb928767fbb61b9c981bad709056b", + "size": 14971 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/update", "status": "success", "path": "en/api/java/beta/vaults/credentials/update.md", - "sha256": "a2b4462f7ddfaceb6f135a2b588c370c1d11981da84b8344d7f78f456d0012af", - "size": 14314 + "sha256": "ef93c8f0f781548674c51136bf6e97e164db15ae57f530f6227291bb2b63cb51", + "size": 14366 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/list", "status": "success", "path": "en/api/java/beta/vaults/credentials/list.md", - "sha256": "56b6bd840da2c391c29765d96ecee6dd62d8880139180a3d3f7baaaa435432d6", - "size": 10062 + "sha256": "83140bf0cdcc8afbed012e7d9ab905fee4684dc2a225352d7e9bddf9cf6e973d", + "size": 10114 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/java/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "142ffa36cea0987376018a46400c759759ca088503a27c7ca1010e934197427c", - "size": 9013 + "sha256": "e2af4e354e9e0c7103ce265baf28f6225377251e4574f74b84da2fe42dc8f198", + "size": 9065 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/java/beta/vaults/credentials/retrieve.md", - "sha256": "f67c050089cc79171b51944a40c271c9925373fbe7a6ad4b253a268c55afc1cf", - "size": 9728 + "sha256": "05eb4dd6ad9082263ca34ecbe84d99ca9963f2a443df1f584bbef9a1f70522e2", + "size": 9780 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/delete", "status": "success", "path": "en/api/java/beta/vaults/credentials/delete.md", - "sha256": "fe25eb9724f06077a3d75187e551141d88c85542b9fa40795c28538436fb84d1", - "size": 5643 + "sha256": "1080bed9dc63193f7fc26ac5c351b16122e1cfdbe4f989dd9a3f51ace67416fd", + "size": 5695 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/vaults/credentials/archive", "status": "success", "path": "en/api/java/beta/vaults/credentials/archive.md", - "sha256": "e9bbd707b26c30fd410a5c6b641e3760a9f3f5d7eae151ce987f08cda132d79c", - "size": 9726 + "sha256": "be9ffc2934a174311daf51f661b06d0ee95d3513d24434b0a23b517f4ef22514", + "size": 9778 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/update", "status": "success", "path": "en/api/java/beta/environments/work/update.md", - "sha256": "e457c06a2637c0cee4c98f2f4125de1a5e83ebbe154bf02933f4c0130c031502", - "size": 8063 + "sha256": "bf828077c7ca5d7d55d4b9b8587717c0020f0ce0315f0d5ba3dc74eb400a5e8a", + "size": 8115 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/list", "status": "success", "path": "en/api/java/beta/environments/work/list.md", - "sha256": "ca245eaed630a0fc86bc6991885b5337d798c8cc2bfcd18eeaf85c17495cd5e2", - "size": 7348 + "sha256": "4f06aff958a18d39a918df56224ba36b0239bf7d51de1ae2a69c23fd229783a4", + "size": 7400 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/stop", "status": "success", "path": "en/api/java/beta/environments/work/stop.md", - "sha256": "ce67c6a2681281ecee211510f42fea51ee29c50da1a79d7a5c24435ab0ae2f9a", - "size": 7860 + "sha256": "b7775f8685551ed6dcd86291c979ad5b2dc1dba0145ee3202d753d54ea1fd157", + "size": 7912 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/retrieve", "status": "success", "path": "en/api/java/beta/environments/work/retrieve.md", - "sha256": "e067a782f8ab9bee7a7c9f70084700a2d57effbd64b508b271bd384fb8772085", - "size": 7615 + "sha256": "6058b98ad6adf6f62de66410aa5f8ceae1204fc61996f600f86085788f967b30", + "size": 7667 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/ack", "status": "success", "path": "en/api/java/beta/environments/work/ack.md", - "sha256": "8069b8b8d0094764180811fa5b800d475778d5c3c987f57eb6fd04a81215459b", - "size": 7274 + "sha256": "9bd54471cff29dca557037b08ab34526b8f1859533f553ed6ee219b460482d60", + "size": 7326 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/stats", "status": "success", "path": "en/api/java/beta/environments/work/stats.md", - "sha256": "acb04c984d00c88066f96256c667a9191af690bd7fe5b7f283af0ce8b615006e", - "size": 5895 + "sha256": "e6fc7307d5728c9251de4cddf280cfbe042546c2499a148e58beddb9163f4830", + "size": 5947 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/heartbeat", "status": "success", "path": "en/api/java/beta/environments/work/heartbeat.md", - "sha256": "1065cd6a85045827f753db93a57cda7ed4ac9f2f2d733c0a69ee25456ea3683b", - "size": 6366 + "sha256": "bc93b30ab2d334800d7dee2da43b42b7d9ef88592ef6087f82714f153ad13e26", + "size": 6418 }, { "url": "https://platform.claude.com/docs/en/api/java/beta/environments/work/poll", "status": "success", "path": "en/api/java/beta/environments/work/poll.md", - "sha256": "29b227da73e161a216fdc5e253b9e41c946dca9fe2843cae4a13a11a4522aeae", - "size": 7667 + "sha256": "7023e91469cea61db7e3d7808e7307a40ee986cff41dbdf379676deb9b26e8d3", + "size": 7719 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions", "status": "success", "path": "en/api/ruby/beta/sessions.md", - "sha256": "388163b9ce37179842f95ce5e27894ef3e130eb270657923c56f1cdb680e9ddd", - "size": 1197043 + "sha256": "5c307ed87f43686af0355912be6939a9d62ade6c75c117d3b28add7c32b9b94d", + "size": 1197613 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/webhooks", "status": "success", "path": "en/api/ruby/beta/webhooks.md", - "sha256": "0e534d27c3a1cee5bf433c9e65c14051375467285a022beca6157e90dd1cdcd7", - "size": 34403 + "sha256": "0c6b70312b9a543599c89bee6d1dea7d94154a752306664acc97c1145b5a88f5", + "size": 36683 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills", "status": "success", "path": "en/api/ruby/beta/skills.md", - "sha256": "4278943057015d816c9eb10a9b4698c757a4829af0cbc03c05409a7842a9e98d", - "size": 40861 + "sha256": "06e44ac8e0eb45f3a12b233de5c498193d71d1904950b035e61b7544d158d002", + "size": 41131 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents", "status": "success", "path": "en/api/ruby/beta/agents.md", - "sha256": "c9620b2594a37a603b3e5acc21be4c4a5fd44e7fcf144b574c5dc55fc3afed1a", - "size": 458574 + "sha256": "606d6b6426352a745f6fb74e70470de5d76f64688317c4f3d690f4cbd6e9c876", + "size": 458754 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments", "status": "success", "path": "en/api/ruby/beta/deployments.md", - "sha256": "bfd1beb973fd73b92c7c5af05d67f587b9306060ff7e0de70cc22531e4ded7a9", - "size": 218606 + "sha256": "6a95fb2cc1d38f2f8038320d6470dbdaa92bdf20695c67a5e1748d8b86b767e8", + "size": 218846 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployment_runs", "status": "success", "path": "en/api/ruby/beta/deployment_runs.md", - "sha256": "b7ba172db994993d11cdcb27c81bc3409c66b4f8d3bfbcb02d776b4cc78c1539", - "size": 31824 + "sha256": "244b660b0896de6ce4841797bb318986b09caaa1092cdccb642e6046064280ba", + "size": 31884 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles", "status": "success", "path": "en/api/ruby/beta/user_profiles.md", - "sha256": "6fdf4623da889c0ef3c3b27315bcca4948d3718c8ec31fc035e7684dbf8db8f4", - "size": 55927 + "sha256": "de2498df707abb1942aa814f91992cd774b87516f0c9bc88f31808fc91361b1f", + "size": 64367 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/models", "status": "success", "path": "en/api/ruby/beta/models.md", - "sha256": "37bf1b459698c8df701c5bc157f5883e5b34b5673345b41a2d66d0fbe44bc3f3", - "size": 43449 + "sha256": "249f01d9538754657258756ae17de2b7cb6949123a908f2550dda5aa2643ea26", + "size": 43509 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults", "status": "success", "path": "en/api/ruby/beta/vaults.md", - "sha256": "9fd927eaa3af564a9ad5f036cef562962fe6a46b0d8a74b059a5e7304e5d85d3", - "size": 84231 + "sha256": "1029ec93fa6544fffc7c7fdd594d699fde011869fd710a996ec4d25c409d1f50", + "size": 84621 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores", "status": "success", "path": "en/api/ruby/beta/memory_stores.md", - "sha256": "f3871ca7faa01ce887aeb2667fff2c8b1a806b894b1b05c695ca0ffd993cb3c3", - "size": 97253 + "sha256": "9d902187515c8b6563e16f447939c24a128f1315955ef7790ac7cb57b952b5c8", + "size": 99464 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels", "status": "success", "path": "en/api/ruby/beta/tunnels.md", - "sha256": "5b9695ebb26a6c3cb1216803c71d5d86480fb86c37c6284a64f9bc6b2beb9420", - "size": 44647 + "sha256": "9b4df61bc2f97859328d88afe1a29faed18e276d0b738afda27fdc61bed087b9", + "size": 44947 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments", "status": "success", "path": "en/api/ruby/beta/environments.md", - "sha256": "90969c6355303c3f7d4d131ca69f0d4e066d202f855973e00864f767f014020d", - "size": 92170 + "sha256": "4a6d3e91fe29ccb467c40cc91fb10b4d3102d5337c6ebe12d55364040abf32bc", + "size": 92590 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files", "status": "success", "path": "en/api/ruby/beta/files.md", - "sha256": "1a3b269a9c55cd02f5848c7becdd5c900a9a7c9a82aaabafb7f665d76304c8d1", - "size": 21955 + "sha256": "d7c20c116b9a8604f1ae63b8e14a9612069a2a4ac4f918ff33a7bf92f711e05f", + "size": 22105 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages", "status": "success", "path": "en/api/ruby/beta/messages.md", - "sha256": "4cf9a4c5ad7200323b8ce227404b390d547b9a1e1dc6ee7a08a4196cfa7ab6e3", - "size": 2775609 + "sha256": "dcc59da0df2228d7bc85b26b60515f7b92fbe9c48d8a3a0c981960dcb191cb13", + "size": 2955237 }, { "url": "https://platform.claude.com/docs/en/api/ruby/models/list", "status": "success", "path": "en/api/ruby/models/list.md", - "sha256": "538bf20a28beb312b34c16a1478dd8299ac31d222d95555698696a5b34dd41b3", - "size": 12740 + "sha256": "038f0dc01a62ac3f01a289127915baf4390492503c31c1a5a87595b970f38523", + "size": 12770 }, { "url": "https://platform.claude.com/docs/en/api/ruby/models/retrieve", "status": "success", "path": "en/api/ruby/models/retrieve.md", - "sha256": "552e0f235f1ae4c62ddbee468a17880d5afc557e2a5da55f9a85c6e83f66d689", - "size": 11503 + "sha256": "c088a09f8e5e040477fe9c217265ae6da1c2feea5801b62bcb6ba6eee416747b", + "size": 11533 }, { "url": "https://platform.claude.com/docs/en/api/ruby/completions/create", "status": "success", "path": "en/api/ruby/completions/create.md", - "sha256": "3a3b63fc377ae78fea8250624ce220644ffd3cc8f500dad6080a84b6423935c9", - "size": 12935 + "sha256": "0ebdff12a0e9a1d5c7d40fc127aead32d32032a7c69d86e7635cda331bfc4828", + "size": 12965 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/create", "status": "success", "path": "en/api/ruby/messages/create.md", - "sha256": "381ed6e0a613ef89673ea8e085e18a86b0ee462541a66e3193654581c38ab3b8", - "size": 129875 + "sha256": "5cb70022f63685b6ee9feeb16615b2dac95b69adfa542a9402c8e600e0b9b3cd", + "size": 132095 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/count_tokens", "status": "success", "path": "en/api/ruby/messages/count_tokens.md", - "sha256": "cf326d684de3181f8a65bc31554bdae1f3cd9c35f665d19c5518630a9294c15b", - "size": 91509 + "sha256": "ea84100825c108e4c5864ddd396dae3122e689a4cd33f57b9bd99ea0fbd4dec6", + "size": 91467 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/batches", "status": "success", "path": "en/api/ruby/messages/batches.md", - "sha256": "3fa595928ccfd72f5a29de2a620424960afd355bec2b0a2446900df189e4637d", - "size": 252529 + "sha256": "f1856dd2c0ea3d2b92d73eff263766f211e0a1ab6794ef377359274373d718f4", + "size": 261787 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/batches/create", "status": "success", "path": "en/api/ruby/messages/batches/create.md", - "sha256": "e97f423a85ed6fdf12fc644629ced345c69748d466f3ce23342b8e994f6dea3d", - "size": 107494 + "sha256": "e4447c3bb5659d881df539d87a673c5d66be164f77b98056c37f0609f1da36c1", + "size": 107452 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/batches/list", @@ -21954,8 +22108,8 @@ "url": "https://platform.claude.com/docs/en/api/ruby/messages/batches/results", "status": "success", "path": "en/api/ruby/messages/batches/results.md", - "sha256": "2092cb8d48ae7d02ca88ebec27bf2b7f5ec19d9ec18676bb245ce5d9d43e95bf", - "size": 33405 + "sha256": "d7228969287054ea5eee9b8d04ab5506f9f7e2d5d28ddf4ae5b34a7325e11893", + "size": 35751 }, { "url": "https://platform.claude.com/docs/en/api/ruby/messages/batches/delete", @@ -21968,890 +22122,890 @@ "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/create", "status": "success", "path": "en/api/ruby/beta/environments/create.md", - "sha256": "7e07772944f2715d926832d66ebf52ec301762bd275392000c7f53e3ad3555ca", - "size": 9435 + "sha256": "61407dbafe5832fa42cfb77ea968dfe796b5e7d5146e7d824c61126dafb1d339", + "size": 9465 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/update", "status": "success", "path": "en/api/ruby/beta/environments/update.md", - "sha256": "19a94118fc1a1399978a437e081df4c937a32a8b3dbbadf71e43d172bbff0f2a", - "size": 9521 + "sha256": "ca5ac58bafa26c6cb729e7bd149cf8ac4f50ac3de22e33a8d050bd11d57f4ae9", + "size": 9551 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/list", "status": "success", "path": "en/api/ruby/beta/environments/list.md", - "sha256": "e00a139fd170b4bb5938a46cfed300a7c0b21590d4631d157fa1c6bab31abd42", - "size": 7118 + "sha256": "c0e9cca02f183ad57a329c748eef6a412597bf46b2c6eb45a5c191f3f27c8fad", + "size": 7148 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/retrieve", "status": "success", "path": "en/api/ruby/beta/environments/retrieve.md", - "sha256": "deb8aca29acb37ae3647263f21dc1571311b966802d0c807dd117a5764e457d2", - "size": 6643 + "sha256": "aeecb41cbf10d47c9207e9d913929ff622056b9bbe66eda384782fcdf960279a", + "size": 6673 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/delete", "status": "success", "path": "en/api/ruby/beta/environments/delete.md", - "sha256": "5a6994b380e090f1b398ab583425516d06ba3c9ca80e6e5101c73c132eb83b3a", - "size": 3355 + "sha256": "f868919727118c2898d4af374be308ad574a42a7c2b9fb5234c9cfe6c8385d09", + "size": 3385 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work", "status": "success", "path": "en/api/ruby/beta/environments/work.md", - "sha256": "84a847e45be0667d0e151c467c59f6bde940108a0fdbc5cb142dac8538bfeaed", - "size": 46127 + "sha256": "8f4d5a9f5c98a072bd1ff7e540ce7d38994bc552b2c5c86db4619e76ffce0af7", + "size": 46367 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/archive", "status": "success", "path": "en/api/ruby/beta/environments/archive.md", - "sha256": "59c6c2d4fefedf6b7d8645bae4b129bac130dd3dcf0741519259fc7a979c5df7", - "size": 6709 + "sha256": "d2ce8454b150c0a53c43445a1a3707b70e517307b38e335c68d1695f5b9ea3e2", + "size": 6739 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployment_runs/list", "status": "success", "path": "en/api/ruby/beta/deployment_runs/list.md", - "sha256": "6abc735cf9bd771a41f303649d0406091a9cfe571fe0b20f9d3620c968143584", - "size": 10624 + "sha256": "7d2d06b1579f7df714d41622f08e4d44b1b8243c50806c6241d02f448fc738f2", + "size": 10654 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployment_runs/retrieve", "status": "success", "path": "en/api/ruby/beta/deployment_runs/retrieve.md", - "sha256": "aec9d90fde24a7cb7ae7a71398d0d6891cc9880671b5c3351790e40145b54571", - "size": 9284 + "sha256": "07b8ef0739ba6b22d9e09e99ee93cf584a8aa73eca6600474f1a0efbea2b0fd1", + "size": 9314 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/create", "status": "success", "path": "en/api/ruby/beta/vaults/create.md", - "sha256": "c2cdc38275c3acbf4a1cf6b6811690825f4ee9333c9a0e62f2ef1954c739d05a", - "size": 4068 + "sha256": "00f901db95a9b530ed9775e479dbf1cdca1209e697f94cc6721fd57cb709169f", + "size": 4098 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/update", "status": "success", "path": "en/api/ruby/beta/vaults/update.md", - "sha256": "f4c5c1fe6b0ef3691f22db707864ce24d03086ba41a89f0975142fc41ea6ac65", - "size": 4171 + "sha256": "b222d27767ce86629706f5028ac37b451bb624239b1c4bd2683603c91b0c034f", + "size": 4201 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/list", "status": "success", "path": "en/api/ruby/beta/vaults/list.md", - "sha256": "ccf88fe1e65958274a045cadb9aab797db502c8fc42f0b5f3f6a5cd9f6dcbac0", - "size": 4327 + "sha256": "81bf1577a4e6fec822601e948c337c552ca584c53ecd692f5478dbc2b6eed105", + "size": 4357 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/retrieve", "status": "success", "path": "en/api/ruby/beta/vaults/retrieve.md", - "sha256": "031f80aad61f8940afdc6ecb66584c007b6b6b5cf530a2d31575a32b12096ee9", - "size": 3918 + "sha256": "7b1d0446eaf05811a93600137e9336b16012a46398c3a4f96438a4eb0e8d4026", + "size": 3948 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials", "status": "success", "path": "en/api/ruby/beta/vaults/credentials.md", - "sha256": "10e6e3c14e08b14264eacc85a2d9ef065f1e297fa6c43b54610a4a1d01c98de2", - "size": 94040 + "sha256": "84ab161e585a8565841a96ff0aeb7c9af7af50adea73a561d17765d07be21e1e", + "size": 94250 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/delete", "status": "success", "path": "en/api/ruby/beta/vaults/delete.md", - "sha256": "c02a051fb1a386bb87e56aaf90baeab803bd3572b7e31f2bff05a17bea181366", - "size": 3303 + "sha256": "632e80fa91e7d721b4a6f2e9bd11929d267d592d32860b5780e379d9b9bdfefd", + "size": 3333 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/archive", "status": "success", "path": "en/api/ruby/beta/vaults/archive.md", - "sha256": "021393cab42cac6bcd07c95ff9215328f49d4bb55a54cd2bf55c07be8dbed136", - "size": 3920 + "sha256": "f8d29db1e3fe0a16059b7e888bbbfbcda5f8b810686a3ecccf8af9d92dd77c56", + "size": 3950 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles/create", "status": "success", "path": "en/api/ruby/beta/user_profiles/create.md", - "sha256": "1e2c70a4c02d297ef4ffd1775d04f00543b9a7f42c7d0626a44c15319d36b9f9", - "size": 12507 + "sha256": "2ca0b0a74e52370b1dbda070b7bb88ef216ab6c9ec078b00efaacc1e227a5370", + "size": 12836 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles/update", "status": "success", "path": "en/api/ruby/beta/user_profiles/update.md", - "sha256": "3ab389f181170723a583c892e706b8960ba2c96336568c2a7286602d808f3f22", - "size": 12474 + "sha256": "5da1187daebe18b50607ccbb0288fa8bf6d7db7fd50ddf419e9e06f7c5fc8e78", + "size": 12685 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles/list", "status": "success", "path": "en/api/ruby/beta/user_profiles/list.md", - "sha256": "23fe722d6aed15e820e1b17a6aa137a74d3302fda3c67870d4fac9948a14f78c", - "size": 9523 + "sha256": "8422648c752db4cdaec8e698b3f1aef170057eb770588ef5825b8c7ec00e1d82", + "size": 9694 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles/create_enrollment_url", "status": "success", "path": "en/api/ruby/beta/user_profiles/create_enrollment_url.md", - "sha256": "151e733736ce2e07ada498530b7dd46151b774ccca28ecb0a7dfc863930c74dd", - "size": 3851 + "sha256": "780ffd7f0e57928eedcba54f935d6b33bb762a932644a66de34d94ec185b5319", + "size": 3793 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/user_profiles/retrieve", "status": "success", "path": "en/api/ruby/beta/user_profiles/retrieve.md", - "sha256": "9f212730d3f0ba41a73e194c766ab924ff3ee02ffaa4c71a034dccf56d1e2b1d", - "size": 8483 + "sha256": "cd2b857962ef7248654dce3ffcae75c5c614994abda04e40ffe6bfcb7dadb421", + "size": 8654 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/create", "status": "success", "path": "en/api/ruby/beta/agents/create.md", - "sha256": "0958cf5ea20cabf76125741ba9e5ba4392a30ee24f85213074916c6a92f863c5", - "size": 65094 + "sha256": "731501dfc4f35c869547c9628ad7f4734be11e71f740deaaa6514b99c119dfb4", + "size": 65124 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/update", "status": "success", "path": "en/api/ruby/beta/agents/update.md", - "sha256": "ccef4cd81f269fa3e09a4ad8dd0ce8317ca72a004bcadf15a8380ddccd0ea9c5", - "size": 65943 + "sha256": "edf54e1b66bf79584f2bf6f9a5c0c1031a8cff4bf648e30d496a41922d6fa69e", + "size": 65973 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/list", "status": "success", "path": "en/api/ruby/beta/agents/list.md", - "sha256": "bfeb9b1a28438b38982e2a2850a4537d3affa2fa95fac9f27229fac4f9ef4667", - "size": 30676 + "sha256": "eadf58253940f828326ff7af7f4ef4c74a332986d3b0793c82b9879876584f40", + "size": 30706 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/retrieve", "status": "success", "path": "en/api/ruby/beta/agents/retrieve.md", - "sha256": "ca0c453333636491eee2dbeb7402575b0094e0259ab5bd95327e7f0b1481fa7b", - "size": 30005 + "sha256": "b89f2ddef43cd28eb6cca4557e9221021bccc90cb7253a4aad973af5a62c8a1d", + "size": 30035 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/versions", "status": "success", "path": "en/api/ruby/beta/agents/versions.md", - "sha256": "9ad1915014102cbc7be6c978b72ff13176b229e83336aa1e64de6a728b279c48", - "size": 30485 + "sha256": "c1f563fcea3e452f61e056f3ad4c6030fc16f2f6e8a07fc76a13d82e54b73c7d", + "size": 30515 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/archive", "status": "success", "path": "en/api/ruby/beta/agents/archive.md", - "sha256": "5f386712d6eee46f9ff08ed1a264c87fa37a3b19c440ed3d217bff6a5f02c1df", - "size": 29880 + "sha256": "9e6e85ab1c0eb7ff3df5f372dceba77c73ed43e65ca70c9f3d01a66cd12c9b84", + "size": 29910 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/models/list", "status": "success", "path": "en/api/ruby/beta/models/list.md", - "sha256": "09f3776aa954a79656e6a94f62c416cb13c58dd24744ae8d58a7cbf31622e031", - "size": 13453 + "sha256": "a09168931a4d56f730de185dda9d3434f1e4a3fe156f9898672d4816749e88ad", + "size": 13483 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/models/retrieve", "status": "success", "path": "en/api/ruby/beta/models/retrieve.md", - "sha256": "d4c87ecfdbdb627683257dfdabf0361ce6724586eef453c0f8c67ebe47995193", - "size": 12190 + "sha256": "75a5121d194b933573b39b5965a70eda3cfef50eb1d35ea592c70c83f5582c1e", + "size": 12220 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/create", "status": "success", "path": "en/api/ruby/beta/tunnels/create.md", - "sha256": "a1f56b4d7e0f3fac15d66a3ded1459c03ce9a90fc566b60f50ccf033ff9810b0", - "size": 4332 + "sha256": "2f12e1ad3fbf51b8030777c02e8317621143eaca18fa13c3e088a0cb234d9636", + "size": 4362 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/rotate_token", "status": "success", "path": "en/api/ruby/beta/tunnels/rotate_token.md", - "sha256": "112ad7d2146fd753c0949b05bbcbe7df9f9b5c1552efcd3ef401447539ee8b6b", - "size": 3975 + "sha256": "f7d1c962675efd2aba3ee4e77d119815b0708f25ef854613c4e83eadf6d84e68", + "size": 4005 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/list", "status": "success", "path": "en/api/ruby/beta/tunnels/list.md", - "sha256": "617ae04d600d796b8f5f1f802c421df20dcfb28f88fcf8028b45e42e1e4da775", - "size": 4582 + "sha256": "7f099f045991efa1dfd903485ac7928f4dc9178398bf9c2055b2c89649e6a31d", + "size": 4612 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/certificates", "status": "success", "path": "en/api/ruby/beta/tunnels/certificates.md", - "sha256": "8f4a8312a9fae59f3ecff88dde659b20850e656b2a7987fef12bb8c7c7a52297", - "size": 19617 + "sha256": "adcb908975ccc62c14635577b3a3c26379bac8fb8ef914be9b4fc339f52302fd", + "size": 19737 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/retrieve", "status": "success", "path": "en/api/ruby/beta/tunnels/retrieve.md", - "sha256": "987312cfce3160261a613919517d9eb4bf16c267e146f86a5198cc6413c017df", - "size": 4157 + "sha256": "48fa5f16dcdebbf5457c51c34f596c016ce9413ba8db5a6e7d0c7bbd9bab8c25", + "size": 4187 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/reveal_token", "status": "success", "path": "en/api/ruby/beta/tunnels/reveal_token.md", - "sha256": "ae71590e6fb4ed4028ab13ec433732381722c6c4a254680b3ab4980914a1d65f", - "size": 3889 + "sha256": "091f65da22277d9abd8dba97d873a3e49273827fdd06f119a05da996ec93dd8f", + "size": 3919 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/archive", "status": "success", "path": "en/api/ruby/beta/tunnels/archive.md", - "sha256": "451b417e689ec08b7dbe7b3833ce33b83e3365e7ba408133942ee96f31817118", - "size": 4440 + "sha256": "53d828eb554a29865a0996a53d177f74df51a91831783238ba05dcc6fbbc5e3d", + "size": 4470 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/create", "status": "success", "path": "en/api/ruby/beta/sessions/create.md", - "sha256": "bb4e2acd258918c6f602f535d8f15a4d40485869899810d93bde57aabaa9d301", - "size": 84378 + "sha256": "d3b9ce0759998b169242a933ef9ecad3a38f0f573bf1b0c96d46144142712c9b", + "size": 84408 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources", "status": "success", "path": "en/api/ruby/beta/sessions/resources.md", - "sha256": "4305737da63d48fc60c53299e9ae29fac3094a61bfd85f49bc98fe4202e03b65", - "size": 35478 + "sha256": "df0b50c105a735c12c036daa007622b9db542cbbb8c5a4666382913c3bb9fa8d", + "size": 35628 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/update", "status": "success", "path": "en/api/ruby/beta/sessions/update.md", - "sha256": "f4f03170df66fa07ee08967325aa7c138ca695f1483f62133f16b2c3d9d79c29", - "size": 69634 + "sha256": "6d7eaa7b0ec9abb15d5487ffa56d440b28e9c35aaddcb70c89a601a72be5a929", + "size": 69664 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/list", "status": "success", "path": "en/api/ruby/beta/sessions/list.md", - "sha256": "d770d2940cfc13d39ea2a0126f2aa7cc842b28af35fc6cad08021d07a64a2061", - "size": 48332 + "sha256": "eb0c6bcd183739845c309e692a6f31781d9df9c698721b7c45f4ae0bc937dc57", + "size": 48362 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads", "status": "success", "path": "en/api/ruby/beta/sessions/threads.md", - "sha256": "a4e5f5ee3e25190fb07cb5d771852783887177ba5514436e89a6565d8f6109e0", - "size": 447517 + "sha256": "3f284eb14a02a14366098d26dde8d9e3af3fb193cee16c4af6dd434acee53de4", + "size": 447667 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/retrieve", "status": "success", "path": "en/api/ruby/beta/sessions/retrieve.md", - "sha256": "7b629a519e025db34169728e6c78a14a0d446796bfd18c592123c4383a088efa", - "size": 45646 + "sha256": "d0ea683b46927d85c268c1f4c3a9b7390846da5cd81d1fd380f94c1bef3fb145", + "size": 45676 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/events", "status": "success", "path": "en/api/ruby/beta/sessions/events.md", - "sha256": "317fc511414b2013c2f21bf509246f9ed588215ed0beebc2567d7742772c17f8", - "size": 576872 + "sha256": "97e848ae74e3ca623437b5a5d1dcf230dc9d05ad387a14565651d4496d07885c", + "size": 576962 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/delete", "status": "success", "path": "en/api/ruby/beta/sessions/delete.md", - "sha256": "ed0113e4e32a1ec3e84d5b7701bf45aa309ce19ae4ef0325c2ef268d08312357", - "size": 3260 + "sha256": "6249c169aeffd0c47b21ed129794d1efcb1dba807066d6cc2e63162af9f00c9a", + "size": 3290 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/archive", "status": "success", "path": "en/api/ruby/beta/sessions/archive.md", - "sha256": "e5326c14ea5993df0aa78f7fc7a5d29eef36272c36ea61d9146a801b78d79dc1", - "size": 45664 + "sha256": "11678bd5bb09cf8f59110b18bd04bf85427f7bef7c41380750a4f93c66a95935", + "size": 45694 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/unpause", "status": "success", "path": "en/api/ruby/beta/deployments/unpause.md", - "sha256": "a85cb1477bdb3487cdd51266a089def717dee707b60ffb8f441bbd8648f7b816", - "size": 19171 + "sha256": "2a764e75bfcd0569cb991a2fe7fbf166eece465e93fa3116f18efa7b58684c3b", + "size": 19201 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/create", "status": "success", "path": "en/api/ruby/beta/deployments/create.md", - "sha256": "65afd18e09a271c9d2093d5698eb7157a49c0d5c0999897b26dcddd5c85deaea", - "size": 30215 + "sha256": "f472cacba35e0fe2fc271fd5675ff52900af82f6e75d6f4206cb87f7a35fb672", + "size": 30245 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/update", "status": "success", "path": "en/api/ruby/beta/deployments/update.md", - "sha256": "e5de01c9f1eb8cb1ba3e9fef7ee4a9b547a4ac815ecee745c06891b774c7ee4b", - "size": 30270 + "sha256": "84b2e1654a48edabf7750bdae8135c170fc6feceee68ec46117dbc0a6d5e2726", + "size": 30300 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/list", "status": "success", "path": "en/api/ruby/beta/deployments/list.md", - "sha256": "41ef4ecea4fdaf088d08ef473c12dceb76223a29517bade60513d2f466e59195", - "size": 20377 + "sha256": "c32a8151ed24b5ebc874643ba65efd4e0a77692223492614ffe6e77d08fc9159", + "size": 20407 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/retrieve", "status": "success", "path": "en/api/ruby/beta/deployments/retrieve.md", - "sha256": "187e80db1fc2819f831537dd8a41273618ba93fdb4fd5a62ca8d9e62089a014e", - "size": 19142 + "sha256": "3402268e7ca9e2091f9d4cc834e6a14f0efb0b346d8f0818206aaf2dd4c7ff52", + "size": 19172 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/run", "status": "success", "path": "en/api/ruby/beta/deployments/run.md", - "sha256": "7de61e1e4e595c0b961aaff79f9ab87c210d99a3283461d2a58bddb46299483a", - "size": 9261 + "sha256": "5a174aa9983abeb21d91f9bc1650d44aa836abd63ebb7fa2b7cfd7428c714902", + "size": 9291 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/pause", "status": "success", "path": "en/api/ruby/beta/deployments/pause.md", - "sha256": "e06559b546e3af7c54d1dc6409383a5d9ed0998ed1e7816fb2c0563e40559f04", - "size": 19155 + "sha256": "e71ac36950ac1fc60cf21c62915049f0e9e6b6a5e3aa9602af614ee5db9cbbae", + "size": 19185 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/deployments/archive", "status": "success", "path": "en/api/ruby/beta/deployments/archive.md", - "sha256": "c0b79f15712a0c51aeab8bdd357d1025b042ba751c2429f4eb386109ed6f4235", - "size": 19171 + "sha256": "f0cd835f6fb26cd2cc963fbee9f51b049a9791d843946528108eef5bec5f7ee5", + "size": 19201 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/create", "status": "success", "path": "en/api/ruby/beta/skills/create.md", - "sha256": "a51a988fb4bbfd33e3889d40a57662bf17b8fb7238f6e26ae66ac96aabc058ec", - "size": 5130 + "sha256": "4bbc60a9e52289d34e2975a2a37bee41fdbb20eb1e71270fa1f0be0e43b9a471", + "size": 5160 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/list", "status": "success", "path": "en/api/ruby/beta/skills/list.md", - "sha256": "f10b639c7f2b543a4beb186ec2f15bf18185e9d107bc92b5c9b70c31a555e82f", - "size": 5387 + "sha256": "c3ab43d0dffad3da3dc2f3a31985ea903b6094ff8b1168bf8b4da98a66ef85e3", + "size": 5417 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/retrieve", "status": "success", "path": "en/api/ruby/beta/skills/retrieve.md", - "sha256": "3e364608557b8de56258fef55e50e2e85eca52d44a04abc68e7948142ea69584", - "size": 4871 + "sha256": "c88997903905eeb7c3c42539361adc0d057e755b44e0a1c0aba5569e7c94b0f9", + "size": 4901 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions", "status": "success", "path": "en/api/ruby/beta/skills/versions.md", - "sha256": "87bc0b665bacdaf061435e473c546dc9fd917c7584def2cc5d0498b272acca96", - "size": 21367 + "sha256": "59112068a50af88f30ec9f5e2f858f2a8412f26041635805ebdc77d7e1bf10c3", + "size": 21517 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/delete", "status": "success", "path": "en/api/ruby/beta/skills/delete.md", - "sha256": "5ef78d430efad17ad46d0e34bf71e3646603932e36a4743f0adfc70fccbae535", - "size": 3327 + "sha256": "3fda8745b9aaf677d39920297058cb330e9f2db5948d7f3977c224fd0304ec12", + "size": 3357 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions", "status": "success", "path": "en/api/ruby/beta/memory_stores/memory_versions.md", - "sha256": "9522d632fa3af079cc8d3de71ab71d15369bf4787c10a47287fcc805ba3e89d4", - "size": 39491 + "sha256": "e7fbb903fa94e06264720bc7757e1bd76d794a9d24f1bda1c89fafe20fb56144", + "size": 40255 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/create", "status": "success", "path": "en/api/ruby/beta/memory_stores/create.md", - "sha256": "6db461072e486dae77820e1513c51f29f2099d5c8c9696d82c3de81d9c7af41c", - "size": 5643 + "sha256": "15cd48a7e6f583ad01e63a2b000999b42aaeeee346e4311ea522ecca78eb39a4", + "size": 6293 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/update", "status": "success", "path": "en/api/ruby/beta/memory_stores/update.md", - "sha256": "255eea3bf44e10934f79476ad03b2601f3379b22b225a558799d4759e0498bdd", - "size": 5729 + "sha256": "943be6a5908ae7f760c4b3d38760e3d1d8cfdc088264e3220fcf66616808939a", + "size": 6114 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/list", "status": "success", "path": "en/api/ruby/beta/memory_stores/list.md", - "sha256": "ce3103d0a4b227dbed6a13dcac6227bfdbfb61b79bf38530b8eb1794e8aaf9b4", - "size": 5813 + "sha256": "3aa251dddaff84ef8bd548f83bc125abb33f9c43ebb598c2290ebea3b6bfa923", + "size": 5978 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/retrieve", "status": "success", "path": "en/api/ruby/beta/memory_stores/retrieve.md", - "sha256": "2f5067e3114edbb05348cfba736d0d0529cd32e947c27b9606bcc8f95be4886e", - "size": 5102 + "sha256": "f026989d345a0fd5a63b1b32fd38d38e6983f9b8f4824e8f018d97d6de512917", + "size": 5344 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/delete", "status": "success", "path": "en/api/ruby/beta/memory_stores/delete.md", - "sha256": "0734677ce036e170af03f871df3ef249ce9d1409292e299300e7442d2e417c9b", - "size": 3636 + "sha256": "807fc6ae812f768ef5b6ae99834b8884eb69dd51ba3cf1ef1944e54fc554e367", + "size": 3637 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories.md", - "sha256": "3a87c696f23a78671062b15b09312d07a5143c32aa95ab9ccb18a59113b5e719", - "size": 49200 + "sha256": "de310d013039260db50d58ec25bd9ff47aca1040a9cdcfa703219a13dcb1e6b2", + "size": 48615 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/archive", "status": "success", "path": "en/api/ruby/beta/memory_stores/archive.md", - "sha256": "305547f29a7e09f526711110a7734bc833bff846349a1e4c9f6898004cf8e13c", - "size": 5179 + "sha256": "eb96e3347b50639e4998cd2042688df0360ab440ec7ebe7b6345bc4b169fdf3a", + "size": 5441 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files/download", "status": "success", "path": "en/api/ruby/beta/files/download.md", - "sha256": "5a1ea9dbda8827e2e33311985a27ad1f621880b77f0a36170f15b955736cbbf8", - "size": 2896 + "sha256": "badbb85a68f6f92c9d3668d90c0ae620dd5f5586702340349e2f3c538f6bfab7", + "size": 2926 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files/list", "status": "success", "path": "en/api/ruby/beta/files/list.md", - "sha256": "0350dda33508e0116b2fe8f39a6c6af024aee3610da66ff2ad65db74babf8ff3", - "size": 5233 + "sha256": "58f950d36d30011e36bf9bbd4611b5994acaeb427f4384d684a289f8cc48169a", + "size": 5263 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files/upload", "status": "success", "path": "en/api/ruby/beta/files/upload.md", - "sha256": "3ee901df022639c23018a9fa5f45d9546e9a12bdba4d59a3bc7f710bb82f9ff7", - "size": 4872 + "sha256": "e2217cad36d4e7b6d03b3136827b3b4c7c4518ed5741a24ded01f02a5cd1b1f1", + "size": 4902 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files/retrieve_metadata", "status": "success", "path": "en/api/ruby/beta/files/retrieve_metadata.md", - "sha256": "590188ab077f0b39eca39086baead8a70486194977d9653a06641111d5183ff4", - "size": 4508 + "sha256": "595c0baba6c0f1fd3f586f8827972addbc89fd3a1b52bfda191c277aa2667142", + "size": 4538 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/files/delete", "status": "success", "path": "en/api/ruby/beta/files/delete.md", - "sha256": "cba7e9455c066a31e7ed9701034b3f84d2041d9675eaa9ac990f09eda3ece8cf", - "size": 3177 + "sha256": "e7f93b2e477cb7b712a2acd0308100ae9ba721c62c09f39efbf54d13e857d722", + "size": 3207 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/create", "status": "success", "path": "en/api/ruby/beta/messages/create.md", - "sha256": "357999bfebef4effbb0046eab32d49c16b932e27168c511821838e540c32a596", - "size": 291666 + "sha256": "878349c3599135fbe6d887eb8d0e5672c18bfaac86c0db8674708cce2ae73239", + "size": 296457 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/count_tokens", "status": "success", "path": "en/api/ruby/beta/messages/count_tokens.md", - "sha256": "aad3d9e6e2da7ee3a46935680731faba9f36d3ddcd4259d926c7c862190006ec", - "size": 140299 + "sha256": "52f89bf71abe5297b7877e5d93cc244ec7119796bb1a99ad667f81c7a1661c10", + "size": 140287 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches", "status": "success", "path": "en/api/ruby/beta/messages/batches.md", - "sha256": "feaafa6ace9335be5dacf27d8c710e73e5efcdcdaace36d57e4f261bd0ae338b", - "size": 751483 + "sha256": "22465e133ee28377dac437120ea2a1a7d7847458a424c70c3df6c821421eee0e", + "size": 763514 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/create", "status": "success", "path": "en/api/ruby/beta/messages/batches/create.md", - "sha256": "8c8e7de284fec5c84191a70904b04cb76a7fde5e06ff97efee0764ea9cca9c43", - "size": 162533 + "sha256": "3f7fd32cd01564811db1d16b1c2b302f5528b6cb7183329823ec671c8e628599", + "size": 165114 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/list", "status": "success", "path": "en/api/ruby/beta/messages/batches/list.md", - "sha256": "0bb97c86af633622aa3d664e8a3375447710cf4429235bf91bc563e885d2fd11", - "size": 7187 + "sha256": "535c73d635f30d0185617b947abb6137e72add1651f315c708f5fd4dc688fe0a", + "size": 7217 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/cancel", "status": "success", "path": "en/api/ruby/beta/messages/batches/cancel.md", - "sha256": "d4acdc79d19748f06e274a295734dcbc65ea0e258b8e2186922bf15353b63514", - "size": 7101 + "sha256": "889b6fd3dd1561efa5169d6100b324e0b0702564e5591d40733a9e2c300b9006", + "size": 7131 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/retrieve", "status": "success", "path": "en/api/ruby/beta/messages/batches/retrieve.md", - "sha256": "4a41ca961524d4712a7850bea13d8d1be9d580ec6a87cb1307f454797b86abf6", - "size": 6793 + "sha256": "3dd77daebe17dc832338851c07ff48ef72580b63a87a058e7b2600f1685202e4", + "size": 6823 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/results", "status": "success", "path": "en/api/ruby/beta/messages/batches/results.md", - "sha256": "4407350e1f4c21dc941fe68079899b0bcee877bc60ae0e3d4d45b4e57ebaa7ff", - "size": 145949 + "sha256": "b8eb17940450229273126adc26bf9a838f09891089585227e9b36fbbe7c8cd01", + "size": 148325 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/messages/batches/delete", "status": "success", "path": "en/api/ruby/beta/messages/batches/delete.md", - "sha256": "61679503f401255a75edcbdc5d800b4abcca44251ebf198084d2c14d2e5fa6a6", - "size": 3664 + "sha256": "e106b4b8b37bdfc942f3b44c24b86d6392a874c9a0c30f65697393664a7e0253", + "size": 3694 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/create", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories/create.md", - "sha256": "05827a76abd1aeb340202a38703d46b1b07128e74498ca9da7ce3955a481fc96", - "size": 7210 + "sha256": "023367c27e803b46220653416925f6eb87f1a29c843828395787055f531df27e", + "size": 7100 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/update", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories/update.md", - "sha256": "055edef4b112de41ed4b29d74d4d52bb1930c515a24f3d9edc07e642cb3a4a5d", - "size": 8011 + "sha256": "9e96b9fcd061dd89bebc7dae0292d474afec7d118a8bfca73b8bd503fa0b9571", + "size": 7822 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/list", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories/list.md", - "sha256": "d0e13958214d947e675dc222ef2f5d21a29109a8ec30cecd43d501c764967e4b", - "size": 8690 + "sha256": "e70ecabcb012924b9f4f4edb464103df1c9935cc9567843dd79954aa91125b25", + "size": 8620 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/retrieve", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories/retrieve.md", - "sha256": "9cc5302f2794f1741856b846ce79e079d78090657a68b3c66113db87eb9313f0", - "size": 6745 + "sha256": "f3f8c3590a6e647f27d62310c139b1bbda1aa4f5a89487cda1f1bf1bdbe7f1fa", + "size": 6618 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/delete", "status": "success", "path": "en/api/ruby/beta/memory_stores/memories/delete.md", - "sha256": "6c5c3207b6bd257d38f29433583bd58e65d26a035281898a1b945fa592c6af74", - "size": 4294 + "sha256": "17b9a73b0a37980893e258b69e4f4842fee14414bbc285a63955ff603a054b4d", + "size": 4480 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/list", "status": "success", "path": "en/api/ruby/beta/memory_stores/memory_versions/list.md", - "sha256": "111701153179b4b0eae2636dbfa43eef5ddc9fc00d2091314aebe68bd430cbbd", - "size": 11597 + "sha256": "e3461d311a1ce03bff9200088964d013c0a7ef46456ea71deb6f73c3ebb881f8", + "size": 11813 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/retrieve", "status": "success", "path": "en/api/ruby/beta/memory_stores/memory_versions/retrieve.md", - "sha256": "065e2d1a3cc2f7d58fc6fef0ccb8ca5c83774db7b520525ad9ab3e1b1537c191", - "size": 9841 + "sha256": "3cd59cbea14747a5d4e5e965fa7b54dcc271f1eedff6c926d5b9264c4afc78c6", + "size": 9949 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/redact", "status": "success", "path": "en/api/ruby/beta/memory_stores/memory_versions/redact.md", - "sha256": "286aa18a1e77b65f89560d626001ca991e3545c008373d0e3000ee6513a4405d", - "size": 9121 + "sha256": "aec28f8120ce9f6c4ec3525edfdfb74835eb01995557c536ab8a457c89c2a375", + "size": 9339 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions/create", "status": "success", "path": "en/api/ruby/beta/skills/versions/create.md", - "sha256": "87708bc4eeaba8b33dbecd23c2fe60d1a81f2ea7cc3c4d1f13af4d9742170293", - "size": 4419 + "sha256": "c4c60b7b7276ec65304883f2c3d601d4e0f67bf5bd7aa0d42e6d379af5b3587a", + "size": 4449 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions/download", "status": "success", "path": "en/api/ruby/beta/skills/versions/download.md", - "sha256": "0ba55cfa795203e0e6006d0b9e4fbacaac79dc4ccb54f98c81ae83d7076d6bcf", - "size": 3343 + "sha256": "6821db1bac4a1f3b88553d0d0036ac4049b8f9852ebc81e58aad2f24a8da5fd1", + "size": 3373 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions/list", "status": "success", "path": "en/api/ruby/beta/skills/versions/list.md", - "sha256": "6c78ea17d74d35bd66bf5676502d037bb3011cab8bd7bbbf27222253f018abff", - "size": 4520 + "sha256": "6c0d043c88828f6cfdc0e1095261f10f738973e0aa961598e872f4fd771bc929", + "size": 4550 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions/retrieve", "status": "success", "path": "en/api/ruby/beta/skills/versions/retrieve.md", - "sha256": "17fc42a2df42b6ae1250ed8584827645189e8579b026eddec55c35ca5317f7c7", - "size": 4515 + "sha256": "019148c3f1ab7f525fa3b0e3facfdab570db490d81f4f50ed634da8939981efa", + "size": 4545 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/skills/versions/delete", "status": "success", "path": "en/api/ruby/beta/skills/versions/delete.md", - "sha256": "b30f4116b23f4c62f9b398d4450c2348f89cfd796cfad396410ede903ff443d8", - "size": 3700 + "sha256": "b0ebc38affd383b77b0a9a54ab533c496b3e335a72782f19394bdebcf22c0601", + "size": 3730 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/list", "status": "success", "path": "en/api/ruby/beta/sessions/threads/list.md", - "sha256": "1c531e1888791ce56319e503ec0eeea4967e58a8e6ca078602c1d72f2f8910f9", - "size": 33939 + "sha256": "713b8c1b8cb0ac2a9c983cf8f389b77c0164fa7283bfb4de16654ded0855acb7", + "size": 33969 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/retrieve", "status": "success", "path": "en/api/ruby/beta/sessions/threads/retrieve.md", - "sha256": "ec443378fb66310f4e9227633fdd34307487f45b2597a88bcb87c7b8b15a5e9d", - "size": 33147 + "sha256": "3a09d547efb0f157f84d86af9bf01e6b325a64b3a8a9924040b694b66b18e60b", + "size": 33177 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/events", "status": "success", "path": "en/api/ruby/beta/sessions/threads/events.md", - "sha256": "d756dd664326bf0c6f174aa9fec2d580c08eb2d30b1d569f27c4cbf9ad202367", - "size": 198799 + "sha256": "e0df956027ae424c450aae97a184295a2e972b3d74677d6d3854ce3d88bc01e7", + "size": 198859 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/archive", "status": "success", "path": "en/api/ruby/beta/sessions/threads/archive.md", - "sha256": "f09cf0dace9919a1f1c945d508e80b7295ba024c79e64bcdcb17db639fab232d", - "size": 33165 + "sha256": "e87411266201a34ec0fe56fbde3ccbb7ca1ba01f82cd3e93d3f03de258c8a173", + "size": 33195 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources/update", "status": "success", "path": "en/api/ruby/beta/sessions/resources/update.md", - "sha256": "edf204a04717a1adbf3524f1b1a81aa3121f53711f6b6db28884d519a0cc9d66", - "size": 6157 + "sha256": "941ee2657efa1adbf26073fa6c5ae1701b5a5f23e65bc9905e32aef37499852b", + "size": 6187 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources/list", "status": "success", "path": "en/api/ruby/beta/sessions/resources/list.md", - "sha256": "e4393abf387aa1f6e007191a07020f43711a03588bf0e105758dbd88599a642f", - "size": 6439 + "sha256": "bf93b44708d0a1392fef98dfee4b47b1e45aa26b4510379e9e7ddf68dcf73bcf", + "size": 6469 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources/retrieve", "status": "success", "path": "en/api/ruby/beta/sessions/resources/retrieve.md", - "sha256": "6916f5b995717fd5d64d87c6c92d1395f9c025974b78075c9cdf846786fbd8fd", - "size": 5936 + "sha256": "12da017135bad34366bfcf1648073be80ccda46ec220e9fcc05436c618a32d46", + "size": 5966 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources/add", "status": "success", "path": "en/api/ruby/beta/sessions/resources/add.md", - "sha256": "60dc22990e2ff532cb4bc282fd514377fa560afca4c42c85ec7f309b8afae56f", - "size": 3902 + "sha256": "aceaedd692e7423d1af4ddcb06b5827161e384945879dd566ab67994de5ec9f7", + "size": 3932 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/resources/delete", "status": "success", "path": "en/api/ruby/beta/sessions/resources/delete.md", - "sha256": "1114d96f4a83659829630b8c6e0b4cb22181867a5013a3628d3d784d99c9219e", - "size": 3462 + "sha256": "0f1533b9653b82821670ce236ed50a3f92df14bbef318a3bd4fc93d2625dbdb3", + "size": 3492 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/events/send", "status": "success", "path": "en/api/ruby/beta/sessions/events/send.md", - "sha256": "2cd6239f13643a42b57f5494b78d05b29de9d0ff2689342457f3a967750f208d", - "size": 25599 + "sha256": "2f4c520dceb0d6dff1f1649832e82a2e1282ee2ab39b2da4af631d40a4179a79", + "size": 25629 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/events/list", "status": "success", "path": "en/api/ruby/beta/sessions/events/list.md", - "sha256": "777fb514e8b13b511ad3bd25daf52791848c635632ca6a6fc72b7bff1b0c79c6", - "size": 100211 + "sha256": "3bb8f00dd6cf5e6e2f7a0edd8cb4a658656a02f4be83fc823d576bf8f851cf61", + "size": 100241 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/events/stream", "status": "success", "path": "en/api/ruby/beta/sessions/events/stream.md", - "sha256": "7890561bb283a0c800031643d4968fd17b8c7a6f1ad41dec8a2d83c1d9217dad", - "size": 100860 + "sha256": "c319462f01ac0f4c53a283e22c31870ee9a425a4fedcc2ecb54e96beed8255e3", + "size": 100890 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/events/list", "status": "success", "path": "en/api/ruby/beta/sessions/threads/events/list.md", - "sha256": "e37f7315828dafb3107447f9196b8e798aaf5517462903831b09ad780a0dc37f", - "size": 97884 + "sha256": "28c6dfa4060adc57cb972e2d84777e8f502c7fdd1f8764314371e5a3dbd981f9", + "size": 97914 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/sessions/threads/events/stream", "status": "success", "path": "en/api/ruby/beta/sessions/threads/events/stream.md", - "sha256": "dbdd55cacd5b81e7a265591948901fdeeada1edab4505d6b108d8bbd3e12a290", - "size": 101050 + "sha256": "9fab6001f9e73671c7626633f963cb05fb43033a3e428686686fd8605f7ab593", + "size": 101080 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/certificates/create", "status": "success", "path": "en/api/ruby/beta/tunnels/certificates/create.md", - "sha256": "8b29668a82b3e1d13b7063d33957130e6886ada4dfd22d9875f61aad80b51160", - "size": 4811 + "sha256": "059523435498b3c3808eada8ced46a6bb8d62cc30e628194399de441fe6ec46c", + "size": 4841 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/certificates/list", "status": "success", "path": "en/api/ruby/beta/tunnels/certificates/list.md", - "sha256": "dd19c8342b7d004ef60395e47c10f611b4d62e506620d823d04d3375554e50d2", - "size": 4935 + "sha256": "73ab9e76d954dd65e1e9fe25458db1b9b8216ba730ba0ac5836bc03ce5c15ce8", + "size": 4965 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/certificates/retrieve", "status": "success", "path": "en/api/ruby/beta/tunnels/certificates/retrieve.md", - "sha256": "044ee98a6966fdd86e9f48bd1ffb2338e65571e6927f8223b6e1658f478338b2", - "size": 4561 + "sha256": "6210bdd9b6414a9bcce618d18d977ce3bbe3d982ba774d8515d40115e95ac4b2", + "size": 4591 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/tunnels/certificates/archive", "status": "success", "path": "en/api/ruby/beta/tunnels/certificates/archive.md", - "sha256": "a310aba670e696b602800f0ed8b3348d7c5012526ed1ad3794a7304abdb42f82", - "size": 4798 + "sha256": "07fcb2a8ccd2f60a3b63b3883d73dd6b85b775d727c44cd921927eb2f00a5610", + "size": 4828 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/agents/versions/list", "status": "success", "path": "en/api/ruby/beta/agents/versions/list.md", - "sha256": "427eca4e8e42c839e5dc3e4edec4973fc2a4e39d9162c8042f8f7bfb674fb283", - "size": 30484 + "sha256": "6f7e4d76c8ca87b46070195e59c422ba221272278c8aeea78afd1b0ae9fb9e97", + "size": 30514 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/create", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/create.md", - "sha256": "2e64aa5d5ebb491eb87495bece2f978b5f2ac08daa763ac47d433fd3df6c0f82", - "size": 13121 + "sha256": "3f73f7927bb106b76d4772a751a047164ae8c6f9aaac67d5e33d312588af1832", + "size": 13151 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/update", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/update.md", - "sha256": "6f1aa1d0352248e2529761374a21f743e4b2cf42e5ebf06e74ad5bd7e11368db", - "size": 12669 + "sha256": "bd3c0c957efbb1b92c5f0fdef22e5d31d39c96f293a71ac63a7433e685607160", + "size": 12699 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/list", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/list.md", - "sha256": "df5affa9c4df558e9f953a5b6184d07a3182d90d30ed7ce2ded590041b614b40", - "size": 8478 + "sha256": "03a3d3b5c0137b8aa4805e2382cabd7902d4b29423693f5af8eaa7e4c2e446a1", + "size": 8508 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/mcp_oauth_validate", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/mcp_oauth_validate.md", - "sha256": "152f409bab181c4ccf2d765228ee4d3abbe81f8c780db0e4fbb44856957d9415", - "size": 6868 + "sha256": "e4b026f29f825fd9aef4234cac6f2b4d82d8e690e50f551edfc532c8a6220c82", + "size": 6898 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/retrieve", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/retrieve.md", - "sha256": "1eeb515a21294b53e8e3edab3a580fcac9d59cf02f64eab8a7dd59fbecaf0638", - "size": 8061 + "sha256": "ea40e519e35c5117b3d92ab28ea6af13329bc4ed89d172f6f1b704c6326d217e", + "size": 8091 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/delete", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/delete.md", - "sha256": "ba7b3596d6cf7fa4342f4f316d5f0c152aa01f6d50499ce3d75b68631da5ec1d", - "size": 3593 + "sha256": "da1a680bd0f06d6807a6ed113b7b82c55d560aee69a48dd3cfefb1ae12c3248c", + "size": 3623 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/vaults/credentials/archive", "status": "success", "path": "en/api/ruby/beta/vaults/credentials/archive.md", - "sha256": "3f437cd5b3099d5f19c0988490e3e0073609d1ee5308e14659b5eeec2224cf5d", - "size": 8063 + "sha256": "47b4d8ab16f048b0f5bdf6fef9ef1ea66dba68b75d5a1b01947d585116d3d3c8", + "size": 8093 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/update", "status": "success", "path": "en/api/ruby/beta/environments/work/update.md", - "sha256": "b1b612de02d784d447b9161ef693a3874ec9ad6ccfd5746d121dd42405a76312", - "size": 5693 + "sha256": "0ef71280608d2ecbd9abab9dcd12ba6d94cd07e950d709425c25babc6cfcaadc", + "size": 5723 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/list", "status": "success", "path": "en/api/ruby/beta/environments/work/list.md", - "sha256": "a4b88eac0d47c230dcc4c0061fded46116a84b326c667e4a3dc71b7d161877e6", - "size": 5354 + "sha256": "c5cc8431557bc196d98ca142613c02b2cf7e0fd11c0473cc1b8737e40d67af7f", + "size": 5384 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/stop", "status": "success", "path": "en/api/ruby/beta/environments/work/stop.md", - "sha256": "33aaf5fe139dabcede0f54fdb890e117ffd5ee02e0d81bdd3adae851bae1ec7f", - "size": 5568 + "sha256": "2f6562dc8df427d46910fdab4d906125ad244e1863ce9df143c76941d0ebac7e", + "size": 5598 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/retrieve", "status": "success", "path": "en/api/ruby/beta/environments/work/retrieve.md", - "sha256": "1ebe6ea0a662a6bddaa85c8a7c8541e0b927538ebe7aeaeb809cf69a5a44d11a", - "size": 5505 + "sha256": "96aba425f1c4b3889dbcb83b001a656408bff1c9d353b90f07ccf5f5e7034e8c", + "size": 5535 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/ack", "status": "success", "path": "en/api/ruby/beta/environments/work/ack.md", - "sha256": "dfc539fea63dbc9ef89c126b8c9aef7bb60dc81850b125394cbef2cde48a2e08", - "size": 5198 + "sha256": "197b5058446de4c7197e15b95f30b40ed5356e0e10897fed5a2ffee8e450e59b", + "size": 5228 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/stats", "status": "success", "path": "en/api/ruby/beta/environments/work/stats.md", - "sha256": "54462089badef1581a1b2e3c8690f5279717c070568f7e07c31581976c4c2bb4", - "size": 3944 + "sha256": "ab24dc5fa7a96b59fc113b090c3c11bf86af95fdfedcb2ad724f29e3681d9959", + "size": 3974 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/heartbeat", "status": "success", "path": "en/api/ruby/beta/environments/work/heartbeat.md", - "sha256": "4d3c24fb826d3b75d4dd9e446ad245aabab4a50c9e9f731da56f1e55ecd8db62", - "size": 4279 + "sha256": "97976e8201a7ab898a04a84ee328ca0b7bd4ae5e8260d1ef60efdd4b6b7eb5e9", + "size": 4309 }, { "url": "https://platform.claude.com/docs/en/api/ruby/beta/environments/work/poll", "status": "success", "path": "en/api/ruby/beta/environments/work/poll.md", - "sha256": "f6f00408c269e364fe038b510dcd05e575fa6f1ca6a43b9c2d5c686c21737554", - "size": 5620 + "sha256": "512d291d73052d6579090f7481324459f30b6fc6ce8646bf6b1fa1f9e85aea06", + "size": 5650 }, { "url": "https://code.claude.com/docs/en/plugin-marketplaces", @@ -22864,8 +23018,8 @@ "url": "https://code.claude.com/docs/en/slash-commands", "status": "success", "path": "en/docs/claude-code/slash-commands.md", - "sha256": "96dd113a8aeb5ba5c0371368a26eb55781a840eab78a833b3e6b755178f37813", - "size": 109811 + "sha256": "b7a52b65db4264161e43ed27f4a318b55ab4494cc18bdec4df45f411540b5203", + "size": 110252 }, { "url": "https://code.claude.com/docs/en/plugins-reference", @@ -22906,8 +23060,8 @@ "url": "https://code.claude.com/docs/en/desktop-changelog", "status": "success", "path": "en/docs/claude-code/desktop-changelog.md", - "sha256": "2bb49a13cfba31e66f7496fd5b8f305b59a4b2f074a7b9a36608b12a203c419e", - "size": 163615 + "sha256": "4a8b698dfb598b04fae076ee558aaac2a79f571a513ab9e1e052bf99fd08ac98", + "size": 163630 }, { "url": "https://code.claude.com/docs/en/iam", @@ -25202,7 +25356,7 @@ "url": "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/.claude-plugin/marketplace.json", "status": "success", "path": "github/claude-plugins-official/.claude-plugin/marketplace.json", - "sha256": "0509f3f2598191c60321625ce987a1832fbc3a3aabe18735e6a901f081458e33", + "sha256": "0551c99abf647e28d8c5e2eac3d62ad051fd87231ef6b576f98af6d7ddba372e", "size": 190732 }, { @@ -27309,15 +27463,15 @@ "url": "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/plugins/security-guidance/.claude-plugin/plugin.json", "status": "success", "path": "github/claude-plugins-official/plugins/security-guidance/.claude-plugin/plugin.json", - "sha256": "28efccd14277411bb014dae9760e27aa918cf38dc208f2827c5ae1653bb379c2", + "sha256": "28e2ec31f82268679baef06776a6975b56146a0be8ddf2d4f84f8f7e8bad4337", "size": 500 }, { "url": "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/plugins/security-guidance/README.md", "status": "success", "path": "github/claude-plugins-official/plugins/security-guidance/README.md", - "sha256": "2bacaa2a77ee62a3da67d9ba1fe184595935e26de895c6226b3ff7bc438a6d23", - "size": 11870 + "sha256": "4245a186bb836dff56f0ab5c8453a5508bad9280b7893dfcc6a7d236e88da582", + "size": 13286 }, { "url": "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/plugins/security-guidance/hooks/hooks.json", @@ -29185,8 +29339,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-python/CHANGELOG.md", - "sha256": "961dbefd0eced84d975488a77581c93cbe8851aad7d9b31954897d2313524e94", - "size": 269123 + "sha256": "234b1a8d88e9532641284349dd640aeaf48287c06bcaa2d9379ee0b5b1083e3f", + "size": 269714 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/CLAUDE.md", @@ -29234,8 +29388,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/api.md", "status": "success", "path": "github/anthropic-sdk-python/api.md", - "sha256": "9da86defbcb9755ad4328799436add615f34335b715c93f2f12902f9c229d780", - "size": 193812 + "sha256": "9fd3dc6dd8a6404821805fb0c683e754017a008be5b4680a4cfc83429fed394d", + "size": 196605 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/browser-toolset.md", @@ -29297,8 +29451,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/CHANGELOG.md", - "sha256": "3c4f54cf14556302ab5c78c0f622eb10cd9ea50664b63f09634ee94199735420", - "size": 248570 + "sha256": "425948c52deba4cf495dbdd366cb3c4939f27f9d03c4b1b873d0c57cb889ba31", + "size": 248846 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/CLAUDE.md", @@ -29346,8 +29500,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/api.md", "status": "success", "path": "github/anthropic-sdk-typescript/api.md", - "sha256": "90296dd65ab1695286266f5198319192d2fa64ea805f54eccaf0704aec994548", - "size": 255064 + "sha256": "2f3336ba08efcca685944e5c6406e8dad061662c613e5c106b5e1fd43c78b32b", + "size": 257428 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/browser-toolset.md", @@ -29490,7 +29644,16 @@ "size": 170 } ], - "failures": [], + "failures": [ + { + "url": "https://modelcontextprotocol.io/community/working-groups/agents", + "error": "moved to https://modelcontextprotocol.io/community/interest-groups/agents.md" + }, + { + "url": "https://modelcontextprotocol.io/community/working-groups/triggers-events", + "error": "moved to https://modelcontextprotocol.io/community/working-groups/tasks-events.md" + } + ], "dead": [ { "url": "https://code.claude.com/docs/en/claude-tag", @@ -30678,11 +30841,11 @@ } ], "summary": { - "total": 4508, - "downloaded": 4212, + "total": 4532, + "downloaded": 4234, "skipped": 0, "failed": 0, - "dead": 296, + "dead": 298, "success_rate": 100.0 } } \ No newline at end of file diff --git a/content/CHANGELOG.md b/content/CHANGELOG.md index 850c4993a3..2611b38896 100644 --- a/content/CHANGELOG.md +++ b/content/CHANGELOG.md @@ -1,5 +1,51 @@ # Changelog +## 2.1.306 + +- Fixed `claude -p` inside cloud sessions reporting "Not logged in" when started without the session's environment variables +- Fixed an API error being replaced by "prompt is too long", and an unneeded compaction, in sessions with many MCP tools + +## 2.1.305 + +- Added `sandbox.allowNestedUserNamespaces` so sandboxed commands on Linux can create user namespaces (Chromium, rootless podman); this lets them get around the sandbox's file protections +- Added `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` so unattended retry mode (`CLAUDE_CODE_RETRY_WATCHDOG`) notices a usage limit that was lifted before its reset +- Fixed every request failing on Vertex, Bedrock and other providers when the endpoint or a gateway rejects tool search, and behind gateways with ToolSearch disallowed or left out of `--tools` (a 2.1.304 regression): Claude Code now retries without it +- Fixed `/effort` and `/autocompact` settings not applying when the model name differed from a `modelOverrides` value by letter case or a `[1m]` tag +- Fixed new worktrees in a bare repository sometimes starting from local HEAD instead of the default branch, and unchanged subagent worktrees sometimes not being cleaned up +- Fixed Bash commands on a full disk failing with a raw `ENOSPC` file path: the error now says the disk is full and that nothing ran +- Fixed an MCP server passed by a cloud session or by the SDK's `setMcpServers` being replaced later in the session by a same-named server from your own settings +- Fixed Claude naming the wrong model for a subagent's work after the subagent switched to a fallback model +- Fixed cloud sessions and teammates not telling Claude when a compaction had to leave the oldest messages out of its summary to fit +- Fixed more cases of scheduled Cowork cloud sessions waiting five minutes for each subagent whose WebFetch needed a URL approval that nobody was there to give +- Fixed Workflow resume re-running already-completed `pipeline()` and `parallel()` agents instead of serving them from the run's journal +- Fixed Remote Control leaving empty "(session)" entries in `/resume` after switching conversations with `/resume` +- Fixed `/usage` rows being cut off in narrow terminals +- Fixed startup warnings printing as raw text above the logo: they now go to the debug log, and permission rules that restrict nothing show as warning rows under the banner +- Fixed screen reader mode: search boxes now say "Search:" instead of a symbol VoiceOver read as "telephone recorder", and highlighted prompt text, such as Ctrl+R search matches and "ultrathink", no longer has spaces inside words +- Self-hosted runner: Fixed a start script that shares only its stdout with the runner or orchestrator failing with `Resource temporarily unavailable` when `TERM` is set (a 2.1.300 regression) +- Self-hosted runner: Fixed repository access failing since 2.1.296 when a git credential helper or askpass program reads its settings through `GIT_CONFIG` +- Self-hosted runner: Fixed the orchestrator reporting a spawn-runner hook as timed out when a runner it started in the background kept its output open +- Improved `/usage`: each warning is now a one-line fix that names its source, and `f` applies the fixes; the same fixes appear in VS Code and `/doctor` +- Improved MCP consent dialogs so an Enter meant for the prompt is less likely to be taken as Accept +- Improved a mod's `Image` to draw its picture in iTerm2 3.5 and later with fullscreen rendering, where it showed only its `alt` text +- Remote Control: Improved the spawn-mode messages: pressing `w` now says the new mode is saved for the folder, and a later `claude remote-control` start that uses the saved mode says where it came from +- Changed `allowedMcpServers` to stop filtering `managed-mcp.json` stdio servers that use `${VAR}` only in `env`: one your allowlist left out now loads on upgrade; use `deniedMcpServers` to keep it off +- Changed plugins that Claude Desktop mounts by path to no longer keep their `allowed-tools` when your organization's managed settings set `allowManagedPermissionRulesOnly` +- Changed the `/artifacts` delete confirmation to take 1 or Enter to keep, 2 to delete, and Esc to cancel; `y` and `n` no longer answer it +- Changed a mod's docked pane to stay within 45% of the terminal's width, including a width kept from a wider terminal +- [VSCode] Added a "Running start-up hooks" spinner status, with a screen reader announcement, while SessionStart or Setup hooks run +- [VSCode] Fixed the spinner cutting off "Compacting..." when your `spinnerVerbs` setting replaces the built-in verbs with short ones +- [VSCode] Changed the message shown when a session does not start in time and no hook is running: it now leads with the output logs and lists causes instead of pointing to sign-in and network first +- [Cloud sessions] Fixed the Cloud environments admin page wrongly refusing to save an existing environment with an "installs packages" error +- [Cloud sessions] Improved deleting a self-hosted environment so the dialog and error messages say what blocks the delete and what it will affect +- [Claude Tag] Added public Slack channels Claude hasn't joined to the Claude Tag admin Add place search, so admins can set one up from there +- [Claude Tag] Fixed Claude Tag access bundles so a repository that moved to another GitHub account can be added again +- [Claude Tag] Fixed a routine set up in a Slack DM thread no longer posting after another routine in that thread restarted the conversation; both now keep posting there +- [Claude Tag] Fixed routines set up in a Slack thread reporting success without posting after the conversation ended; those runs are now skipped and the creator is told +- [Claude Tag] Improved Claude Tag admin pages in large organizations so plugin, skill and bundle edits work while the channel list is still loading +- [Code Review] Fixed Code Review sometimes not reviewing the newest commit when several pushes landed on a pull request during a review +- [Code Review] Changed Code Review re-reviews so they no longer open with LGTM while earlier blocking findings are still open + ## 2.1.304 - Added a transcript line when a plugin that runs first skips one of your mod's hooks, naming the event and the plugin diff --git a/content/claude-code-manifest.json b/content/claude-code-manifest.json index 60a06042ea..33d1f7ce63 100644 --- a/content/claude-code-manifest.json +++ b/content/claude-code-manifest.json @@ -6,17 +6,17 @@ "url": "https://github.com/anthropics/claude-code/issues" }, "dist": { - "shasum": "092db636a34f0b8e9e9bba2de097dd75561cc87e", - "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.304.tgz", + "shasum": "19ee36814fd23f840c75f3a61600c413ce75c56f", + "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.306.tgz", "fileCount": 7, - "integrity": "sha512-oAD2KLEUdAbsAMxQMWYHq/AHCUlkYuZ80ovkL0mVSy07z+EeDhIo19/XpRA2NVI+9/LZCC+NXCJm+/hIvhNWWQ==", + "integrity": "sha512-7biQtEqwnigGbezCgmpkGfcleiRddNy7Z9FXLCxmaizBnC11Qk9dxnr6mPBMX5eTRbnoMGHHIsL5M5el1vWhlw==", "signatures": [ { - "sig": "MEQCIG3xhykDF/ZXYD55GHMB+WqjE+SIeGTaL6Qabgs4kzpjAiAfeLMb+qKGwW79clB0thVKRch5lhPxBeAFC8iEzkqJ2g==", + "sig": "MEUCIQDy0FeyTw4LcVBoGJyYGiFA6lZA7SgPSzShikECkcc4MgIgIiGXz688/KPhdXED/BN0llQXZ4yvDFYcgjV63idj80U=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" }, { - "sig": "MEUCIHBBTUZ4NU6tKbF3dtuVkr93eNLlbIc138xc/N3K/pddAiEAm/osWGGMQlx68W+DOPdv15zIz3vq8K2yWpaSVVuCD0I=", + "sig": "MEQCIDITF2mLAoQc0wC7N+Rk3l9OnK1OGnDayUMFW7lcyYZCAiAPOKHy2B9NxDICTHOH9KOYqKbzXuatDtH3k+1LxP7S2g==", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" } ], @@ -24,7 +24,7 @@ }, "name": "@anthropic-ai/claude-code", "type": "module", - "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.304.tgz", + "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.306.tgz", "author": { "name": "Anthropic", "email": "support@anthropic.com" @@ -46,8 +46,8 @@ } }, "homepage": "https://github.com/anthropics/claude-code", - "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.304.tgz", - "_integrity": "sha512-oAD2KLEUdAbsAMxQMWYHq/AHCUlkYuZ80ovkL0mVSy07z+EeDhIo19/XpRA2NVI+9/LZCC+NXCJm+/hIvhNWWQ==", + "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.306.tgz", + "_integrity": "sha512-7biQtEqwnigGbezCgmpkGfcleiRddNy7Z9FXLCxmaizBnC11Qk9dxnr6mPBMX5eTRbnoMGHHIsL5M5el1vWhlw==", "_npmVersion": "11.19.0", "description": "Use Claude, Anthropic's AI assistant, right from your terminal. Claude can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.", "directories": {}, @@ -116,20 +116,21 @@ "_nodeVersion": "24.21.0", "dependencies": {}, "_hasShrinkwrap": false, + "readmeFilename": "README.md", "optionalDependencies": { - "@anthropic-ai/claude-code-linux-x64": "2.1.304", - "@anthropic-ai/claude-code-win32-x64": "2.1.304", - "@anthropic-ai/claude-code-darwin-x64": "2.1.304", - "@anthropic-ai/claude-code-linux-arm64": "2.1.304", - "@anthropic-ai/claude-code-win32-arm64": "2.1.304", - "@anthropic-ai/claude-code-darwin-arm64": "2.1.304", - "@anthropic-ai/claude-code-linux-x64-musl": "2.1.304", - "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.304" + "@anthropic-ai/claude-code-linux-x64": "2.1.306", + "@anthropic-ai/claude-code-win32-x64": "2.1.306", + "@anthropic-ai/claude-code-darwin-x64": "2.1.306", + "@anthropic-ai/claude-code-linux-arm64": "2.1.306", + "@anthropic-ai/claude-code-win32-arm64": "2.1.306", + "@anthropic-ai/claude-code-darwin-arm64": "2.1.306", + "@anthropic-ai/claude-code-linux-x64-musl": "2.1.306", + "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.306" }, "_npmOperationalInternal": { - "tmp": "tmp/claude-code_2.1.304_1792439235231_0.135431666723554", + "tmp": "tmp/claude-code_2.1.306_1792549727402_0.7862613812864887", "host": "s3://npm-registry-packages-npm-production" }, - "_id": "@anthropic-ai/claude-code@2.1.304", - "version": "2.1.304" + "_id": "@anthropic-ai/claude-code@2.1.306", + "version": "2.1.306" } \ No newline at end of file diff --git a/content/claude/claude-science/admin-controls.md b/content/claude/claude-science/admin-controls.md index 3e2052697a..057ba54b84 100644 --- a/content/claude/claude-science/admin-controls.md +++ b/content/claude/claude-science/admin-controls.md @@ -35,7 +35,7 @@ Each control starts at a default that depends on your plan and on whether HIPAA Changes you save reach each member's running app within a few minutes and apply on the member's next turn or request. An app that is closed picks up your changes when it next starts, and an app that can't reach claude.ai keeps applying the last settings it received. -The settings apply to members running version 0.1.41 or later of the Claude Science app. A member still on an earlier version isn't governed by these settings until the member updates (see [Required updates](/docs/claude-science/manage-on-devices#required-updates)). For Team and Enterprise organizations, Claude Science enforces a minimum version of 0.1.41. A member on an older version sees a notice that the version is no longer supported, with an **Update now** button. If the update doesn't complete after a second try, the member can install the current version from the [Claude Science download page](https://claude.com/product/claude-science) (on Linux, rerun the install command in [Get started](/docs/claude-science/get-started#install)); projects and settings on the computer are kept. +The settings apply to members running version 0.1.41 or later of the Claude Science app. A member still on an earlier version isn't governed by these settings until the member updates (see [Required updates](/docs/claude-science/manage-on-devices#required-updates)). For Team and Enterprise organizations, Claude Science enforces a minimum version of 0.1.41. A member on an older version sees a notice that the version is no longer supported, with an **Update now** button. If the update doesn't complete after a second try, [Update Claude Science](/docs/claude-science/update-claude-science) has the member's next steps for each kind of install; projects and settings on the computer are kept. Each member's app also has to reach claude.ai regularly to confirm these settings. If an app can't reach claude.ai for 72 hours, it pauses memory, custom connectors, SSH hosts, Modal, model endpoints, adding custom skills, and accessing previously saved Claude Science work until it reconnects, and keeps applying the network allowlist, package mirror, and Featured connector and skill choices it last received. diff --git a/content/claude/claude-science/changelog.md b/content/claude/claude-science/changelog.md index 06654dac46..c8ba4a6dfc 100644 --- a/content/claude/claude-science/changelog.md +++ b/content/claude/claude-science/changelog.md @@ -6,6 +6,14 @@ > Release notes for Claude Science, including new features, improvements, and bug fixes by version. +**0.1.68** + +* **Export session** files now list the approval decisions made in the session from this version on: whether each action was approved, how it was settled, and when +* From this version on, when an update is required while sessions are running, you can stop them and update in one step, and resume them afterwards +* Mac and Linux: the starter Python and R environments, and the environments Claude Science sets up for connectors and compute providers, now keep their own downloaded packages. The first conda install into them after you update downloads packages again, so it needs a network connection and takes longer, and Claude Science can use about 3 GB more disk space +* After an update, the Example project lists the current examples and your own sessions. Examples from earlier versions are no longer listed unless you pinned them, moved them, or added your own messages to them. Nothing is deleted +* Bug fixes and reliability improvements + **0.1.67** * The Example project now holds nine new example sessions from various scientific fields diff --git a/content/claude/claude-science/configuration-file-reference.md b/content/claude/claude-science/configuration-file-reference.md index 1b72ec53c0..54635783a5 100644 --- a/content/claude/claude-science/configuration-file-reference.md +++ b/content/claude/claude-science/configuration-file-reference.md @@ -22,7 +22,7 @@ The `[network]` table configures the app's own connections. | - | - | - | - | | `proxy` | string (URL) | unset | The outbound proxy for the app's HTTP and HTTPS connections, for example `http://proxy.example.corp:8080`. Supply Basic-authentication credentials in the address. An `https://` (TLS-to-proxy) address applies to the app's own connections only; sandboxed package downloads connect directly when the proxy is `https://`, so prefer `http://`. A proxy variable in the app's environment (including `ALL_PROXY`) takes precedence over this key, which takes precedence over the Settings proxy field and the proxy detected from macOS or Windows system settings. On a Mac where Claude Science opens in its own window, the app's own updates use the proxy in macOS network settings instead (see [Proxy and certificates for updates in the Mac app window](/docs/claude-science/corporate-networks#proxy-and-certificates-for-updates-in-the-mac-app-window)). | | `no_proxy` | string (comma-separated) | unset | Hosts that bypass the proxy, as exact hostnames or domain suffixes in one comma-separated string, for example `".example.corp,registry.example.corp"`. Combined with the `NO_PROXY` environment variable and, when the macOS or Windows system settings supply the proxy address, the system's bypass list. Loopback addresses always bypass the proxy. | -| `ca_bundle` | string (absolute path) | unset | PEM file added to the app's default TLS trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage) access from Settings (Amazon S3, S3-compatible stores, and Google Cloud Storage with an HMAC key); use it for a corporate root behind TLS inspection. It covers the app's own connections only, while package downloads use `[conda] ca_bundle`. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead of this file. The value must be an absolute path outside the app's data directory (`~/.claude-science`), temporary directories, and any directory you have granted Claude write access to; a system location such as `/etc/claude-science/corporate-ca.pem`, or a folder under `C:\ProgramData` on Windows, is recommended. The file must exist, parse as a PEM bundle, and contain no private key; a failing value is ignored with a warning. On Windows, when this key and `[conda] ca_bundle` are both unset, the roots in the computer's Trusted Root Certification Authorities store are trusted automatically instead. | +| `ca_bundle` | string (absolute path) | unset | PEM file added to the app's default TLS trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage) access from Settings (Amazon S3, S3-compatible stores, Azure Blob Storage, and Google Cloud Storage); use it for a corporate root behind TLS inspection. It covers the app's own connections only, while package downloads use `[conda] ca_bundle`. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead of this file. The value must be an absolute path outside the app's data directory (`~/.claude-science`), temporary directories, and any directory you have granted Claude write access to; a system location such as `/etc/claude-science/corporate-ca.pem`, or a folder under `C:\ProgramData` on Windows, is recommended. The file must exist, parse as a PEM bundle, and contain no private key; a failing value is ignored with a warning. On Windows, when this key and `[conda] ca_bundle` are both unset, the roots in the computer's Trusted Root Certification Authorities store are trusted automatically instead. | | `mcp_x509_strict` | `"auto"`, `"relaxed"`, or `"strict"` | `"auto"` | How strictly local connectors check a corporate certificate's profile. With `"auto"`, Claude Science relaxes the strict check when it detects TLS inspection from a configured `[network] ca_bundle`. Connectors pick up a change at their next relaunch. | ### Package download keys diff --git a/content/claude/claude-science/corporate-networks.md b/content/claude/claude-science/corporate-networks.md index 634a863974..e7ddec634f 100644 --- a/content/claude/claude-science/corporate-networks.md +++ b/content/claude/claude-science/corporate-networks.md @@ -195,7 +195,7 @@ Two settings carry the corporate root and behave differently. Set the one that m ### Corporate root for app connections -The `[network] ca_bundle` key in `config.toml` points at a PEM file whose certificates Claude Science adds to its default trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage) access from Settings. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead (see [Proxy and certificates for updates in the Mac app window](#proxy-and-certificates-for-updates-in-the-mac-app-window)). For cloud storage, the corporate root applies to Amazon S3 and S3-compatible connections, and to Google Cloud Storage connections that use an HMAC key. The public roots stay in place, so the file holds only your corporate root. The path rules are in the [configuration file reference](/docs/claude-science/configuration-file-reference#app-connection-keys). A failing value is ignored with a warning rather than stopping the app, so a sign-in error behind inspection usually means the bundle did not load, and the app re-reads the bundle every few minutes (about every 30 minutes on Windows), so a corrected file takes effect without a restart. When you deploy a `config.toml`, deploy the bundle files alongside it. +The `[network] ca_bundle` key in `config.toml` points at a PEM file whose certificates Claude Science adds to its default trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage) access from Settings. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead (see [Proxy and certificates for updates in the Mac app window](#proxy-and-certificates-for-updates-in-the-mac-app-window)). For cloud storage, the corporate root applies to Amazon S3 and S3-compatible connections, to Azure Blob Storage connections, and to Google Cloud Storage connections. The public roots stay in place, so the file holds only your corporate root. The path rules are in the [configuration file reference](/docs/claude-science/configuration-file-reference#app-connection-keys). A failing value is ignored with a warning rather than stopping the app, so a sign-in error behind inspection usually means the bundle did not load, and the app re-reads the bundle every few minutes (about every 30 minutes on Windows), so a corrected file takes effect without a restart. When you deploy a `config.toml`, deploy the bundle files alongside it. On Windows, when neither `[network] ca_bundle` nor `[conda] ca_bundle` (the **CA bundle path** field in **Settings**) is set, Claude Science automatically trusts the root certificates installed for the whole computer (the computer's **Trusted Root Certification Authorities** store, not the current user's) and rechecks that store about every 30 minutes, so a PC whose device management already installs your corporate root there needs no setting. Claude Science reads that store with Windows PowerShell, so on PCs where Windows PowerShell is blocked or restricted for users, set `[network] ca_bundle` for the app's own connections and `[conda] ca_bundle` for code inside sessions instead of relying on the store. If you do set `[network] ca_bundle` on Windows, the file is used instead of the store; write its path in single quotes, for example `'C:\ProgramData\corp\corporate-ca.pem'`, because a backslash inside double quotes is a TOML escape and a file that fails to parse stops Claude Science from starting. diff --git a/content/claude/claude-science/get-started.md b/content/claude/claude-science/get-started.md index 17e60114b1..9c4b4fc018 100644 --- a/content/claude/claude-science/get-started.md +++ b/content/claude/claude-science/get-started.md @@ -70,6 +70,8 @@ claude-science serve First launch prints a local URL right away, then continues setting up its starter Python and R environments. To run Claude Science on a remote server and use it from your computer, see [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server). +To update Claude Science later, or when it asks you to update, see [Update Claude Science](/docs/claude-science/update-claude-science). + > [!NOTE] > > Claude Science is a local application, not a website, so there's no public URL to visit. On Windows it opens in its own window, and on Linux it opens in a browser tab. On a Mac it opens in a browser tab, or in its own window once an update has switched it over (see [Claude Science in its own window on macOS](/docs/claude-science/mac-app-window)). Open it from the application itself: Claude Science in Applications or the Dock on macOS, the Start menu on Windows, or the `claude-science` command on Linux. On a remote server, the sign-in link reaches your browser through an SSH tunnel; see [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server). diff --git a/content/claude/claude-science/run-on-remote-linux-server.md b/content/claude/claude-science/run-on-remote-linux-server.md index dd5733fe33..8159121f25 100644 --- a/content/claude/claude-science/run-on-remote-linux-server.md +++ b/content/claude/claude-science/run-on-remote-linux-server.md @@ -12,7 +12,7 @@ Claude Science runs on a remote Linux server (a cloud VM or a lab machine) the s > > This page covers running all of Claude Science on a remote machine. To keep Claude Science on your own computer and have it run jobs on a machine you reach over SSH, see [Remote compute clusters](/docs/claude-science/remote-compute-clusters). -The server needs x64 Linux on a glibc-based distribution (arm64 and musl-based distributions such as Alpine aren't supported), about 5 GB of free disk space, and the system packages below. Your Claude account needs a Pro, Max, Team, or Enterprise plan; see [Requirements](/docs/claude-science/overview#requirements). +The server needs x64 Linux on a glibc-based distribution (arm64 and musl-based distributions such as Alpine aren't supported), about 10 GB of free disk space, and the system packages below. Your Claude account needs a Pro, Max, Team, or Enterprise plan; see [Requirements](/docs/claude-science/overview#requirements). ## Install dependencies @@ -44,7 +44,7 @@ If you run Claude Science on a cluster's login node, these points differ from a * Check your site's rules first. Claude runs its analysis code on the machine where Claude Science runs, and many sites limit long-running or heavy work on login nodes. * Choose your own port, because someone else may already be using the default port, 8000. [Start Claude Science](#start-claude-science) shows how to pass a port. After you start it, `claude-science url` prints both ports. Forward each one with that number on both sides. * If the cluster's address sends you to one of several login nodes, connect the tunnel to the node where Claude Science is running. Running `hostname` on that node prints its name. -* Claude Science needs about 5 GB in your home folder for its environments, even if you keep your projects elsewhere. +* Claude Science needs about 10 GB free in your home folder for its first launch, and more for each environment Claude creates, even if you keep your projects elsewhere. ## Install Claude Science @@ -81,7 +81,7 @@ On the server: claude-science serve --no-browser ``` -First launch prints the sign-in link, of the form `http://localhost:8000/?nonce=...`, right away, and continues setting up its starter Python and R environments; the setup can take a few minutes and about 5 GB of disk. If port 8000 or 8001 is taken on either machine, pass a different port to serve (for example `--port 8765`) and change the `ssh -L` forwards to match. Previews then use the next port up, 8766, if it is free. +First launch prints the sign-in link, of the form `http://localhost:8000/?nonce=...`, right away, and continues setting up its starter Python and R environments; the setup can take a few minutes and about 9 GB of disk. If port 8000 or 8001 is taken on either machine, pass a different port to serve (for example `--port 8765`) and change the `ssh -L` forwards to match. Previews then use the next port up, 8766, if it is free. To run it in the background instead, use `claude-science serve --no-browser --detached`. `claude-science status` reports whether it's running, and `claude-science stop` stops it. diff --git a/content/claude/claude-science/troubleshooting.md b/content/claude/claude-science/troubleshooting.md index cce84cd11e..395144c72a 100644 --- a/content/claude/claude-science/troubleshooting.md +++ b/content/claude/claude-science/troubleshooting.md @@ -78,6 +78,8 @@ If holding the pointer over the microphone button shows "No microphone was found ## Updates +If Claude Science asks you to update, see [Update Claude Science](/docs/claude-science/update-claude-science). + Claude Science shows updates and their errors in these places: * **In a browser tab and in the Windows app**: an "Update available" notice appears when an update is ready. If installing the update fails, that notice shows the error. diff --git a/content/claude/claude-science/update-claude-science.md b/content/claude/claude-science/update-claude-science.md new file mode 100644 index 0000000000..8830fa77e0 --- /dev/null +++ b/content/claude/claude-science/update-claude-science.md @@ -0,0 +1,57 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://claude.com/docs/llms.txt +> Use this file to discover all available pages before exploring further. + +# Update Claude Science + +> Install the latest version of Claude Science on Mac, Windows, or Linux, and get past an Update required message or an update that fails. + +Your projects, conversations, and artifacts stay in your data folder. Updating stops running sessions, so afterward select **Resume** in any session that shows it above the message box. + +## Update from the app + +1. Select **Update now** in the **Update required** box, or **Restart to update** on the "Update available" notice. With neither, select **Check for updates** under **Settings > General > About**, then **Restart to update**. +2. If sessions are still running, select **Stop & restart**, which stops them. +3. Leave Claude Science open while it downloads and restarts. + +## A Mac app in its own window + +If **Update now** shows an error in red: + +1. Quit Claude Science with Command-Q, which stops running sessions. Closing the window isn't enough. +2. Wait ten seconds, open Claude Science from your **Applications** folder, and send a message. +3. If the **Update required** box comes back, choose **Claude Science > Check for App Updates…** in the menu bar. When the window says "Ready to update", select **Restart to update**. + +> [!WARNING] +> +> Download Claude Science again only if that window says "install the newest Claude Science app over this one", or if Claude Science won't open and says "This copy of Claude Science can't be opened". Then [install Claude Science again](#install-claude-science-again). The download is the app that opens in a browser tab, not the app you have. + +## From a terminal or on a server + +Run these commands in a terminal on the computer where Claude Science runs. The second one stops running sessions. + +```bash theme={null} +claude-science update +claude-science stop +``` + +If `claude-science stop` says "Not killing pid", press Ctrl-C in the terminal where Claude Science is running, or restart the computer. If it tells you to remove a file, don't. Then start Claude Science the way you usually do, and open the new link that it prints. + +## Install Claude Science again + +On a Mac where Claude Science opens in its own window, do this only if [the steps for that Mac](#a-mac-app-in-its-own-window) sent you here, and [get help](#if-the-update-still-fails) if they didn't. Installing again doesn't replace your data folder. If your projects don't appear afterward, don't delete any folders, and get help. + +1. Quit Claude Science. On a Mac, Control-click **Claude Science** in the Dock and choose **Quit**. On Windows, right-click its icon in the notification area of the taskbar and choose **Quit Claude Science**. +2. Download the installer from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open it. On a Mac, choose **Install**. + +On Linux, run this installer in a terminal instead, then run `claude-science stop` and start Claude Science again: + +```bash theme={null} +curl -fsSL https://claude.ai/install-claude-science.sh | bash +``` + +## If the update still fails + +* **Claude Science still asks you to update**: on a Mac where Claude Science opens in its own window, quit it with Command-Q, wait ten seconds, then open it from your **Applications** folder. Anywhere else, run `claude-science stop` in a terminal (on a Mac or Linux, if the command isn't found, type `~/.local/bin/claude-science stop`), quit Claude Science if you're on a Mac, then open it again. If `claude-science stop` says "Not killing pid", follow [the terminal steps](#from-a-terminal-or-on-a-server). +* **The message says "restart aborted"**: follow [restart aborted](/docs/claude-science/troubleshooting#restart-aborted). +* **Anything else**: on a Mac where Claude Science opens in its own window, contact [Claude support](https://support.claude.com/en/articles/9015913-how-to-get-support) with your version and the exact words you see. Anywhere else, [install Claude Science again](#install-claude-science-again), and contact support if that doesn't work. diff --git a/content/claude/cowork/changelog.md b/content/claude/cowork/changelog.md index 95d10de4ce..6cbc4d0bdd 100644 --- a/content/claude/cowork/changelog.md +++ b/content/claude/cowork/changelog.md @@ -27,7 +27,11 @@ Bundled Claude Code version: 2.1.304. * (breaking) Changed local sessions where claude.ai admin settings apply: a Claude Code managed-settings file on the computer that fails to load now keeps Code sessions from starting or resuming on that computer until it is fixed. * (breaking) Changed local sessions where claude.ai admin settings apply: the local-session ban (`disableDesktopLocalSessions`) in the computer's own Claude Code managed settings now applies too, so Code sessions on that computer no longer start or resume; sessions already running continue. * (breaking) Changed saved SSH passwords where claude.ai admin settings apply: the saved-password ban (`disableSshSavedPasswords`) in the computer's own Claude Code managed settings now applies too; passwords already saved are kept but are not offered or used. +* (breaking) Changed SSH sessions on macOS and Linux hosts to not start when the host can't report the real location of one of the session's folders. The error says to start a new session from paths with no symbolic links. +* (breaking) Changed SSH sessions to stop starting the MCP servers from your desktop settings on a remote host whose administrator uses Claude Code's `managed-mcp.json` to allow only their own servers. * (breaking) Changed SSH where claude.ai admin settings apply: hosts missing from `sshHostAllowlist` in the computer's own Claude Code managed settings are refused, whatever admin settings allow. An empty or malformed list turns SSH off; with no list there, only the admin settings list applies. +* (breaking) Changed the Browser pane in SSH sessions to keep sign-ins separate for each session and only until you quit the app, to open localhost (your computer) and private-network addresses only when you type them, and to no longer open intranet sites at public-looking names, even when typed. +* (breaking) Changed WSL sessions, and SSH sessions on macOS and Linux hosts, to stop using an added folder whose saved path is relative, starts with `//`, or starts or ends with a space, the next time the session starts. The folder stays listed in the session. * Removed "Download file" for script files such as .js, .bat and .ps1 shown as text in SSH, WSL, cloud and Remote Control sessions; Copy file contents remains. * Fixed an app update or restart ending work on an SSH host: sessions in the Windows app now carry on with a task still running on the host instead of starting it afresh, and on macOS and Linux a restart after an update no longer ends a task, or drops a permission prompt, older than three days. * Fixed messages queued or sent in a local session while Claude was working being lost when the app quit, updated or crashed; they now come back at the next launch, held until you send them. diff --git a/content/claude/third-party/claude-desktop/configuration.md b/content/claude/third-party/claude-desktop/configuration.md index 0588a16ad4..8021a608af 100644 --- a/content/claude/third-party/claude-desktop/configuration.md +++ b/content/claude/third-party/claude-desktop/configuration.md @@ -324,7 +324,7 @@ The reference below is generated from the configuration schema and grouped to ma > > **Extended context** (`supports1m`) is a capability assertion you make about your deployment; only set it for models you've confirmed support the 1M-token window: > -> ```json theme={null} theme={null} theme={null} +> ```json theme={null} > [{"name": "claude-sonnet-5", "supports1m": true}, "claude-opus-4-8"] > ``` > @@ -332,13 +332,13 @@ The reference below is generated from the configuration schema and grouped to ma > > **Display label** (`labelOverride`) is for IDs the picker can't derive a friendly name from (Bedrock ARNs, gateway routing aliases). Display-only; `name` is still what the app sends: > -> ```json theme={null} theme={null} theme={null} +> ```json theme={null} > [{"name": "arn:aws:bedrock:us-east-1:123:application-inference-profile/abc", "labelOverride": "Claude Opus (Prod)"}] > ``` > > **Tier mapping** (`anthropicFamilyTier`) tells the app which Claude tier (`haiku`/`sonnet`/`opus`/`fable`/`mythos`) an entry stands in for, so bare tier aliases (e.g. in Code sessions) resolve to your model. `isFamilyDefault: true` picks the winner when several entries share a tier: > -> ```json theme={null} theme={null} theme={null} +> ```json theme={null} > [{"name": "us.anthropic.claude-opus-4-8", "anthropicFamilyTier": "opus"}] > ``` > @@ -374,7 +374,7 @@ The reference below is generated from the configuration schema and grouped to ma > > Each row replaces Anthropic list price for one model in the Usage page's estimate, in USD per million tokens (`inputPerMtok`, `outputPerMtok`, `cacheReadPerMtok`, `cacheWritePerMtok`, all four required; `cacheWritePerMtok` prices both 5-minute and 1-hour cache writes); rows apply only while `inferenceModelPricingEnabled` is `true` and do not turn the estimate on by themselves. Mirrors Claude Code's managed `modelPricing.overrides`, and `name` is matched the same way: a built-in Claude model ID (e.g. `claude-sonnet-4-6`, or its Bedrock, Vertex, or Foundry ID) covers every dated and provider spelling of that model; any other value (a gateway alias, an inference-profile ARN) matches that exact ID only (case-insensitive) and wins over a built-in row. An ID Claude Code cannot map to a Claude model at all gets no estimate until a row here prices it. `inferenceModelPricingMultiplier` still applies on top of a row. > -> ```json theme={null} theme={null} theme={null} +> ```json theme={null} > {"inferenceModelPricingEnabled": true, "inferenceModelPricingMultiplier": 0.9, "inferenceModelPricing": [{"name": "claude-sonnet-4-6", "inputPerMtok": 2.4, "outputPerMtok": 12, "cacheReadPerMtok": 0.24, "cacheWritePerMtok": 3}]} > ``` > @@ -1156,7 +1156,7 @@ The reference below is generated from the configuration schema and grouped to ma > > Locks per-tool permissions on MCP servers provided by any installed plugin — from the org-plugins directory or a plugin marketplace, remote or run locally — one entry per server name (compared case-insensitively): > -> ```json theme={null} theme={null} theme={null} +> ```json theme={null} > [{"serverName": "internal-search", "tools": [{"toolName": "delete_document", "permission": "blocked"}]}] > ``` > diff --git a/content/en/about-claude/models/optimizing-for-cost-and-intelligence.md b/content/en/about-claude/models/optimizing-for-cost-and-intelligence.md index f420d44c9a..7aa94492cd 100644 --- a/content/en/about-claude/models/optimizing-for-cost-and-intelligence.md +++ b/content/en/about-claude/models/optimizing-for-cost-and-intelligence.md @@ -480,6 +480,7 @@ The following chart plots rubric score against cost per task for Claude Fable 5. * Sweep two or three effort levels on a sample of your own traffic, each in a separate session: changing top-level effort mid-session [invalidates the cache](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#cache-repeated-context) and distorts the comparison. The curve is the baseline any multi-model strategy must beat ([step 2 of measuring on your own workload](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#measure-on-your-own-workload)). * On long-horizon coding, effort is a real tradeoff, which [re-running failures at higher effort](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#re-run-failures-at-higher-effort) turns back into a saving. At `medium`, Claude Sonnet 5.5 scored about 7 points lower than at its default, `high`, on the SWE-bench Pro[3](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) subset for about 59% of the cost per task (2 runs each), and scored 62.7% compared with 77.8% on the internal agentic-coding benchmark[11](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs) (1 attempt per task). +* At `xhigh` and `max`, Claude Sonnet 5.5 can start its own rounds of review after it finishes a task, which takes more time and tokens. To keep that work on the task, add the prompt under "Thoroughness at `xhigh` and `max` effort" in [Prompting Claude Sonnet 5.5](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-sonnet-5-5#steer-initiative-and-scope) to your system prompt. * On research tasks, measure the model you ship. Claude Fable 5.1 scored nearly the same from `low` to `high` on DeepResearch Bench II; Claude Opus 5.5 scored 13.3 points lower at `low` than at `medium` on DRACO[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs). The two results come from different models on different benchmarks, so they show that the answer varies, not why. * At `low`, Claude Opus 5.5's typical task took 84% less time than at `medium` on DRACO[21](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), 30% less on HLE[22](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), and 47% less on an internal set of physics problems[23](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), and it scored 13.3, 3.4, and 14.0 points lower (3, 3, and 4 attempts per task). * On an internal defect-search benchmark for work larger than one context window[8](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#refs), Claude Fable 5.1 took 15.2, 17.5, and 19.9 hours per run at `low`, `medium`, and `high` (3 runs each). To save time, also compare lower effort with the two changes in [Show the model elapsed time](https://platform.claude.com/docs/en/about-claude/models/optimizing-for-cost-and-intelligence#show-the-model-elapsed-time): `low` effort saved more time, and the changes kept more of the score. diff --git a/content/en/agents-and-tools/agent-skills/claude-api-skill.md b/content/en/agents-and-tools/agent-skills/claude-api-skill.md index 76efb6bd56..dd64a568df 100644 --- a/content/en/agents-and-tools/agent-skills/claude-api-skill.md +++ b/content/en/agents-and-tools/agent-skills/claude-api-skill.md @@ -34,6 +34,7 @@ When triggered, the skill equips Claude with: **For Managed Agents (beta):** * **Onboarding flow:** An interview-driven walkthrough for setting up a new Managed Agent from scratch, available through the `/claude-api managed-agents-onboard` subcommand +* **Security guide check:** A read-only check of an agent's settings against [Secure your Managed Agents deployment](https://platform.claude.com/docs/en/managed-agents/secure-deployment), available through the `/claude-api managed-agents-secure` subcommand of the skill bundled with Claude Code * **Language-specific Managed Agents docs:** Creating persistent agents, starting sessions, streaming events, and handling tool confirmations for Python, TypeScript, C#, Go, Java, PHP, Ruby, and cURL * **Client patterns:** Lossless stream reconnect, `processed_at` queued/processed gate, interrupt handling, file-mount gotchas, and credential handling * **Deployment constraints:** Managed Agents is available on the Claude API and [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws) only (not on Amazon Bedrock, Google Cloud, or Microsoft Foundry). The skill routes other deployments to the Messages API and tool use instead. @@ -186,6 +187,20 @@ The skill runs an interview that walks you through the Managed Agents mental mod Managed Agents requires the `managed-agents-2026-04-01` beta header, which the SDK sets automatically for all `client.beta.agents.*`, `client.beta.environments.*`, `client.beta.sessions.*`, and `client.beta.vaults.*` calls. +## Checking a Managed Agents deployment + +To compare an agent's settings with the guide [Secure your Managed Agents deployment](https://platform.claude.com/docs/en/managed-agents/secure-deployment), invoke the `managed-agents-secure` subcommand of the skill bundled with Claude Code: + +Let Claude Code check your agent against the security guide + +```text +/claude-api managed-agents-secure +``` + +Add the agent's ID after the subcommand, or the skill asks for it. The skill fetches the guide, then reads the agent, its recent sessions and [scheduled deployments](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments), and the environments and vaults they use. Unless you ask it not to, it also searches the current folder's files for text that looks like a secret key. It lists only the names of matching files. It changes nothing. The report lists each setting to change with its recommended value, the questions only you can answer, and what it did not read. + +The skill reads the agent with the `ant` CLI, so first set up the CLI for the agent's workspace, as the [CLI quickstart](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart) shows. It needs a current version of Claude Code; run `claude update` to upgrade. + ## Example usage Here are examples of tasks the skill helps Claude handle: diff --git a/content/en/agents-and-tools/mcp-connector.md b/content/en/agents-and-tools/mcp-connector.md index a510ca89ec..1ccd52a0e9 100644 --- a/content/en/agents-and-tools/mcp-connector.md +++ b/content/en/agents-and-tools/mcp-connector.md @@ -319,7 +319,7 @@ Each MCP server in the `mcp_servers` array defines the connection details: | Property | Type | Required | Description | | --------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `type` | string | Yes | Currently only "url" is supported. | -| `url` | string | Yes | The URL of the MCP server. Must start with https\://. | +| `url` | string | Yes | The URL of the MCP server. Must start with `https://`. | | `name` | string | Yes | A unique identifier for this MCP server. Must be referenced by exactly one MCPToolset in the `tools` array. | | `authorization_token` | string | No | OAuth authorization token if required by the MCP server. See [Authentication](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector#authentication) for how to obtain one, or the [MCP specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization) for protocol details. | @@ -1276,8 +1276,8 @@ Install both the Anthropic SDK and the MCP SDK: ```kotlin - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-mcp:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-mcp:2.75.0") ``` @@ -1286,12 +1286,12 @@ Install both the Anthropic SDK and the MCP SDK: com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-mcp - 2.74.0 + 2.75.0 ``` diff --git a/content/en/api/beta.md b/content/en/api/beta.md index 64078e5a51..3028df57be 100644 --- a/content/en/api/beta.md +++ b/content/en/api/beta.md @@ -9,7 +9,7 @@ url: https://platform.claude.com/docs/en/api/beta ### Anthropic Beta -- `AnthropicBeta = string or "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 48 more` +- `AnthropicBeta = string or "message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 49 more` - `string` @@ -115,6 +115,8 @@ url: https://platform.claude.com/docs/en/api/beta - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Beta API Error - `BetaAPIError object` @@ -593,6 +595,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1074,6 +1078,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1534,9 +1540,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -5179,8 +5187,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -5229,7 +5251,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -5237,6 +5263,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -8816,6 +8848,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8826,6 +8862,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8836,6 +8876,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8846,6 +8890,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8856,12 +8904,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -10062,9 +10122,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -14154,9 +14216,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -17819,8 +17883,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -17869,7 +17947,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -17877,6 +17959,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -18582,6 +18670,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18872,6 +18962,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19171,6 +19263,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19452,6 +19546,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19625,6 +19721,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22817,6 +22915,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -22827,6 +22929,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -22837,6 +22943,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -22847,6 +22957,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -22857,12 +22971,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -23733,6 +23859,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25749,6 +25877,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26799,6 +26929,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27832,6 +27964,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29823,6 +29957,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30871,6 +31007,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31909,6 +32047,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32386,6 +32526,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32719,6 +32861,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33043,6 +33187,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33489,6 +33635,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33656,6 +33804,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33987,6 +34137,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34251,6 +34403,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID": optional string` Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -34501,6 +34655,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWork object` @@ -34758,6 +34914,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWorkHeartbeatResponse object` @@ -34948,6 +35106,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35220,6 +35380,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWorkListResponse object` @@ -35475,6 +35637,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35735,6 +35899,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35918,6 +36084,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -38624,6 +38792,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -40121,6 +40291,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41604,6 +41776,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43673,6 +43847,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43834,6 +44010,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -45448,6 +45626,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -48551,6 +48731,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -49546,6 +49728,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52681,6 +52865,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52893,6 +53079,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53178,6 +53366,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53442,6 +53632,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53718,6 +53910,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53907,6 +54101,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54990,6 +55186,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -56064,6 +56262,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -57149,6 +57349,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -60264,6 +60466,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63395,6 +63599,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64587,6 +64793,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65326,6 +65534,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66056,6 +66266,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67196,6 +67408,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67927,6 +68141,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68320,6 +68536,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69051,6 +69269,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69834,6 +70054,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70235,6 +70457,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70623,6 +70847,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70849,6 +71075,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71055,6 +71283,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71252,6 +71482,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71468,6 +71700,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71633,6 +71867,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71833,6 +72069,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72359,6 +72597,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72692,6 +72932,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73016,6 +73258,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73489,6 +73733,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73658,6 +73904,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73983,6 +74231,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74132,11 +74382,11 @@ curl https://api.anthropic.com/v1/vaults/$VAULT_ID/credentials/$CREDENTIAL_ID/mc ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Headers @@ -74254,6 +74504,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74264,19 +74516,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. #### Returns @@ -74288,27 +74546,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74316,7 +74580,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74350,23 +74616,23 @@ curl https://api.anthropic.com/v1/memory_stores \ } ``` -### List memory stores +### List Memory Stores **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Query parameters - `"created_at[gte]": optional string` - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]": optional string` - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -74382,7 +74648,7 @@ List memory stores - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. #### Headers @@ -74500,6 +74766,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74516,27 +74784,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74544,13 +74818,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -74581,17 +74857,17 @@ curl https://api.anthropic.com/v1/memory_stores \ } ``` -### Retrieve a memory store +### Retrieve a Memory Store **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Path parameters - `memory_store_id: string` - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). #### Headers @@ -74709,6 +74985,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74725,27 +75003,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74753,7 +75037,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74783,17 +75069,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -### Update a memory store +### Update a Memory Store **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Path parameters - `memory_store_id: string` - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. #### Headers @@ -74911,6 +75199,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74921,17 +75211,21 @@ Update a memory store - `description: optional string or null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: optional map[string] or null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: optional string or null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -74945,27 +75239,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74973,7 +75273,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -75005,17 +75307,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -### Delete a memory store +### Delete a Memory Store **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Path parameters - `memory_store_id: string` - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. #### Headers @@ -75133,6 +75437,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75170,17 +75476,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -### Archive a memory store +### Archive a Memory Store **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Path parameters - `memory_store_id: string` - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. #### Headers @@ -75298,6 +75606,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75314,27 +75624,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -75342,7 +75658,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -75375,11 +75693,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/archive \ ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Path parameters @@ -75391,7 +75709,9 @@ Create a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75517,6 +75837,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75527,11 +75849,15 @@ Create a memory - `content: string or null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -75539,13 +75865,19 @@ Create a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -75553,7 +75885,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75569,7 +75901,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -75577,13 +75913,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75616,11 +75956,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -### List memories +### List Memories **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Path parameters @@ -75632,27 +75972,35 @@ List memories - `depth: optional number` - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: optional number` - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: optional string` - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: optional BetaManagedAgentsMemoryView` - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -75778,6 +76126,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75792,13 +76142,19 @@ List memories - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -75806,7 +76162,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75822,7 +76178,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -75830,17 +76190,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -75850,7 +76216,7 @@ List memories - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -75883,11 +76249,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -### Retrieve a memory +### Retrieve a Memory **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Path parameters @@ -75903,7 +76269,9 @@ Retrieve a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76029,6 +76397,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76039,13 +76409,19 @@ Retrieve a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -76053,7 +76429,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -76069,7 +76445,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -76077,13 +76457,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -76111,11 +76495,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -### Update a memory +### Update a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Path parameters @@ -76131,7 +76515,9 @@ Update a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76257,6 +76643,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76271,13 +76659,17 @@ Update a memory - `path: optional string or null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: optional BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -76289,13 +76681,19 @@ Update a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -76303,7 +76701,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -76319,7 +76717,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -76327,13 +76729,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -76363,11 +76769,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -### Delete a memory +### Delete a Memory **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Path parameters @@ -76503,6 +76909,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76513,7 +76921,11 @@ Delete a memory - `BetaManagedAgentsDeletedMemory object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -76542,11 +76954,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Path parameters @@ -76574,7 +76986,9 @@ List memory versions - `limit: optional number` - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -76582,7 +76996,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: optional BetaManagedAgentsMemoryVersionOperation` @@ -76614,7 +77028,9 @@ List memory versions - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76740,6 +77156,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76766,7 +77184,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -76804,7 +77224,11 @@ List memory versions - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -76860,7 +77284,11 @@ List memory versions - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -76870,7 +77298,7 @@ List memory versions - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -76912,11 +77340,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -### Retrieve a memory version +### Retrieve a Memory Version **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Path parameters @@ -76932,7 +77360,9 @@ Retrieve a memory version - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -77058,6 +77488,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77068,7 +77500,13 @@ Retrieve a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -77084,7 +77522,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -77122,7 +77562,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -77178,7 +77622,11 @@ Retrieve a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -77221,11 +77669,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -### Redact a memory version +### Redact a Memory Version **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Path parameters @@ -77353,6 +77801,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77363,7 +77813,13 @@ Redact a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -77379,7 +77835,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -77417,7 +77875,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -77473,7 +77935,11 @@ Redact a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -77641,6 +78107,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77898,6 +78366,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78134,6 +78604,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78276,6 +78748,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78501,6 +78975,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78665,6 +79141,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78928,6 +79406,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79171,6 +79651,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79401,6 +79883,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79575,6 +80059,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79798,6 +80284,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80016,6 +80504,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80166,6 +80656,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80371,6 +80863,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80430,7 +80924,7 @@ Create User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -80536,6 +81030,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80558,13 +81054,13 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -80624,7 +81120,7 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -80664,6 +81160,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80680,13 +81180,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -80698,11 +81198,11 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -80756,14 +81256,10 @@ Create User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -80773,9 +81269,15 @@ curl https://api.anthropic.com/v1/user_profiles \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345", - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "metadata": {} + "external_user_details": { + "account_status": "active", + "country": "US", + "entity_type": "business", + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User" }' ``` @@ -80786,6 +81288,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80797,15 +81300,14 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -80863,7 +81365,7 @@ List User Profiles - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -80969,6 +81471,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80999,6 +81503,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81015,13 +81523,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81033,11 +81541,11 @@ List User Profiles - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -81091,14 +81599,10 @@ List User Profiles - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string or null` Cursor for the next page, or `null` when there are no more results. @@ -81121,6 +81625,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81132,15 +81637,14 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -81169,7 +81673,7 @@ Get User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -81275,6 +81779,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81307,6 +81813,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81323,13 +81833,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81341,11 +81851,11 @@ Get User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -81399,14 +81909,10 @@ Get User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -81423,6 +81929,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81434,15 +81941,14 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -81468,7 +81974,7 @@ Update User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -81574,6 +82080,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81596,13 +82104,13 @@ Update User Profile - `external_id: optional string or null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -81662,7 +82170,7 @@ Update User Profile - `external_user_onboarded_at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -81702,6 +82210,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81718,13 +82230,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81736,11 +82248,11 @@ Update User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -81794,14 +82306,10 @@ Update User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -81811,7 +82319,9 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345" + "external_user_details": { + "account_status": "suspended" + } }' ``` @@ -81822,6 +82332,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81833,15 +82344,181 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Path parameters + +- `user_profile_id: string` + + The ID of the user profile to delete (`uprof_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `BetaDeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -81867,7 +82544,7 @@ Create Enrollment URL - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -81973,6 +82650,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81983,7 +82662,7 @@ Create Enrollment URL - `BetaUserProfileEnrollmentURL object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -82019,6 +82698,201 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Body parameters + +- `action: BetaUserProfileAction` + + The action that the person who opens the URL takes. + + - `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +#### Returns + +- `BetaUserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -82147,6 +83021,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82734,6 +83610,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83154,6 +84032,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83569,6 +84449,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83985,6 +84867,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84395,6 +85279,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84595,6 +85481,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84795,6 +85683,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84994,6 +85884,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85185,6 +86077,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85357,6 +86251,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85540,6 +86436,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85753,6 +86651,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85966,6 +86866,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -86176,6 +87078,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -87927,6 +88831,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_url: string` @@ -88327,6 +89233,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationIssuer` @@ -88638,6 +89546,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -88952,6 +89862,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `check_jti: optional boolean or null` @@ -89344,6 +90256,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -89662,6 +90576,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_id: string` @@ -90087,6 +91003,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRule` @@ -90398,6 +91316,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -90727,6 +91647,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `applies_to_all_workspaces: optional boolean or null` @@ -91128,6 +92050,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -91453,6 +92377,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -91662,6 +92588,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRuleWorkspace` @@ -91861,6 +92789,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "federation_rule_workspace_deleted"` @@ -92532,6 +93462,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `name: string` @@ -92793,6 +93725,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccount` @@ -93016,6 +93950,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccount object` @@ -93240,6 +94176,8 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `description: optional string or null` @@ -93482,6 +94420,8 @@ those rules first or change their target to another service account. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccount object` @@ -93711,6 +94651,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -93949,6 +94891,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -94159,6 +95103,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` @@ -94905,6 +95851,8 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `name: string` @@ -95881,6 +96829,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +### Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +#### Body parameters + +- `limits: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `BetaWorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `BetaOrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `BetaOrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `BetaWorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `BetaWorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -96475,6 +97695,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -96682,6 +97904,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `service_account_id: string` @@ -96905,6 +98129,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccountWorkspaceMember object` @@ -97105,6 +98331,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_role: BetaNoBillingWorkspaceRole` @@ -97322,6 +98550,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` @@ -97427,7 +98657,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` @@ -97986,6 +99216,8 @@ Get Messages Usage Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaMessagesUsageReport object` @@ -98601,6 +99833,8 @@ Get Cost Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaCostReport object` @@ -98909,6 +100143,8 @@ archived tunnels are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaOrganizationTunnel` @@ -99115,6 +100351,8 @@ Retrieve a single tunnel in the caller's organization by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnel object` @@ -99317,6 +100555,8 @@ tunnel returns the existing record unchanged. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnel object` @@ -99520,6 +100760,8 @@ access logs. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelToken object` @@ -99695,6 +100937,8 @@ restarted after rotation must use the new value. An optional - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `reason: optional string or null` @@ -99881,6 +101125,8 @@ holds at most two non-archived certificates. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `ca_certificate_pem: string` @@ -100113,6 +101359,8 @@ Archived certificates are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaOrganizationTunnelCertificate` @@ -100323,6 +101571,8 @@ Retrieve a single certificate registered on a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` @@ -100528,6 +101778,8 @@ certificate is added. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` @@ -104518,6 +105770,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `amount: string or null` @@ -105115,6 +106369,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaSpendLimit` @@ -108164,6 +109420,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `files: array of string` @@ -108567,6 +109825,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPlugin object` @@ -108966,6 +110226,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `served_version_id: string` @@ -109415,6 +110677,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPlugin` @@ -109814,6 +111078,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedPlugin object` @@ -109994,6 +111260,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `files: array of string` @@ -110339,6 +111607,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginVersion` @@ -110666,6 +111936,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPluginVersion object` @@ -111000,6 +112272,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Example ```bash @@ -111170,6 +112444,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginInstallationSetting` @@ -111419,6 +112695,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -111685,6 +112963,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedPluginInstallationSetting object` @@ -111925,6 +113205,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginShare` @@ -112182,6 +113464,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginMarketplace` @@ -112451,278 +113735,282 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `BetaPluginMarketplace object` - - - `type: "plugin_marketplace"` - - Always `plugin_marketplace`. - - default: plugin_marketplace - - - `id: string` - - The plugin marketplace's ID, prefixed `marketplace_`. - - - `created_at: string` - - RFC 3339. - - format: date-time - - - `default_installation_preference: "auto_install" or "available" or "not_available" or "required" or null` - - Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` - - - `last_sync_ended_at: string or null` - - RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. - - format: date-time - - - `last_sync_read_sha: string or null` - - The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. - - - `name: string` - - Fixed for the plugin marketplace's lifetime. - - - `owner: BetaPluginOwnerOrganization or BetaPluginOwnerUser` - - The organization, or the member whose personal plugin marketplace it is. - - - `BetaPluginOwnerOrganization object` - - - `type: "organization"` - - The Plugin lives in a plugin marketplace the organization owns. - - default: organization - - - `BetaPluginOwnerUser object` - - - `type: "user"` - - The Plugin lives in one member's personal plugin marketplace. - - default: user - - - `user_id: string` - - The member's User ID. - - - `source: "directory" or "github" or "gitlab" or 2 more` - - Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. - - - `"directory"` - - - `"github"` - - - `"gitlab"` - - - `"manual"` - - - `"public_git"` - - - `sync_status: "failed_auth" or "failed_content" or "failed_limits" or 3 more or null` - - Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. - - - `"failed_auth"` - - - `"failed_content"` - - - `"failed_limits"` - - - `"failed_transient"` - - - `"in_progress"` - - - `"success"` - -#### Example - -```bash -curl https://api.anthropic.com/v1/organizations/plugin_marketplaces/$MARKETPLACE_ID \ - -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: ce-plugins-2026-09-01' \ - -H "X-Api-Key: $ANTHROPIC_API_KEY" -``` - -##### Response (200) - -```json -{ - "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "created_at": "2026-03-14T09:26:53.589793Z", - "default_installation_preference": "available", - "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", - "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "name": "engineering-tools", - "owner": { - "type": "organization" - }, - "source": "github", - "sync_status": "success", - "type": "plugin_marketplace" -} -``` - -### Update Plugin Marketplace - -**POST** `/v1/organizations/plugin_marketplaces/{marketplace_id}` - -Set the default installation setting of one of the organization's own plugin -marketplaces. Every Plugin in it without a setting of its own gets this default as -its organization-wide setting, including Plugins added later. - -Pass it as `default_installation_preference`. A member's personal marketplace -cannot be updated here (403). - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Path parameters - -- `marketplace_id: string` - - ID of the plugin marketplace (prefixed `marketplace_`). - -#### Headers - -- `"anthropic-beta": optional array of AnthropicBeta` - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `string` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` - -#### Body parameters - -- `default_installation_preference: "auto_install" or "available" or "not_available" or "required"` - - The organization-wide installation setting every Plugin in the marketplace without one of its own gets: one of `required`, `auto_install`, `available`, `not_available`. Once set it can be changed but not removed. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaPluginMarketplace object` + + - `type: "plugin_marketplace"` + + Always `plugin_marketplace`. + + default: plugin_marketplace + + - `id: string` + + The plugin marketplace's ID, prefixed `marketplace_`. + + - `created_at: string` + + RFC 3339. + + format: date-time + + - `default_installation_preference: "auto_install" or "available" or "not_available" or "required" or null` + + Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` + + - `last_sync_ended_at: string or null` + + RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. + + format: date-time + + - `last_sync_read_sha: string or null` + + The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. + + - `name: string` + + Fixed for the plugin marketplace's lifetime. + + - `owner: BetaPluginOwnerOrganization or BetaPluginOwnerUser` + + The organization, or the member whose personal plugin marketplace it is. + + - `BetaPluginOwnerOrganization object` + + - `type: "organization"` + + The Plugin lives in a plugin marketplace the organization owns. + + default: organization + + - `BetaPluginOwnerUser object` + + - `type: "user"` + + The Plugin lives in one member's personal plugin marketplace. + + default: user + + - `user_id: string` + + The member's User ID. + + - `source: "directory" or "github" or "gitlab" or 2 more` + + Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. + + - `"directory"` + + - `"github"` + + - `"gitlab"` + + - `"manual"` + + - `"public_git"` + + - `sync_status: "failed_auth" or "failed_content" or "failed_limits" or 3 more or null` + + Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. + + - `"failed_auth"` + + - `"failed_content"` + + - `"failed_limits"` + + - `"failed_transient"` + + - `"in_progress"` + + - `"success"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/plugin_marketplaces/$MARKETPLACE_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: ce-plugins-2026-09-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "created_at": "2026-03-14T09:26:53.589793Z", + "default_installation_preference": "available", + "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", + "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "name": "engineering-tools", + "owner": { + "type": "organization" + }, + "source": "github", + "sync_status": "success", + "type": "plugin_marketplace" +} +``` + +### Update Plugin Marketplace + +**POST** `/v1/organizations/plugin_marketplaces/{marketplace_id}` + +Set the default installation setting of one of the organization's own plugin +marketplaces. Every Plugin in it without a setting of its own gets this default as +its organization-wide setting, including Plugins added later. + +Pass it as `default_installation_preference`. A member's personal marketplace +cannot be updated here (403). + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Path parameters + +- `marketplace_id: string` + + ID of the plugin marketplace (prefixed `marketplace_`). + +#### Headers + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `default_installation_preference: "auto_install" or "available" or "not_available" or "required"` + + The organization-wide installation setting every Plugin in the marketplace without one of its own gets: one of `required`, `auto_install`, `available`, `not_available`. Once set it can be changed but not removed. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` #### Returns @@ -112991,6 +114279,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `repository_url: string` @@ -113259,6 +114549,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `archive: string` @@ -113511,6 +114803,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `endpoint_url: string` @@ -113984,6 +115278,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaTelemetryDestination` @@ -114335,485 +115631,489 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `BetaTelemetryDestination object` - - An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - - - `type: "telemetry_destination"` - - - `id: string` - - The unique ID of the destination (`tdst_...`). - - - `created_at: string` - - Time the destination was created. - - format: date-time - - - `delivery_health: BetaTelemetryDestinationDeliveryHealth` - - The most recent delivery results for this destination. - - - `last_error: string or null` - - A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - - `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#delivery-errors) to learn the likely cause of each error. - - - `last_error_at: string or null` - - Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - - format: date-time - - - `last_success_at: string or null` - - Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - - format: date-time - - - `display_name: string or null` - - Human-readable name for the destination. Null when none was set. - - - `endpoint_url: string` - - The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - - The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - - `header_names: array of string` - - Names of the registered request headers. Header values are write-only and are never returned. - - - `state: BetaTelemetryDestinationState` - - Whether the destination receives deliveries. - - - `BetaTelemetryDestinationStateEnabled object` - - The telemetry destination receives the spans of the workspaces that it covers. - - - `type: "enabled"` - - - `BetaTelemetryDestinationStateDisabled object` - - The API doesn't deliver anything to the telemetry destination. - - Spans produced while it is disabled aren't delivered later. - - - `type: "disabled"` - - - `reason: BetaTelemetryDestinationDisabledReason` - - Whether a caller or the API disabled the destination and, when the API did, why. Read-only. - - - `BetaTelemetryDestinationDisabledReasonCaller object` - - A caller disabled the destination with an update that set `state` to `disabled`. - - - `type: "caller"` - - - `BetaTelemetryDestinationDisabledReasonSustainedFailure object` - - The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. - - - `type: "sustained_failure"` - - - `BetaTelemetryDestinationDisabledReasonInvalidAddress object` - - The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. - - - `type: "invalid_address"` - - - `BetaTelemetryDestinationDisabledReasonRedirect object` - - The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. - - - `type: "redirect"` - - - `traces: BetaTelemetryDestinationTraces` - - The destination's settings for the traces it receives. - - - `content_mode: BetaTelemetryDestinationContentMode` - - What the exported spans contain. - - - `"metadata_only"` - - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. - - - `"content"` - - The spans contain the same metadata as `metadata_only`, plus message and tool content. - - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. - - - `enabled: boolean` - - Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. - - - `endpoint_url: string or null` - - The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. - - When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. - - - `max_content_bytes: number or null` - - The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. - - Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. - - format: int32 - - - `updated_at: string` - - Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. - - An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. - - format: date-time - - - `workspaces: BetaTelemetryDestinationWorkspaces` - - Which of the organization's workspaces the destination covers. - - - `BetaTelemetryDestinationWorkspacesAll object` - - The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. - - - `type: "all"` - - - `BetaTelemetryDestinationWorkspacesInclude object` - - The destination covers the workspaces on its list, and no others. - - - `type: "include"` - - - `BetaTelemetryDestinationWorkspacesExclude object` - - The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. - - - `type: "exclude"` - -#### Example - -```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID \ - -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ - -H "X-Api-Key: $ANTHROPIC_API_KEY" -``` - -##### Response (200) - -```json -{ - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "delivery_health": { - "last_error": "last_error", - "last_error_at": "2019-12-27T18:11:19.117Z", - "last_success_at": "2019-12-27T18:11:19.117Z" - }, - "display_name": "display_name", - "endpoint_url": "endpoint_url", - "header_names": [ - "string" - ], - "state": { - "type": "enabled" - }, - "traces": { - "content_mode": "metadata_only", - "enabled": true, - "endpoint_url": "endpoint_url", - "max_content_bytes": 0 - }, - "type": "telemetry_destination", - "updated_at": "2019-12-27T18:11:19.117Z", - "workspaces": { - "type": "all" - } -} -``` - -### Update a Telemetry Destination - -**POST** `/v1/organizations/telemetry_destinations/{destination_id}` - -Change a telemetry destination's settings, its state, or which workspaces it covers. - -Send at least one field. Omitted fields keep their stored values, except the registered headers, which a change of the endpoint's hostname or port removes. Only `display_name`, `traces`, `traces.endpoint_url`, `traces.content_mode`, `traces.max_content_bytes`, and individual `headers` values accept `null`. - -If another request changes the destination while the update runs, the API returns a 409 `conflict_error`. Read the destination again, then retry the update. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#delivery-and-health) to learn more about changing a destination. - -#### Path parameters - -- `destination_id: string` - - ID of the destination (`tdst_...`). - -#### Headers - -- `"anthropic-version": optional string` - - The version of the Claude API you want to use. - - Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). - -- `"anthropic-beta": optional array of AnthropicBeta` - - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - - - `string` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` - -#### Body parameters - -- `display_name: optional string or null` - - New human-readable name, 1 to 255 characters. Null clears it. - -- `endpoint_url: optional string` - - The new base URL of the destination's OTLP/HTTP endpoint. The same rules as on create apply. - - A change of hostname or port first removes every registered header, so send the headers for the new endpoint in the same request. When the destination has a `traces.endpoint_url`, such a change must also set `traces.endpoint_url` to a URL with the new hostname and port, or to `null`. A change of the path alone keeps the headers. - - maxLength: 2048 - -- `headers: optional map[string] or null` - - Headers to set or remove. The API merges them into the destination's headers by name. - - Names compare case-insensitively. A string value sets or replaces that header. A `null` value removes it. Headers that you omit don't change. The field itself can't be `null`. - - A request that sets a header value must also include `endpoint_url`. The current URL is accepted. - - The resulting set must stay within the same limits as on create. When the request sets a value, each stored value that it doesn't set counts as 4,096 bytes toward the 16,384-byte limit, because you can't read its real length. So to change one header of a destination that has four or more other headers, send the values of the others again in the same request. - -- `state: optional BetaTelemetryDestinationStateParams` - - Whether the destination receives deliveries after the update. The field can't be `null`. - - - `BetaTelemetryDestinationStateEnabledParams object` - - Start deliveries to the telemetry destination again. - - This doesn't reset `delivery_health`. - - - `type: "enabled"` - - - `BetaTelemetryDestinationStateDisabledParams object` - - Stop deliveries to the telemetry destination. - - Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its `reason`. - - - `type: "disabled"` - -- `traces: optional BetaTelemetryDestinationTracesParams or null` - - The traces settings to change. Omitted settings keep their stored values. - - `null` sets every traces setting to its create default. - - - `content_mode: optional BetaTelemetryDestinationContentMode or null` - - What the exported spans contain. Defaults to `metadata_only` on create. - - On update, `null` sets `metadata_only`. - - - `"metadata_only"` - - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. - - - `"content"` - - The spans contain the same metadata as `metadata_only`, plus message and tool content. - - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. - - - `enabled: optional boolean` - - Whether the destination receives traces. Defaults to true on create. It cannot be null. - - - `endpoint_url: optional string or null` - - The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than `/v1/traces`. The API posts traces to it exactly as given and appends nothing. - - The same rules as for `endpoint_url` apply, except that any path is allowed. It must have the same scheme, host, and port as `endpoint_url`. At most 2,048 characters. - - On create, `null` is the same as leaving it out. On update, `null` removes it. The API then posts traces to `endpoint_url` with `/v1/traces` appended. A change of this URL alone keeps the registered headers. - - maxLength: 2048 - - - `max_content_bytes: optional number or null` - - The most bytes of content that one exported span can contain, from 1 up to the API's maximum. `null` sets no bound, so only the API's maximum applies. - - On create, leaving it out is the same as `null`. The error for a value above the maximum states the maximum. - - format: int32 - -- `workspaces: optional BetaTelemetryDestinationWorkspacesParams` - - The new workspace scope, in the same form as on create. The field can't be `null`. - - The API refuses an update that changes the type or sends `workspace_ids` while the destination's list has more than 750 workspaces. Remove workspaces one at a time until 750 or fewer remain, then send the update again. - - - `BetaTelemetryDestinationWorkspacesAllParams object` - - Cover every workspace of the organization. Doesn't take `workspace_ids`. - - An update that sets `all` empties the destination's workspace list. - - - `type: "all"` - - - `BetaTelemetryDestinationWorkspacesIncludeParams object` - - Cover only the workspaces on the list. - - - `type: "include"` - - - `workspace_ids: optional array of string` - - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. - - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. - - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. - - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. - - - `BetaTelemetryDestinationWorkspacesExcludeParams object` - - Cover every workspace of the organization except the workspaces on the list. - - - `type: "exclude"` - - - `workspace_ids: optional array of string` - - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. - - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. - - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. - - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaTelemetryDestination object` + + An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. + + - `type: "telemetry_destination"` + + - `id: string` + + The unique ID of the destination (`tdst_...`). + + - `created_at: string` + + Time the destination was created. + + format: date-time + + - `delivery_health: BetaTelemetryDestinationDeliveryHealth` + + The most recent delivery results for this destination. + + - `last_error: string or null` + + A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. + + Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. + + `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. + + See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#delivery-errors) to learn the likely cause of each error. + + - `last_error_at: string or null` + + Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. + + format: date-time + + - `last_success_at: string or null` + + Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. + + format: date-time + + - `display_name: string or null` + + Human-readable name for the destination. Null when none was set. + + - `endpoint_url: string` + + The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. + + The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. + + - `header_names: array of string` + + Names of the registered request headers. Header values are write-only and are never returned. + + - `state: BetaTelemetryDestinationState` + + Whether the destination receives deliveries. + + - `BetaTelemetryDestinationStateEnabled object` + + The telemetry destination receives the spans of the workspaces that it covers. + + - `type: "enabled"` + + - `BetaTelemetryDestinationStateDisabled object` + + The API doesn't deliver anything to the telemetry destination. + + Spans produced while it is disabled aren't delivered later. + + - `type: "disabled"` + + - `reason: BetaTelemetryDestinationDisabledReason` + + Whether a caller or the API disabled the destination and, when the API did, why. Read-only. + + - `BetaTelemetryDestinationDisabledReasonCaller object` + + A caller disabled the destination with an update that set `state` to `disabled`. + + - `type: "caller"` + + - `BetaTelemetryDestinationDisabledReasonSustainedFailure object` + + The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. + + - `type: "sustained_failure"` + + - `BetaTelemetryDestinationDisabledReasonInvalidAddress object` + + The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + + - `type: "invalid_address"` + + - `BetaTelemetryDestinationDisabledReasonRedirect object` + + The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + + - `type: "redirect"` + + - `traces: BetaTelemetryDestinationTraces` + + The destination's settings for the traces it receives. + + - `content_mode: BetaTelemetryDestinationContentMode` + + What the exported spans contain. + + - `"metadata_only"` + + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + + - `"content"` + + The spans contain the same metadata as `metadata_only`, plus message and tool content. + + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + + - `enabled: boolean` + + Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + + - `endpoint_url: string or null` + + The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + + When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + + - `max_content_bytes: number or null` + + The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + + Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + + format: int32 + + - `updated_at: string` + + Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + + An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + + format: date-time + + - `workspaces: BetaTelemetryDestinationWorkspaces` + + Which of the organization's workspaces the destination covers. + + - `BetaTelemetryDestinationWorkspacesAll object` + + The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + + - `type: "all"` + + - `BetaTelemetryDestinationWorkspacesInclude object` + + The destination covers the workspaces on its list, and no others. + + - `type: "include"` + + - `BetaTelemetryDestinationWorkspacesExclude object` + + The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + + - `type: "exclude"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "delivery_health": { + "last_error": "last_error", + "last_error_at": "2019-12-27T18:11:19.117Z", + "last_success_at": "2019-12-27T18:11:19.117Z" + }, + "display_name": "display_name", + "endpoint_url": "endpoint_url", + "header_names": [ + "string" + ], + "state": { + "type": "enabled" + }, + "traces": { + "content_mode": "metadata_only", + "enabled": true, + "endpoint_url": "endpoint_url", + "max_content_bytes": 0 + }, + "type": "telemetry_destination", + "updated_at": "2019-12-27T18:11:19.117Z", + "workspaces": { + "type": "all" + } +} +``` + +### Update a Telemetry Destination + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}` + +Change a telemetry destination's settings, its state, or which workspaces it covers. + +Send at least one field. Omitted fields keep their stored values, except the registered headers, which a change of the endpoint's hostname or port removes. Only `display_name`, `traces`, `traces.endpoint_url`, `traces.content_mode`, `traces.max_content_bytes`, and individual `headers` values accept `null`. + +If another request changes the destination while the update runs, the API returns a 409 `conflict_error`. Read the destination again, then retry the update. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#delivery-and-health) to learn more about changing a destination. + +#### Path parameters + +- `destination_id: string` + + ID of the destination (`tdst_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `display_name: optional string or null` + + New human-readable name, 1 to 255 characters. Null clears it. + +- `endpoint_url: optional string` + + The new base URL of the destination's OTLP/HTTP endpoint. The same rules as on create apply. + + A change of hostname or port first removes every registered header, so send the headers for the new endpoint in the same request. When the destination has a `traces.endpoint_url`, such a change must also set `traces.endpoint_url` to a URL with the new hostname and port, or to `null`. A change of the path alone keeps the headers. + + maxLength: 2048 + +- `headers: optional map[string] or null` + + Headers to set or remove. The API merges them into the destination's headers by name. + + Names compare case-insensitively. A string value sets or replaces that header. A `null` value removes it. Headers that you omit don't change. The field itself can't be `null`. + + A request that sets a header value must also include `endpoint_url`. The current URL is accepted. + + The resulting set must stay within the same limits as on create. When the request sets a value, each stored value that it doesn't set counts as 4,096 bytes toward the 16,384-byte limit, because you can't read its real length. So to change one header of a destination that has four or more other headers, send the values of the others again in the same request. + +- `state: optional BetaTelemetryDestinationStateParams` + + Whether the destination receives deliveries after the update. The field can't be `null`. + + - `BetaTelemetryDestinationStateEnabledParams object` + + Start deliveries to the telemetry destination again. + + This doesn't reset `delivery_health`. + + - `type: "enabled"` + + - `BetaTelemetryDestinationStateDisabledParams object` + + Stop deliveries to the telemetry destination. + + Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its `reason`. + + - `type: "disabled"` + +- `traces: optional BetaTelemetryDestinationTracesParams or null` + + The traces settings to change. Omitted settings keep their stored values. + + `null` sets every traces setting to its create default. + + - `content_mode: optional BetaTelemetryDestinationContentMode or null` + + What the exported spans contain. Defaults to `metadata_only` on create. + + On update, `null` sets `metadata_only`. + + - `"metadata_only"` + + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + + - `"content"` + + The spans contain the same metadata as `metadata_only`, plus message and tool content. + + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + + - `enabled: optional boolean` + + Whether the destination receives traces. Defaults to true on create. It cannot be null. + + - `endpoint_url: optional string or null` + + The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than `/v1/traces`. The API posts traces to it exactly as given and appends nothing. + + The same rules as for `endpoint_url` apply, except that any path is allowed. It must have the same scheme, host, and port as `endpoint_url`. At most 2,048 characters. + + On create, `null` is the same as leaving it out. On update, `null` removes it. The API then posts traces to `endpoint_url` with `/v1/traces` appended. A change of this URL alone keeps the registered headers. + + maxLength: 2048 + + - `max_content_bytes: optional number or null` + + The most bytes of content that one exported span can contain, from 1 up to the API's maximum. `null` sets no bound, so only the API's maximum applies. + + On create, leaving it out is the same as `null`. The error for a value above the maximum states the maximum. + + format: int32 + +- `workspaces: optional BetaTelemetryDestinationWorkspacesParams` + + The new workspace scope, in the same form as on create. The field can't be `null`. + + The API refuses an update that changes the type or sends `workspace_ids` while the destination's list has more than 750 workspaces. Remove workspaces one at a time until 750 or fewer remain, then send the update again. + + - `BetaTelemetryDestinationWorkspacesAllParams object` + + Cover every workspace of the organization. Doesn't take `workspace_ids`. + + An update that sets `all` empties the destination's workspace list. + + - `type: "all"` + + - `BetaTelemetryDestinationWorkspacesIncludeParams object` + + Cover only the workspaces on the list. + + - `type: "include"` + + - `workspace_ids: optional array of string` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + + - `BetaTelemetryDestinationWorkspacesExcludeParams object` + + Cover every workspace of the organization except the workspaces on the list. + + - `type: "exclude"` + + - `workspace_ids: optional array of string` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. #### Returns @@ -115161,25 +116461,1254 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaDeletedTelemetryDestination object` + + Confirmation that a destination was deleted. + + - `type: "telemetry_destination_deleted"` + + - `id: string` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Path parameters + +- `destination_id: string` + + ID of the destination to test (starts with `tdst_`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaTelemetryDestinationTestResponse object` + + The result of one test span sent to a destination. + + - `type: "telemetry_destination_test"` + + - `result: BetaTelemetryDestinationTestResult` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `BetaTelemetryDestinationTestSuccess object` + + The destination answered the test span with a 2xx status. + + - `type: "success"` + + - `BetaTelemetryDestinationTestFailure object` + + The test span was not delivered. + + - `type: "failure"` + + - `error: string` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/test \ + -X POST \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Path parameters + +- `destination_id: string` + + ID of the destination (`tdst_...`). + +#### Query parameters + +- `limit: optional number` + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + +- `page: optional string` + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `data: array of BetaTelemetryDestinationWorkspace` + + Entries on this page, newest first. + + - `type: "telemetry_destination_workspace"` + + - `created_at: string` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace (`wrkspc_...`). + +- `next_page: string or null` + + Cursor for the next page. Null on the last page. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Path parameters + +- `destination_id: string` + + ID of the destination (`tdst_...`). + +- `workspace_id: string` + + ID of the workspace to add (`wrkspc_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaTelemetryDestinationWorkspace object` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `type: "telemetry_destination_workspace"` + + - `created_at: string` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces/$WORKSPACE_ID \ + -X POST \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Path parameters + +- `destination_id: string` + + ID of the destination (`tdst_...`). + +- `workspace_id: string` + + ID of the workspace to remove (`wrkspc_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaDeletedTelemetryDestinationWorkspace object` + + Confirmation that a workspace was removed from a destination's list. + + - `type: "telemetry_destination_workspace_deleted"` + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces/$WORKSPACE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `description: optional string` + + Notes about the endpoint. + +- `name: optional string` + + A short label for the endpoint. + +#### Returns + +- `BetaNewOrganizationWebhookEndpoint object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "url": "x" + }' +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Query parameters + +- `after_id: optional string` + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: optional string` + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: optional number` + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0, minimum: 0, maximum: 100 + +- `order: optional "asc" or "desc"` + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + #### Returns -- `BetaDeletedTelemetryDestination object` +- `data: array of BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `type: "telemetry_destination_deleted"` + The organization webhook endpoints on this page. - `id: string` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +- `has_more: boolean` + + Whether more endpoints follow this page in list order. With `before_id`, only endpoints before the cursor count. + +- `first_id: optional string or null` + + First ID in the `data` list. + +- `last_id: optional string or null` + + Last ID in the `data` list. Can be used as the `after_id` for the next page. #### Example ```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID \ - -X DELETE \ +curl https://api.anthropic.com/v1/organizations/webhooks \ -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` @@ -115187,22 +117716,42 @@ curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINAT ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Path parameters -- `destination_id: string` +- `webhook_endpoint_id: string` - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. + + maxLength: 2048 #### Headers @@ -115214,7 +117763,7 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `string` @@ -115320,41 +117869,69 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns -- `BetaTelemetryDestinationTestResponse object` +- `BetaOrganizationWebhookEndpoint object` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `type: "telemetry_destination_test"` + - `id: string` - - `result: BetaTelemetryDestinationTestResult` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `created_at: string` - - `BetaTelemetryDestinationTestSuccess object` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `type: "success"` + - `description: string` - - `BetaTelemetryDestinationTestFailure object` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `disabled_reason: string` - - `type: "failure"` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `error: string` + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. #### Example ```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/test \ - -X POST \ +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` @@ -115362,42 +117939,35 @@ curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINAT ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. - -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Path parameters -- `destination_id: string` +- `webhook_endpoint_id: string` - ID of the destination (`tdst_...`). + ID of the webhook endpoint. -#### Query parameters - -- `limit: optional number` - - Number of entries to return per page, between 1 and 1,000. Defaults to 20. - - format: int32 - -- `page: optional string` - - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + maxLength: 2048 #### Headers @@ -115409,7 +117979,7 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `string` @@ -115515,78 +118085,139 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `description: optional string` + + Notes about the endpoint. + +- `enabled_events: optional array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `name: optional string` + + A short label for the endpoint. + +- `state: optional "disabled" or "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + +- `url: optional string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + #### Returns -- `data: array of BetaTelemetryDestinationWorkspace` +- `BetaOrganizationWebhookEndpoint object` - Entries on this page, newest first. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `type: "telemetry_destination_workspace"` + - `id: string` + + ID of the webhook endpoint. - `created_at: string` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `telemetry_destination_id: string` + - `description: string` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `workspace_id: string` + - `disabled_reason: string` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. -- `next_page: string or null` + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` - Cursor for the next page. Null on the last page. + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. #### Example ```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces \ +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'Content-Type: application/json' \ -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ - -H "X-Api-Key: $ANTHROPIC_API_KEY" + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{}' ``` ##### Response (200) ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace - -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` - -Add one workspace to a destination's workspace list. +### Delete Organization Webhook Endpoint -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. +Delete an organization webhook endpoint. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Path parameters -- `destination_id: string` - - ID of the destination (`tdst_...`). +- `webhook_endpoint_id: string` -- `workspace_id: string` + ID of the webhook endpoint. - ID of the workspace to add (`wrkspc_...`). + maxLength: 2048 #### Headers @@ -115598,7 +118229,7 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `string` @@ -115704,37 +118335,31 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `BetaTelemetryDestinationWorkspace object` - - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `"webhooks-2026-10-07"` - - `type: "telemetry_destination_workspace"` +#### Returns - - `created_at: string` +- `BetaDeletedOrganizationWebhookEndpoint object` - Time the workspace was added to the list. + A deleted organization webhook endpoint. - format: date-time + - `type: "webhook_endpoint_deleted"` - - `telemetry_destination_id: string` + Always `webhook_endpoint_deleted`. - ID of the telemetry destination (`tdst_...`). + default: webhook_endpoint_deleted - - `workspace_id: string` + - `id: string` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example ```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces/$WORKSPACE_ID \ - -X POST \ +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -X DELETE \ -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` @@ -115742,34 +118367,27 @@ curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINAT ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace +### Regenerate Organization Webhook Endpoint Signing Secret -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Remove one workspace from a destination's workspace list. - -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. - -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Path parameters -- `destination_id: string` +- `webhook_endpoint_id: string` - ID of the destination (`tdst_...`). - -- `workspace_id: string` + ID of the webhook endpoint. - ID of the workspace to remove (`wrkspc_...`). + maxLength: 2048 #### Headers @@ -115781,7 +118399,7 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `string` @@ -115887,29 +118505,25 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns + - `"webhooks-2026-10-07"` -- `BetaDeletedTelemetryDestinationWorkspace object` +#### Returns - Confirmation that a workspace was removed from a destination's list. +- `BetaOrganizationWebhookEndpointSigningSecret object` - - `type: "telemetry_destination_workspace_deleted"` + An organization webhook endpoint's new signing secret. - - `telemetry_destination_id: string` + - `signing_secret: string` - ID of the telemetry destination (`tdst_...`). - - - `workspace_id: string` - - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example ```bash -curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINATION_ID/workspaces/$WORKSPACE_ID \ - -X DELETE \ +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID/regenerate_signing_secret \ + -X POST \ -H 'anthropic-version: 2023-06-01' \ - -H 'anthropic-beta: telemetry-destinations-2026-08-11' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" ``` @@ -115917,8 +118531,6 @@ curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINAT ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/beta/agents.md b/content/en/api/beta/agents.md index 51ab7aa652..83e5672785 100644 --- a/content/en/api/beta/agents.md +++ b/content/en/api/beta/agents.md @@ -127,6 +127,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2143,6 +2145,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3193,6 +3197,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4226,6 +4232,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6217,6 +6225,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13647,6 +13657,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/archive.md b/content/en/api/beta/agents/archive.md index 5444bc5a07..dc036acd5e 100644 --- a/content/en/api/beta/agents/archive.md +++ b/content/en/api/beta/agents/archive.md @@ -131,6 +131,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/create.md b/content/en/api/beta/agents/create.md index d7705e0016..37f08d6b01 100644 --- a/content/en/api/beta/agents/create.md +++ b/content/en/api/beta/agents/create.md @@ -125,6 +125,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/list.md b/content/en/api/beta/agents/list.md index 0b545be586..60d5d36e8e 100644 --- a/content/en/api/beta/agents/list.md +++ b/content/en/api/beta/agents/list.md @@ -153,6 +153,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/retrieve.md b/content/en/api/beta/agents/retrieve.md index acbc68cf9b..164f048513 100644 --- a/content/en/api/beta/agents/retrieve.md +++ b/content/en/api/beta/agents/retrieve.md @@ -139,6 +139,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/update.md b/content/en/api/beta/agents/update.md index 0b8cc611c0..a40cb0e3ec 100644 --- a/content/en/api/beta/agents/update.md +++ b/content/en/api/beta/agents/update.md @@ -131,6 +131,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/versions.md b/content/en/api/beta/agents/versions.md index 49890744a5..caa3b18b3a 100644 --- a/content/en/api/beta/agents/versions.md +++ b/content/en/api/beta/agents/versions.md @@ -145,6 +145,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/agents/versions/list.md b/content/en/api/beta/agents/versions/list.md index 38e476f210..c5f7715a7d 100644 --- a/content/en/api/beta/agents/versions/list.md +++ b/content/en/api/beta/agents/versions/list.md @@ -143,6 +143,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployment_runs.md b/content/en/api/beta/deployment_runs.md index ee0e5304b5..06a83f471d 100644 --- a/content/en/api/beta/deployment_runs.md +++ b/content/en/api/beta/deployment_runs.md @@ -183,6 +183,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -584,6 +586,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployment_runs/list.md b/content/en/api/beta/deployment_runs/list.md index 39e6b4839d..9ea5da5af3 100644 --- a/content/en/api/beta/deployment_runs/list.md +++ b/content/en/api/beta/deployment_runs/list.md @@ -181,6 +181,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployment_runs/retrieve.md b/content/en/api/beta/deployment_runs/retrieve.md index 302b4e1226..da61aebe50 100644 --- a/content/en/api/beta/deployment_runs/retrieve.md +++ b/content/en/api/beta/deployment_runs/retrieve.md @@ -131,6 +131,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments.md b/content/en/api/beta/deployments.md index e76b229539..d6732fb3e3 100644 --- a/content/en/api/beta/deployments.md +++ b/content/en/api/beta/deployments.md @@ -127,6 +127,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1319,6 +1321,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2058,6 +2062,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2788,6 +2794,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3928,6 +3936,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4659,6 +4669,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5052,6 +5064,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5783,6 +5797,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/archive.md b/content/en/api/beta/deployments/archive.md index 6aa70569d4..82a3b9e35e 100644 --- a/content/en/api/beta/deployments/archive.md +++ b/content/en/api/beta/deployments/archive.md @@ -131,6 +131,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/create.md b/content/en/api/beta/deployments/create.md index afb58c7422..dfca8937d4 100644 --- a/content/en/api/beta/deployments/create.md +++ b/content/en/api/beta/deployments/create.md @@ -125,6 +125,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/list.md b/content/en/api/beta/deployments/list.md index 1ca92c1a0d..26dd934c15 100644 --- a/content/en/api/beta/deployments/list.md +++ b/content/en/api/beta/deployments/list.md @@ -169,6 +169,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/pause.md b/content/en/api/beta/deployments/pause.md index fc93ce8e9c..3b7509e2a7 100644 --- a/content/en/api/beta/deployments/pause.md +++ b/content/en/api/beta/deployments/pause.md @@ -131,6 +131,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/retrieve.md b/content/en/api/beta/deployments/retrieve.md index 8f2a934abd..99afcd5bde 100644 --- a/content/en/api/beta/deployments/retrieve.md +++ b/content/en/api/beta/deployments/retrieve.md @@ -131,6 +131,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/run.md b/content/en/api/beta/deployments/run.md index 24e9329f85..72516346de 100644 --- a/content/en/api/beta/deployments/run.md +++ b/content/en/api/beta/deployments/run.md @@ -131,6 +131,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/unpause.md b/content/en/api/beta/deployments/unpause.md index d180d02a23..f33b239a48 100644 --- a/content/en/api/beta/deployments/unpause.md +++ b/content/en/api/beta/deployments/unpause.md @@ -131,6 +131,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/deployments/update.md b/content/en/api/beta/deployments/update.md index 2bcc9e036b..cb8e1bff3f 100644 --- a/content/en/api/beta/deployments/update.md +++ b/content/en/api/beta/deployments/update.md @@ -131,6 +131,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams.md b/content/en/api/beta/dreams.md index 73614be12a..faacda6230 100644 --- a/content/en/api/beta/dreams.md +++ b/content/en/api/beta/dreams.md @@ -131,6 +131,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -718,6 +720,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1138,6 +1142,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1553,6 +1559,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1969,6 +1977,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams/archive.md b/content/en/api/beta/dreams/archive.md index ec235d1962..5da9ae9345 100644 --- a/content/en/api/beta/dreams/archive.md +++ b/content/en/api/beta/dreams/archive.md @@ -135,6 +135,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams/cancel.md b/content/en/api/beta/dreams/cancel.md index 0effcd5255..64b75603e6 100644 --- a/content/en/api/beta/dreams/cancel.md +++ b/content/en/api/beta/dreams/cancel.md @@ -135,6 +135,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams/create.md b/content/en/api/beta/dreams/create.md index 185467c022..bb53805a9e 100644 --- a/content/en/api/beta/dreams/create.md +++ b/content/en/api/beta/dreams/create.md @@ -129,6 +129,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams/list.md b/content/en/api/beta/dreams/list.md index e6dd2fcbe1..3dfdbd2c64 100644 --- a/content/en/api/beta/dreams/list.md +++ b/content/en/api/beta/dreams/list.md @@ -193,6 +193,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/dreams/retrieve.md b/content/en/api/beta/dreams/retrieve.md index e062595c3f..f97c9ec93f 100644 --- a/content/en/api/beta/dreams/retrieve.md +++ b/content/en/api/beta/dreams/retrieve.md @@ -135,6 +135,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments.md b/content/en/api/beta/environments.md index 32084a8cb9..f6cbab1e0d 100644 --- a/content/en/api/beta/environments.md +++ b/content/en/api/beta/environments.md @@ -127,6 +127,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -604,6 +606,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -937,6 +941,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1261,6 +1267,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1707,6 +1715,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1874,6 +1884,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2668,6 +2680,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2932,6 +2946,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID": optional string` Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3182,6 +3198,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWork object` @@ -3439,6 +3457,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWorkHeartbeatResponse object` @@ -3629,6 +3649,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3901,6 +3923,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaSelfHostedWorkListResponse object` @@ -4156,6 +4180,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4416,6 +4442,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/archive.md b/content/en/api/beta/environments/archive.md index bcf7e6aab8..cbe78c6c37 100644 --- a/content/en/api/beta/environments/archive.md +++ b/content/en/api/beta/environments/archive.md @@ -129,6 +129,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/create.md b/content/en/api/beta/environments/create.md index 0efafcc750..23e72adcd7 100644 --- a/content/en/api/beta/environments/create.md +++ b/content/en/api/beta/environments/create.md @@ -125,6 +125,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/delete.md b/content/en/api/beta/environments/delete.md index 1024555ed2..f970f22063 100644 --- a/content/en/api/beta/environments/delete.md +++ b/content/en/api/beta/environments/delete.md @@ -129,6 +129,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/list.md b/content/en/api/beta/environments/list.md index 3198f4d03d..ddad1e4a9d 100644 --- a/content/en/api/beta/environments/list.md +++ b/content/en/api/beta/environments/list.md @@ -143,6 +143,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/retrieve.md b/content/en/api/beta/environments/retrieve.md index afd1ab40f5..88a05f76f8 100644 --- a/content/en/api/beta/environments/retrieve.md +++ b/content/en/api/beta/environments/retrieve.md @@ -129,6 +129,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/update.md b/content/en/api/beta/environments/update.md index 2f3e9d9699..2c96f038bb 100644 --- a/content/en/api/beta/environments/update.md +++ b/content/en/api/beta/environments/update.md @@ -129,6 +129,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/work.md b/content/en/api/beta/environments/work.md index cc724d2780..b0ca5b5911 100644 --- a/content/en/api/beta/environments/work.md +++ b/content/en/api/beta/environments/work.md @@ -135,6 +135,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -399,6 +401,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID": optional string` Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -649,6 +653,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaSelfHostedWork object` @@ -906,6 +912,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaSelfHostedWorkHeartbeatResponse object` @@ -1096,6 +1104,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1368,6 +1378,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaSelfHostedWorkListResponse object` @@ -1623,6 +1635,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1883,6 +1897,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/work/ack.md b/content/en/api/beta/environments/work/ack.md index e4bb47b588..9720688854 100644 --- a/content/en/api/beta/environments/work/ack.md +++ b/content/en/api/beta/environments/work/ack.md @@ -133,6 +133,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaSelfHostedWork object` diff --git a/content/en/api/beta/environments/work/heartbeat.md b/content/en/api/beta/environments/work/heartbeat.md index ed9d9aa950..f93f88c83a 100644 --- a/content/en/api/beta/environments/work/heartbeat.md +++ b/content/en/api/beta/environments/work/heartbeat.md @@ -143,6 +143,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaSelfHostedWorkHeartbeatResponse object` diff --git a/content/en/api/beta/environments/work/list.md b/content/en/api/beta/environments/work/list.md index c7b61bc2f5..ca44aad37a 100644 --- a/content/en/api/beta/environments/work/list.md +++ b/content/en/api/beta/environments/work/list.md @@ -143,6 +143,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaSelfHostedWorkListResponse object` diff --git a/content/en/api/beta/environments/work/poll.md b/content/en/api/beta/environments/work/poll.md index dcd7de4fa8..fd61fb65a2 100644 --- a/content/en/api/beta/environments/work/poll.md +++ b/content/en/api/beta/environments/work/poll.md @@ -145,6 +145,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID": optional string` Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/beta/environments/work/retrieve.md b/content/en/api/beta/environments/work/retrieve.md index e7c149998b..165b5a7ef6 100644 --- a/content/en/api/beta/environments/work/retrieve.md +++ b/content/en/api/beta/environments/work/retrieve.md @@ -133,6 +133,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/work/stats.md b/content/en/api/beta/environments/work/stats.md index 29b63c9def..6e66ab8827 100644 --- a/content/en/api/beta/environments/work/stats.md +++ b/content/en/api/beta/environments/work/stats.md @@ -129,6 +129,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/work/stop.md b/content/en/api/beta/environments/work/stop.md index ed12ff3d58..2b21056bc4 100644 --- a/content/en/api/beta/environments/work/stop.md +++ b/content/en/api/beta/environments/work/stop.md @@ -133,6 +133,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/environments/work/update.md b/content/en/api/beta/environments/work/update.md index 74d9a9c383..a35045322f 100644 --- a/content/en/api/beta/environments/work/update.md +++ b/content/en/api/beta/environments/work/update.md @@ -133,6 +133,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files.md b/content/en/api/beta/files.md index 2e392623e6..261d850e4b 100644 --- a/content/en/api/beta/files.md +++ b/content/en/api/beta/files.md @@ -127,6 +127,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -384,6 +386,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -620,6 +624,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -762,6 +768,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -987,6 +995,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files/delete.md b/content/en/api/beta/files/delete.md index a8b9a5186d..982410262c 100644 --- a/content/en/api/beta/files/delete.md +++ b/content/en/api/beta/files/delete.md @@ -131,6 +131,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files/download.md b/content/en/api/beta/files/download.md index 63800c79e5..d1683a4966 100644 --- a/content/en/api/beta/files/download.md +++ b/content/en/api/beta/files/download.md @@ -131,6 +131,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files/list.md b/content/en/api/beta/files/list.md index a902dfb8dc..20bf5c5295 100644 --- a/content/en/api/beta/files/list.md +++ b/content/en/api/beta/files/list.md @@ -147,6 +147,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files/retrieve_metadata.md b/content/en/api/beta/files/retrieve_metadata.md index c3e501758d..e869bd4374 100644 --- a/content/en/api/beta/files/retrieve_metadata.md +++ b/content/en/api/beta/files/retrieve_metadata.md @@ -131,6 +131,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/files/upload.md b/content/en/api/beta/files/upload.md index c4ec18fe18..278f7033b6 100644 --- a/content/en/api/beta/files/upload.md +++ b/content/en/api/beta/files/upload.md @@ -125,6 +125,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/memory_stores.md b/content/en/api/beta/memory_stores.md index 6a2a66a69b..1b22d1547d 100644 --- a/content/en/api/beta/memory_stores.md +++ b/content/en/api/beta/memory_stores.md @@ -5,11 +5,11 @@ url: https://platform.claude.com/docs/en/api/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Headers @@ -127,6 +127,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -137,19 +139,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. ### Returns @@ -161,27 +169,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -189,7 +203,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -223,23 +239,23 @@ curl https://api.anthropic.com/v1/memory_stores \ } ``` -## List memory stores +## List Memory Stores **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Query parameters - `"created_at[gte]": optional string` - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]": optional string` - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -255,7 +271,7 @@ List memory stores - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. ### Headers @@ -373,6 +389,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -389,27 +407,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -417,13 +441,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -454,17 +480,17 @@ curl https://api.anthropic.com/v1/memory_stores \ } ``` -## Retrieve a memory store +## Retrieve a Memory Store **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Path parameters - `memory_store_id: string` - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). ### Headers @@ -582,6 +608,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -598,27 +626,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -626,7 +660,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -656,17 +692,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -## Update a memory store +## Update a Memory Store **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Path parameters - `memory_store_id: string` - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. ### Headers @@ -784,6 +822,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -794,17 +834,21 @@ Update a memory store - `description: optional string or null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: optional map[string] or null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: optional string or null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -818,27 +862,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -846,7 +896,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -878,17 +930,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -## Delete a memory store +## Delete a Memory Store **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Path parameters - `memory_store_id: string` - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. ### Headers @@ -1006,6 +1060,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1043,17 +1099,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID \ } ``` -## Archive a memory store +## Archive a Memory Store **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Path parameters - `memory_store_id: string` - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. ### Headers @@ -1171,6 +1229,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1187,27 +1247,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -1215,7 +1281,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1270,27 +1338,33 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/archive \ - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -1298,17 +1372,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/archive \ - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Path parameters @@ -1320,7 +1396,9 @@ Create a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1446,6 +1524,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1456,11 +1536,15 @@ Create a memory - `content: string or null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -1468,13 +1552,19 @@ Create a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1482,7 +1572,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1498,7 +1588,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1506,13 +1600,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1545,11 +1643,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -### List memories +### List Memories **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Path parameters @@ -1561,27 +1659,35 @@ List memories - `depth: optional number` - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: optional number` - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: optional string` - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: optional BetaManagedAgentsMemoryView` - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -1707,6 +1813,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1721,13 +1829,19 @@ List memories - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1735,7 +1849,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1751,7 +1865,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1759,17 +1877,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1779,7 +1903,7 @@ List memories - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -1812,11 +1936,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -### Retrieve a memory +### Retrieve a Memory **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Path parameters @@ -1832,7 +1956,9 @@ Retrieve a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1958,6 +2084,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1968,13 +2096,19 @@ Retrieve a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1982,7 +2116,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1998,7 +2132,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -2006,13 +2144,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2040,11 +2182,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -### Update a memory +### Update a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Path parameters @@ -2060,7 +2202,9 @@ Update a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2186,6 +2330,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2200,13 +2346,17 @@ Update a memory - `path: optional string or null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: optional BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -2218,13 +2368,19 @@ Update a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -2232,7 +2388,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2248,7 +2404,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -2256,13 +2416,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2292,11 +2456,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -### Delete a memory +### Delete a Memory **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Path parameters @@ -2432,6 +2596,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2442,7 +2608,11 @@ Delete a memory - `BetaManagedAgentsDeletedMemory object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -2471,11 +2641,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Path parameters @@ -2503,7 +2673,9 @@ List memory versions - `limit: optional number` - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2511,7 +2683,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: optional BetaManagedAgentsMemoryVersionOperation` @@ -2543,7 +2715,9 @@ List memory versions - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2669,6 +2843,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2695,7 +2871,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -2733,7 +2911,11 @@ List memory versions - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -2789,7 +2971,11 @@ List memory versions - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -2799,7 +2985,7 @@ List memory versions - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -2841,11 +3027,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -### Retrieve a memory version +### Retrieve a Memory Version **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Path parameters @@ -2861,7 +3047,9 @@ Retrieve a memory version - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2987,6 +3175,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2997,7 +3187,13 @@ Retrieve a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -3013,7 +3209,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -3051,7 +3249,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -3107,7 +3309,11 @@ Retrieve a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -3150,11 +3356,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -### Redact a memory version +### Redact a Memory Version **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Path parameters @@ -3282,6 +3488,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3292,7 +3500,13 @@ Redact a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -3308,7 +3522,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -3346,7 +3562,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -3402,7 +3622,11 @@ Redact a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/beta/memory_stores/archive.md b/content/en/api/beta/memory_stores/archive.md index 48a7c47d92..f821c7929d 100644 --- a/content/en/api/beta/memory_stores/archive.md +++ b/content/en/api/beta/memory_stores/archive.md @@ -1,19 +1,21 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Path parameters - `memory_store_id: string` - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. ## Headers @@ -131,6 +133,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -147,27 +151,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -175,7 +185,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/beta/memory_stores/create.md b/content/en/api/beta/memory_stores/create.md index 5a7129388b..6715379ea7 100644 --- a/content/en/api/beta/memory_stores/create.md +++ b/content/en/api/beta/memory_stores/create.md @@ -1,13 +1,13 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Headers @@ -125,6 +125,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,19 +137,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. ## Returns @@ -159,27 +167,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -187,7 +201,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/beta/memory_stores/delete.md b/content/en/api/beta/memory_stores/delete.md index 1ee81cbbe1..c959c6342b 100644 --- a/content/en/api/beta/memory_stores/delete.md +++ b/content/en/api/beta/memory_stores/delete.md @@ -1,19 +1,21 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Path parameters - `memory_store_id: string` - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. ## Headers @@ -131,6 +133,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/memory_stores/list.md b/content/en/api/beta/memory_stores/list.md index 1039c533ee..1b45a4df8f 100644 --- a/content/en/api/beta/memory_stores/list.md +++ b/content/en/api/beta/memory_stores/list.md @@ -1,25 +1,25 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/beta/memory_stores/list --- -# List memory stores +# List Memory Stores **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Query parameters - `"created_at[gte]": optional string` - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]": optional string` - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -35,7 +35,7 @@ List memory stores - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. ## Headers @@ -153,6 +153,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -169,27 +171,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -197,13 +205,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/beta/memory_stores/memories.md b/content/en/api/beta/memory_stores/memories.md index e8f9c98848..87c5bfafdc 100644 --- a/content/en/api/beta/memory_stores/memories.md +++ b/content/en/api/beta/memory_stores/memories.md @@ -5,11 +5,11 @@ url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Path parameters @@ -21,7 +21,9 @@ Create a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -147,6 +149,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,11 +161,15 @@ Create a memory - `content: string or null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -169,13 +177,19 @@ Create a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -183,7 +197,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -199,7 +213,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -207,13 +225,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -246,11 +268,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -## List memories +## List Memories **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Path parameters @@ -262,27 +284,35 @@ List memories - `depth: optional number` - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: optional number` - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: optional string` - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: optional BetaManagedAgentsMemoryView` - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -408,6 +438,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -422,13 +454,19 @@ List memories - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -436,7 +474,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -452,7 +490,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -460,17 +502,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -480,7 +528,7 @@ List memories - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -513,11 +561,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories \ } ``` -## Retrieve a memory +## Retrieve a Memory **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Path parameters @@ -533,7 +581,9 @@ Retrieve a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -659,6 +709,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -669,13 +721,19 @@ Retrieve a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -683,7 +741,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -699,7 +757,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -707,13 +769,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -741,11 +807,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -## Update a memory +## Update a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Path parameters @@ -761,7 +827,9 @@ Update a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -887,6 +955,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -901,13 +971,17 @@ Update a memory - `path: optional string or null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: optional BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -919,13 +993,19 @@ Update a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -933,7 +1013,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -949,7 +1029,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -957,13 +1041,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -993,11 +1081,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR } ``` -## Delete a memory +## Delete a Memory **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Path parameters @@ -1133,6 +1221,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1143,7 +1233,11 @@ Delete a memory - `BetaManagedAgentsDeletedMemory object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -1184,7 +1278,9 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsContentSha256Precondition object` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `type: "content_sha256"` @@ -1196,7 +1292,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsDeletedMemory object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -1314,7 +1414,7 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsMemoryPathConflictError object` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1344,13 +1444,19 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1358,7 +1464,7 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1374,7 +1480,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1382,29 +1492,39 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory or BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1412,7 +1532,7 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1428,7 +1548,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1436,17 +1560,23 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1458,7 +1588,7 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsMemoryPathConflictError object` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1498,7 +1628,9 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1510,7 +1642,9 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memories/$MEMOR - `BetaManagedAgentsMemoryView = "basic" or "full"` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` diff --git a/content/en/api/beta/memory_stores/memories/create.md b/content/en/api/beta/memory_stores/memories/create.md index 55de23e18c..a1f98fa08f 100644 --- a/content/en/api/beta/memory_stores/memories/create.md +++ b/content/en/api/beta/memory_stores/memories/create.md @@ -1,13 +1,13 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Path parameters @@ -19,7 +19,9 @@ Create a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -145,6 +147,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,11 +159,15 @@ Create a memory - `content: string or null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -167,13 +175,19 @@ Create a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -181,7 +195,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -197,7 +211,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -205,13 +223,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/beta/memory_stores/memories/delete.md b/content/en/api/beta/memory_stores/memories/delete.md index 8ceb6239d1..0356d6f943 100644 --- a/content/en/api/beta/memory_stores/memories/delete.md +++ b/content/en/api/beta/memory_stores/memories/delete.md @@ -1,13 +1,13 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Path parameters @@ -143,6 +143,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,7 +155,11 @@ Delete a memory - `BetaManagedAgentsDeletedMemory object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=http) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` diff --git a/content/en/api/beta/memory_stores/memories/list.md b/content/en/api/beta/memory_stores/memories/list.md index 7309191d23..190721b09b 100644 --- a/content/en/api/beta/memory_stores/memories/list.md +++ b/content/en/api/beta/memory_stores/memories/list.md @@ -1,13 +1,13 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list --- -# List memories +# List Memories **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Path parameters @@ -19,27 +19,35 @@ List memories - `depth: optional number` - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: optional number` - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: optional string` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: optional string` - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: optional BetaManagedAgentsMemoryView` - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -165,6 +173,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -179,13 +189,19 @@ List memories - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -193,7 +209,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -209,7 +225,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -217,17 +237,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `BetaManagedAgentsMemoryPrefix object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=http) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -237,7 +263,7 @@ List memories - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/beta/memory_stores/memories/retrieve.md b/content/en/api/beta/memory_stores/memories/retrieve.md index b68c5f8e75..f71534d5cc 100644 --- a/content/en/api/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/beta/memory_stores/memories/retrieve.md @@ -1,13 +1,13 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Path parameters @@ -23,7 +23,9 @@ Retrieve a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -149,6 +151,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,13 +163,19 @@ Retrieve a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -173,7 +183,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -189,7 +199,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -197,13 +211,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/beta/memory_stores/memories/update.md b/content/en/api/beta/memory_stores/memories/update.md index 03494881e3..e906e09211 100644 --- a/content/en/api/beta/memory_stores/memories/update.md +++ b/content/en/api/beta/memory_stores/memories/update.md @@ -1,13 +1,13 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Path parameters @@ -23,7 +23,9 @@ Update a memory - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -149,6 +151,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,13 +167,17 @@ Update a memory - `path: optional string or null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: optional BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -181,13 +189,19 @@ Update a memory - `BetaManagedAgentsMemory object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -195,7 +209,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -211,7 +225,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -219,13 +237,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string or null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/beta/memory_stores/memory_versions.md b/content/en/api/beta/memory_stores/memory_versions.md index 170a7e19cd..640151445f 100644 --- a/content/en/api/beta/memory_stores/memory_versions.md +++ b/content/en/api/beta/memory_stores/memory_versions.md @@ -5,11 +5,11 @@ url: https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions # Memory Versions -## List memory versions +## List Memory Versions **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Path parameters @@ -37,7 +37,9 @@ List memory versions - `limit: optional number` - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: optional BetaManagedAgentsMemoryVersionOperation` @@ -77,7 +79,9 @@ List memory versions - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -203,6 +207,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -229,7 +235,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -267,7 +275,11 @@ List memory versions - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -323,7 +335,11 @@ List memory versions - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -333,7 +349,7 @@ List memory versions - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -375,11 +391,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -## Retrieve a memory version +## Retrieve a Memory Version **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Path parameters @@ -395,7 +411,9 @@ Retrieve a memory version - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -521,6 +539,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -531,7 +551,13 @@ Retrieve a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -547,7 +573,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -585,7 +613,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -641,7 +673,11 @@ Retrieve a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -684,11 +720,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions } ``` -## Redact a memory version +## Redact a Memory Version **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Path parameters @@ -816,6 +852,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -826,7 +864,13 @@ Redact a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -842,7 +886,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -880,7 +926,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -936,7 +986,11 @@ Redact a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -1054,7 +1108,13 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -1070,7 +1130,9 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -1108,7 +1170,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -1164,7 +1230,11 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -1176,7 +1246,9 @@ curl https://api.anthropic.com/v1/memory_stores/$MEMORY_STORE_ID/memory_versions - `BetaManagedAgentsMemoryVersionOperation = "created" or "modified" or "deleted"` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `"created"` diff --git a/content/en/api/beta/memory_stores/memory_versions/list.md b/content/en/api/beta/memory_stores/memory_versions/list.md index 2f95ff31b8..f5ca458390 100644 --- a/content/en/api/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/beta/memory_stores/memory_versions/list.md @@ -1,13 +1,13 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Path parameters @@ -35,7 +35,9 @@ List memory versions - `limit: optional number` - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -43,7 +45,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: optional BetaManagedAgentsMemoryVersionOperation` @@ -75,7 +77,9 @@ List memory versions - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -201,6 +205,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -227,7 +233,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -265,7 +273,11 @@ List memory versions - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -321,7 +333,11 @@ List memory versions - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time @@ -331,7 +347,7 @@ List memory versions - `next_page: optional string or null` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/beta/memory_stores/memory_versions/redact.md b/content/en/api/beta/memory_stores/memory_versions/redact.md index 268f8a7cd7..9c20a50b94 100644 --- a/content/en/api/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/beta/memory_stores/memory_versions/redact.md @@ -1,13 +1,13 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Path parameters @@ -135,6 +135,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,13 @@ Redact a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -161,7 +169,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -199,7 +209,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -255,7 +269,11 @@ Redact a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/beta/memory_stores/memory_versions/retrieve.md index f7c29dc223..228ce1f2e3 100644 --- a/content/en/api/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/beta/memory_stores/memory_versions/retrieve.md @@ -1,13 +1,13 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Path parameters @@ -23,7 +23,9 @@ Retrieve a memory version - `view: optional BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -149,6 +151,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,7 +163,13 @@ Retrieve a memory version - `BetaManagedAgentsMemoryVersion object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -175,7 +185,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=http) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -213,7 +225,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=http) to learn more about where the change came from. - `BetaManagedAgentsSessionActor object` @@ -269,7 +285,11 @@ Retrieve a memory version - `redacted_at: optional string or null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=http). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/beta/memory_stores/retrieve.md b/content/en/api/beta/memory_stores/retrieve.md index 9e8d059528..9dffd54684 100644 --- a/content/en/api/beta/memory_stores/retrieve.md +++ b/content/en/api/beta/memory_stores/retrieve.md @@ -1,19 +1,19 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Path parameters - `memory_store_id: string` - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). ## Headers @@ -131,6 +131,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -147,27 +149,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -175,7 +183,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/beta/memory_stores/update.md b/content/en/api/beta/memory_stores/update.md index 02f87bd1ed..6ef81ff328 100644 --- a/content/en/api/beta/memory_stores/update.md +++ b/content/en/api/beta/memory_stores/update.md @@ -1,19 +1,21 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Path parameters - `memory_store_id: string` - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. ## Headers @@ -131,6 +133,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,17 +145,21 @@ Update a memory store - `description: optional string or null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: optional map[string] or null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: optional string or null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -165,27 +173,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string or null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=http#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -193,7 +207,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/beta/messages.md b/content/en/api/beta/messages.md index 84f3280f48..d19292f219 100644 --- a/content/en/api/beta/messages.md +++ b/content/en/api/beta/messages.md @@ -131,9 +131,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -3776,8 +3778,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3826,7 +3842,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3834,6 +3854,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -7413,6 +7439,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7423,6 +7453,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7433,6 +7467,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7443,6 +7481,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7453,12 +7495,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -8659,9 +8713,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -19134,6 +19190,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19146,6 +19206,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19158,6 +19222,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found @@ -19168,6 +19238,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19178,6 +19252,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19188,6 +19266,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19198,6 +19280,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19208,12 +19294,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -19222,6 +19320,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19234,6 +19336,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19246,6 +19352,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -34288,6 +34400,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -34298,6 +34414,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -34308,6 +34428,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -34318,6 +34442,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -34328,12 +34456,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -35322,8 +35462,22 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35372,7 +35526,11 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35380,6 +35538,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -35576,8 +35740,22 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35626,7 +35804,11 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35634,6 +35816,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -40054,6 +40242,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -40064,6 +40256,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -40074,6 +40270,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -40084,6 +40284,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -40094,12 +40298,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -52059,6 +52275,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -52069,6 +52289,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -52079,6 +52303,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -52089,6 +52317,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -52099,12 +52331,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -55904,6 +56148,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -55914,6 +56162,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -55924,6 +56176,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -55934,6 +56190,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -55944,12 +56204,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -77935,9 +78207,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -81600,8 +81874,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -81650,7 +81938,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -81658,6 +81950,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -82363,6 +82661,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82653,6 +82953,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82952,6 +83254,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83233,6 +83537,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83406,6 +83712,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -86598,6 +86906,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -86608,6 +86920,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -86618,6 +86934,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -86628,6 +86948,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -86638,12 +86962,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/beta/messages/batches.md b/content/en/api/beta/messages/batches.md index 105306a7a7..c7ef80e0f7 100644 --- a/content/en/api/beta/messages/batches.md +++ b/content/en/api/beta/messages/batches.md @@ -131,9 +131,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -3796,8 +3798,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3846,7 +3862,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3854,6 +3874,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -4559,6 +4585,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4849,6 +4877,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5148,6 +5178,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5429,6 +5461,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5602,6 +5636,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8794,6 +8830,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8804,6 +8844,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8814,6 +8858,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8824,6 +8872,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8834,12 +8886,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -13024,6 +13088,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13034,6 +13102,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13044,6 +13116,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13054,6 +13130,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13064,12 +13144,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -17025,6 +17117,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -17035,6 +17131,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -17045,6 +17145,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -17055,6 +17159,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -17065,12 +17173,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -20978,6 +21098,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -20988,6 +21112,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -20998,6 +21126,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -21008,6 +21140,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -21018,12 +21154,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/beta/messages/batches/cancel.md b/content/en/api/beta/messages/batches/cancel.md index 127c3c3287..56c3bf6e64 100644 --- a/content/en/api/beta/messages/batches/cancel.md +++ b/content/en/api/beta/messages/batches/cancel.md @@ -135,6 +135,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/messages/batches/create.md b/content/en/api/beta/messages/batches/create.md index a02fd5056d..b6d2c9ed95 100644 --- a/content/en/api/beta/messages/batches/create.md +++ b/content/en/api/beta/messages/batches/create.md @@ -129,9 +129,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -3794,8 +3796,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3844,7 +3860,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3852,6 +3872,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` diff --git a/content/en/api/beta/messages/batches/delete.md b/content/en/api/beta/messages/batches/delete.md index e3bf42f3bc..1032216b30 100644 --- a/content/en/api/beta/messages/batches/delete.md +++ b/content/en/api/beta/messages/batches/delete.md @@ -135,6 +135,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/messages/batches/list.md b/content/en/api/beta/messages/batches/list.md index 5f48c2baf7..75714b2aaa 100644 --- a/content/en/api/beta/messages/batches/list.md +++ b/content/en/api/beta/messages/batches/list.md @@ -145,6 +145,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/messages/batches/results.md b/content/en/api/beta/messages/batches/results.md index 08b4e40659..5660541d15 100644 --- a/content/en/api/beta/messages/batches/results.md +++ b/content/en/api/beta/messages/batches/results.md @@ -135,6 +135,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3327,6 +3329,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3337,6 +3343,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3347,6 +3357,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3357,6 +3371,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3367,12 +3385,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/beta/messages/batches/retrieve.md b/content/en/api/beta/messages/batches/retrieve.md index a160a8950a..ad4b3f5869 100644 --- a/content/en/api/beta/messages/batches/retrieve.md +++ b/content/en/api/beta/messages/batches/retrieve.md @@ -133,6 +133,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/messages/count_tokens.md b/content/en/api/beta/messages/count_tokens.md index 056c8d1480..747e5b96fb 100644 --- a/content/en/api/beta/messages/count_tokens.md +++ b/content/en/api/beta/messages/count_tokens.md @@ -129,9 +129,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` diff --git a/content/en/api/beta/messages/create.md b/content/en/api/beta/messages/create.md index c7de00023a..7ce3bca79e 100644 --- a/content/en/api/beta/messages/create.md +++ b/content/en/api/beta/messages/create.md @@ -129,9 +129,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -3774,8 +3776,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: optional number or null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=http#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional BetaOutputConfig or null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more or null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3824,7 +3840,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: optional "standard" or "fast" or null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3832,6 +3852,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive or null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `BetaThinkingConfigEnabled object` - `type: "enabled"` @@ -7411,6 +7437,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7421,6 +7451,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7431,6 +7465,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7441,6 +7479,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7451,12 +7493,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `BetaCacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `BetaCacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/beta/models.md b/content/en/api/beta/models.md index f30aae4182..8a0724f92a 100644 --- a/content/en/api/beta/models.md +++ b/content/en/api/beta/models.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -640,6 +642,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/models/list.md b/content/en/api/beta/models/list.md index 378cfd764f..ef91a604b6 100644 --- a/content/en/api/beta/models/list.md +++ b/content/en/api/beta/models/list.md @@ -157,6 +157,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/models/retrieve.md b/content/en/api/beta/models/retrieve.md index d9fc8a88e6..ada98b15fd 100644 --- a/content/en/api/beta/models/retrieve.md +++ b/content/en/api/beta/models/retrieve.md @@ -133,6 +133,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/organization.md b/content/en/api/beta/organization.md index e8527c3d7e..d590b9870d 100644 --- a/content/en/api/beta/organization.md +++ b/content/en/api/beta/organization.md @@ -1732,6 +1732,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_url: string` @@ -2132,6 +2134,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationIssuer` @@ -2443,6 +2447,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -2757,6 +2763,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `check_jti: optional boolean or null` @@ -3149,6 +3157,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -3467,6 +3477,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_id: string` @@ -3892,6 +3904,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRule` @@ -4203,6 +4217,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -4532,6 +4548,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `applies_to_all_workspaces: optional boolean or null` @@ -4933,6 +4951,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -5258,6 +5278,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -5467,6 +5489,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRuleWorkspace` @@ -5666,6 +5690,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "federation_rule_workspace_deleted"` @@ -6337,6 +6363,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `name: string` @@ -6598,6 +6626,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccount` @@ -6821,6 +6851,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccount object` @@ -7045,6 +7077,8 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `description: optional string or null` @@ -7287,6 +7321,8 @@ those rules first or change their target to another service account. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccount object` @@ -7516,6 +7552,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -7754,6 +7792,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -7964,6 +8004,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` @@ -8710,6 +8752,8 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `name: string` @@ -9686,6 +9730,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +### Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +#### Body parameters + +- `limits: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `BetaWorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `BetaOrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `BetaOrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `BetaWorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `BetaWorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Organization › Workspaces › Members ### List Workspace Members @@ -10280,6 +10596,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -10487,6 +10805,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `service_account_id: string` @@ -10710,6 +11030,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccountWorkspaceMember object` @@ -10910,6 +11232,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_role: BetaNoBillingWorkspaceRole` @@ -11127,6 +11451,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` @@ -11232,7 +11558,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` @@ -11791,6 +12117,8 @@ Get Messages Usage Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaMessagesUsageReport object` @@ -12406,6 +12734,8 @@ Get Cost Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaCostReport object` @@ -12714,6 +13044,8 @@ archived tunnels are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaOrganizationTunnel` @@ -12920,6 +13252,8 @@ Retrieve a single tunnel in the caller's organization by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnel object` @@ -13122,6 +13456,8 @@ tunnel returns the existing record unchanged. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnel object` @@ -13325,6 +13661,8 @@ access logs. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelToken object` @@ -13500,6 +13838,8 @@ restarted after rotation must use the new value. An optional - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `reason: optional string or null` @@ -13686,6 +14026,8 @@ holds at most two non-archived certificates. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `ca_certificate_pem: string` @@ -13918,6 +14260,8 @@ Archived certificates are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaOrganizationTunnelCertificate` @@ -14128,6 +14472,8 @@ Retrieve a single certificate registered on a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` @@ -14333,6 +14679,8 @@ certificate is added. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` @@ -18323,6 +18671,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `amount: string or null` @@ -18920,6 +19270,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaSpendLimit` @@ -21969,6 +22321,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `files: array of string` @@ -22372,6 +22726,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPlugin object` @@ -22771,6 +23127,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `served_version_id: string` @@ -23220,6 +23578,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPlugin` @@ -23619,6 +23979,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedPlugin object` @@ -23799,6 +24161,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `files: array of string` @@ -24144,6 +24508,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginVersion` @@ -24471,6 +24837,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPluginVersion object` @@ -24805,6 +25173,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Example ```bash @@ -24975,6 +25345,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginInstallationSetting` @@ -25224,6 +25596,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -25490,6 +25864,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedPluginInstallationSetting object` @@ -25730,6 +26106,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginShare` @@ -25987,6 +26365,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginMarketplace` @@ -26256,6 +26636,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPluginMarketplace object` @@ -26515,6 +26897,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `default_installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -26796,6 +27180,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `repository_url: string` @@ -27064,6 +27450,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `archive: string` @@ -27316,6 +27704,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `endpoint_url: string` @@ -27789,6 +28179,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaTelemetryDestination` @@ -28140,6 +28532,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaTelemetryDestination object` @@ -28486,6 +28880,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `display_name: optional string or null` @@ -28966,6 +29362,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedTelemetryDestination object` @@ -29125,6 +29523,8 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaTelemetryDestinationTestResponse object` @@ -29320,6 +29720,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaTelemetryDestinationWorkspace` @@ -29509,6 +29911,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaTelemetryDestinationWorkspace object` @@ -29692,6 +30096,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedTelemetryDestinationWorkspace object` @@ -29727,3 +30133,1305 @@ curl https://api.anthropic.com/v1/organizations/telemetry_destinations/$DESTINAT "workspace_id": "workspace_id" } ``` + +## Organization › Webhooks + +### Create Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `description: optional string` + + Notes about the endpoint. + +- `name: optional string` + + A short label for the endpoint. + +#### Returns + +- `BetaNewOrganizationWebhookEndpoint object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "url": "x" + }' +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Query parameters + +- `after_id: optional string` + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: optional string` + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: optional number` + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0, minimum: 0, maximum: 100 + +- `order: optional "asc" or "desc"` + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `data: array of BetaOrganizationWebhookEndpoint` + + The organization webhook endpoints on this page. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +- `has_more: boolean` + + Whether more endpoints follow this page in list order. With `before_id`, only endpoints before the cursor count. + +- `first_id: optional string or null` + + First ID in the `data` list. + +- `last_id: optional string or null` + + Last ID in the `data` list. Can be used as the `after_id` for the next page. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" +} +``` + +### Get Organization Webhook Endpoint + +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Update Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Update an organization webhook endpoint. Only the fields you send are changed. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Body parameters + +- `description: optional string` + + Notes about the endpoint. + +- `enabled_events: optional array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `name: optional string` + + A short label for the endpoint. + +- `state: optional "disabled" or "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + +- `url: optional string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +#### Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{}' +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Delete Organization Webhook Endpoint + +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Delete an organization webhook endpoint. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaDeletedOrganizationWebhookEndpoint object` + + A deleted organization webhook endpoint. + + - `type: "webhook_endpoint_deleted"` + + Always `webhook_endpoint_deleted`. + + default: webhook_endpoint_deleted + + - `id: string` + + ID of the deleted webhook endpoint. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "webhook_endpoint_deleted" +} +``` + +### Regenerate Organization Webhook Endpoint Signing Secret + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` + +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `BetaOrganizationWebhookEndpointSigningSecret object` + + An organization webhook endpoint's new signing secret. + + - `signing_secret: string` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID/regenerate_signing_secret \ + -X POST \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +##### Response (200) + +```json +{ + "signing_secret": "signing_secret" +} +``` diff --git a/content/en/api/beta/organization/cost_report.md b/content/en/api/beta/organization/cost_report.md index 4203c84547..a43ce329eb 100644 --- a/content/en/api/beta/organization/cost_report.md +++ b/content/en/api/beta/organization/cost_report.md @@ -166,6 +166,8 @@ Get Cost Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaCostReport object` diff --git a/content/en/api/beta/organization/cost_report/retrieve.md b/content/en/api/beta/organization/cost_report/retrieve.md index b64141a8ed..4b97df7cb7 100644 --- a/content/en/api/beta/organization/cost_report/retrieve.md +++ b/content/en/api/beta/organization/cost_report/retrieve.md @@ -164,6 +164,8 @@ Get Cost Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaCostReport object` diff --git a/content/en/api/beta/organization/federation.md b/content/en/api/beta/organization/federation.md index 7ad31d97b2..ae284e0aff 100644 --- a/content/en/api/beta/organization/federation.md +++ b/content/en/api/beta/organization/federation.md @@ -141,6 +141,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_url: string` @@ -541,6 +543,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationIssuer` @@ -852,6 +856,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -1166,6 +1172,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `check_jti: optional boolean or null` @@ -1558,6 +1566,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationIssuer object` @@ -1876,6 +1886,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `issuer_id: string` @@ -2301,6 +2313,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRule` @@ -2612,6 +2626,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -2941,6 +2957,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `applies_to_all_workspaces: optional boolean or null` @@ -3342,6 +3360,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaFederationRule object` @@ -3667,6 +3687,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -3876,6 +3898,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRuleWorkspace` @@ -4075,6 +4099,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "federation_rule_workspace_deleted"` diff --git a/content/en/api/beta/organization/federation/issuers.md b/content/en/api/beta/organization/federation/issuers.md index 0300fc1a92..b32e144e81 100644 --- a/content/en/api/beta/organization/federation/issuers.md +++ b/content/en/api/beta/organization/federation/issuers.md @@ -139,6 +139,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `issuer_url: string` @@ -539,6 +541,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaFederationIssuer` @@ -850,6 +854,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaFederationIssuer object` @@ -1164,6 +1170,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `check_jti: optional boolean or null` @@ -1556,6 +1564,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaFederationIssuer object` diff --git a/content/en/api/beta/organization/federation/issuers/archive.md b/content/en/api/beta/organization/federation/issuers/archive.md index 0afe88c6d5..f4988bc6eb 100644 --- a/content/en/api/beta/organization/federation/issuers/archive.md +++ b/content/en/api/beta/organization/federation/issuers/archive.md @@ -138,6 +138,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaFederationIssuer object` diff --git a/content/en/api/beta/organization/federation/issuers/create.md b/content/en/api/beta/organization/federation/issuers/create.md index 66104d906f..03f352c25e 100644 --- a/content/en/api/beta/organization/federation/issuers/create.md +++ b/content/en/api/beta/organization/federation/issuers/create.md @@ -137,6 +137,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `issuer_url: string` diff --git a/content/en/api/beta/organization/federation/issuers/list.md b/content/en/api/beta/organization/federation/issuers/list.md index acfae81e08..ab04dd6961 100644 --- a/content/en/api/beta/organization/federation/issuers/list.md +++ b/content/en/api/beta/organization/federation/issuers/list.md @@ -147,6 +147,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaFederationIssuer` diff --git a/content/en/api/beta/organization/federation/issuers/retrieve.md b/content/en/api/beta/organization/federation/issuers/retrieve.md index b46eef0177..7e5b0a5cdc 100644 --- a/content/en/api/beta/organization/federation/issuers/retrieve.md +++ b/content/en/api/beta/organization/federation/issuers/retrieve.md @@ -133,6 +133,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaFederationIssuer object` diff --git a/content/en/api/beta/organization/federation/issuers/update.md b/content/en/api/beta/organization/federation/issuers/update.md index fcf026710f..a0a9206e4f 100644 --- a/content/en/api/beta/organization/federation/issuers/update.md +++ b/content/en/api/beta/organization/federation/issuers/update.md @@ -140,6 +140,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `check_jti: optional boolean or null` diff --git a/content/en/api/beta/organization/federation/rules.md b/content/en/api/beta/organization/federation/rules.md index fff670e0d9..f7649bdcea 100644 --- a/content/en/api/beta/organization/federation/rules.md +++ b/content/en/api/beta/organization/federation/rules.md @@ -143,6 +143,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `issuer_id: string` @@ -568,6 +570,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaFederationRule` @@ -879,6 +883,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaFederationRule object` @@ -1208,6 +1214,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `applies_to_all_workspaces: optional boolean or null` @@ -1609,6 +1617,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaFederationRule object` @@ -2147,6 +2157,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -2356,6 +2368,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaFederationRuleWorkspace` @@ -2555,6 +2569,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "federation_rule_workspace_deleted"` diff --git a/content/en/api/beta/organization/federation/rules/archive.md b/content/en/api/beta/organization/federation/rules/archive.md index a975951340..346916dd6a 100644 --- a/content/en/api/beta/organization/federation/rules/archive.md +++ b/content/en/api/beta/organization/federation/rules/archive.md @@ -141,6 +141,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaFederationRule object` diff --git a/content/en/api/beta/organization/federation/rules/create.md b/content/en/api/beta/organization/federation/rules/create.md index a9d89790a2..b4abdd00f1 100644 --- a/content/en/api/beta/organization/federation/rules/create.md +++ b/content/en/api/beta/organization/federation/rules/create.md @@ -141,6 +141,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `issuer_id: string` diff --git a/content/en/api/beta/organization/federation/rules/list.md b/content/en/api/beta/organization/federation/rules/list.md index 8d8d59e60b..0e6ab7ed56 100644 --- a/content/en/api/beta/organization/federation/rules/list.md +++ b/content/en/api/beta/organization/federation/rules/list.md @@ -152,6 +152,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaFederationRule` diff --git a/content/en/api/beta/organization/federation/rules/retrieve.md b/content/en/api/beta/organization/federation/rules/retrieve.md index 9e7542b935..7689ad40f0 100644 --- a/content/en/api/beta/organization/federation/rules/retrieve.md +++ b/content/en/api/beta/organization/federation/rules/retrieve.md @@ -133,6 +133,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaFederationRule object` diff --git a/content/en/api/beta/organization/federation/rules/update.md b/content/en/api/beta/organization/federation/rules/update.md index d891aacf83..89b9696968 100644 --- a/content/en/api/beta/organization/federation/rules/update.md +++ b/content/en/api/beta/organization/federation/rules/update.md @@ -149,6 +149,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `applies_to_all_workspaces: optional boolean or null` diff --git a/content/en/api/beta/organization/federation/rules/workspaces.md b/content/en/api/beta/organization/federation/rules/workspaces.md index b7682c5fc5..e98c2f8771 100644 --- a/content/en/api/beta/organization/federation/rules/workspaces.md +++ b/content/en/api/beta/organization/federation/rules/workspaces.md @@ -144,6 +144,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `workspace_id: string` @@ -353,6 +355,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaFederationRuleWorkspace` @@ -552,6 +556,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `type: "federation_rule_workspace_deleted"` diff --git a/content/en/api/beta/organization/federation/rules/workspaces/add.md b/content/en/api/beta/organization/federation/rules/workspaces/add.md index 7dcb6d834a..587bb193ca 100644 --- a/content/en/api/beta/organization/federation/rules/workspaces/add.md +++ b/content/en/api/beta/organization/federation/rules/workspaces/add.md @@ -142,6 +142,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `workspace_id: string` diff --git a/content/en/api/beta/organization/federation/rules/workspaces/list.md b/content/en/api/beta/organization/federation/rules/workspaces/list.md index ba7a76fec1..642688e2f9 100644 --- a/content/en/api/beta/organization/federation/rules/workspaces/list.md +++ b/content/en/api/beta/organization/federation/rules/workspaces/list.md @@ -151,6 +151,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaFederationRuleWorkspace` diff --git a/content/en/api/beta/organization/federation/rules/workspaces/remove.md b/content/en/api/beta/organization/federation/rules/workspaces/remove.md index f59f06f37d..e285665c17 100644 --- a/content/en/api/beta/organization/federation/rules/workspaces/remove.md +++ b/content/en/api/beta/organization/federation/rules/workspaces/remove.md @@ -142,6 +142,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `type: "federation_rule_workspace_deleted"` diff --git a/content/en/api/beta/organization/mcp_tunnels.md b/content/en/api/beta/organization/mcp_tunnels.md index 990d3f77db..17250f8351 100644 --- a/content/en/api/beta/organization/mcp_tunnels.md +++ b/content/en/api/beta/organization/mcp_tunnels.md @@ -160,6 +160,8 @@ archived tunnels are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaOrganizationTunnel` @@ -366,6 +368,8 @@ Retrieve a single tunnel in the caller's organization by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaOrganizationTunnel object` @@ -568,6 +572,8 @@ tunnel returns the existing record unchanged. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaOrganizationTunnel object` @@ -771,6 +777,8 @@ access logs. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaOrganizationTunnelToken object` @@ -946,6 +954,8 @@ restarted after rotation must use the new value. An optional - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `reason: optional string or null` @@ -1195,6 +1205,8 @@ holds at most two non-archived certificates. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `ca_certificate_pem: string` @@ -1427,6 +1439,8 @@ Archived certificates are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaOrganizationTunnelCertificate` @@ -1637,6 +1651,8 @@ Retrieve a single certificate registered on a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` @@ -1842,6 +1858,8 @@ certificate is added. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaOrganizationTunnelCertificate object` diff --git a/content/en/api/beta/organization/mcp_tunnels/archive.md b/content/en/api/beta/organization/mcp_tunnels/archive.md index 7b53660838..0f81c5c49e 100644 --- a/content/en/api/beta/organization/mcp_tunnels/archive.md +++ b/content/en/api/beta/organization/mcp_tunnels/archive.md @@ -140,6 +140,8 @@ tunnel returns the existing record unchanged. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaOrganizationTunnel object` diff --git a/content/en/api/beta/organization/mcp_tunnels/list.md b/content/en/api/beta/organization/mcp_tunnels/list.md index c01654373e..651be764b4 100644 --- a/content/en/api/beta/organization/mcp_tunnels/list.md +++ b/content/en/api/beta/organization/mcp_tunnels/list.md @@ -158,6 +158,8 @@ archived tunnels are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaOrganizationTunnel` diff --git a/content/en/api/beta/organization/mcp_tunnels/retrieve.md b/content/en/api/beta/organization/mcp_tunnels/retrieve.md index 1067d51122..eac2177ed0 100644 --- a/content/en/api/beta/organization/mcp_tunnels/retrieve.md +++ b/content/en/api/beta/organization/mcp_tunnels/retrieve.md @@ -135,6 +135,8 @@ Retrieve a single tunnel in the caller's organization by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaOrganizationTunnel object` diff --git a/content/en/api/beta/organization/mcp_tunnels/reveal_token.md b/content/en/api/beta/organization/mcp_tunnels/reveal_token.md index d46d0985f0..75e64f2a74 100644 --- a/content/en/api/beta/organization/mcp_tunnels/reveal_token.md +++ b/content/en/api/beta/organization/mcp_tunnels/reveal_token.md @@ -140,6 +140,8 @@ access logs. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaOrganizationTunnelToken object` diff --git a/content/en/api/beta/organization/mcp_tunnels/rotate_token.md b/content/en/api/beta/organization/mcp_tunnels/rotate_token.md index 5d469ff007..9a7501a9a5 100644 --- a/content/en/api/beta/organization/mcp_tunnels/rotate_token.md +++ b/content/en/api/beta/organization/mcp_tunnels/rotate_token.md @@ -139,6 +139,8 @@ restarted after rotation must use the new value. An optional - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `reason: optional string or null` diff --git a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates.md b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates.md index d2f55d37ac..eaba09a454 100644 --- a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates.md +++ b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates.md @@ -142,6 +142,8 @@ holds at most two non-archived certificates. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `ca_certificate_pem: string` @@ -374,6 +376,8 @@ Archived certificates are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaOrganizationTunnelCertificate` @@ -584,6 +588,8 @@ Retrieve a single certificate registered on a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaOrganizationTunnelCertificate object` @@ -789,6 +795,8 @@ certificate is added. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaOrganizationTunnelCertificate object` diff --git a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md index f2bbfcdbd7..8a2abfd44c 100644 --- a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md +++ b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md @@ -143,6 +143,8 @@ certificate is added. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaOrganizationTunnelCertificate object` diff --git a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md index aa38940aab..3f4e028290 100644 --- a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md +++ b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md @@ -140,6 +140,8 @@ holds at most two non-archived certificates. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `ca_certificate_pem: string` diff --git a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md index 1dc2bc4b30..7c38e41c89 100644 --- a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md +++ b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md @@ -157,6 +157,8 @@ Archived certificates are excluded unless `include_archived` is set. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaOrganizationTunnelCertificate` diff --git a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md index 2870d09fec..c53d02ee28 100644 --- a/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md +++ b/content/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md @@ -139,6 +139,8 @@ Retrieve a single certificate registered on a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaOrganizationTunnelCertificate object` diff --git a/content/en/api/beta/organization/plugin_marketplaces.md b/content/en/api/beta/organization/plugin_marketplaces.md index 938c3fcf22..1516816f19 100644 --- a/content/en/api/beta/organization/plugin_marketplaces.md +++ b/content/en/api/beta/organization/plugin_marketplaces.md @@ -173,6 +173,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaPluginMarketplace` @@ -442,6 +444,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaPluginMarketplace object` @@ -701,6 +705,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `default_installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -982,6 +988,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `repository_url: string` @@ -1250,6 +1258,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters (form-data) - `archive: string` diff --git a/content/en/api/beta/organization/plugin_marketplaces/list.md b/content/en/api/beta/organization/plugin_marketplaces/list.md index 3aca29e7fa..9fc5ce72cf 100644 --- a/content/en/api/beta/organization/plugin_marketplaces/list.md +++ b/content/en/api/beta/organization/plugin_marketplaces/list.md @@ -171,6 +171,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaPluginMarketplace` diff --git a/content/en/api/beta/organization/plugin_marketplaces/retrieve.md b/content/en/api/beta/organization/plugin_marketplaces/retrieve.md index d816550587..dabe802431 100644 --- a/content/en/api/beta/organization/plugin_marketplaces/retrieve.md +++ b/content/en/api/beta/organization/plugin_marketplaces/retrieve.md @@ -135,6 +135,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaPluginMarketplace object` diff --git a/content/en/api/beta/organization/plugin_marketplaces/update.md b/content/en/api/beta/organization/plugin_marketplaces/update.md index 7307f2e6ea..ce35c560b2 100644 --- a/content/en/api/beta/organization/plugin_marketplaces/update.md +++ b/content/en/api/beta/organization/plugin_marketplaces/update.md @@ -134,6 +134,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `default_installation_preference: "auto_install" or "available" or "not_available" or "required"` diff --git a/content/en/api/beta/organization/plugin_marketplaces/validate_archive.md b/content/en/api/beta/organization/plugin_marketplaces/validate_archive.md index 23930a0cdb..6b0a03d26a 100644 --- a/content/en/api/beta/organization/plugin_marketplaces/validate_archive.md +++ b/content/en/api/beta/organization/plugin_marketplaces/validate_archive.md @@ -138,6 +138,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters (form-data) - `archive: string` diff --git a/content/en/api/beta/organization/plugin_marketplaces/validate_repository.md b/content/en/api/beta/organization/plugin_marketplaces/validate_repository.md index 3292dee69d..97ad07c87b 100644 --- a/content/en/api/beta/organization/plugin_marketplaces/validate_repository.md +++ b/content/en/api/beta/organization/plugin_marketplaces/validate_repository.md @@ -138,6 +138,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `repository_url: string` diff --git a/content/en/api/beta/organization/plugins.md b/content/en/api/beta/organization/plugins.md index 7a90ca41e0..cf7b6ef579 100644 --- a/content/en/api/beta/organization/plugins.md +++ b/content/en/api/beta/organization/plugins.md @@ -151,6 +151,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters (form-data) - `files: array of string` @@ -554,6 +556,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaPlugin object` @@ -953,6 +957,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `served_version_id: string` @@ -1402,6 +1408,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaPlugin` @@ -1801,6 +1809,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaDeletedPlugin object` @@ -2351,6 +2361,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters (form-data) - `files: array of string` @@ -2696,6 +2708,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginVersion` @@ -3023,6 +3037,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaPluginVersion object` @@ -3357,6 +3373,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Example ```bash @@ -3527,6 +3545,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginInstallationSetting` @@ -3776,6 +3796,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -4042,6 +4064,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedPluginInstallationSetting object` @@ -4282,6 +4306,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaPluginShare` diff --git a/content/en/api/beta/organization/plugins/create.md b/content/en/api/beta/organization/plugins/create.md index 10829b5796..05ac47b929 100644 --- a/content/en/api/beta/organization/plugins/create.md +++ b/content/en/api/beta/organization/plugins/create.md @@ -149,6 +149,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters (form-data) - `files: array of string` diff --git a/content/en/api/beta/organization/plugins/delete.md b/content/en/api/beta/organization/plugins/delete.md index 76161c4879..a0e96f8532 100644 --- a/content/en/api/beta/organization/plugins/delete.md +++ b/content/en/api/beta/organization/plugins/delete.md @@ -140,6 +140,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaDeletedPlugin object` diff --git a/content/en/api/beta/organization/plugins/installation_settings.md b/content/en/api/beta/organization/plugins/installation_settings.md index fd71759bf8..1deea58e91 100644 --- a/content/en/api/beta/organization/plugins/installation_settings.md +++ b/content/en/api/beta/organization/plugins/installation_settings.md @@ -164,6 +164,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaPluginInstallationSetting` @@ -413,6 +415,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `installation_preference: "auto_install" or "available" or "not_available" or "required"` @@ -679,6 +683,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaDeletedPluginInstallationSetting object` diff --git a/content/en/api/beta/organization/plugins/installation_settings/list.md b/content/en/api/beta/organization/plugins/installation_settings/list.md index cbb9d13a2d..e9ac9b2cba 100644 --- a/content/en/api/beta/organization/plugins/installation_settings/list.md +++ b/content/en/api/beta/organization/plugins/installation_settings/list.md @@ -162,6 +162,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaPluginInstallationSetting` diff --git a/content/en/api/beta/organization/plugins/installation_settings/remove.md b/content/en/api/beta/organization/plugins/installation_settings/remove.md index f6de1a96c2..043f8d75df 100644 --- a/content/en/api/beta/organization/plugins/installation_settings/remove.md +++ b/content/en/api/beta/organization/plugins/installation_settings/remove.md @@ -149,6 +149,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaDeletedPluginInstallationSetting object` diff --git a/content/en/api/beta/organization/plugins/installation_settings/set.md b/content/en/api/beta/organization/plugins/installation_settings/set.md index 88f331e7cd..47f8a9964c 100644 --- a/content/en/api/beta/organization/plugins/installation_settings/set.md +++ b/content/en/api/beta/organization/plugins/installation_settings/set.md @@ -145,6 +145,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `installation_preference: "auto_install" or "available" or "not_available" or "required"` diff --git a/content/en/api/beta/organization/plugins/list.md b/content/en/api/beta/organization/plugins/list.md index 39e7d66094..fd61eb3086 100644 --- a/content/en/api/beta/organization/plugins/list.md +++ b/content/en/api/beta/organization/plugins/list.md @@ -189,6 +189,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaPlugin` diff --git a/content/en/api/beta/organization/plugins/retrieve.md b/content/en/api/beta/organization/plugins/retrieve.md index f9f744ff61..c06d2bad0b 100644 --- a/content/en/api/beta/organization/plugins/retrieve.md +++ b/content/en/api/beta/organization/plugins/retrieve.md @@ -135,6 +135,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaPlugin object` diff --git a/content/en/api/beta/organization/plugins/shares.md b/content/en/api/beta/organization/plugins/shares.md index f311b62961..61f4a77ac8 100644 --- a/content/en/api/beta/organization/plugins/shares.md +++ b/content/en/api/beta/organization/plugins/shares.md @@ -167,6 +167,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaPluginShare` diff --git a/content/en/api/beta/organization/plugins/shares/list.md b/content/en/api/beta/organization/plugins/shares/list.md index e392c316f7..b0e54d40f0 100644 --- a/content/en/api/beta/organization/plugins/shares/list.md +++ b/content/en/api/beta/organization/plugins/shares/list.md @@ -165,6 +165,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaPluginShare` diff --git a/content/en/api/beta/organization/plugins/update.md b/content/en/api/beta/organization/plugins/update.md index 5fece8e58e..725dd340d5 100644 --- a/content/en/api/beta/organization/plugins/update.md +++ b/content/en/api/beta/organization/plugins/update.md @@ -149,6 +149,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `served_version_id: string` diff --git a/content/en/api/beta/organization/plugins/versions.md b/content/en/api/beta/organization/plugins/versions.md index 35ba3e82b2..f757002a71 100644 --- a/content/en/api/beta/organization/plugins/versions.md +++ b/content/en/api/beta/organization/plugins/versions.md @@ -150,6 +150,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters (form-data) - `files: array of string` @@ -495,6 +497,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaPluginVersion` @@ -822,6 +826,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaPluginVersion object` @@ -1156,6 +1162,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Example ```bash diff --git a/content/en/api/beta/organization/plugins/versions/create.md b/content/en/api/beta/organization/plugins/versions/create.md index e69de84824..cc85850af8 100644 --- a/content/en/api/beta/organization/plugins/versions/create.md +++ b/content/en/api/beta/organization/plugins/versions/create.md @@ -148,6 +148,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters (form-data) - `files: array of string` diff --git a/content/en/api/beta/organization/plugins/versions/download.md b/content/en/api/beta/organization/plugins/versions/download.md index e2a4dfce2a..9f4d3abf10 100644 --- a/content/en/api/beta/organization/plugins/versions/download.md +++ b/content/en/api/beta/organization/plugins/versions/download.md @@ -155,6 +155,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Example ```bash diff --git a/content/en/api/beta/organization/plugins/versions/list.md b/content/en/api/beta/organization/plugins/versions/list.md index db81a9fe0d..4a75348e14 100644 --- a/content/en/api/beta/organization/plugins/versions/list.md +++ b/content/en/api/beta/organization/plugins/versions/list.md @@ -152,6 +152,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaPluginVersion` diff --git a/content/en/api/beta/organization/plugins/versions/retrieve.md b/content/en/api/beta/organization/plugins/versions/retrieve.md index b5dbc06895..07cfc7b04c 100644 --- a/content/en/api/beta/organization/plugins/versions/retrieve.md +++ b/content/en/api/beta/organization/plugins/versions/retrieve.md @@ -139,6 +139,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaPluginVersion object` diff --git a/content/en/api/beta/organization/rate_limits.md b/content/en/api/beta/organization/rate_limits.md index c6305c99a6..d3c5fec9e6 100644 --- a/content/en/api/beta/organization/rate_limits.md +++ b/content/en/api/beta/organization/rate_limits.md @@ -75,7 +75,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` @@ -246,7 +246,7 @@ curl https://api.anthropic.com/v1/organizations/rate_limits \ - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` diff --git a/content/en/api/beta/organization/rate_limits/list.md b/content/en/api/beta/organization/rate_limits/list.md index 17812bc5c1..d9518e7f5d 100644 --- a/content/en/api/beta/organization/rate_limits/list.md +++ b/content/en/api/beta/organization/rate_limits/list.md @@ -73,7 +73,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` diff --git a/content/en/api/beta/organization/service_accounts.md b/content/en/api/beta/organization/service_accounts.md index f9da7bb5a9..6261b3262d 100644 --- a/content/en/api/beta/organization/service_accounts.md +++ b/content/en/api/beta/organization/service_accounts.md @@ -137,6 +137,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `name: string` @@ -398,6 +400,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaServiceAccount` @@ -621,6 +625,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaServiceAccount object` @@ -845,6 +851,8 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `description: optional string or null` @@ -1087,6 +1095,8 @@ those rules first or change their target to another service account. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaServiceAccount object` @@ -1419,6 +1429,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_id: string` @@ -1657,6 +1669,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -1867,6 +1881,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/service_accounts/archive.md b/content/en/api/beta/organization/service_accounts/archive.md index da06681a38..6b409f65e7 100644 --- a/content/en/api/beta/organization/service_accounts/archive.md +++ b/content/en/api/beta/organization/service_accounts/archive.md @@ -138,6 +138,8 @@ those rules first or change their target to another service account. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaServiceAccount object` diff --git a/content/en/api/beta/organization/service_accounts/create.md b/content/en/api/beta/organization/service_accounts/create.md index 9cfaf4e668..0239b90079 100644 --- a/content/en/api/beta/organization/service_accounts/create.md +++ b/content/en/api/beta/organization/service_accounts/create.md @@ -135,6 +135,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `name: string` diff --git a/content/en/api/beta/organization/service_accounts/list.md b/content/en/api/beta/organization/service_accounts/list.md index 51b9593a51..3687316431 100644 --- a/content/en/api/beta/organization/service_accounts/list.md +++ b/content/en/api/beta/organization/service_accounts/list.md @@ -149,6 +149,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaServiceAccount` diff --git a/content/en/api/beta/organization/service_accounts/retrieve.md b/content/en/api/beta/organization/service_accounts/retrieve.md index be163777ec..5e98eb3abd 100644 --- a/content/en/api/beta/organization/service_accounts/retrieve.md +++ b/content/en/api/beta/organization/service_accounts/retrieve.md @@ -133,6 +133,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaServiceAccount object` diff --git a/content/en/api/beta/organization/service_accounts/update.md b/content/en/api/beta/organization/service_accounts/update.md index cd7dd931fd..f5dfd8e39a 100644 --- a/content/en/api/beta/organization/service_accounts/update.md +++ b/content/en/api/beta/organization/service_accounts/update.md @@ -138,6 +138,8 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `description: optional string or null` diff --git a/content/en/api/beta/organization/service_accounts/workspaces.md b/content/en/api/beta/organization/service_accounts/workspaces.md index 8cd5b5cac9..2ab927f4c7 100644 --- a/content/en/api/beta/organization/service_accounts/workspaces.md +++ b/content/en/api/beta/organization/service_accounts/workspaces.md @@ -142,6 +142,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `workspace_id: string` @@ -380,6 +382,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -590,6 +594,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/service_accounts/workspaces/add.md b/content/en/api/beta/organization/service_accounts/workspaces/add.md index 4a66f32a27..42deb220d3 100644 --- a/content/en/api/beta/organization/service_accounts/workspaces/add.md +++ b/content/en/api/beta/organization/service_accounts/workspaces/add.md @@ -140,6 +140,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `workspace_id: string` diff --git a/content/en/api/beta/organization/service_accounts/workspaces/list.md b/content/en/api/beta/organization/service_accounts/workspaces/list.md index 9780c2b6c8..2d88e7e8ef 100644 --- a/content/en/api/beta/organization/service_accounts/workspaces/list.md +++ b/content/en/api/beta/organization/service_accounts/workspaces/list.md @@ -159,6 +159,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaServiceAccountWorkspaceMember` diff --git a/content/en/api/beta/organization/service_accounts/workspaces/remove.md b/content/en/api/beta/organization/service_accounts/workspaces/remove.md index 8c7709117a..76ea4ef1e1 100644 --- a/content/en/api/beta/organization/service_accounts/workspaces/remove.md +++ b/content/en/api/beta/organization/service_accounts/workspaces/remove.md @@ -145,6 +145,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/spend_limits.md b/content/en/api/beta/organization/spend_limits.md index 3e5a6a1903..8b958e4253 100644 --- a/content/en/api/beta/organization/spend_limits.md +++ b/content/en/api/beta/organization/spend_limits.md @@ -135,6 +135,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `amount: string or null` @@ -732,6 +734,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaSpendLimit` diff --git a/content/en/api/beta/organization/spend_limits/list.md b/content/en/api/beta/organization/spend_limits/list.md index 9d5da19746..458a0dca5b 100644 --- a/content/en/api/beta/organization/spend_limits/list.md +++ b/content/en/api/beta/organization/spend_limits/list.md @@ -160,6 +160,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaSpendLimit` diff --git a/content/en/api/beta/organization/spend_limits/set.md b/content/en/api/beta/organization/spend_limits/set.md index 12d41e9af2..0574c258f8 100644 --- a/content/en/api/beta/organization/spend_limits/set.md +++ b/content/en/api/beta/organization/spend_limits/set.md @@ -133,6 +133,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `amount: string or null` diff --git a/content/en/api/beta/organization/telemetry_destinations.md b/content/en/api/beta/organization/telemetry_destinations.md index 15a9467fba..b2f8bc1fa1 100644 --- a/content/en/api/beta/organization/telemetry_destinations.md +++ b/content/en/api/beta/organization/telemetry_destinations.md @@ -131,6 +131,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `endpoint_url: string` @@ -604,6 +606,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaTelemetryDestination` @@ -955,6 +959,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaTelemetryDestination object` @@ -1301,6 +1307,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `display_name: optional string or null` @@ -1781,6 +1789,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaDeletedTelemetryDestination object` @@ -1940,6 +1950,8 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaTelemetryDestinationTestResponse object` @@ -2869,6 +2881,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaTelemetryDestinationWorkspace` @@ -3058,6 +3072,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaTelemetryDestinationWorkspace object` @@ -3241,6 +3257,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaDeletedTelemetryDestinationWorkspace object` diff --git a/content/en/api/beta/organization/telemetry_destinations/create.md b/content/en/api/beta/organization/telemetry_destinations/create.md index b2b045ff90..5562147617 100644 --- a/content/en/api/beta/organization/telemetry_destinations/create.md +++ b/content/en/api/beta/organization/telemetry_destinations/create.md @@ -129,6 +129,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `endpoint_url: string` diff --git a/content/en/api/beta/organization/telemetry_destinations/delete.md b/content/en/api/beta/organization/telemetry_destinations/delete.md index 4a07944625..df332aa144 100644 --- a/content/en/api/beta/organization/telemetry_destinations/delete.md +++ b/content/en/api/beta/organization/telemetry_destinations/delete.md @@ -135,6 +135,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaDeletedTelemetryDestination object` diff --git a/content/en/api/beta/organization/telemetry_destinations/list.md b/content/en/api/beta/organization/telemetry_destinations/list.md index 469b83a7a3..9a05d98787 100644 --- a/content/en/api/beta/organization/telemetry_destinations/list.md +++ b/content/en/api/beta/organization/telemetry_destinations/list.md @@ -145,6 +145,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaTelemetryDestination` diff --git a/content/en/api/beta/organization/telemetry_destinations/retrieve.md b/content/en/api/beta/organization/telemetry_destinations/retrieve.md index c5fab66732..7c5b8a8a81 100644 --- a/content/en/api/beta/organization/telemetry_destinations/retrieve.md +++ b/content/en/api/beta/organization/telemetry_destinations/retrieve.md @@ -133,6 +133,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaTelemetryDestination object` diff --git a/content/en/api/beta/organization/telemetry_destinations/test.md b/content/en/api/beta/organization/telemetry_destinations/test.md index b4a8acc009..e1fb2e23fb 100644 --- a/content/en/api/beta/organization/telemetry_destinations/test.md +++ b/content/en/api/beta/organization/telemetry_destinations/test.md @@ -131,6 +131,8 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaTelemetryDestinationTestResponse object` diff --git a/content/en/api/beta/organization/telemetry_destinations/update.md b/content/en/api/beta/organization/telemetry_destinations/update.md index dcdb8a5a45..f27c8437e1 100644 --- a/content/en/api/beta/organization/telemetry_destinations/update.md +++ b/content/en/api/beta/organization/telemetry_destinations/update.md @@ -137,6 +137,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `display_name: optional string or null` diff --git a/content/en/api/beta/organization/telemetry_destinations/workspaces.md b/content/en/api/beta/organization/telemetry_destinations/workspaces.md index 77eb39f7e7..2220a8deeb 100644 --- a/content/en/api/beta/organization/telemetry_destinations/workspaces.md +++ b/content/en/api/beta/organization/telemetry_destinations/workspaces.md @@ -149,6 +149,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaTelemetryDestinationWorkspace` @@ -338,6 +340,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaTelemetryDestinationWorkspace object` @@ -521,6 +525,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaDeletedTelemetryDestinationWorkspace object` diff --git a/content/en/api/beta/organization/telemetry_destinations/workspaces/add.md b/content/en/api/beta/organization/telemetry_destinations/workspaces/add.md index 2ee686a4e1..89f26cb633 100644 --- a/content/en/api/beta/organization/telemetry_destinations/workspaces/add.md +++ b/content/en/api/beta/organization/telemetry_destinations/workspaces/add.md @@ -141,6 +141,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaTelemetryDestinationWorkspace object` diff --git a/content/en/api/beta/organization/telemetry_destinations/workspaces/list.md b/content/en/api/beta/organization/telemetry_destinations/workspaces/list.md index 3169bc96e0..847478bce7 100644 --- a/content/en/api/beta/organization/telemetry_destinations/workspaces/list.md +++ b/content/en/api/beta/organization/telemetry_destinations/workspaces/list.md @@ -147,6 +147,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaTelemetryDestinationWorkspace` diff --git a/content/en/api/beta/organization/telemetry_destinations/workspaces/remove.md b/content/en/api/beta/organization/telemetry_destinations/workspaces/remove.md index f00c8c16dc..9b9f7f6e83 100644 --- a/content/en/api/beta/organization/telemetry_destinations/workspaces/remove.md +++ b/content/en/api/beta/organization/telemetry_destinations/workspaces/remove.md @@ -141,6 +141,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaDeletedTelemetryDestinationWorkspace object` diff --git a/content/en/api/beta/organization/usage_report.md b/content/en/api/beta/organization/usage_report.md index 941254935f..f623087f25 100644 --- a/content/en/api/beta/organization/usage_report.md +++ b/content/en/api/beta/organization/usage_report.md @@ -251,6 +251,8 @@ Get Messages Usage Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaMessagesUsageReport object` diff --git a/content/en/api/beta/organization/usage_report/retrieve_messages.md b/content/en/api/beta/organization/usage_report/retrieve_messages.md index 171a31f4fd..c0ae7091d6 100644 --- a/content/en/api/beta/organization/usage_report/retrieve_messages.md +++ b/content/en/api/beta/organization/usage_report/retrieve_messages.md @@ -249,6 +249,8 @@ Get Messages Usage Report - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaMessagesUsageReport object` diff --git a/content/en/api/beta/organization/webhooks.md b/content/en/api/beta/organization/webhooks.md new file mode 100644 index 0000000000..a28b8e32df --- /dev/null +++ b/content/en/api/beta/organization/webhooks.md @@ -0,0 +1,1457 @@ +--- +title: Webhooks +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks +--- + +# Webhooks + +## Create Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Body parameters + +- `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `description: optional string` + + Notes about the endpoint. + +- `name: optional string` + + A short label for the endpoint. + +### Returns + +- `BetaNewOrganizationWebhookEndpoint object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "url": "x" + }' +``` + +#### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +## List Organization Webhook Endpoints + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Query parameters + +- `after_id: optional string` + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: optional string` + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: optional number` + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0, minimum: 0, maximum: 100 + +- `order: optional "asc" or "desc"` + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Returns + +- `data: array of BetaOrganizationWebhookEndpoint` + + The organization webhook endpoints on this page. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +- `has_more: boolean` + + Whether more endpoints follow this page in list order. With `before_id`, only endpoints before the cursor count. + +- `first_id: optional string or null` + + First ID in the `data` list. + +- `last_id: optional string or null` + + Last ID in the `data` list. Can be used as the `after_id` for the next page. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" +} +``` + +## Get Organization Webhook Endpoint + +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +## Update Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Update an organization webhook endpoint. Only the fields you send are changed. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Body parameters + +- `description: optional string` + + Notes about the endpoint. + +- `enabled_events: optional array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `name: optional string` + + A short label for the endpoint. + +- `state: optional "disabled" or "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + +- `url: optional string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +### Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{}' +``` + +#### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +## Delete Organization Webhook Endpoint + +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Delete an organization webhook endpoint. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Returns + +- `BetaDeletedOrganizationWebhookEndpoint object` + + A deleted organization webhook endpoint. + + - `type: "webhook_endpoint_deleted"` + + Always `webhook_endpoint_deleted`. + + default: webhook_endpoint_deleted + + - `id: string` + + ID of the deleted webhook endpoint. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "id": "id", + "type": "webhook_endpoint_deleted" +} +``` + +## Regenerate Organization Webhook Endpoint Signing Secret + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` + +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +### Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +### Returns + +- `BetaOrganizationWebhookEndpointSigningSecret object` + + An organization webhook endpoint's new signing secret. + + - `signing_secret: string` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID/regenerate_signing_secret \ + -X POST \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "signing_secret": "signing_secret" +} +``` + +## Domain types + +### Beta Deleted Organization Webhook Endpoint + +- `BetaDeletedOrganizationWebhookEndpoint object` + + A deleted organization webhook endpoint. + + - `type: "webhook_endpoint_deleted"` + + Always `webhook_endpoint_deleted`. + + default: webhook_endpoint_deleted + + - `id: string` + + ID of the deleted webhook endpoint. + +### Beta New Organization Webhook Endpoint + +- `BetaNewOrganizationWebhookEndpoint object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +### Beta Organization Webhook Endpoint + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +### Beta Organization Webhook Endpoint Signing Secret + +- `BetaOrganizationWebhookEndpointSigningSecret object` + + An organization webhook endpoint's new signing secret. + + - `signing_secret: string` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +### Beta Organization Webhook Endpoint State + +- `BetaOrganizationWebhookEndpointState = "disabled" or "enabled"` + + Whether deliveries are sent to an organization webhook endpoint. + + - `"disabled"` + + - `"enabled"` diff --git a/content/en/api/beta/organization/webhooks/create.md b/content/en/api/beta/organization/webhooks/create.md new file mode 100644 index 0000000000..1550b45fb6 --- /dev/null +++ b/content/en/api/beta/organization/webhooks/create.md @@ -0,0 +1,253 @@ +--- +title: Create Organization Webhook Endpoint +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/create +--- + +# Create Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Body parameters + +- `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `description: optional string` + + Notes about the endpoint. + +- `name: optional string` + + A short label for the endpoint. + +## Returns + +- `BetaNewOrganizationWebhookEndpoint object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "url": "x" + }' +``` + +### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` diff --git a/content/en/api/beta/organization/webhooks/delete.md b/content/en/api/beta/organization/webhooks/delete.md new file mode 100644 index 0000000000..1877c4491b --- /dev/null +++ b/content/en/api/beta/organization/webhooks/delete.md @@ -0,0 +1,173 @@ +--- +title: Delete Organization Webhook Endpoint +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/delete +--- + +# Delete Organization Webhook Endpoint + +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Delete an organization webhook endpoint. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Returns + +- `BetaDeletedOrganizationWebhookEndpoint object` + + A deleted organization webhook endpoint. + + - `type: "webhook_endpoint_deleted"` + + Always `webhook_endpoint_deleted`. + + default: webhook_endpoint_deleted + + - `id: string` + + ID of the deleted webhook endpoint. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "id": "id", + "type": "webhook_endpoint_deleted" +} +``` diff --git a/content/en/api/beta/organization/webhooks/list.md b/content/en/api/beta/organization/webhooks/list.md new file mode 100644 index 0000000000..c6de9d8e60 --- /dev/null +++ b/content/en/api/beta/organization/webhooks/list.md @@ -0,0 +1,257 @@ +--- +title: List Organization Webhook Endpoints +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/list +--- + +# List Organization Webhook Endpoints + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Query parameters + +- `after_id: optional string` + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: optional string` + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: optional number` + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0, minimum: 0, maximum: 100 + +- `order: optional "asc" or "desc"` + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Returns + +- `data: array of BetaOrganizationWebhookEndpoint` + + The organization webhook endpoints on this page. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +- `has_more: boolean` + + Whether more endpoints follow this page in list order. With `before_id`, only endpoints before the cursor count. + +- `first_id: optional string or null` + + First ID in the `data` list. + +- `last_id: optional string or null` + + Last ID in the `data` list. Can be used as the `after_id` for the next page. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" +} +``` diff --git a/content/en/api/beta/organization/webhooks/regenerate_signing_secret.md b/content/en/api/beta/organization/webhooks/regenerate_signing_secret.md new file mode 100644 index 0000000000..c10bae4315 --- /dev/null +++ b/content/en/api/beta/organization/webhooks/regenerate_signing_secret.md @@ -0,0 +1,167 @@ +--- +title: Regenerate Organization Webhook Endpoint Signing Secret +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/regenerate_signing_secret +--- + +# Regenerate Organization Webhook Endpoint Signing Secret + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` + +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Returns + +- `BetaOrganizationWebhookEndpointSigningSecret object` + + An organization webhook endpoint's new signing secret. + + - `signing_secret: string` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID/regenerate_signing_secret \ + -X POST \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "signing_secret": "signing_secret" +} +``` diff --git a/content/en/api/beta/organization/webhooks/retrieve.md b/content/en/api/beta/organization/webhooks/retrieve.md new file mode 100644 index 0000000000..1c6786a71a --- /dev/null +++ b/content/en/api/beta/organization/webhooks/retrieve.md @@ -0,0 +1,220 @@ +--- +title: Get Organization Webhook Endpoint +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/retrieve +--- + +# Get Organization Webhook Endpoint + +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` diff --git a/content/en/api/beta/organization/webhooks/update.md b/content/en/api/beta/organization/webhooks/update.md new file mode 100644 index 0000000000..a06369901c --- /dev/null +++ b/content/en/api/beta/organization/webhooks/update.md @@ -0,0 +1,254 @@ +--- +title: Update Organization Webhook Endpoint +url: https://platform.claude.com/docs/en/api/beta/organization/webhooks/update +--- + +# Update Organization Webhook Endpoint + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Update an organization webhook endpoint. Only the fields you send are changed. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +## Path parameters + +- `webhook_endpoint_id: string` + + ID of the webhook endpoint. + + maxLength: 2048 + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +## Body parameters + +- `description: optional string` + + Notes about the endpoint. + +- `enabled_events: optional array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `name: optional string` + + A short label for the endpoint. + +- `state: optional "disabled" or "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + +- `url: optional string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +## Returns + +- `BetaOrganizationWebhookEndpoint object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/webhooks/$WEBHOOK_ENDPOINT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: webhooks-2026-10-07' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{}' +``` + +### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` diff --git a/content/en/api/beta/organization/workspaces.md b/content/en/api/beta/organization/workspaces.md index 541d1ab4d0..13ef2a1f0d 100644 --- a/content/en/api/beta/organization/workspaces.md +++ b/content/en/api/beta/organization/workspaces.md @@ -318,6 +318,8 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `name: string` @@ -1540,6 +1542,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +### Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +#### Body parameters + +- `limits: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `BetaWorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `BetaOrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `BetaOrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `BetaWorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `BetaWorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Workspaces › Members ### List Workspace Members @@ -2134,6 +2408,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -2341,6 +2617,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `service_account_id: string` @@ -2564,6 +2842,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BetaServiceAccountWorkspaceMember object` @@ -2764,6 +3044,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Body parameters - `workspace_role: BetaNoBillingWorkspaceRole` @@ -2981,6 +3263,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/workspaces/create.md b/content/en/api/beta/organization/workspaces/create.md index 776961ecf2..2f380a3968 100644 --- a/content/en/api/beta/organization/workspaces/create.md +++ b/content/en/api/beta/organization/workspaces/create.md @@ -125,6 +125,8 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `name: string` diff --git a/content/en/api/beta/organization/workspaces/rate_limits.md b/content/en/api/beta/organization/workspaces/rate_limits.md index 107299bc28..ffa305e20e 100644 --- a/content/en/api/beta/organization/workspaces/rate_limits.md +++ b/content/en/api/beta/organization/workspaces/rate_limits.md @@ -275,6 +275,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +## Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +### Body parameters + +- `limits: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +### Returns + +- `BetaWorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `BetaOrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `BetaOrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `BetaWorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `BetaWorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +#### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Domain types ### Beta Workspace Rate Limit @@ -443,6 +715,62 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li default: organization +### Beta Workspace Rate Limit Type + +- `BetaWorkspaceRateLimitType = "fast_itpmca" or "fast_otpm" or "input_tokens_per_minute" or 6 more` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + +### Beta Workspace Rate Limit Update Value + +- `BetaWorkspaceRateLimitUpdateValue object` + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + ### Beta Workspace Rate Limit Value - `BetaWorkspaceRateLimitValue object` diff --git a/content/en/api/beta/organization/workspaces/rate_limits/update.md b/content/en/api/beta/organization/workspaces/rate_limits/update.md new file mode 100644 index 0000000000..9a952bdc21 --- /dev/null +++ b/content/en/api/beta/organization/workspaces/rate_limits/update.md @@ -0,0 +1,276 @@ +--- +title: Set Workspace Rate Limits +url: https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/update +--- + +# Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +## Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +## Body parameters + +- `limits: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +## Returns + +- `BetaWorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `BetaOrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `BetaOrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `BetaOrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `BetaWorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `BetaWorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` diff --git a/content/en/api/beta/organization/workspaces/service_accounts.md b/content/en/api/beta/organization/workspaces/service_accounts.md index 66a0177610..f2a87c49aa 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts.md +++ b/content/en/api/beta/organization/workspaces/service_accounts.md @@ -154,6 +154,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of BetaServiceAccountWorkspaceMember` @@ -361,6 +363,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `service_account_id: string` @@ -584,6 +588,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `BetaServiceAccountWorkspaceMember object` @@ -784,6 +790,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `workspace_role: BetaNoBillingWorkspaceRole` @@ -1001,6 +1009,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/workspaces/service_accounts/add.md b/content/en/api/beta/organization/workspaces/service_accounts/add.md index defdf8c6b3..f6540680f4 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts/add.md +++ b/content/en/api/beta/organization/workspaces/service_accounts/add.md @@ -142,6 +142,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `service_account_id: string` diff --git a/content/en/api/beta/organization/workspaces/service_accounts/list.md b/content/en/api/beta/organization/workspaces/service_accounts/list.md index 22fcac5310..107e1375e7 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts/list.md +++ b/content/en/api/beta/organization/workspaces/service_accounts/list.md @@ -152,6 +152,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of BetaServiceAccountWorkspaceMember` diff --git a/content/en/api/beta/organization/workspaces/service_accounts/remove.md b/content/en/api/beta/organization/workspaces/service_accounts/remove.md index 17d7c09a35..d692622e27 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts/remove.md +++ b/content/en/api/beta/organization/workspaces/service_accounts/remove.md @@ -143,6 +143,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `type: "service_account_workspace_member_deleted"` diff --git a/content/en/api/beta/organization/workspaces/service_accounts/retrieve.md b/content/en/api/beta/organization/workspaces/service_accounts/retrieve.md index 3941cde07a..780855b8d8 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts/retrieve.md +++ b/content/en/api/beta/organization/workspaces/service_accounts/retrieve.md @@ -144,6 +144,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `BetaServiceAccountWorkspaceMember object` diff --git a/content/en/api/beta/organization/workspaces/service_accounts/update.md b/content/en/api/beta/organization/workspaces/service_accounts/update.md index 5c0cd0724e..542f757383 100644 --- a/content/en/api/beta/organization/workspaces/service_accounts/update.md +++ b/content/en/api/beta/organization/workspaces/service_accounts/update.md @@ -144,6 +144,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `workspace_role: BetaNoBillingWorkspaceRole` diff --git a/content/en/api/beta/sessions.md b/content/en/api/beta/sessions.md index 897c2c700e..f1e711f1c1 100644 --- a/content/en/api/beta/sessions.md +++ b/content/en/api/beta/sessions.md @@ -127,6 +127,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2833,6 +2835,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4330,6 +4334,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5813,6 +5819,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7882,6 +7890,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8043,6 +8053,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19837,6 +19849,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22940,6 +22954,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23935,6 +23951,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27070,6 +27088,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27282,6 +27302,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27567,6 +27589,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27831,6 +27855,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28107,6 +28133,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28296,6 +28324,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29379,6 +29409,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30453,6 +30485,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31538,6 +31572,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34653,6 +34689,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/archive.md b/content/en/api/beta/sessions/archive.md index 38ed596d54..355d4fb2c6 100644 --- a/content/en/api/beta/sessions/archive.md +++ b/content/en/api/beta/sessions/archive.md @@ -129,6 +129,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/create.md b/content/en/api/beta/sessions/create.md index c6f42ada82..e1d2df20c3 100644 --- a/content/en/api/beta/sessions/create.md +++ b/content/en/api/beta/sessions/create.md @@ -125,6 +125,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/delete.md b/content/en/api/beta/sessions/delete.md index 04d3c74fc8..2cfab09f4f 100644 --- a/content/en/api/beta/sessions/delete.md +++ b/content/en/api/beta/sessions/delete.md @@ -129,6 +129,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/events.md b/content/en/api/beta/sessions/events.md index d8f54daa5b..ec66210e02 100644 --- a/content/en/api/beta/sessions/events.md +++ b/content/en/api/beta/sessions/events.md @@ -259,6 +259,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3362,6 +3364,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4357,6 +4361,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/events/list.md b/content/en/api/beta/sessions/events/list.md index 6435ee8c55..06f9d3d750 100644 --- a/content/en/api/beta/sessions/events/list.md +++ b/content/en/api/beta/sessions/events/list.md @@ -257,6 +257,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/events/send.md b/content/en/api/beta/sessions/events/send.md index edc0f13196..c467a7bf0e 100644 --- a/content/en/api/beta/sessions/events/send.md +++ b/content/en/api/beta/sessions/events/send.md @@ -129,6 +129,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/events/stream.md b/content/en/api/beta/sessions/events/stream.md index 316ffdc036..2a6449f820 100644 --- a/content/en/api/beta/sessions/events/stream.md +++ b/content/en/api/beta/sessions/events/stream.md @@ -139,6 +139,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/list.md b/content/en/api/beta/sessions/list.md index f5548465a6..25b55c846a 100644 --- a/content/en/api/beta/sessions/list.md +++ b/content/en/api/beta/sessions/list.md @@ -211,6 +211,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources.md b/content/en/api/beta/sessions/resources.md index e4937ac42e..b564f08f29 100644 --- a/content/en/api/beta/sessions/resources.md +++ b/content/en/api/beta/sessions/resources.md @@ -131,6 +131,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -343,6 +345,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -628,6 +632,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -892,6 +898,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1168,6 +1176,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources/add.md b/content/en/api/beta/sessions/resources/add.md index 0dc0629a95..0ad6f6d4ac 100644 --- a/content/en/api/beta/sessions/resources/add.md +++ b/content/en/api/beta/sessions/resources/add.md @@ -129,6 +129,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources/delete.md b/content/en/api/beta/sessions/resources/delete.md index a54c166af1..dc563f2e76 100644 --- a/content/en/api/beta/sessions/resources/delete.md +++ b/content/en/api/beta/sessions/resources/delete.md @@ -131,6 +131,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources/list.md b/content/en/api/beta/sessions/resources/list.md index 7528c1c3cb..62ff71c087 100644 --- a/content/en/api/beta/sessions/resources/list.md +++ b/content/en/api/beta/sessions/resources/list.md @@ -141,6 +141,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources/retrieve.md b/content/en/api/beta/sessions/resources/retrieve.md index 973631bc3a..8e7a9fd2e2 100644 --- a/content/en/api/beta/sessions/resources/retrieve.md +++ b/content/en/api/beta/sessions/resources/retrieve.md @@ -131,6 +131,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/resources/update.md b/content/en/api/beta/sessions/resources/update.md index d8c711720e..b09f0a332a 100644 --- a/content/en/api/beta/sessions/resources/update.md +++ b/content/en/api/beta/sessions/resources/update.md @@ -131,6 +131,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/retrieve.md b/content/en/api/beta/sessions/retrieve.md index eb99059059..4fd9e2d37b 100644 --- a/content/en/api/beta/sessions/retrieve.md +++ b/content/en/api/beta/sessions/retrieve.md @@ -129,6 +129,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads.md b/content/en/api/beta/sessions/threads.md index c6fb75cbdb..d5bf809c8e 100644 --- a/content/en/api/beta/sessions/threads.md +++ b/content/en/api/beta/sessions/threads.md @@ -157,6 +157,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1240,6 +1242,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2314,6 +2318,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7949,6 +7955,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11064,6 +11072,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/archive.md b/content/en/api/beta/sessions/threads/archive.md index 0badc33d58..1a7e1b2f5f 100644 --- a/content/en/api/beta/sessions/threads/archive.md +++ b/content/en/api/beta/sessions/threads/archive.md @@ -131,6 +131,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/events.md b/content/en/api/beta/sessions/threads/events.md index a03fc75731..67462c79a1 100644 --- a/content/en/api/beta/sessions/threads/events.md +++ b/content/en/api/beta/sessions/threads/events.md @@ -141,6 +141,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3256,6 +3258,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/events/list.md b/content/en/api/beta/sessions/threads/events/list.md index 526895cecb..ed9701ccaa 100644 --- a/content/en/api/beta/sessions/threads/events/list.md +++ b/content/en/api/beta/sessions/threads/events/list.md @@ -139,6 +139,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/events/stream.md b/content/en/api/beta/sessions/threads/events/stream.md index b68c98626e..6ffe80db5d 100644 --- a/content/en/api/beta/sessions/threads/events/stream.md +++ b/content/en/api/beta/sessions/threads/events/stream.md @@ -141,6 +141,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/list.md b/content/en/api/beta/sessions/threads/list.md index 3f065c52f4..d676874d7c 100644 --- a/content/en/api/beta/sessions/threads/list.md +++ b/content/en/api/beta/sessions/threads/list.md @@ -155,6 +155,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/threads/retrieve.md b/content/en/api/beta/sessions/threads/retrieve.md index 595d906a1d..fd3d6610cc 100644 --- a/content/en/api/beta/sessions/threads/retrieve.md +++ b/content/en/api/beta/sessions/threads/retrieve.md @@ -131,6 +131,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/sessions/update.md b/content/en/api/beta/sessions/update.md index b03e86dc16..c1671c176f 100644 --- a/content/en/api/beta/sessions/update.md +++ b/content/en/api/beta/sessions/update.md @@ -129,6 +129,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills.md b/content/en/api/beta/skills.md index e7b2faadbd..9347658c6a 100644 --- a/content/en/api/beta/skills.md +++ b/content/en/api/beta/skills.md @@ -127,6 +127,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -390,6 +392,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -633,6 +637,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -863,6 +869,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1150,6 +1158,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1373,6 +1383,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1591,6 +1603,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1741,6 +1755,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1946,6 +1962,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/create.md b/content/en/api/beta/skills/create.md index 94653dd298..292ef3a28b 100644 --- a/content/en/api/beta/skills/create.md +++ b/content/en/api/beta/skills/create.md @@ -125,6 +125,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/delete.md b/content/en/api/beta/skills/delete.md index fc84990a72..80f285348b 100644 --- a/content/en/api/beta/skills/delete.md +++ b/content/en/api/beta/skills/delete.md @@ -133,6 +133,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/list.md b/content/en/api/beta/skills/list.md index 79873167d8..c2b32040c6 100644 --- a/content/en/api/beta/skills/list.md +++ b/content/en/api/beta/skills/list.md @@ -150,6 +150,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/retrieve.md b/content/en/api/beta/skills/retrieve.md index 7ce25bb029..bfcf36a1c5 100644 --- a/content/en/api/beta/skills/retrieve.md +++ b/content/en/api/beta/skills/retrieve.md @@ -133,6 +133,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions.md b/content/en/api/beta/skills/versions.md index 1fa3ee9b43..665c72f91e 100644 --- a/content/en/api/beta/skills/versions.md +++ b/content/en/api/beta/skills/versions.md @@ -135,6 +135,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -358,6 +360,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -576,6 +580,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -726,6 +732,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -931,6 +939,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions/create.md b/content/en/api/beta/skills/versions/create.md index 450c806ba6..3ba8590bb0 100644 --- a/content/en/api/beta/skills/versions/create.md +++ b/content/en/api/beta/skills/versions/create.md @@ -133,6 +133,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions/delete.md b/content/en/api/beta/skills/versions/delete.md index 6802c53899..35c3b8d39f 100644 --- a/content/en/api/beta/skills/versions/delete.md +++ b/content/en/api/beta/skills/versions/delete.md @@ -139,6 +139,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions/download.md b/content/en/api/beta/skills/versions/download.md index 1952f8b16a..fe544b0763 100644 --- a/content/en/api/beta/skills/versions/download.md +++ b/content/en/api/beta/skills/versions/download.md @@ -139,6 +139,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions/list.md b/content/en/api/beta/skills/versions/list.md index 54f04b8dfc..b9a1c31187 100644 --- a/content/en/api/beta/skills/versions/list.md +++ b/content/en/api/beta/skills/versions/list.md @@ -147,6 +147,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/skills/versions/retrieve.md b/content/en/api/beta/skills/versions/retrieve.md index 95960d13b4..a1b32092f7 100644 --- a/content/en/api/beta/skills/versions/retrieve.md +++ b/content/en/api/beta/skills/versions/retrieve.md @@ -139,6 +139,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels.md b/content/en/api/beta/tunnels.md index 27fcfe20b5..f675de3563 100644 --- a/content/en/api/beta/tunnels.md +++ b/content/en/api/beta/tunnels.md @@ -129,6 +129,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -329,6 +331,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -529,6 +533,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -728,6 +734,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -919,6 +927,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1091,6 +1101,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1324,6 +1336,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1537,6 +1551,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1750,6 +1766,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1960,6 +1978,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/archive.md b/content/en/api/beta/tunnels/archive.md index e2971497e8..79f45dfc83 100644 --- a/content/en/api/beta/tunnels/archive.md +++ b/content/en/api/beta/tunnels/archive.md @@ -133,6 +133,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/certificates.md b/content/en/api/beta/tunnels/certificates.md index 79bb8d70c3..8e02e34fc9 100644 --- a/content/en/api/beta/tunnels/certificates.md +++ b/content/en/api/beta/tunnels/certificates.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -348,6 +350,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -561,6 +565,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -771,6 +777,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/certificates/archive.md b/content/en/api/beta/tunnels/certificates/archive.md index b20ffe5fa6..f62353b62d 100644 --- a/content/en/api/beta/tunnels/certificates/archive.md +++ b/content/en/api/beta/tunnels/certificates/archive.md @@ -137,6 +137,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/certificates/create.md b/content/en/api/beta/tunnels/certificates/create.md index 2b3766afe6..143b1b4d0b 100644 --- a/content/en/api/beta/tunnels/certificates/create.md +++ b/content/en/api/beta/tunnels/certificates/create.md @@ -133,6 +133,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/certificates/list.md b/content/en/api/beta/tunnels/certificates/list.md index 4c7a899e93..72cf39eac0 100644 --- a/content/en/api/beta/tunnels/certificates/list.md +++ b/content/en/api/beta/tunnels/certificates/list.md @@ -149,6 +149,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/certificates/retrieve.md b/content/en/api/beta/tunnels/certificates/retrieve.md index e024c7dc5f..7896933152 100644 --- a/content/en/api/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/beta/tunnels/certificates/retrieve.md @@ -137,6 +137,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/create.md b/content/en/api/beta/tunnels/create.md index cc7704307c..064070343e 100644 --- a/content/en/api/beta/tunnels/create.md +++ b/content/en/api/beta/tunnels/create.md @@ -127,6 +127,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/list.md b/content/en/api/beta/tunnels/list.md index 0c5342ceb6..b836bf6c1c 100644 --- a/content/en/api/beta/tunnels/list.md +++ b/content/en/api/beta/tunnels/list.md @@ -143,6 +143,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/retrieve.md b/content/en/api/beta/tunnels/retrieve.md index 62456e4efe..1cbfae549c 100644 --- a/content/en/api/beta/tunnels/retrieve.md +++ b/content/en/api/beta/tunnels/retrieve.md @@ -133,6 +133,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/reveal_token.md b/content/en/api/beta/tunnels/reveal_token.md index 70501efffb..304ca8db3a 100644 --- a/content/en/api/beta/tunnels/reveal_token.md +++ b/content/en/api/beta/tunnels/reveal_token.md @@ -133,6 +133,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/tunnels/rotate_token.md b/content/en/api/beta/tunnels/rotate_token.md index ce5c52bbc3..bea3d3dda6 100644 --- a/content/en/api/beta/tunnels/rotate_token.md +++ b/content/en/api/beta/tunnels/rotate_token.md @@ -133,6 +133,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/user_profiles.md b/content/en/api/beta/user_profiles.md index e1808a380c..d3ef38bf55 100644 --- a/content/en/api/beta/user_profiles.md +++ b/content/en/api/beta/user_profiles.md @@ -21,7 +21,7 @@ Create User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -127,6 +127,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -149,13 +151,13 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -215,7 +217,7 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -255,6 +257,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -271,13 +277,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -289,11 +295,11 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -347,14 +353,10 @@ Create User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -364,9 +366,15 @@ curl https://api.anthropic.com/v1/user_profiles \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345", - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "metadata": {} + "external_user_details": { + "account_status": "active", + "country": "US", + "entity_type": "business", + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User" }' ``` @@ -377,6 +385,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -388,15 +397,14 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -454,7 +462,7 @@ List User Profiles - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -560,6 +568,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -590,6 +600,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -606,13 +620,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -624,11 +638,11 @@ List User Profiles - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -682,14 +696,10 @@ List User Profiles - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string or null` Cursor for the next page, or `null` when there are no more results. @@ -712,6 +722,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -723,15 +734,14 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -760,7 +770,7 @@ Get User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -866,6 +876,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -898,6 +910,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -914,13 +930,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -932,11 +948,11 @@ Get User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -990,14 +1006,10 @@ Get User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -1014,6 +1026,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1025,15 +1038,14 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1059,7 +1071,7 @@ Update User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -1165,6 +1177,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1187,13 +1201,13 @@ Update User Profile - `external_id: optional string or null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -1253,7 +1267,7 @@ Update User Profile - `external_user_onboarded_at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1293,6 +1307,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1309,13 +1327,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1327,11 +1345,11 @@ Update User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -1385,14 +1403,10 @@ Update User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -1402,7 +1416,9 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345" + "external_user_details": { + "account_status": "suspended" + } }' ``` @@ -1413,6 +1429,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1424,15 +1441,181 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile to delete (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `BetaDeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1458,7 +1641,7 @@ Create Enrollment URL - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -1564,6 +1747,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1574,7 +1759,7 @@ Create Enrollment URL - `BetaUserProfileEnrollmentURL object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -1612,6 +1797,18 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url ## Domain types +### Beta Deleted User Profile + +- `BetaDeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `BetaUserProfile object` @@ -1638,6 +1835,10 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1654,13 +1855,13 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1672,11 +1873,11 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -1730,19 +1931,15 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `BetaUserProfileEnrollmentURL object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -1889,3 +2086,198 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url - `"pending"` - `"rejected"` + +## User Profiles › Action URLs + +### Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Body parameters + +- `action: BetaUserProfileAction` + + The action that the person who opens the URL takes. + + - `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +#### Returns + +- `BetaUserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/beta/user_profiles/action_urls.md b/content/en/api/beta/user_profiles/action_urls.md new file mode 100644 index 0000000000..21077f10eb --- /dev/null +++ b/content/en/api/beta/user_profiles/action_urls.md @@ -0,0 +1,241 @@ +--- +title: Action URLs +url: https://platform.claude.com/docs/en/api/beta/user_profiles/action_urls +--- + +# Action URLs + +## Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Body parameters + +- `action: BetaUserProfileAction` + + The action that the person who opens the URL takes. + + - `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +### Returns + +- `BetaUserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +#### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + +## Domain types + +### Beta User Profile Action + +- `BetaUserProfileAction = BetaUserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes, discriminated by `type`. + + - `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +### Beta User Profile Action URL + +- `BetaUserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +### Beta User Profile Enroll End User Action + +- `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` diff --git a/content/en/api/beta/user_profiles/action_urls/create.md b/content/en/api/beta/user_profiles/action_urls/create.md new file mode 100644 index 0000000000..3e23544479 --- /dev/null +++ b/content/en/api/beta/user_profiles/action_urls/create.md @@ -0,0 +1,197 @@ +--- +title: Create Action URL +url: https://platform.claude.com/docs/en/api/beta/user_profiles/action_urls/create +--- + +# Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Body parameters + +- `action: BetaUserProfileAction` + + The action that the person who opens the URL takes. + + - `BetaUserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +## Returns + +- `BetaUserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/beta/user_profiles/create.md b/content/en/api/beta/user_profiles/create.md index 631505db72..be8340af84 100644 --- a/content/en/api/beta/user_profiles/create.md +++ b/content/en/api/beta/user_profiles/create.md @@ -19,7 +19,7 @@ Create User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -125,6 +125,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -147,13 +149,13 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -213,7 +215,7 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -253,6 +255,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -269,13 +275,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -287,11 +293,11 @@ Create User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -345,14 +351,10 @@ Create User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -362,9 +364,15 @@ curl https://api.anthropic.com/v1/user_profiles \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345", - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "metadata": {} + "external_user_details": { + "account_status": "active", + "country": "US", + "entity_type": "business", + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User" }' ``` @@ -375,6 +383,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -386,14 +395,13 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/beta/user_profiles/create_enrollment_url.md b/content/en/api/beta/user_profiles/create_enrollment_url.md index f50ab98fb3..3977f2923e 100644 --- a/content/en/api/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/beta/user_profiles/create_enrollment_url.md @@ -25,7 +25,7 @@ Create Enrollment URL - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -131,6 +131,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,7 +143,7 @@ Create Enrollment URL - `BetaUserProfileEnrollmentURL object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` diff --git a/content/en/api/beta/user_profiles/delete.md b/content/en/api/beta/user_profiles/delete.md new file mode 100644 index 0000000000..0873aa8357 --- /dev/null +++ b/content/en/api/beta/user_profiles/delete.md @@ -0,0 +1,171 @@ +--- +title: Delete User Profile +url: https://platform.claude.com/docs/en/api/beta/user_profiles/delete +--- + +# Delete User Profile + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile to delete (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-beta": optional array of AnthropicBeta` + + Optional header to specify the beta version(s) you want to use. + + - `string` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Returns + +- `BetaDeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H 'anthropic-beta: user-profiles-2026-08-18' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" +} +``` diff --git a/content/en/api/beta/user_profiles/list.md b/content/en/api/beta/user_profiles/list.md index bf0135ef58..6c0c636073 100644 --- a/content/en/api/beta/user_profiles/list.md +++ b/content/en/api/beta/user_profiles/list.md @@ -57,7 +57,7 @@ List User Profiles - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -163,6 +163,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -193,6 +195,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -209,13 +215,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -227,11 +233,11 @@ List User Profiles - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -285,14 +291,10 @@ List User Profiles - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string or null` Cursor for the next page, or `null` when there are no more results. @@ -315,6 +317,7 @@ curl https://api.anthropic.com/v1/user_profiles \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -326,15 +329,14 @@ curl https://api.anthropic.com/v1/user_profiles \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/beta/user_profiles/retrieve.md b/content/en/api/beta/user_profiles/retrieve.md index 43608fc3be..31d6251f73 100644 --- a/content/en/api/beta/user_profiles/retrieve.md +++ b/content/en/api/beta/user_profiles/retrieve.md @@ -25,7 +25,7 @@ Get User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -131,6 +131,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,6 +165,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -179,13 +185,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -197,11 +203,11 @@ Get User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -255,14 +261,10 @@ Get User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -279,6 +281,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -290,14 +293,13 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/beta/user_profiles/update.md b/content/en/api/beta/user_profiles/update.md index 9818b652d1..4df9caa98a 100644 --- a/content/en/api/beta/user_profiles/update.md +++ b/content/en/api/beta/user_profiles/update.md @@ -25,7 +25,7 @@ Update User Profile - `"anthropic-beta": optional array of AnthropicBeta` - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `string` @@ -131,6 +131,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,13 +155,13 @@ Update User Profile - `external_id: optional string or null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: optional "active" or "suspended" or "blocked" or null` @@ -219,7 +221,7 @@ Update User Profile - `external_user_onboarded_at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -259,6 +261,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -275,13 +281,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -293,11 +299,11 @@ Update User Profile - `external_id: optional string or null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked" or null` @@ -351,14 +357,10 @@ Update User Profile - `external_user_onboarded_at: optional string or null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string or null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -368,7 +370,9 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ -H 'anthropic-beta: user-profiles-2026-08-18' \ -H "X-Api-Key: $ANTHROPIC_API_KEY" \ -d '{ - "external_id": "user_12345" + "external_user_details": { + "account_status": "suspended" + } }' ``` @@ -379,6 +383,7 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -390,14 +395,13 @@ curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/beta/vaults.md b/content/en/api/beta/vaults.md index cc9d8ffb53..52854e11e5 100644 --- a/content/en/api/beta/vaults.md +++ b/content/en/api/beta/vaults.md @@ -127,6 +127,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -353,6 +355,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -559,6 +563,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -756,6 +762,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -972,6 +980,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1137,6 +1147,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1389,6 +1401,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1915,6 +1929,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2248,6 +2264,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2572,6 +2590,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3045,6 +3065,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3214,6 +3236,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3539,6 +3563,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/archive.md b/content/en/api/beta/vaults/archive.md index cd0ba7d150..1f4506c835 100644 --- a/content/en/api/beta/vaults/archive.md +++ b/content/en/api/beta/vaults/archive.md @@ -131,6 +131,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/create.md b/content/en/api/beta/vaults/create.md index 65f49ee355..39adfe1367 100644 --- a/content/en/api/beta/vaults/create.md +++ b/content/en/api/beta/vaults/create.md @@ -125,6 +125,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials.md b/content/en/api/beta/vaults/credentials.md index 7cd902a95f..61c14953ba 100644 --- a/content/en/api/beta/vaults/credentials.md +++ b/content/en/api/beta/vaults/credentials.md @@ -133,6 +133,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -659,6 +661,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -992,6 +996,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1316,6 +1322,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1789,6 +1797,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1958,6 +1968,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2283,6 +2295,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/archive.md b/content/en/api/beta/vaults/credentials/archive.md index 51fe001748..d19494050f 100644 --- a/content/en/api/beta/vaults/credentials/archive.md +++ b/content/en/api/beta/vaults/credentials/archive.md @@ -135,6 +135,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/create.md b/content/en/api/beta/vaults/credentials/create.md index 8fe0d8a47b..e349a25ae3 100644 --- a/content/en/api/beta/vaults/credentials/create.md +++ b/content/en/api/beta/vaults/credentials/create.md @@ -131,6 +131,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/delete.md b/content/en/api/beta/vaults/credentials/delete.md index c7fad9ab60..96b15500f0 100644 --- a/content/en/api/beta/vaults/credentials/delete.md +++ b/content/en/api/beta/vaults/credentials/delete.md @@ -135,6 +135,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/list.md b/content/en/api/beta/vaults/credentials/list.md index 4affe6faed..798a5588a6 100644 --- a/content/en/api/beta/vaults/credentials/list.md +++ b/content/en/api/beta/vaults/credentials/list.md @@ -147,6 +147,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/beta/vaults/credentials/mcp_oauth_validate.md index 817325f622..664c866444 100644 --- a/content/en/api/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/beta/vaults/credentials/mcp_oauth_validate.md @@ -135,6 +135,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/retrieve.md b/content/en/api/beta/vaults/credentials/retrieve.md index 20c44e9b60..ea7beeff8d 100644 --- a/content/en/api/beta/vaults/credentials/retrieve.md +++ b/content/en/api/beta/vaults/credentials/retrieve.md @@ -135,6 +135,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/credentials/update.md b/content/en/api/beta/vaults/credentials/update.md index 9debcc5628..a9d0e7e230 100644 --- a/content/en/api/beta/vaults/credentials/update.md +++ b/content/en/api/beta/vaults/credentials/update.md @@ -135,6 +135,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/delete.md b/content/en/api/beta/vaults/delete.md index cf1b9b7467..e9379d58ed 100644 --- a/content/en/api/beta/vaults/delete.md +++ b/content/en/api/beta/vaults/delete.md @@ -131,6 +131,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/list.md b/content/en/api/beta/vaults/list.md index 45ebf8c9a5..7d8008536b 100644 --- a/content/en/api/beta/vaults/list.md +++ b/content/en/api/beta/vaults/list.md @@ -141,6 +141,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/retrieve.md b/content/en/api/beta/vaults/retrieve.md index 9cf33073d9..5c37a4a81c 100644 --- a/content/en/api/beta/vaults/retrieve.md +++ b/content/en/api/beta/vaults/retrieve.md @@ -131,6 +131,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/vaults/update.md b/content/en/api/beta/vaults/update.md index f31f67bcda..a7ad81bf6c 100644 --- a/content/en/api/beta/vaults/update.md +++ b/content/en/api/beta/vaults/update.md @@ -131,6 +131,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"anthropic-workspace-id": optional string` Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/beta/webhooks.md b/content/en/api/beta/webhooks.md index 3dd94da574..9426c761c0 100644 --- a/content/en/api/beta/webhooks.md +++ b/content/en/api/beta/webhooks.md @@ -821,9 +821,37 @@ url: https://platform.claude.com/docs/en/api/beta/webhooks - `workspace_id: string` + - `BetaWebhookUserProfileEnforcementActionOpenedEventData object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `BetaWebhookUserProfileEnforcementActionResolvedEventData object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Event Data -- `BetaWebhookEventData = BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 41 more` +- `BetaWebhookEventData = BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 43 more` - `BetaWebhookSessionCreatedEventData object` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/beta/webhooks - `workspace_id: string` + - `BetaWebhookUserProfileEnforcementActionOpenedEventData object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `BetaWebhookUserProfileEnforcementActionResolvedEventData object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Memory Store Archived Event Data - `BetaWebhookMemoryStoreArchivedEventData object` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/beta/webhooks - `workspace_id: string` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `BetaWebhookUserProfileEnforcementActionOpenedEventData object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `BetaWebhookUserProfileEnforcementActionResolvedEventData object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Vault Archived Event Data - `BetaWebhookVaultArchivedEventData object` diff --git a/content/en/api/cli/beta.md b/content/en/api/cli/beta.md index 501d03a9ed..775942c31b 100644 --- a/content/en/api/cli/beta.md +++ b/content/en/api/cli/beta.md @@ -1385,7 +1385,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -5006,6 +5006,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -5014,6 +5018,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -5022,6 +5030,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -5030,6 +5042,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -5038,10 +5054,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -7194,7 +7222,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -7266,7 +7294,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) @@ -11586,6 +11614,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -11594,6 +11626,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -11602,6 +11638,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -11610,6 +11650,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -11618,10 +11662,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -52201,31 +52257,37 @@ ant beta:vaults:credentials mcp-oauth-validate \ ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `$ ant beta:memory-stores create` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters - `--name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `--description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `--metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -52247,27 +52309,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -52275,7 +52343,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -52304,25 +52374,25 @@ ant beta:memory-stores create \ } ``` -### List memory stores +### List Memory Stores `$ ant beta:memory-stores list` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters - `--created-at-gte: optional string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `--created-at-lte: optional string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -52338,7 +52408,7 @@ List memory stores - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -52364,27 +52434,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -52392,13 +52468,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -52427,19 +52505,19 @@ ant beta:memory-stores list \ } ``` -### Retrieve a memory store +### Retrieve a Memory Store `$ ant beta:memory-stores retrieve` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `--beta: optional array of AnthropicBeta` (header parameter) @@ -52461,278 +52539,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. - - format: date-time - - - `created_at: string` - - Timestamp when the store was created. - - format: date-time - - - `description: string` - - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - - - `metadata: map[string]` - - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. - - - `name: string` - - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - - - `updated_at: string` - - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. - - format: date-time - -#### Example - -```bash -ant beta:memory-stores retrieve \ - --api-key my-anthropic-api-key \ - --memory-store-id memory_store_id -``` - -##### Response (200) - -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" - }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" -} -``` - -### Update a memory store - -`$ ant beta:memory-stores update` - -**POST** `/v1/memory_stores/{memory_store_id}` - -Update a memory store - -#### Parameters - -- `--memory-store-id: string` (path parameter) - - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. - -- `--description: optional string` - - New description for the store, up to 1024 characters. Pass an empty string to clear it. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. - maxLength: 1024 - -- `--metadata: optional map[string]` - - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. - -- `--name: optional string` - - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. - - minLength: 1, maxLength: 255 - -- `--beta: optional array of AnthropicBeta` (header parameter) - - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - -- `--workspace-id: optional string` (header parameter) - - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - -#### Returns - -- `beta_managed_agents_memory_store: object` - - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - - - `type: "memory_store"` - - - `id: string` - - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. - - - `archived_at: string` + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. - - `name: string` - - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - - - `updated_at: string` - - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. - - format: date-time - -#### Example - -```bash -ant beta:memory-stores update \ - --api-key my-anthropic-api-key \ - --memory-store-id memory_store_id -``` - -##### Response (200) - -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" - }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" -} -``` - -### Delete a memory store - -`$ ant beta:memory-stores delete` - -**DELETE** `/v1/memory_stores/{memory_store_id}` - -Delete a memory store - -#### Parameters - -- `--memory-store-id: string` (path parameter) - - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. - -- `--beta: optional array of AnthropicBeta` (header parameter) - - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - -- `--workspace-id: optional string` (header parameter) - - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - -#### Returns - -- `beta_managed_agents_deleted_memory_store: object` - - Confirmation that a `memory_store` was deleted. - - - `type: "memory_store_deleted"` - - - `id: string` - - ID of the deleted memory store (a `memstore_...` identifier). The store and all its memories and versions are no longer retrievable. - -#### Example - -```bash -ant beta:memory-stores delete \ - --api-key my-anthropic-api-key \ - --memory-store-id memory_store_id -``` - -##### Response (200) - -```json -{ - "id": "id", - "type": "memory_store_deleted" -} -``` - -### Archive a memory store - -`$ ant beta:memory-stores archive` - -**POST** `/v1/memory_stores/{memory_store_id}/archive` - -Archive a memory store - -#### Parameters - -- `--memory-store-id: string` (path parameter) - - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. - -- `--beta: optional array of AnthropicBeta` (header parameter) - - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - -- `--workspace-id: optional string` (header parameter) - - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - -#### Returns - -- `beta_managed_agents_memory_store: object` - - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - - - `type: "memory_store"` - - - `id: string` - - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. - - - `archived_at: string` - - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. - - format: date-time - - - `created_at: string` - - Timestamp when the store was created. - - format: date-time - - - `description: string` - - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - - - `metadata: map[string]` - - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -52740,14 +52573,293 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```bash -ant beta:memory-stores archive \ +ant beta:memory-stores retrieve \ + --api-key my-anthropic-api-key \ + --memory-store-id memory_store_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "metadata": { + "foo": "string" + }, + "name": "name", + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" +} +``` + +### Update a Memory Store + +`$ ant beta:memory-stores update` + +**POST** `/v1/memory_stores/{memory_store_id}` + +Update a Memory Store + +#### Parameters + +- `--memory-store-id: string` (path parameter) + + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. + +- `--description: optional string` + + New description for the store, up to 1,024 characters. Pass an empty string to clear it. + + maxLength: 1024 + +- `--metadata: optional map[string]` + + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. + +- `--name: optional string` + + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. + + minLength: 1, maxLength: 255 + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_managed_agents_memory_store: object` + + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + + - `type: "memory_store"` + + - `id: string` + + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. + + - `archived_at: string` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. + + format: date-time + + - `created_at: string` + + When the memory store was created, in RFC 3339. + + format: date-time + + - `description: string` + + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + + - `metadata: map[string]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. + + - `name: string` + + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + + - `updated_at: string` + + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time + +#### Example + +```bash +ant beta:memory-stores update \ + --api-key my-anthropic-api-key \ + --memory-store-id memory_store_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "metadata": { + "foo": "string" + }, + "name": "name", + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" +} +``` + +### Delete a Memory Store + +`$ ant beta:memory-stores delete` + +**DELETE** `/v1/memory_stores/{memory_store_id}` + +Delete a Memory Store + +#### Parameters + +- `--memory-store-id: string` (path parameter) + + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_managed_agents_deleted_memory_store: object` + + Confirmation that a `memory_store` was deleted. + + - `type: "memory_store_deleted"` + + - `id: string` + + ID of the deleted memory store (a `memstore_...` identifier). The store and all its memories and versions are no longer retrievable. + +#### Example + +```bash +ant beta:memory-stores delete \ + --api-key my-anthropic-api-key \ + --memory-store-id memory_store_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "memory_store_deleted" +} +``` + +### Archive a Memory Store + +`$ ant beta:memory-stores archive` + +**POST** `/v1/memory_stores/{memory_store_id}/archive` + +Archive a Memory Store + +#### Parameters + +- `--memory-store-id: string` (path parameter) + + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_managed_agents_memory_store: object` + + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + + - `type: "memory_store"` + + - `id: string` + + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. + + - `archived_at: string` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. + + format: date-time + + - `created_at: string` + + When the memory store was created, in RFC 3339. + + format: date-time + + - `description: string` + + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + + - `metadata: map[string]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. + + - `name: string` + + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + + - `updated_at: string` + + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time + +#### Example + +```bash +ant beta:memory-stores archive \ --api-key my-anthropic-api-key \ --memory-store-id memory_store_id ``` @@ -52771,13 +52883,13 @@ ant beta:memory-stores archive \ ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `$ ant beta:memory-stores:memories create` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -52787,17 +52899,23 @@ Create a memory - `--content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `--path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -52813,13 +52931,19 @@ Create a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -52827,7 +52951,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -52843,7 +52967,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -52851,13 +52979,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -52886,13 +53018,13 @@ ant beta:memory-stores:memories create \ } ``` -### List memories +### List Memories `$ ant beta:memory-stores:memories list` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -52902,27 +53034,35 @@ List memories - `--depth: optional number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `--limit: optional number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--path-prefix: optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `--view: optional "basic" or "full"` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -52938,7 +53078,7 @@ List memories - `BetaManagedAgentsListMemoriesResult: object` - Response payload for [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). + A page of results from [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryListItem` @@ -52946,13 +53086,19 @@ List memories - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -52960,7 +53106,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -52976,7 +53122,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -52984,17 +53134,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -53004,7 +53160,7 @@ List memories - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -53036,13 +53192,13 @@ ant beta:memory-stores:memories list \ } ``` -### Retrieve a memory +### Retrieve a Memory `$ ant beta:memory-stores:memories retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -53056,7 +53212,9 @@ Retrieve a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -53072,13 +53230,19 @@ Retrieve a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -53086,7 +53250,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -53102,7 +53266,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -53110,13 +53278,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -53144,13 +53316,13 @@ ant beta:memory-stores:memories retrieve \ } ``` -### Update a memory +### Update a Memory `$ ant beta:memory-stores:memories update` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -53164,7 +53336,9 @@ Update a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--content: optional string` @@ -53172,13 +53346,17 @@ Update a memory - `--path: optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `--precondition: optional object` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -53194,13 +53372,19 @@ Update a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -53208,7 +53392,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -53224,7 +53408,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -53232,13 +53420,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -53266,13 +53458,13 @@ ant beta:memory-stores:memories update \ } ``` -### Delete a memory +### Delete a Memory `$ ant beta:memory-stores:memories delete` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -53304,7 +53496,11 @@ Delete a memory - `beta_managed_agents_deleted_memory: object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -53332,13 +53528,13 @@ ant beta:memory-stores:memories delete \ ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `$ ant beta:memory-stores:memory-versions list` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -53364,7 +53560,9 @@ List memory versions - `--limit: optional number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -53372,7 +53570,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `--operation: optional "created" or "modified" or "deleted"` (query parameter) @@ -53392,7 +53590,9 @@ List memory versions - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -53408,7 +53608,7 @@ List memory versions - `BetaManagedAgentsListMemoryVersionsResult: object` - Response payload for [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + A page of results from [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryVersion` @@ -53428,7 +53628,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -53466,7 +53668,11 @@ List memory versions - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -53522,7 +53728,11 @@ List memory versions - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -53548,7 +53758,7 @@ List memory versions - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -53589,13 +53799,13 @@ ant beta:memory-stores:memory-versions list \ } ``` -### Retrieve a memory version +### Retrieve a Memory Version `$ ant beta:memory-stores:memory-versions retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -53609,7 +53819,9 @@ Retrieve a memory version - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -53625,7 +53837,13 @@ Retrieve a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -53641,7 +53859,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -53679,7 +53899,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -53735,7 +53959,11 @@ Retrieve a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -53794,13 +54022,13 @@ ant beta:memory-stores:memory-versions retrieve \ } ``` -### Redact a memory version +### Redact a Memory Version `$ ant beta:memory-stores:memory-versions redact` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -53826,7 +54054,13 @@ Redact a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -53842,7 +54076,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -53880,7 +54116,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -53936,7 +54176,11 @@ Redact a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -55347,17 +55591,17 @@ Create User Profile - `--external-id: optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `--external-user-onboarded-at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -55373,7 +55617,7 @@ Create User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -55407,6 +55651,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -55423,13 +55671,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -55441,11 +55689,11 @@ Create User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -55499,14 +55747,10 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -55521,6 +55765,7 @@ ant beta:user-profiles create \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -55532,15 +55777,14 @@ ant beta:user-profiles create \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -55576,7 +55820,7 @@ List User Profiles - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -55612,6 +55856,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -55628,13 +55876,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -55646,11 +55894,11 @@ List User Profiles - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -55704,14 +55952,10 @@ List User Profiles - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string` Cursor for the next page, or `null` when there are no more results. @@ -55732,6 +55976,7 @@ ant beta:user-profiles list \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -55743,15 +55988,14 @@ ant beta:user-profiles list \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -55774,7 +56018,7 @@ Get User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -55808,6 +56052,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -55824,13 +56072,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -55842,11 +56090,11 @@ Get User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -55900,14 +56148,10 @@ Get User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -55923,6 +56167,7 @@ ant beta:user-profiles retrieve \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -55934,15 +56179,14 @@ ant beta:user-profiles retrieve \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -55966,17 +56210,17 @@ Update User Profile - `--external-id: optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `--external-user-onboarded-at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -55992,7 +56236,7 @@ Update User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -56026,6 +56270,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -56042,13 +56290,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -56060,11 +56308,11 @@ Update User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -56118,14 +56366,10 @@ Update User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```bash @@ -56141,6 +56385,7 @@ ant beta:user-profiles update \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -56152,15 +56397,67 @@ ant beta:user-profiles update \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +`$ ant beta:user-profiles delete` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Parameters + +- `--user-profile-id: string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `--beta: optional array of AnthropicBeta` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_deleted_user_profile: object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```bash +ant beta:user-profiles delete \ + --api-key my-anthropic-api-key \ + --user-profile-id uprof_011CZkZCu8hGbp5mYRQgUmz9 +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -56180,7 +56477,7 @@ Create Enrollment URL - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -56192,7 +56489,7 @@ Create Enrollment URL - `beta_user_profile_enrollment_url: object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -56226,6 +56523,75 @@ ant beta:user-profiles create-enrollment-url \ } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +`$ ant beta:user-profiles:action-urls create` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `--user-profile-id: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `--action: object` + + The action that the person who opens the URL takes. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_user_profile_action_url: object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```bash +ant beta:user-profiles:action-urls create \ + --api-key my-anthropic-api-key \ + --user-profile-id uprof_011CZkZCu8hGbp5mYRQgUmz9 \ + --action '{type: enroll_end_user}' +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -65153,6 +65519,217 @@ ant beta:organization:workspaces:rate-limits list \ } ``` +### Set Workspace Rate Limits + +`$ ant beta:organization:workspaces:rate-limits update` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `--workspace-id: string` (path parameter) + + The ID of the workspace. + +- `--rate-limit-id: string` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `--limit: array of BetaWorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + +#### Returns + +- `beta_workspace_rate_limit: object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `beta_organization_rate_limit_model_group: object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `beta_organization_rate_limit_batch_group: object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `beta_organization_rate_limit_token_count_group: object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `beta_organization_rate_limit_files_group: object` + + - `type: "files"` + + Always `files`: the Files API. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `beta_organization_rate_limit_skills_group: object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `beta_organization_rate_limit_web_search_group: object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource or BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `beta_workspace_rate_limit_workspace_source: object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + - `beta_workspace_rate_limit_organization_source: object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +ant beta:organization:workspaces:rate-limits update \ + --api-key my-anthropic-api-key \ + --workspace-id workspace_id \ + --rate-limit-id rate_limit_id \ + --limit '{type: fast_itpmca, value: 0}' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -66035,7 +66612,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup or BetaOrganizationRateLimitBatchGroup or BetaOrganizationRateLimitTokenCountGroup or 3 more` @@ -77328,3 +77905,600 @@ ant beta:organization:telemetry-destinations:workspaces remove \ "workspace_id": "workspace_id" } ``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`$ ant beta:organization:webhooks create` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--enabled-event: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Must list at least one. + +- `--url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `--description: optional string` + + Notes about the endpoint. + +- `--name: optional string` + + A short label for the endpoint. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `beta_new_organization_webhook_endpoint: object` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: "disabled" or "enabled"` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +ant beta:organization:webhooks create \ + --api-key my-anthropic-api-key \ + --enabled-event user_profile.enforcement_action_opened \ + --url x +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`$ ant beta:organization:webhooks list` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--after-id: optional string` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `--before-id: optional string` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `--limit: optional number` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + +- `--order: optional "asc" or "desc"` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `BetaOrganizationWebhookEndpointList: object` + + A page of organization webhook endpoints. + + - `data: array of BetaOrganizationWebhookEndpoint` + + The organization webhook endpoints on this page. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: "disabled" or "enabled"` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + + - `has_more: boolean` + + Whether more endpoints follow this page in list order. With `before_id`, only endpoints before the cursor count. + + - `first_id: optional string` + + First ID in the `data` list. + + - `last_id: optional string` + + Last ID in the `data` list. Can be used as the `after_id` for the next page. + +#### Example + +```bash +ant beta:organization:webhooks list \ + --api-key my-anthropic-api-key +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" +} +``` + +### Get Organization Webhook Endpoint + +`$ ant beta:organization:webhooks retrieve` + +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--webhook-endpoint-id: string` (path parameter) + + ID of the webhook endpoint. + + maxLength: 2048 + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `beta_organization_webhook_endpoint: object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: "disabled" or "enabled"` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +ant beta:organization:webhooks retrieve \ + --api-key my-anthropic-api-key \ + --webhook-endpoint-id webhook_endpoint_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Update Organization Webhook Endpoint + +`$ ant beta:organization:webhooks update` + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Update an organization webhook endpoint. Only the fields you send are changed. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--webhook-endpoint-id: string` (path parameter) + + ID of the webhook endpoint. + + maxLength: 2048 + +- `--description: optional string` + + Notes about the endpoint. + +- `--enabled-event: optional array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + +- `--name: optional string` + + A short label for the endpoint. + +- `--state: optional "disabled" or "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + +- `--url: optional string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `beta_organization_webhook_endpoint: object` + + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: array of "user_profile.enforcement_action_opened" or "user_profile.enforcement_action_resolved"` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: "disabled" or "enabled"` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```bash +ant beta:organization:webhooks update \ + --api-key my-anthropic-api-key \ + --webhook-endpoint-id webhook_endpoint_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Delete Organization Webhook Endpoint + +`$ ant beta:organization:webhooks delete` + +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Delete an organization webhook endpoint. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--webhook-endpoint-id: string` (path parameter) + + ID of the webhook endpoint. + + maxLength: 2048 + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `beta_deleted_organization_webhook_endpoint: object` + + A deleted organization webhook endpoint. + + - `type: "webhook_endpoint_deleted"` + + Always `webhook_endpoint_deleted`. + + - `id: string` + + ID of the deleted webhook endpoint. + +#### Example + +```bash +ant beta:organization:webhooks delete \ + --api-key my-anthropic-api-key \ + --webhook-endpoint-id webhook_endpoint_id +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "webhook_endpoint_deleted" +} +``` + +### Regenerate Organization Webhook Endpoint Signing Secret + +`$ ant beta:organization:webhooks regenerate-signing-secret` + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` + +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `--webhook-endpoint-id: string` (path parameter) + + ID of the webhook endpoint. + + maxLength: 2048 + +- `--beta: optional array of AnthropicBeta` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `beta_organization_webhook_endpoint_signing_secret: object` + + An organization webhook endpoint's new signing secret. + + - `signing_secret: string` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +#### Example + +```bash +ant beta:organization:webhooks regenerate-signing-secret \ + --api-key my-anthropic-api-key \ + --webhook-endpoint-id webhook_endpoint_id +``` + +##### Response (200) + +```json +{ + "signing_secret": "signing_secret" +} +``` diff --git a/content/en/api/cli/beta/memory_stores.md b/content/en/api/cli/beta/memory_stores.md index 50e1959801..2a6038008e 100644 --- a/content/en/api/cli/beta/memory_stores.md +++ b/content/en/api/cli/beta/memory_stores.md @@ -5,31 +5,37 @@ url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `$ ant beta:memory-stores create` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters - `--name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `--description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `--metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -51,27 +57,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -79,7 +91,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -108,25 +122,25 @@ ant beta:memory-stores create \ } ``` -## List memory stores +## List Memory Stores `$ ant beta:memory-stores list` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters - `--created-at-gte: optional string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `--created-at-lte: optional string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -142,7 +156,7 @@ List memory stores - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -168,27 +182,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -196,13 +216,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -231,19 +253,19 @@ ant beta:memory-stores list \ } ``` -## Retrieve a memory store +## Retrieve a Memory Store `$ ant beta:memory-stores retrieve` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `--beta: optional array of AnthropicBeta` (header parameter) @@ -265,27 +287,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -293,7 +321,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -322,33 +352,39 @@ ant beta:memory-stores retrieve \ } ``` -## Update a memory store +## Update a Memory Store `$ ant beta:memory-stores update` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `--description: optional string` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `--metadata: optional map[string]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `--name: optional string` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -372,27 +408,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -400,7 +442,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -429,19 +473,21 @@ ant beta:memory-stores update \ } ``` -## Delete a memory store +## Delete a Memory Store `$ ant beta:memory-stores delete` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -482,19 +528,21 @@ ant beta:memory-stores delete \ } ``` -## Archive a memory store +## Archive a Memory Store `$ ant beta:memory-stores archive` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -516,27 +564,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -544,7 +598,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -597,27 +653,33 @@ ant beta:memory-stores archive \ - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -625,19 +687,21 @@ ant beta:memory-stores archive \ - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `$ ant beta:memory-stores:memories create` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -647,17 +711,23 @@ Create a memory - `--content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `--path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -673,13 +743,19 @@ Create a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -687,7 +763,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -703,7 +779,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -711,13 +791,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -746,13 +830,13 @@ ant beta:memory-stores:memories create \ } ``` -### List memories +### List Memories `$ ant beta:memory-stores:memories list` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -762,27 +846,35 @@ List memories - `--depth: optional number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `--limit: optional number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--path-prefix: optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `--view: optional "basic" or "full"` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -798,7 +890,7 @@ List memories - `BetaManagedAgentsListMemoriesResult: object` - Response payload for [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). + A page of results from [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryListItem` @@ -806,13 +898,19 @@ List memories - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -820,7 +918,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -836,7 +934,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -844,17 +946,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -864,7 +972,7 @@ List memories - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -896,13 +1004,13 @@ ant beta:memory-stores:memories list \ } ``` -### Retrieve a memory +### Retrieve a Memory `$ ant beta:memory-stores:memories retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -916,7 +1024,9 @@ Retrieve a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -932,13 +1042,19 @@ Retrieve a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -946,7 +1062,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -962,7 +1078,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -970,13 +1090,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1004,13 +1128,13 @@ ant beta:memory-stores:memories retrieve \ } ``` -### Update a memory +### Update a Memory `$ ant beta:memory-stores:memories update` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -1024,7 +1148,9 @@ Update a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--content: optional string` @@ -1032,13 +1158,17 @@ Update a memory - `--path: optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `--precondition: optional object` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -1054,13 +1184,19 @@ Update a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1068,7 +1204,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1084,7 +1220,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1092,13 +1232,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1126,13 +1270,13 @@ ant beta:memory-stores:memories update \ } ``` -### Delete a memory +### Delete a Memory `$ ant beta:memory-stores:memories delete` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -1164,7 +1308,11 @@ Delete a memory - `beta_managed_agents_deleted_memory: object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -1192,13 +1340,13 @@ ant beta:memory-stores:memories delete \ ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `$ ant beta:memory-stores:memory-versions list` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -1224,7 +1372,9 @@ List memory versions - `--limit: optional number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -1232,7 +1382,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `--operation: optional "created" or "modified" or "deleted"` (query parameter) @@ -1252,7 +1402,9 @@ List memory versions - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -1268,7 +1420,7 @@ List memory versions - `BetaManagedAgentsListMemoryVersionsResult: object` - Response payload for [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + A page of results from [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryVersion` @@ -1288,7 +1440,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -1326,7 +1480,11 @@ List memory versions - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -1382,7 +1540,11 @@ List memory versions - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -1408,7 +1570,7 @@ List memory versions - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. #### Example @@ -1449,13 +1611,13 @@ ant beta:memory-stores:memory-versions list \ } ``` -### Retrieve a memory version +### Retrieve a Memory Version `$ ant beta:memory-stores:memory-versions retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -1469,7 +1631,9 @@ Retrieve a memory version - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -1485,7 +1649,13 @@ Retrieve a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -1501,7 +1671,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -1539,7 +1711,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -1595,7 +1771,11 @@ Retrieve a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -1654,13 +1834,13 @@ ant beta:memory-stores:memory-versions retrieve \ } ``` -### Redact a memory version +### Redact a Memory Version `$ ant beta:memory-stores:memory-versions redact` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -1686,7 +1866,13 @@ Redact a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -1702,7 +1888,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -1740,7 +1928,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -1796,7 +1988,11 @@ Redact a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/archive.md b/content/en/api/cli/beta/memory_stores/archive.md index 2cbabdd5d0..6746e13e97 100644 --- a/content/en/api/cli/beta/memory_stores/archive.md +++ b/content/en/api/cli/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `$ ant beta:memory-stores archive` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -37,27 +39,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -65,7 +73,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/create.md b/content/en/api/cli/beta/memory_stores/create.md index 60329bba24..c3e8712788 100644 --- a/content/en/api/cli/beta/memory_stores/create.md +++ b/content/en/api/cli/beta/memory_stores/create.md @@ -1,33 +1,39 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `$ ant beta:memory-stores create` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters - `--name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `--description: optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `--metadata: optional map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -49,27 +55,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -77,7 +89,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/delete.md b/content/en/api/cli/beta/memory_stores/delete.md index cb535df583..8b7e29a57b 100644 --- a/content/en/api/cli/beta/memory_stores/delete.md +++ b/content/en/api/cli/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `$ ant beta:memory-stores delete` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `--beta: optional array of AnthropicBeta` (header parameter) diff --git a/content/en/api/cli/beta/memory_stores/list.md b/content/en/api/cli/beta/memory_stores/list.md index d9fd977e9a..0b3150e36b 100644 --- a/content/en/api/cli/beta/memory_stores/list.md +++ b/content/en/api/cli/beta/memory_stores/list.md @@ -1,27 +1,27 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `$ ant beta:memory-stores list` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters - `--created-at-gte: optional string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `--created-at-lte: optional string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -37,7 +37,7 @@ List memory stores - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -63,27 +63,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -91,13 +97,15 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value). Pass as `page` on the next request. `null` when there are no more results. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/cli/beta/memory_stores/memories.md b/content/en/api/cli/beta/memory_stores/memories.md index 43e9b30aaf..5e8a10ea9c 100644 --- a/content/en/api/cli/beta/memory_stores/memories.md +++ b/content/en/api/cli/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `$ ant beta:memory-stores:memories create` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -21,17 +21,23 @@ Create a memory - `--content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `--path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -47,13 +53,19 @@ Create a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -61,7 +73,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -77,7 +89,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -85,13 +101,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -120,13 +140,13 @@ ant beta:memory-stores:memories create \ } ``` -## List memories +## List Memories `$ ant beta:memory-stores:memories list` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -136,27 +156,35 @@ List memories - `--depth: optional number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `--limit: optional number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--path-prefix: optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `--view: optional "basic" or "full"` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -172,7 +200,7 @@ List memories - `BetaManagedAgentsListMemoriesResult: object` - Response payload for [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). + A page of results from [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryListItem` @@ -180,13 +208,19 @@ List memories - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -194,7 +228,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -210,7 +244,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -218,17 +256,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -238,7 +282,7 @@ List memories - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -270,13 +314,13 @@ ant beta:memory-stores:memories list \ } ``` -## Retrieve a memory +## Retrieve a Memory `$ ant beta:memory-stores:memories retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -290,7 +334,9 @@ Retrieve a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -306,13 +352,19 @@ Retrieve a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -320,7 +372,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -336,7 +388,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -344,13 +400,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -378,13 +438,13 @@ ant beta:memory-stores:memories retrieve \ } ``` -## Update a memory +## Update a Memory `$ ant beta:memory-stores:memories update` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -398,7 +458,9 @@ Update a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--content: optional string` @@ -406,13 +468,17 @@ Update a memory - `--path: optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `--precondition: optional object` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -428,13 +494,19 @@ Update a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -442,7 +514,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -458,7 +530,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -466,13 +542,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -500,13 +580,13 @@ ant beta:memory-stores:memories update \ } ``` -## Delete a memory +## Delete a Memory `$ ant beta:memory-stores:memories delete` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -538,7 +618,11 @@ Delete a memory - `beta_managed_agents_deleted_memory: object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -578,7 +662,9 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_content_sha256_precondition: object` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `type: "content_sha256"` @@ -590,7 +676,11 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_deleted_memory: object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -672,7 +762,7 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_memory_path_conflict_error: object` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -702,13 +792,19 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -716,7 +812,7 @@ ant beta:memory-stores:memories delete \ - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -732,7 +828,11 @@ ant beta:memory-stores:memories delete \ - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -740,29 +840,39 @@ ant beta:memory-stores:memories delete \ - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `beta_managed_agents_memory_list_item: BetaManagedAgentsMemory or BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -770,7 +880,7 @@ ant beta:memory-stores:memories delete \ - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -786,7 +896,11 @@ ant beta:memory-stores:memories delete \ - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -794,17 +908,23 @@ ant beta:memory-stores:memories delete \ - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -816,7 +936,7 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_memory_path_conflict_error: object` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -856,7 +976,9 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -868,7 +990,9 @@ ant beta:memory-stores:memories delete \ - `beta_managed_agents_memory_view: "basic" or "full"` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` diff --git a/content/en/api/cli/beta/memory_stores/memories/create.md b/content/en/api/cli/beta/memory_stores/memories/create.md index d537612b2b..f23c7fac13 100644 --- a/content/en/api/cli/beta/memory_stores/memories/create.md +++ b/content/en/api/cli/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `$ ant beta:memory-stores:memories create` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -19,17 +19,23 @@ Create a memory - `--content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `--path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -45,13 +51,19 @@ Create a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -59,7 +71,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75,7 +87,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -83,13 +99,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/cli/beta/memory_stores/memories/delete.md b/content/en/api/cli/beta/memory_stores/memories/delete.md index 2ea0f373bc..44c647f438 100644 --- a/content/en/api/cli/beta/memory_stores/memories/delete.md +++ b/content/en/api/cli/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `$ ant beta:memory-stores:memories delete` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -41,7 +41,11 @@ Delete a memory - `beta_managed_agents_deleted_memory: object` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=cli) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` diff --git a/content/en/api/cli/beta/memory_stores/memories/list.md b/content/en/api/cli/beta/memory_stores/memories/list.md index d4925bebb5..13eb7f61be 100644 --- a/content/en/api/cli/beta/memory_stores/memories/list.md +++ b/content/en/api/cli/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/list --- -# List memories +# List Memories `$ ant beta:memory-stores:memories list` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -19,27 +19,35 @@ List memories - `--depth: optional number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `--limit: optional number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `--page: optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `--path-prefix: optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `--view: optional "basic" or "full"` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -55,7 +63,7 @@ List memories - `BetaManagedAgentsListMemoriesResult: object` - Response payload for [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). + A page of results from [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryListItem` @@ -63,13 +71,19 @@ List memories - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -77,7 +91,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -93,7 +107,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -101,17 +119,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `beta_managed_agents_memory_prefix: object` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=cli) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -121,7 +145,7 @@ List memories - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/cli/beta/memory_stores/memories/retrieve.md b/content/en/api/cli/beta/memory_stores/memories/retrieve.md index 5a56ba713a..6ccfc4125a 100644 --- a/content/en/api/cli/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/cli/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `$ ant beta:memory-stores:memories retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -39,13 +41,19 @@ Retrieve a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -53,7 +61,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -69,7 +77,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -77,13 +89,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/cli/beta/memory_stores/memories/update.md b/content/en/api/cli/beta/memory_stores/memories/update.md index 1f61825116..414bf7897f 100644 --- a/content/en/api/cli/beta/memory_stores/memories/update.md +++ b/content/en/api/cli/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `$ ant beta:memory-stores:memories update` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -23,7 +23,9 @@ Update a memory - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--content: optional string` @@ -31,13 +33,17 @@ Update a memory - `--path: optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `--precondition: optional object` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -53,13 +59,19 @@ Update a memory - `beta_managed_agents_memory: object` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -67,7 +79,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -83,7 +95,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -91,13 +107,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: optional string` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/cli/beta/memory_stores/memory_versions.md b/content/en/api/cli/beta/memory_stores/memory_versions.md index a850a3b720..87647e167d 100644 --- a/content/en/api/cli/beta/memory_stores/memory_versions.md +++ b/content/en/api/cli/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versi # Memory Versions -## List memory versions +## List Memory Versions `$ ant beta:memory-stores:memory-versions list` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -37,7 +37,9 @@ List memory versions - `--limit: optional number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `--operation: optional "created" or "modified" or "deleted"` (query parameter) @@ -65,7 +67,9 @@ List memory versions - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -81,7 +85,7 @@ List memory versions - `BetaManagedAgentsListMemoryVersionsResult: object` - Response payload for [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + A page of results from [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryVersion` @@ -101,7 +105,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -139,7 +145,11 @@ List memory versions - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -195,7 +205,11 @@ List memory versions - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -221,7 +235,7 @@ List memory versions - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ### Example @@ -262,13 +276,13 @@ ant beta:memory-stores:memory-versions list \ } ``` -## Retrieve a memory version +## Retrieve a Memory Version `$ ant beta:memory-stores:memory-versions retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -282,7 +296,9 @@ Retrieve a memory version - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -298,7 +314,13 @@ Retrieve a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -314,7 +336,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -352,7 +376,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -408,7 +436,11 @@ Retrieve a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -467,13 +499,13 @@ ant beta:memory-stores:memory-versions retrieve \ } ``` -## Redact a memory version +## Redact a Memory Version `$ ant beta:memory-stores:memory-versions redact` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -499,7 +531,13 @@ Redact a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -515,7 +553,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -553,7 +593,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -609,7 +653,11 @@ Redact a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -742,7 +790,13 @@ ant beta:memory-stores:memory-versions redact \ - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -758,7 +812,9 @@ ant beta:memory-stores:memory-versions redact \ - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -796,7 +852,11 @@ ant beta:memory-stores:memory-versions redact \ - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -852,7 +912,11 @@ ant beta:memory-stores:memory-versions redact \ - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -880,7 +944,9 @@ ant beta:memory-stores:memory-versions redact \ - `beta_managed_agents_memory_version_operation: "created" or "modified" or "deleted"` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `"created"` diff --git a/content/en/api/cli/beta/memory_stores/memory_versions/list.md b/content/en/api/cli/beta/memory_stores/memory_versions/list.md index a9f58ebb64..1dc77c4dba 100644 --- a/content/en/api/cli/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/cli/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `$ ant beta:memory-stores:memory-versions list` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -35,7 +35,9 @@ List memory versions - `--limit: optional number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -43,7 +45,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `--operation: optional "created" or "modified" or "deleted"` (query parameter) @@ -63,7 +65,9 @@ List memory versions - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -79,7 +83,7 @@ List memory versions - `BetaManagedAgentsListMemoryVersionsResult: object` - Response payload for [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). + A page of results from [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli). - `data: optional array of BetaManagedAgentsMemoryVersion` @@ -99,7 +103,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -137,7 +143,11 @@ List memory versions - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -193,7 +203,11 @@ List memory versions - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time @@ -219,7 +233,7 @@ List memory versions - `next_page: optional string` - Opaque cursor for the next page (a `page_...` value), or `null` if there are no more results. Pass as `page` on the next request. + The value to pass as `page` to get the next page, or `null` if there are no more results. ## Example diff --git a/content/en/api/cli/beta/memory_stores/memory_versions/redact.md b/content/en/api/cli/beta/memory_stores/memory_versions/redact.md index 69ef495928..31ea2c578c 100644 --- a/content/en/api/cli/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/cli/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `$ ant beta:memory-stores:memory-versions redact` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -35,7 +35,13 @@ Redact a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -51,7 +57,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -89,7 +97,11 @@ Redact a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -145,7 +157,11 @@ Redact a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/cli/beta/memory_stores/memory_versions/retrieve.md index 0430fb1c94..ad54e21307 100644 --- a/content/en/api/cli/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/cli/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `$ ant beta:memory-stores:memory-versions retrieve` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory version - `--view: optional "basic" or "full"` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `--beta: optional array of AnthropicBeta` (header parameter) @@ -39,7 +41,13 @@ Retrieve a memory version - `beta_managed_agents_memory_version: object` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -55,7 +63,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=cli) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -93,7 +103,11 @@ Retrieve a memory version - `created_by: optional BetaManagedAgentsSessionActor or BetaManagedAgentsAPIActor or BetaManagedAgentsUserActor or BetaManagedAgentsServiceAccountActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=cli) to learn more about where the change came from. - `beta_managed_agents_session_actor: object` @@ -149,7 +163,11 @@ Retrieve a memory version - `redacted_at: optional string` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=cli). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/retrieve.md b/content/en/api/cli/beta/memory_stores/retrieve.md index 77018addb5..772476bfb4 100644 --- a/content/en/api/cli/beta/memory_stores/retrieve.md +++ b/content/en/api/cli/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `$ ant beta:memory-stores retrieve` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `--beta: optional array of AnthropicBeta` (header parameter) @@ -37,27 +37,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -65,7 +71,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/cli/beta/memory_stores/update.md b/content/en/api/cli/beta/memory_stores/update.md index 2941f6d3be..e83b3fce73 100644 --- a/content/en/api/cli/beta/memory_stores/update.md +++ b/content/en/api/cli/beta/memory_stores/update.md @@ -1,35 +1,41 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/cli/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `$ ant beta:memory-stores update` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `--memory-store-id: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `--description: optional string` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `--metadata: optional map[string]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `--name: optional string` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -53,27 +59,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=cli#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: map[string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -81,7 +93,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/cli/beta/messages.md b/content/en/api/cli/beta/messages.md index 340960da54..f03b61b16c 100644 --- a/content/en/api/cli/beta/messages.md +++ b/content/en/api/cli/beta/messages.md @@ -271,7 +271,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -3892,6 +3892,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -3900,6 +3904,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -3908,6 +3916,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -3916,6 +3928,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -3924,10 +3940,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -6080,7 +6108,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -12973,6 +13001,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -12983,6 +13015,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -12993,6 +13029,12 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` ### Beta Cache Miss Reason @@ -13001,6 +13043,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -13009,6 +13055,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -13017,6 +13067,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -13025,6 +13079,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -13033,16 +13091,32 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Beta Cache Miss System Changed - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -13053,6 +13127,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -13063,6 +13141,12 @@ ant beta:messages count-tokens \ - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Beta Citation Char Location @@ -30446,6 +30530,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -30454,6 +30542,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -30462,6 +30554,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -30470,6 +30566,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -30478,10 +30578,22 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Beta Diagnostics Param @@ -31446,8 +31558,22 @@ ant beta:messages count-tokens \ - `max_tokens: optional number` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=cli#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional object` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -31496,7 +31622,11 @@ ant beta:messages count-tokens \ - `speed: optional "standard" or "fast"` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -31504,6 +31634,12 @@ ant beta:messages count-tokens \ - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `beta_thinking_config_enabled: object` - `type: "enabled"` @@ -31700,8 +31836,22 @@ ant beta:messages count-tokens \ - `max_tokens: optional number` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=cli#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: optional object` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: optional "low" or "medium" or "high" or 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -31750,7 +31900,11 @@ ant beta:messages count-tokens \ - `speed: optional "standard" or "fast"` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -31758,6 +31912,12 @@ ant beta:messages count-tokens \ - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigBetweenTools or BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `beta_thinking_config_enabled: object` - `type: "enabled"` @@ -36735,6 +36895,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -36743,6 +36907,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -36751,6 +36919,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -36759,6 +36931,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -36767,10 +36943,22 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -51160,6 +51348,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -51168,6 +51360,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -51176,6 +51372,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -51184,6 +51384,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -51192,10 +51396,22 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -55758,6 +55974,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -55766,6 +55986,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -55774,6 +55998,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -55782,6 +56010,10 @@ ant beta:messages count-tokens \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -55790,10 +56022,22 @@ ant beta:messages count-tokens \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -82018,7 +82262,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) @@ -86338,6 +86582,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -86346,6 +86594,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -86354,6 +86606,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -86362,6 +86618,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -86370,10 +86630,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/beta/messages/batches.md b/content/en/api/cli/beta/messages/batches.md index b309180f07..374e41eacd 100644 --- a/content/en/api/cli/beta/messages/batches.md +++ b/content/en/api/cli/beta/messages/batches.md @@ -31,7 +31,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) @@ -4351,6 +4351,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -4359,6 +4363,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -4367,6 +4375,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -4375,6 +4387,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -4383,10 +4399,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -9233,6 +9261,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -9241,6 +9273,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -9249,6 +9285,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -9257,6 +9297,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -9265,10 +9309,22 @@ ant beta:messages:batches results \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -13935,6 +13991,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -13943,6 +14003,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -13951,6 +14015,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -13959,6 +14027,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -13967,10 +14039,22 @@ ant beta:messages:batches results \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -18599,6 +18683,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -18607,6 +18695,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -18615,6 +18707,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -18623,6 +18719,10 @@ ant beta:messages:batches results \ - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -18631,10 +18731,22 @@ ant beta:messages:batches results \ - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/beta/messages/batches/create.md b/content/en/api/cli/beta/messages/batches/create.md index b789d05733..3ca179e668 100644 --- a/content/en/api/cli/beta/messages/batches/create.md +++ b/content/en/api/cli/beta/messages/batches/create.md @@ -29,7 +29,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) diff --git a/content/en/api/cli/beta/messages/batches/results.md b/content/en/api/cli/beta/messages/batches/results.md index dc11244042..5890ce5ccd 100644 --- a/content/en/api/cli/beta/messages/batches/results.md +++ b/content/en/api/cli/beta/messages/batches/results.md @@ -3628,6 +3628,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -3636,6 +3640,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -3644,6 +3652,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -3652,6 +3664,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -3660,10 +3676,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/beta/messages/count_tokens.md b/content/en/api/cli/beta/messages/count_tokens.md index 0fd8f9d143..43742f848d 100644 --- a/content/en/api/cli/beta/messages/count_tokens.md +++ b/content/en/api/cli/beta/messages/count_tokens.md @@ -200,7 +200,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) diff --git a/content/en/api/cli/beta/messages/create.md b/content/en/api/cli/beta/messages/create.md index 0d76204c8d..478c2e76a1 100644 --- a/content/en/api/cli/beta/messages/create.md +++ b/content/en/api/cli/beta/messages/create.md @@ -269,7 +269,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -3890,6 +3890,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -3898,6 +3902,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -3906,6 +3914,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -3914,6 +3926,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -3922,10 +3938,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `beta_cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `beta_cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/beta/user_profiles.md b/content/en/api/cli/beta/user_profiles.md index ba5986db8d..9ce170451e 100644 --- a/content/en/api/cli/beta/user_profiles.md +++ b/content/en/api/cli/beta/user_profiles.md @@ -21,17 +21,17 @@ Create User Profile - `--external-id: optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `--external-user-onboarded-at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -47,7 +47,7 @@ Create User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -81,6 +81,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -97,13 +101,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -115,11 +119,11 @@ Create User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -173,14 +177,10 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -195,6 +195,7 @@ ant beta:user-profiles create \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -206,15 +207,14 @@ ant beta:user-profiles create \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -250,7 +250,7 @@ List User Profiles - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -286,6 +286,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -302,13 +306,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -320,11 +324,11 @@ List User Profiles - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -378,14 +382,10 @@ List User Profiles - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string` Cursor for the next page, or `null` when there are no more results. @@ -406,6 +406,7 @@ ant beta:user-profiles list \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -417,15 +418,14 @@ ant beta:user-profiles list \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -448,7 +448,7 @@ Get User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -482,6 +482,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -498,13 +502,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -516,11 +520,11 @@ Get User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -574,14 +578,10 @@ Get User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -597,6 +597,7 @@ ant beta:user-profiles retrieve \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -608,15 +609,14 @@ ant beta:user-profiles retrieve \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -640,17 +640,17 @@ Update User Profile - `--external-id: optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `--external-user-onboarded-at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -666,7 +666,7 @@ Update User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -700,6 +700,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -716,13 +720,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -734,11 +738,11 @@ Update User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -792,14 +796,10 @@ Update User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```bash @@ -815,6 +815,7 @@ ant beta:user-profiles update \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -826,15 +827,67 @@ ant beta:user-profiles update \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`$ ant beta:user-profiles delete` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `--user-profile-id: string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `--beta: optional array of AnthropicBeta` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `beta_deleted_user_profile: object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```bash +ant beta:user-profiles delete \ + --api-key my-anthropic-api-key \ + --user-profile-id uprof_011CZkZCu8hGbp5mYRQgUmz9 +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -854,7 +907,7 @@ Create Enrollment URL - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -866,7 +919,7 @@ Create Enrollment URL - `beta_user_profile_enrollment_url: object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -902,6 +955,18 @@ ant beta:user-profiles create-enrollment-url \ ## Domain types +### Beta Deleted User Profile + +- `beta_deleted_user_profile: object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `beta_user_profile: object` @@ -928,6 +993,10 @@ ant beta:user-profiles create-enrollment-url \ Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -944,13 +1013,13 @@ ant beta:user-profiles create-enrollment-url \ - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -962,11 +1031,11 @@ ant beta:user-profiles create-enrollment-url \ - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -1020,19 +1089,15 @@ ant beta:user-profiles create-enrollment-url \ - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `beta_user_profile_enrollment_url: object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -1179,3 +1244,72 @@ ant beta:user-profiles create-enrollment-url \ - `"pending"` - `"rejected"` + +## User Profiles › Action URLs + +### Create Action URL + +`$ ant beta:user-profiles:action-urls create` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `--user-profile-id: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `--action: object` + + The action that the person who opens the URL takes. + +- `--beta: optional array of AnthropicBeta` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `--workspace-id: optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `beta_user_profile_action_url: object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```bash +ant beta:user-profiles:action-urls create \ + --api-key my-anthropic-api-key \ + --user-profile-id uprof_011CZkZCu8hGbp5mYRQgUmz9 \ + --action '{type: enroll_end_user}' +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/cli/beta/user_profiles/create.md b/content/en/api/cli/beta/user_profiles/create.md index b8e927861a..722a200bf0 100644 --- a/content/en/api/cli/beta/user_profiles/create.md +++ b/content/en/api/cli/beta/user_profiles/create.md @@ -19,17 +19,17 @@ Create User Profile - `--external-id: optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `--external-user-onboarded-at: optional string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -45,7 +45,7 @@ Create User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -79,6 +79,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -95,13 +99,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -113,11 +117,11 @@ Create User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -171,14 +175,10 @@ Create User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -193,6 +193,7 @@ ant beta:user-profiles create \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -204,14 +205,13 @@ ant beta:user-profiles create \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/cli/beta/user_profiles/create_enrollment_url.md b/content/en/api/cli/beta/user_profiles/create_enrollment_url.md index e942f6c539..5fdf97aad4 100644 --- a/content/en/api/cli/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/cli/beta/user_profiles/create_enrollment_url.md @@ -19,7 +19,7 @@ Create Enrollment URL - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -31,7 +31,7 @@ Create Enrollment URL - `beta_user_profile_enrollment_url: object` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` diff --git a/content/en/api/cli/beta/user_profiles/list.md b/content/en/api/cli/beta/user_profiles/list.md index b27864893e..58e4671106 100644 --- a/content/en/api/cli/beta/user_profiles/list.md +++ b/content/en/api/cli/beta/user_profiles/list.md @@ -35,7 +35,7 @@ List User Profiles - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -71,6 +71,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -87,13 +91,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -105,11 +109,11 @@ List User Profiles - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -163,14 +167,10 @@ List User Profiles - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - - `next_page: string` Cursor for the next page, or `null` when there are no more results. @@ -191,6 +191,7 @@ ant beta:user-profiles list \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -202,15 +203,14 @@ ant beta:user-profiles list \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/cli/beta/user_profiles/retrieve.md b/content/en/api/cli/beta/user_profiles/retrieve.md index 79eb638e3f..e3c5226fba 100644 --- a/content/en/api/cli/beta/user_profiles/retrieve.md +++ b/content/en/api/cli/beta/user_profiles/retrieve.md @@ -19,7 +19,7 @@ Get User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -53,6 +53,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -69,13 +73,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -87,11 +91,11 @@ Get User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -145,14 +149,10 @@ Get User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -168,6 +168,7 @@ ant beta:user-profiles retrieve \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -179,14 +180,13 @@ ant beta:user-profiles retrieve \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/cli/beta/user_profiles/update.md b/content/en/api/cli/beta/user_profiles/update.md index 33e2ee1fc1..d46b861bd1 100644 --- a/content/en/api/cli/beta/user_profiles/update.md +++ b/content/en/api/cli/beta/user_profiles/update.md @@ -23,17 +23,17 @@ Update User Profile - `--external-id: optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `--external-user-details: optional object` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `--external-user-onboarded-at: optional string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -49,7 +49,7 @@ Update User Profile - `--beta: optional array of AnthropicBeta` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `--workspace-id: optional string` (header parameter) @@ -83,6 +83,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: map[BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -99,13 +103,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: optional "application" or "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -117,11 +121,11 @@ Update User Profile - `external_id: optional string` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: optional object` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" or "suspended" or "blocked"` @@ -175,14 +179,10 @@ Update User Profile - `external_user_onboarded_at: optional string` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: optional string` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```bash @@ -198,6 +198,7 @@ ant beta:user-profiles update \ "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -209,14 +210,13 @@ ant beta:user-profiles update \ "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/cli/beta/webhooks.md b/content/en/api/cli/beta/webhooks.md index 49b63f2569..d80461ef3d 100644 --- a/content/en/api/cli/beta/webhooks.md +++ b/content/en/api/cli/beta/webhooks.md @@ -263,7 +263,7 @@ url: https://platform.claude.com/docs/en/api/cli/beta/webhooks format: date-time - - `data: BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 41 more` + - `data: BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 43 more` - `beta_webhook_session_created_event_data: object` @@ -821,9 +821,37 @@ url: https://platform.claude.com/docs/en/api/cli/beta/webhooks - `workspace_id: string` + - `beta_webhook_user_profile_enforcement_action_opened_event_data: object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `beta_webhook_user_profile_enforcement_action_resolved_event_data: object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Event Data -- `beta_webhook_event_data: BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 41 more` +- `beta_webhook_event_data: BetaWebhookSessionCreatedEventData or BetaWebhookSessionPendingEventData or BetaWebhookSessionRunningEventData or 43 more` - `beta_webhook_session_created_event_data: object` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/cli/beta/webhooks - `workspace_id: string` + - `beta_webhook_user_profile_enforcement_action_opened_event_data: object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `beta_webhook_user_profile_enforcement_action_resolved_event_data: object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Memory Store Archived Event Data - `beta_webhook_memory_store_archived_event_data: object` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/cli/beta/webhooks - `workspace_id: string` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `beta_webhook_user_profile_enforcement_action_opened_event_data: object` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `beta_webhook_user_profile_enforcement_action_resolved_event_data: object` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Vault Archived Event Data - `beta_webhook_vault_archived_event_data: object` diff --git a/content/en/api/cli/messages.md b/content/en/api/cli/messages.md index 421fae906e..fbb98c3a95 100644 --- a/content/en/api/cli/messages.md +++ b/content/en/api/cli/messages.md @@ -216,7 +216,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -957,6 +957,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -965,6 +969,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -973,6 +981,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -981,6 +993,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -989,10 +1005,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -2101,7 +2129,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -8468,6 +8496,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -8478,6 +8510,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -8488,6 +8524,12 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` ### Cache Miss Reason @@ -8496,6 +8538,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -8504,6 +8550,10 @@ ant messages count-tokens \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -8512,6 +8562,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -8520,6 +8574,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -8528,16 +8586,32 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Cache Miss System Changed - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -8548,6 +8622,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -8558,6 +8636,12 @@ ant messages count-tokens \ - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Citation Char Location @@ -14533,6 +14617,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -14541,6 +14629,10 @@ ant messages count-tokens \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -14549,6 +14641,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -14557,6 +14653,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -14565,10 +14665,22 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` ### Diagnostics Param @@ -15830,6 +15942,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -15838,6 +15954,10 @@ ant messages count-tokens \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -15846,6 +15966,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -15854,6 +15978,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -15862,10 +15990,22 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -21371,6 +21511,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -21379,6 +21523,10 @@ ant messages count-tokens \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -21387,6 +21535,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -21395,6 +21547,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -21403,10 +21559,22 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -22400,6 +22568,10 @@ ant messages count-tokens \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -22408,6 +22580,10 @@ ant messages count-tokens \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -22416,6 +22592,10 @@ ant messages count-tokens \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -22424,6 +22604,10 @@ ant messages count-tokens \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -22432,10 +22616,22 @@ ant messages count-tokens \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -32793,7 +32989,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) @@ -34213,6 +34409,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -34221,6 +34421,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -34229,6 +34433,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -34237,6 +34445,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -34245,10 +34457,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/messages/batches.md b/content/en/api/cli/messages/batches.md index 637c11b8bf..80823dc1e7 100644 --- a/content/en/api/cli/messages/batches.md +++ b/content/en/api/cli/messages/batches.md @@ -27,7 +27,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) @@ -1447,6 +1447,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -1455,6 +1459,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -1463,6 +1471,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -1471,6 +1483,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -1479,10 +1495,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -2760,6 +2788,10 @@ ant messages:batches results \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -2768,6 +2800,10 @@ ant messages:batches results \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -2776,6 +2812,10 @@ ant messages:batches results \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -2784,6 +2824,10 @@ ant messages:batches results \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -2792,10 +2836,22 @@ ant messages:batches results \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -3893,6 +3949,10 @@ ant messages:batches results \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -3901,6 +3961,10 @@ ant messages:batches results \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -3909,6 +3973,10 @@ ant messages:batches results \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -3917,6 +3985,10 @@ ant messages:batches results \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -3925,10 +3997,22 @@ ant messages:batches results \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` @@ -4988,6 +5072,10 @@ ant messages:batches results \ - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -4996,6 +5084,10 @@ ant messages:batches results \ - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -5004,6 +5096,10 @@ ant messages:batches results \ - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -5012,6 +5108,10 @@ ant messages:batches results \ - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -5020,10 +5120,22 @@ ant messages:batches results \ - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/messages/batches/create.md b/content/en/api/cli/messages/batches/create.md index c918ad5680..6c7810950b 100644 --- a/content/en/api/cli/messages/batches/create.md +++ b/content/en/api/cli/messages/batches/create.md @@ -25,7 +25,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `--workspace-id: optional string` (header parameter) diff --git a/content/en/api/cli/messages/batches/results.md b/content/en/api/cli/messages/batches/results.md index 5fbaad6355..88cc410ee1 100644 --- a/content/en/api/cli/messages/batches/results.md +++ b/content/en/api/cli/messages/batches/results.md @@ -744,6 +744,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -752,6 +756,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -760,6 +768,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -768,6 +780,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -776,10 +792,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/cli/messages/count_tokens.md b/content/en/api/cli/messages/count_tokens.md index 9549b2ca7f..4dc91bf30f 100644 --- a/content/en/api/cli/messages/count_tokens.md +++ b/content/en/api/cli/messages/count_tokens.md @@ -172,7 +172,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) diff --git a/content/en/api/cli/messages/create.md b/content/en/api/cli/messages/create.md index 5a59c5d13c..37522f6d6b 100644 --- a/content/en/api/cli/messages/create.md +++ b/content/en/api/cli/messages/create.md @@ -214,7 +214,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `--user-profile-id: optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `--workspace-id: optional string` (header parameter) @@ -955,6 +955,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_model_changed: object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` - `cache_missed_input_tokens: number` @@ -963,6 +967,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_system_changed: object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` - `cache_missed_input_tokens: number` @@ -971,6 +979,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_tools_changed: object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` - `cache_missed_input_tokens: number` @@ -979,6 +991,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_messages_changed: object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` - `cache_missed_input_tokens: number` @@ -987,10 +1003,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `cache_miss_previous_message_not_found: object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` - `cache_miss_unavailable: object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=cli#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` - `model: "claude-haiku-5-5" or "claude-sonnet-5-5" or "claude-fable-5-1" or 17 more or string` diff --git a/content/en/api/completions.md b/content/en/api/completions.md index d152df2cda..aa4e6f977f 100644 --- a/content/en/api/completions.md +++ b/content/en/api/completions.md @@ -141,6 +141,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/completions/create.md b/content/en/api/completions/create.md index 14a2c8692a..e7bd563ec1 100644 --- a/content/en/api/completions/create.md +++ b/content/en/api/completions/create.md @@ -139,6 +139,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/compliance.md b/content/en/api/compliance.md index 3352375364..481ed0d809 100644 --- a/content/en/api/compliance.md +++ b/content/en/api/compliance.md @@ -19,7 +19,7 @@ compliance activities that can be filtered by various criteria. #### Query parameters -- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Filter activities by type. See the response `data` schema for the additional fields each type returns. Cannot be combined with `exclude_activity_types[]`. @@ -539,6 +539,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -2222,7 +2266,7 @@ compliance activities that can be filtered by various criteria. format: date-time -- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Exclude activities of these types. Cannot be combined with `activity_types[]`. @@ -2742,6 +2786,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -4423,7 +4511,7 @@ compliance activities that can be filtered by various criteria. #### Returns -- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 533 more` +- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 544 more` List of activity records. Each element's `type` field identifies which activity it is and which additional fields are present. @@ -34401,13 +34489,13 @@ compliance activities that can be filtered by various criteria. Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - - `ClaudePluginArchiveAccessed object` + - `ClaudeInsightsAttributionSettingUpdated object` - A version archive of a member-owned plugin, containing that member's own files, was downloaded. + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. - - `type: optional "claude_plugin_archive_accessed"` + - `type: optional "claude_insights_attribution_setting_updated"` - default: claude_plugin_archive_accessed + default: claude_insights_attribution_setting_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34615,22 +34703,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The member's personal marketplace the plugin belongs to. - - - `owner_user_id: string` - - The member who owns the plugin. - - - `plugin_id: string` - - The plugin whose archive was downloaded. - - - `plugin_version_id: string` - - The version whose archive was downloaded. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -34641,6 +34713,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this write + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -34649,13 +34725,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePluginDownloaded object` + - `previous_value: optional boolean or null` - The archive of the plugin version a member was served was downloaded to install or update the plugin in one of the member's Claude apps (Claude in the browser, the Claude desktop app, Claude Code, or a cloud session). Recorded when the member explicitly installs, updates or downloads the plugin (user_action), and when a fetch creates the member's install record for the plugin — its first delivery to them, whether a background sync of a plugin distributed to them or their own first install, which then carries both records (first_delivery). A plugin the member enabled in Claude is on the feed as claude_plugin_enabled and its later delivery by a client's background sync is not recorded again; nor are re-syncs, or fetches that only display the plugin's files in the browser. + Setting value immediately before this write - - `type: optional "claude_plugin_downloaded"` + - `ClaudeInsightsReportArchived object` - default: claude_plugin_downloaded + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_archived"` + + default: claude_insights_report_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34863,13 +34943,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `plugin_id: string` + - `report_id: string` - The plugin that was downloaded. + The report that was archived, e.g. "insr_01HX...". - `id: optional string` @@ -34889,27 +34965,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_version_id: optional string or null` + - `ClaudeInsightsReportAttributionViewed object` - The version whose archive was downloaded; unset for a plugin that predates version records. - - - `reason: optional "first_delivery" or "unspecified" or "user_action" or null` - - Why this download was recorded: the member's explicit action, or the archive's first delivery to them. - - - `"first_delivery"` - - - `"unspecified"` - - - `"user_action"` - - - `ClaudePluginServedVersionUpdated object` + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. - A plugin's served version was updated: an administrator or the owner chose a version, a saved version became the served version, or an accepted library submission was published into the plugin. + - `type: optional "claude_insights_report_attribution_viewed"` - - `type: optional "claude_plugin_served_version_updated"` - - default: claude_plugin_served_version_updated + default: claude_insights_report_attribution_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35117,44 +35179,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `plugin_id: string` + - `report_id: string` - The plugin whose served version was updated. + The report that was viewed with attribution, e.g. "insr_01HX...". - - `to_plugin_version_id: string` + - `id: optional string` - The served version after the update. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `trigger: "library_publish" or "manual" or "save" or "unspecified"` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - What caused the update. + How the member who viewed the attributed rendering was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. Not set on events recorded before this field existed. - - `"library_publish"` + - `"admin"` - - `"manual"` + - `"delegate"` - - `"save"` + - `"share_recipient"` - `"unspecified"` - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` When this activity occurred. format: date-time - - `from_plugin_version_id: optional string or null` - - The served version before the update; the same as to_plugin_version_id when the update kept the served version. Unset when the plugin had no served version. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -35163,13 +35213,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePluginVersionCreated object` + - `ClaudeInsightsReportDeleted object` - A new version of a plugin was created. + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. - - `type: optional "claude_plugin_version_created"` + - `type: optional "claude_insights_report_deleted"` - default: claude_plugin_version_created + default: claude_insights_report_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35377,42 +35427,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `is_initial_version: boolean` - - Whether this version also created the plugin (its first version). - - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `origin: "library_publish" or "marketplace_sync" or "unspecified" or "upload"` - - How the version came to exist. - - - `"library_publish"` - - - `"marketplace_sync"` - - - `"unspecified"` - - - `"upload"` - - - `plugin_id: string` - - The plugin that gained a version. - - - `plugin_version_id: string` + - `report_id: string` - The new version. + The report that was deleted, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `became_served_version: optional boolean or null` - - Whether this became the plugin's served version as soon as it was created; if so, there may be no claude_plugin_served_version_updated record for the change. When false, the served version stayed as it was, and making this the served version later is recorded as claude_plugin_served_version_updated. - - `created_at: optional string` When this activity occurred. @@ -35427,13 +35449,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectSyncSourceCreated object` + - `purge_confirmed: optional boolean or null` - A sync source was connected to a Claude project's knowledge base. + Whether the report was also removed from the organization's report list. False means the report document was removed but the report was not removed from the list (for example it was unarchived at the same time), so it may still appear there until a later delete succeeds. Not set on events recorded before this field existed. - - `type: optional "claude_project_sync_source_created"` + - `ClaudeInsightsReportFeedbackSubmitted object` - default: claude_project_sync_source_created + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `type: optional "claude_insights_report_feedback_submitted"` + + default: claude_insights_report_feedback_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35641,17 +35667,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source was connected to. - - - `claude_project_sync_source_id: string` - - Tagged ID of the per-project sync source that was created. - - - `provider: string` + - `report_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The report the feedback was submitted on, e.g. "insr_01HX...". - `id: optional string` @@ -35671,17 +35689,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` - - A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - - `ClaudeProjectSyncSourceDeleted object` + - `ClaudeInsightsReportRenamed object` - A sync source was disconnected from a Claude project's knowledge base. + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_project_sync_source_deleted"` + - `type: optional "claude_insights_report_renamed"` - default: claude_project_sync_source_deleted + default: claude_insights_report_renamed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35889,17 +35903,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source was disconnected from. - - - `claude_project_sync_source_id: string` - - Tagged ID of the per-project sync source that was deleted. - - - `provider: string` + - `report_id: string` - The external provider backing the sync source. Always `unspecified` for deletion events. + The report that was renamed, e.g. "insr_01HX...". - `id: optional string` @@ -35919,13 +35925,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectSyncSourceUpdated object` + - `ClaudeInsightsReportSharingUpdated object` - A Claude project sync source's configuration was updated. + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. - - `type: optional "claude_project_sync_source_updated"` + - `type: optional "claude_insights_report_sharing_updated"` - default: claude_project_sync_source_updated + default: claude_insights_report_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36133,25 +36139,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source belongs to. - - - `claude_project_sync_source_id: string` + - `attributed_view_allowed: boolean` - Tagged ID of the per-project sync source that was updated. + Whether, after the change, the members the report is shared with may open the rendering that attributes findings to individual members. - - `provider: string` + - `report_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The report whose sharing was changed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `config_changed: optional boolean or null` + - `added_account_ids: optional array of string` - Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. + The members granted access by this change, e.g. "user_01HX...". - `created_at: optional string` @@ -36167,17 +36169,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` + - `removed_account_ids: optional array of string` - A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. + The members whose access was removed by this change, e.g. "user_01HX...". - - `ClaudeSkillDownloaded object` + - `ClaudeInsightsReportTriggered object` - A member explicitly downloaded a skill's files to their device: the Download action in Claude, a single file saved from the skill viewer, or an install they asked one of their Claude apps for. Background syncs to the Claude apps, viewing a skill in the app and services reading a skill on the member's behalf are not recorded. + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. - - `type: optional "claude_skill_downloaded"` + - `type: optional "claude_insights_report_triggered"` - default: claude_skill_downloaded + default: claude_insights_report_triggered - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36385,25 +36387,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `download_kind: "bundle" or "file" or "instructions" or "unspecified"` - - Whether the whole bundle, one file, or only the instructions were downloaded. + - `report_id: string` - - `"bundle"` + The report that was triggered, e.g. "insr_01HX...". - - `"file"` + - `id: optional string` - - `"instructions"` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `"unspecified"` + - `admission_arm: optional "admin" or "delegate" or "unspecified" or null` - - `skill_id: string` + How the member who triggered the report was admitted: an organization admin or a delegate. Not set on events recorded before this field existed. - The skill that was downloaded. + - `"admin"` - - `id: optional string` + - `"delegate"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `"unspecified"` - `created_at: optional string` @@ -36411,9 +36411,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `marketplace_id: optional string or null` + - `end_date: optional string or null` - The marketplace of the plugin that carries the skill; unset for a standalone skill. + Last day (ISO 8601 date) of the date range the report covers, when specified. - `organization_id: optional string or null` @@ -36423,39 +36423,53 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `owner_user_id: optional string or null` + - `products: optional array of string` - The member who owns the skill; unset for an organization-owned skill. + Product surfaces the report was scoped to, for example "chat", "cc" (Claude Code) or "cowork". Empty when the report covers all products. - - `plugin_id: optional string or null` + - `requester_account_id: optional string or null` - The plugin that carries the skill; unset for a standalone skill. + The member who triggered the report, e.g. "user_01HX...". Not set on events recorded before this field existed. - - `scope: optional "organization" or "personal" or "unspecified" or null` + - `resolved_population: optional number or null` - Whether the skill is a member's own or the organization's. + How many accounts the directory listed under the selected groups or attribute values when the report was triggered. Not set for a report covering the whole organization, nor on events recorded before this field existed. - - `"organization"` + - `scim_group_ids: optional array of string` - - `"personal"` + Directory groups the report was scoped to. Empty when the report covers the whole organization. - - `"unspecified"` + - `scope_attribute: optional string or null` - - `skill_name: optional string or null` + Directory attribute ("department" / "cost_center") the report was scoped to. Unset when the report is not attribute-scoped. - The name of the skill that was downloaded. + - `scope_attribute_values: optional array of string` - - `skill_version: optional string or null` + The selected values of that attribute as the directory carries them (customer directory text). Empty when the report is not attribute-scoped. - The version that was downloaded; unset for an unversioned skill. + - `scope_kind: optional "attribute" or "groups" or "unspecified" or "whole_organization" or null` - - `ClaudeSurveyClosed object` + What the report's population was scoped to. Not set on events recorded before this field existed. - An organization admin closed an in-app survey before its end date, ending the collection of responses; a survey that reaches its end date records no event. + - `"attribute"` - - `type: optional "claude_survey_closed"` + - `"groups"` - default: claude_survey_closed + - `"unspecified"` + + - `"whole_organization"` + + - `start_date: optional string or null` + + First day (ISO 8601 date) of the date range the report covers, when specified. + + - `ClaudeInsightsReportUnarchived object` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_unarchived"` + + default: claude_insights_report_unarchived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36663,9 +36677,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `survey_id: string` + - `report_id: string` - Tagged ID of the closed survey, e.g. "srvy_01HX...". + The report that was restored, e.g. "insr_01HX...". - `id: optional string` @@ -36685,13 +36699,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyCreated object` + - `ClaudeInsightsReportViewed object` - An organization admin launched an in-app survey to its chosen audience, opening it immediately or at a scheduled start time. + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). - - `type: optional "claude_survey_created"` + - `type: optional "claude_insights_report_viewed"` - default: claude_survey_created + default: claude_insights_report_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36899,33 +36913,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `all_members: boolean` - - Whether the survey was opened to every member of the organization. When false, it was opened to members who, at launch, were in any of the selected groups, departments, or cost centers. - - - `survey_id: string` - - Tagged ID of the created survey, e.g. "srvy_01HX...". - - - `survey_name: string` + - `report_id: string` - The name the admin gave the survey. Not shown to members. + The report that was viewed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `audience_cost_centers: optional array of string` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - Cost center values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by cost center. + How the member who viewed the report was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. - - `audience_departments: optional array of string` + - `"admin"` - Department values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by department. + - `"delegate"` - - `audience_group_ids: optional array of string` + - `"share_recipient"` - Tagged IDs of the groups the survey was opened to, e.g. "rbac_group_01HX...". + - `"unspecified"` - `created_at: optional string` @@ -36941,13 +36947,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyDeleted object` + - `ClaudeInsightsResourceAccessUpdated object` - An organization admin permanently deleted a closed in-app survey together with every response collected for it. + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. - - `type: optional "claude_survey_deleted"` + - `type: optional "claude_insights_resource_access_updated"` - default: claude_survey_deleted + default: claude_insights_resource_access_updated + + - `account_id: string` + + The member whose delegated scope changed, e.g. "user_01HX...". - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37155,17 +37165,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `response_count: number` + - `id: optional string` - The number of submitted responses that were deleted with the survey. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `survey_id: string` + - `added_scim_group_ids: optional array of string` - Tagged ID of the deleted survey, e.g. "srvy_01HX...". + Directory groups this change added to the member's scope. - - `id: optional string` + - `added_scope_attribute: optional string or null` - Unique identifier for the activity e.g. 'activity_abcd1234' + Directory attribute ("department" / "cost_center") of the added values below. Unset when no attribute value was added. + + - `added_scope_attribute_values: optional array of string` + + The values of that attribute this change added, as the directory carries them (customer directory text). - `created_at: optional string` @@ -37181,13 +37195,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyResponseSubmitted object` + - `removed_scim_group_ids: optional array of string` - A member submitted their response to an in-app survey run by their organization; the record omits the response content, and a retried submission can produce more than one record for the same response. + Directory groups this change removed from the member's scope. - - `type: optional "claude_survey_response_submitted"` + - `removed_scope_attribute: optional string or null` - default: claude_survey_response_submitted + Directory attribute of the removed values below. Unset when no attribute value was removed. + + - `removed_scope_attribute_values: optional array of string` + + The values of that attribute this change removed. + + - `ClaudePluginArchiveAccessed object` + + A version archive of a member-owned plugin, containing that member's own files, was downloaded. + + - `type: optional "claude_plugin_archive_accessed"` + + default: claude_plugin_archive_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37395,9 +37421,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `survey_id: string` + - `marketplace_id: string` - Tagged ID of the survey that was answered, e.g. "srvy_01HX...". + The member's personal marketplace the plugin belongs to. + + - `owner_user_id: string` + + The member who owns the plugin. + + - `plugin_id: string` + + The plugin whose archive was downloaded. + + - `plugin_version_id: string` + + The version whose archive was downloaded. - `id: optional string` @@ -37417,13 +37455,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyResponsesExported object` + - `ClaudePluginDownloaded object` - An organization admin downloaded a survey's responses as a CSV file, one row per response with the member's email address (blank if it is no longer available, for example because they left the organization), the groups, department and cost center they were invited through, the product they answered in, the submission time, and their answers. + The archive of the plugin version a member was served was downloaded to install or update the plugin in one of the member's Claude apps (Claude in the browser, the Claude desktop app, Claude Code, or a cloud session). Recorded when the member explicitly installs, updates or downloads the plugin (user_action), and when a fetch creates the member's install record for the plugin — its first delivery to them, whether a background sync of a plugin distributed to them or their own first install, which then carries both records (first_delivery). A plugin the member enabled in Claude is on the feed as claude_plugin_enabled and its later delivery by a client's background sync is not recorded again; nor are re-syncs, or fetches that only display the plugin's files in the browser. - - `type: optional "claude_survey_responses_exported"` + - `type: optional "claude_plugin_downloaded"` - default: claude_survey_responses_exported + default: claude_plugin_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37631,13 +37669,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `response_count: number` + - `marketplace_id: string` - The number of submitted responses included in the export. + The marketplace the plugin belongs to. - - `survey_id: string` + - `plugin_id: string` - Tagged ID of the exported survey, e.g. "srvy_01HX...". + The plugin that was downloaded. - `id: optional string` @@ -37657,13 +37695,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeUserSeatTierUpdated object` + - `plugin_version_id: optional string or null` - An organization member's seat tier was changed. A null `previous_seat_tier` means the member previously had no seat assigned; a null `current_seat_tier` means the seat was removed. + The version whose archive was downloaded; unset for a plugin that predates version records. - - `type: optional "claude_user_seat_tier_updated"` + - `reason: optional "first_delivery" or "unspecified" or "user_action" or null` - default: claude_user_seat_tier_updated + Why this download was recorded: the member's explicit action, or the archive's first delivery to them. + + - `"first_delivery"` + + - `"unspecified"` + + - `"user_action"` + + - `ClaudePluginServedVersionUpdated object` + + A plugin's served version was updated: an administrator or the owner chose a version, a saved version became the served version, or an accepted library submission was published into the plugin. + + - `type: optional "claude_plugin_served_version_updated"` + + default: claude_plugin_served_version_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37871,13 +37923,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_email: string` + - `marketplace_id: string` - Email address of the member at the time of the change. + The marketplace the plugin belongs to. - - `user_id: string` + - `plugin_id: string` - Tagged ID of the member whose seat tier changed. + The plugin whose served version was updated. + + - `to_plugin_version_id: string` + + The served version after the update. + + - `trigger: "library_publish" or "manual" or "save" or "unspecified"` + + What caused the update. + + - `"library_publish"` + + - `"manual"` + + - `"save"` + + - `"unspecified"` - `id: optional string` @@ -37889,9 +37957,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_seat_tier: optional string or null` + - `from_plugin_version_id: optional string or null` - The member's seat tier after this change, or null if the seat was removed. + The served version before the update; the same as to_plugin_version_id when the update kept the served version. Unset when the plugin had no served version. - `organization_id: optional string or null` @@ -37901,17 +37969,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_seat_tier: optional string or null` - - The member's seat tier before this change, or null if no seat was assigned. - - - `CliPluginExecPolicyUpdated object` + - `ClaudePluginVersionCreated object` - Admin set or cleared the per-op permission ceiling for a plugin CLI. + A new version of a plugin was created. - - `type: optional "cli_plugin_exec_policy_updated"` + - `type: optional "claude_plugin_version_created"` - default: cli_plugin_exec_policy_updated + default: claude_plugin_version_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38119,40 +38183,48 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `cli_name: string` + - `is_initial_version: boolean` - CLI name as declared by the plugin manifest + Whether this version also created the plugin (its first version). - `marketplace_id: string` - Marketplace ID owning the plugin + The marketplace the plugin belongs to. - - `op_name: string` + - `origin: "library_publish" or "marketplace_sync" or "unspecified" or "upload"` - Op name (or '*' for the per-CLI default) + How the version came to exist. + + - `"library_publish"` + + - `"marketplace_sync"` + + - `"unspecified"` + + - `"upload"` - `plugin_id: string` - Plugin ID resolved from the URL + The plugin that gained a version. - - `plugin_name: string` + - `plugin_version_id: string` - Plugin name within its marketplace + The new version. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `became_served_version: optional boolean or null` + + Whether this became the plugin's served version as soon as it was created; if so, there may be no claude_plugin_served_version_updated record for the change. When false, the served version stayed as it was, and making this the served version later is recorded as claude_plugin_served_version_updated. + - `created_at: optional string` When this activity occurred. format: date-time - - `max_permission: optional string or null` - - New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -38161,17 +38233,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_max_permission: optional string or null` - - Max permission the op had before this change ('allow' | 'ask' | 'blocked'), or null when no policy existed for the op - - - `ClaudeCommandCreated object` + - `ClaudeProjectSyncSourceCreated object` - Command was created. + A sync source was connected to a Claude project's knowledge base. - - `type: optional "claude_command_created"` + - `type: optional "claude_project_sync_source_created"` - default: claude_command_created + default: claude_project_sync_source_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38379,13 +38447,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `claude_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the project the sync source was connected to. - - `command_id: optional string or null` + - `claude_project_sync_source_id: string` - - `command_name: optional string or null` + Tagged ID of the per-project sync source that was created. + + - `provider: string` + + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -38401,13 +38477,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCommandDeleted object` + - `resource_descriptor: optional string or null` - Command was deleted. + A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_command_deleted"` + - `ClaudeProjectSyncSourceDeleted object` - default: claude_command_deleted + A sync source was disconnected from a Claude project's knowledge base. + + - `type: optional "claude_project_sync_source_deleted"` + + default: claude_project_sync_source_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38615,13 +38695,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `claude_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the project the sync source was disconnected from. - - `command_id: optional string or null` + - `claude_project_sync_source_id: string` - - `command_name: optional string or null` + Tagged ID of the per-project sync source that was deleted. + + - `provider: string` + + The external provider backing the sync source. Always `unspecified` for deletion events. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -38637,13 +38725,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCommandReplaced object` + - `ClaudeProjectSyncSourceUpdated object` - Command was replaced. + A Claude project sync source's configuration was updated. - - `type: optional "claude_command_replaced"` + - `type: optional "claude_project_sync_source_updated"` - default: claude_command_replaced + default: claude_project_sync_source_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38851,13 +38939,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project the sync source belongs to. + + - `claude_project_sync_source_id: string` + + Tagged ID of the per-project sync source that was updated. + + - `provider: string` + + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `command_id: optional string or null` + - `config_changed: optional boolean or null` - - `command_name: optional string or null` + Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. - `created_at: optional string` @@ -38873,13 +38973,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ComplianceAPIAccessed object` + - `resource_descriptor: optional string or null` - Logging event auto-generated for each compliance API request. + A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "compliance_api_accessed"` + - `ClaudeSkillDownloaded object` - default: compliance_api_accessed + A member explicitly downloaded a skill's files to their device: the Download action in Claude, a single file saved from the skill viewer, or an install they asked one of their Claude apps for. Background syncs to the Claude apps, viewing a skill in the app and services reading a skill on the member's behalf are not recorded. + + - `type: optional "claude_skill_downloaded"` + + default: claude_skill_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39087,31 +39191,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `request_id: string` - - Identifier of the request, as returned in the response's request-id header - - - `request_method: "DELETE" or "GET" or "POST" or 2 more` - - HTTP method of the request + - `download_kind: "bundle" or "file" or "instructions" or "unspecified"` - - `"DELETE"` + Whether the whole bundle, one file, or only the instructions were downloaded. - - `"GET"` + - `"bundle"` - - `"POST"` + - `"file"` - - `"PUT"` + - `"instructions"` - `"unspecified"` - - `status_code: number` - - HTTP status code - - - `url: string` + - `skill_id: string` - Full URL that was requested, including any query string + The skill that was downloaded. - `id: optional string` @@ -39123,6 +39217,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `marketplace_id: optional string or null` + + The marketplace of the plugin that carries the skill; unset for a standalone skill. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -39131,17 +39229,39 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `request_body: optional string or null` + - `owner_user_id: optional string or null` - Serialized JSON request body + The member who owns the skill; unset for an organization-owned skill. - - `CoworkSessionUpdated object` + - `plugin_id: optional string or null` - A Cowork session was updated. + The plugin that carries the skill; unset for a standalone skill. - - `type: optional "cowork_session_updated"` + - `scope: optional "organization" or "personal" or "unspecified" or null` - default: cowork_session_updated + Whether the skill is a member's own or the organization's. + + - `"organization"` + + - `"personal"` + + - `"unspecified"` + + - `skill_name: optional string or null` + + The name of the skill that was downloaded. + + - `skill_version: optional string or null` + + The version that was downloaded; unset for an unversioned skill. + + - `ClaudeSurveyClosed object` + + An organization admin closed an in-app survey before its end date, ending the collection of responses; a survey that reaches its end date records no event. + + - `type: optional "claude_survey_closed"` + + default: claude_survey_closed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39349,18 +39469,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `cowork_session_id: string` + - `survey_id: string` - Tagged ID of the updated session, e.g. "sess_01HX...". + Tagged ID of the closed survey, e.g. "srvy_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_id: optional string or null` - - Tagged ID of the project the session was moved to, if any, e.g. "claude_proj_01HX...". Absent when the session was removed from its project. - - `created_at: optional string` When this activity occurred. @@ -39375,13 +39491,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesignProjectArtifactPublished object` + - `ClaudeSurveyCreated object` - A Claude Design project's content was published as a claude.ai artifact, making a snapshot of one of its files viewable outside the project's sharing settings. + An organization admin launched an in-app survey to its chosen audience, opening it immediately or at a scheduled start time. - - `type: optional "design_project_artifact_published"` + - `type: optional "claude_survey_created"` - default: design_project_artifact_published + default: claude_survey_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39589,24 +39705,40 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `all_members: boolean` - The Design project whose content was published, e.g. "design_proj_01HX...". + Whether the survey was opened to every member of the organization. When false, it was opened to members who, at launch, were in any of the selected groups, departments, or cost centers. + + - `survey_id: string` + + Tagged ID of the created survey, e.g. "srvy_01HX...". + + - `survey_name: string` + + The name the admin gave the survey. Not shown to members. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `audience_cost_centers: optional array of string` + + Cost center values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by cost center. + + - `audience_departments: optional array of string` + + Department values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by department. + + - `audience_group_ids: optional array of string` + + Tagged IDs of the groups the survey was opened to, e.g. "rbac_group_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `is_public: optional boolean or null` - - True when the published artifact is publicly viewable after this call (anyone with the link). False when it is not — by default, a newly published artifact is visible only to the person who published it. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -39615,17 +39747,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectCreated object` + - `ClaudeSurveyDeleted object` - A Claude Design project was created. + An organization admin permanently deleted a closed in-app survey together with every response collected for it. - - `type: optional "design_project_created"` + - `type: optional "claude_survey_deleted"` - default: design_project_created + default: claude_survey_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39833,13 +39961,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `creation_method: string` + - `response_count: number` - How the project was created: "direct", "duplicate", "remix", or "template_from_project". + The number of submitted responses that were deleted with the survey. - - `design_project_id: string` + - `survey_id: string` - The Design project that was created, e.g. "design_proj_01HX...". + Tagged ID of the deleted survey, e.g. "srvy_01HX...". - `id: optional string` @@ -39859,21 +39987,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project type: "project", "template", or "design_system". - - - `source_project_id: optional string or null` - - The source project this was created from, when created via duplicate, remix, or template-from-project. Unset for direct creation. - - - `DesignProjectDeleted object` + - `ClaudeSurveyResponseSubmitted object` - A Claude Design project was deleted. + A member submitted their response to an in-app survey run by their organization; the record omits the response content, and a retried submission can produce more than one record for the same response. - - `type: optional "design_project_deleted"` + - `type: optional "claude_survey_response_submitted"` - default: design_project_deleted + default: claude_survey_response_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40081,9 +40201,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `survey_id: string` - The Design project that was deleted, e.g. "design_proj_01HX...". + Tagged ID of the survey that was answered, e.g. "srvy_01HX...". - `id: optional string` @@ -40103,13 +40223,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesignProjectMemberAdded object` + - `ClaudeSurveyResponsesExported object` - A member was granted access to a Claude Design project. + An organization admin downloaded a survey's responses as a CSV file, one row per response with the member's email address (blank if it is no longer available, for example because they left the organization), the groups, department and cost center they were invited through, the product they answered in, the submission time, and their answers. - - `type: optional "design_project_member_added"` + - `type: optional "claude_survey_responses_exported"` - default: design_project_member_added + default: claude_survey_responses_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40317,21 +40437,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project the member was added to, e.g. "design_proj_01HX...". - - - `principal_id: string` - - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". - - - `principal_type: string` + - `response_count: number` - The kind of member that was added: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + The number of submitted responses included in the export. - - `role: string` + - `survey_id: string` - The role the member was granted: "viewer", "commenter", or "editor". Access-group ("compartment") members are always view-only. + Tagged ID of the exported survey, e.g. "srvy_01HX...". - `id: optional string` @@ -40351,17 +40463,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectMemberRemoved object` + - `ClaudeUserSeatTierUpdated object` - A member's access to a Claude Design project was revoked. + An organization member's seat tier was changed. A null `previous_seat_tier` means the member previously had no seat assigned; a null `current_seat_tier` means the seat was removed. - - `type: optional "design_project_member_removed"` + - `type: optional "claude_user_seat_tier_updated"` - default: design_project_member_removed + default: claude_user_seat_tier_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40569,17 +40677,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project the member was removed from, e.g. "design_proj_01HX...". - - - `principal_id: string` + - `user_email: string` - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + Email address of the member at the time of the change. - - `principal_type: string` + - `user_id: string` - The kind of member that was removed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + Tagged ID of the member whose seat tier changed. - `id: optional string` @@ -40591,6 +40695,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_seat_tier: optional string or null` + + The member's seat tier after this change, or null if the seat was removed. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -40599,17 +40707,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` + - `previous_seat_tier: optional string or null` - The project's type: "project", "template", or "design_system". + The member's seat tier before this change, or null if no seat was assigned. - - `DesignProjectMemberRoleUpdated object` + - `CliPluginExecPolicyUpdated object` - A Claude Design project member's role was changed. + Admin set or cleared the per-op permission ceiling for a plugin CLI. - - `type: optional "design_project_member_role_updated"` + - `type: optional "cli_plugin_exec_policy_updated"` - default: design_project_member_role_updated + default: cli_plugin_exec_policy_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40817,21 +40925,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `cli_name: string` - The Design project the member belongs to, e.g. "design_proj_01HX...". + CLI name as declared by the plugin manifest - - `principal_id: string` + - `marketplace_id: string` - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + Marketplace ID owning the plugin - - `principal_type: string` + - `op_name: string` - The kind of member whose role was changed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + Op name (or '*' for the per-CLI default) - - `role: string` + - `plugin_id: string` - The member's role after the change: "viewer", "commenter", or "editor". + Plugin ID resolved from the URL + + - `plugin_name: string` + + Plugin name within its marketplace - `id: optional string` @@ -40843,6 +40955,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `max_permission: optional string or null` + + New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -40851,21 +40967,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` - - The member's role before the change. - - - `project_type: optional string or null` + - `previous_max_permission: optional string or null` - The project's type: "project", "template", or "design_system". + Max permission the op had before this change ('allow' | 'ask' | 'blocked'), or null when no policy existed for the op - - `DesignProjectPublished object` + - `ClaudeCommandCreated object` - A Claude Design template or design system was published, making it discoverable by everyone in its organization. + Command was created. - - `type: optional "design_project_published"` + - `type: optional "claude_command_created"` - default: design_project_published + default: claude_command_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41073,14 +41185,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project that was published, e.g. "design_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41095,17 +41207,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "template" or "design_system". - - - `DesignProjectSharingUpdated object` + - `ClaudeCommandDeleted object` - A Claude Design project's link-sharing settings were changed — who the project's link works for, and what people opening it through the link may do. Access granted to individual members is reported separately (see design_project_member_added). + Command was deleted. - - `type: optional "design_project_sharing_updated"` + - `type: optional "claude_command_deleted"` - default: design_project_sharing_updated + default: claude_command_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41313,22 +41421,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project whose sharing settings changed, e.g. "design_proj_01HX...". - - - `new_link_permission: string` - - What people opening the project through its link may do after the change: "view", "comment", or "edit". - - - `new_scope: string` - - Who the project link is set to work for after the change: "invited" (only the owner and individually invited members) or "org" (anyone in the project's organization, where the organization's own sharing settings allow org-wide visibility). This records the project's stored setting as changed by the actor; organization-level settings can further restrict who the link actually admits, and changes to those settings are not project events. Projects created before link sharing was restricted may also report a legacy "public" value. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41343,25 +41443,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_link_permission: optional string or null` - - What people opening the project through its link could do before the change. - - - `previous_scope: optional string or null` - - Who the project link was set to work for before the change — the stored setting, with the same organization-level caveat as new_scope. May include the legacy "public" value. - - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectUnpublished object` + - `ClaudeCommandReplaced object` - A Claude Design template or design system was unpublished, removing it from its organization's shared gallery. + Command was replaced. - - `type: optional "design_project_unpublished"` + - `type: optional "claude_command_replaced"` - default: design_project_unpublished + default: claude_command_replaced - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41569,14 +41657,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project that was unpublished, e.g. "design_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41591,17 +41679,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "template" or "design_system". - - - `DesignProjectUpdated object` + - `ComplianceAPIAccessed object` - A Claude Design project's metadata was updated. + Logging event auto-generated for each compliance API request. - - `type: optional "design_project_updated"` + - `type: optional "compliance_api_accessed"` - default: design_project_updated + default: compliance_api_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41809,9 +41893,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `request_id: string` - The Design project that was updated, e.g. "design_proj_01HX...". + Identifier of the request, as returned in the response's request-id header + + - `request_method: "DELETE" or "GET" or "POST" or 2 more` + + HTTP method of the request + + - `"DELETE"` + + - `"GET"` + + - `"POST"` + + - `"PUT"` + + - `"unspecified"` + + - `status_code: number` + + HTTP status code + + - `url: string` + + Full URL that was requested, including any query string - `id: optional string` @@ -41831,21 +41937,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type after the update: "project", "template", or "design_system". Present only when the update changed it. - - - `updated_fields: optional array of string` + - `request_body: optional string or null` - Names of the fields changed by this update, e.g. "name", "description", "project_type", "design_systems". + Serialized JSON request body - - `DesignProjectVersionRestored object` + - `CoworkSessionUpdated object` - A Claude Design project's working tree was rolled back to a previously saved version, replacing its current files with that version's files. + A Cowork session was updated. - - `type: optional "design_project_version_restored"` + - `type: optional "cowork_session_updated"` - default: design_project_version_restored + default: cowork_session_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42053,14 +42155,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `cowork_session_id: string` - The Design project that was restored, e.g. "design_proj_01HX...". + Tagged ID of the updated session, e.g. "sess_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + Tagged ID of the project the session was moved to, if any, e.g. "claude_proj_01HX...". Absent when the session was removed from its project. + - `created_at: optional string` When this activity occurred. @@ -42075,21 +42181,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectViewed object` - - A Claude Design project's content was read. The surface field records which kind of read — a project open, a full-content read, a single-file read, a saved-version read, or an export request. The actor is the reader. + - `DesignProjectArtifactPublished object` - This activity type is retired: project content reads are no longer - recorded. Events of this type may still appear in feeds for reads that - occurred while it was active. + A Claude Design project's content was published as a claude.ai artifact, making a snapshot of one of its files viewable outside the project's sharing settings. - - `type: optional "design_project_viewed"` + - `type: optional "design_project_artifact_published"` - default: design_project_viewed + default: design_project_artifact_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42299,26 +42397,22 @@ compliance activities that can be filtered by various criteria. - `design_project_id: string` - The Design project whose content was read, e.g. "design_proj_01HX...". - - - `surface: string` - - Which read surface recorded this open: "project" (the project was opened), "project_data" (the project's full contents were read or made readable — either a direct data read, which also includes the project's conversations when the reader's access extends to them, or a render-token request, which exposes the project's files for the token's lifetime; the two share this value and are not distinguished), "file" (one of the project's files was read), "version" (a saved version of the project's files, including their contents, was read — version-history browsing that lists names without contents is not recorded), or "export" (an authenticated export of the project's contents was requested). + The Design project whose content was published, e.g. "design_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional string or null` - - How the viewer was authorized to open the project: "owner" (the project's owner), "member_grant" (an individually invited member), "org_link" (org-wide link sharing), "trusted_service" (an authorized agent), or "design_system_reference" (an indirect read of a design system through a project that uses it). - - `created_at: optional string` When this activity occurred. format: date-time + - `is_public: optional boolean or null` + + True when the published artifact is publicly viewable after this call (anyone with the link). False when it is not — by default, a newly published artifact is visible only to the person who published it. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -42331,13 +42425,13 @@ compliance activities that can be filtered by various criteria. The project's type: "project", "template", or "design_system". - - `DesktopExtensionAllowlisted object` + - `DesignProjectCreated object` - A desktop extension was added to an org's allowlist. + A Claude Design project was created. - - `type: optional "desktop_extension_allowlisted"` + - `type: optional "design_project_created"` - default: desktop_extension_allowlisted + default: design_project_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42545,25 +42639,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - Allowlisted DXT extension ID - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `attestations: optional array of object` + - `creation_method: string` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + How the project was created: "direct", "duplicate", "remix", or "template_from_project". - - `type: string` + - `design_project_id: string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + The Design project that was created, e.g. "design_proj_01HX...". - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -42579,13 +42665,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionBlocklisted object` + - `project_type: optional string or null` - A desktop extension was added to the global blocklist. + The project type: "project", "template", or "design_system". - - `type: optional "desktop_extension_blocklisted"` + - `source_project_id: optional string or null` - default: desktop_extension_blocklisted + The source project this was created from, when created via duplicate, remix, or template-from-project. Unset for direct creation. + + - `DesignProjectDeleted object` + + A Claude Design project was deleted. + + - `type: optional "design_project_deleted"` + + default: design_project_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42793,9 +42887,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - Blocklisted DXT extension ID + The Design project that was deleted, e.g. "design_proj_01HX...". - `id: optional string` @@ -42815,13 +42909,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionDeleted object` + - `DesignProjectMemberAdded object` - A desktop extension was deleted, either globally by an admin or org-scoped by an org owner. + A member was granted access to a Claude Design project. - - `type: optional "desktop_extension_deleted"` + - `type: optional "design_project_member_added"` - default: desktop_extension_deleted + default: design_project_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43029,9 +43123,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - DXT extension ID + The Design project the member was added to, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member that was added: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + + - `role: string` + + The role the member was granted: "viewer", "commenter", or "editor". Access-group ("compartment") members are always view-only. - `id: optional string` @@ -43051,17 +43157,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `version: optional string or null` + - `project_type: optional string or null` - Specific version deleted (null if all versions) + The project's type: "project", "template", or "design_system". - - `DesktopExtensionRemovedFromAllowlist object` + - `DesignProjectMemberRemoved object` - A desktop extension was removed from an org's allowlist. + A member's access to a Claude Design project was revoked. - - `type: optional "desktop_extension_removed_from_allowlist"` + - `type: optional "design_project_member_removed"` - default: desktop_extension_removed_from_allowlist + default: design_project_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43269,9 +43375,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - DXT extension ID removed from allowlist + The Design project the member was removed from, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member that was removed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). - `id: optional string` @@ -43291,13 +43405,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionUnblocked object` + - `project_type: optional string or null` - A desktop extension was removed from the global blocklist. + The project's type: "project", "template", or "design_system". - - `type: optional "desktop_extension_unblocked"` + - `DesignProjectMemberRoleUpdated object` - default: desktop_extension_unblocked + A Claude Design project member's role was changed. + + - `type: optional "design_project_member_role_updated"` + + default: design_project_member_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43505,9 +43623,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - Unblocked DXT extension ID + The Design project the member belongs to, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member whose role was changed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + + - `role: string` + + The member's role after the change: "viewer", "commenter", or "editor". - `id: optional string` @@ -43527,13 +43657,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionUploaded object` + - `previous_role: optional string or null` - A desktop extension was uploaded, either globally by an admin or org-scoped by an org owner. + The member's role before the change. - - `type: optional "desktop_extension_uploaded"` + - `project_type: optional string or null` - default: desktop_extension_uploaded + The project's type: "project", "template", or "design_system". + + - `DesignProjectPublished object` + + A Claude Design template or design system was published, making it discoverable by everyone in its organization. + + - `type: optional "design_project_published"` + + default: design_project_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43741,30 +43879,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - DXT extension ID - - - `version: string` + - `design_project_id: string` - Version string from the manifest + The Design project that was published, e.g. "design_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -43779,13 +43901,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionVersionUploaded object` + - `project_type: optional string or null` - A new version of an existing org-owned desktop extension was uploaded. + The project's type: "template" or "design_system". - - `type: optional "desktop_extension_version_uploaded"` + - `DesignProjectSharingUpdated object` - default: desktop_extension_version_uploaded + A Claude Design project's link-sharing settings were changed — who the project's link works for, and what people opening it through the link may do. Access granted to individual members is reported separately (see design_project_member_added). + + - `type: optional "design_project_sharing_updated"` + + default: design_project_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43993,29 +44119,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - DXT extension ID - - - `version: string` - - Version string from the manifest - - - `id: optional string` + - `design_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The Design project whose sharing settings changed, e.g. "design_proj_01HX...". - - `attestations: optional array of object` + - `new_link_permission: string` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + What people opening the project through its link may do after the change: "view", "comment", or "edit". - - `type: string` + - `new_scope: string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + Who the project link is set to work for after the change: "invited" (only the owner and individually invited members) or "org" (anyone in the project's organization, where the organization's own sharing settings allow org-wide visibility). This records the project's stored setting as changed by the actor; organization-level settings can further restrict who the link actually admits, and changes to those settings are not project events. Projects created before link sharing was restricted may also report a legacy "public" value. - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -44031,13 +44149,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InferenceHooksConfigDeleted object` + - `previous_link_permission: optional string or null` - Inference hooks configuration was removed for the organization. + What people opening the project through its link could do before the change. - - `type: optional "inference_hooks_config_deleted"` + - `previous_scope: optional string or null` - default: inference_hooks_config_deleted + Who the project link was set to work for before the change — the stored setting, with the same organization-level caveat as new_scope. May include the legacy "public" value. + + - `project_type: optional string or null` + + The project's type: "project", "template", or "design_system". + + - `DesignProjectUnpublished object` + + A Claude Design template or design system was unpublished, removing it from its organization's shared gallery. + + - `type: optional "design_project_unpublished"` + + default: design_project_unpublished - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44245,6 +44375,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `design_project_id: string` + + The Design project that was unpublished, e.g. "design_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -44263,13 +44397,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InferenceHooksConfigUpdated object` + - `project_type: optional string or null` - Inference hooks configuration was created or updated for the organization. + The project's type: "template" or "design_system". - - `type: optional "inference_hooks_config_updated"` + - `DesignProjectUpdated object` - default: inference_hooks_config_updated + A Claude Design project's metadata was updated. + + - `type: optional "design_project_updated"` + + default: design_project_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44477,29 +44615,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether Inference hooks enforcement is enabled after this change. - - - `enforcement_mode: string` - - Whether Inference hooks inspects both prompts and responses (prompt_and_response) or prompts only (prompt_only). - - - `fail_mode: string` - - Whether requests are allowed (fail_open) or blocked (fail_closed) when the Inference hooks endpoint cannot be reached. - - - `final_verdict_timeout_ms: number` - - Milliseconds inference waits for the Inference hooks verdict on the response. - - - `prompt_verdict_timeout_ms: number` - - Milliseconds inference waits for the Inference hooks verdict on the prompt. - - - `webhook_url: string` + - `design_project_id: string` - Scheme and host of the endpoint that Inference hooks sends prompts and responses to after this change, for example `https://hooks.example.com`; the port, path and query are never included. Empty when the address cannot be shown safely, and on activities recorded before this field was limited to scheme and host. + The Design project that was updated, e.g. "design_proj_01HX...". - `id: optional string` @@ -44511,18 +44629,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `deny_message: optional string or null` - - Administrator-written text shown to users at the end of the error message when a request is blocked by the organization's Inference hooks policy, as configured after this change. Null when the built-in default message is in effect; an empty string when the administrator configured an empty message, in which case no text is appended. - - - `deny_message_enabled: optional boolean or null` - - Whether the organization has the appended deny message turned on, as configured after this change. When on, the administrator-written message (or the built-in default, when none is configured) is appended to the error users see when a request is blocked by the organization's Inference hooks policy; no text is appended when the administrator-written message is empty, or when this is off. - - - `extra_header_names: optional array of string or null` - - Names of the custom HTTP headers attached to every Inference hooks request after this change, or null when this update did not change headers. Header values are write-only and are not recorded. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -44531,29 +44637,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reset_circuit_breaker: optional boolean or null` - - Whether this update carried an explicit request to clear the circuit breaker. A tripped breaker otherwise survives configuration updates; it also clears whenever an update enables enforcement. - - - `rollout_percentage: optional number or null` - - Percentage of requests (0-100) inspected by Inference hooks after this change, or null when this update did not change it. 0 disables inspection; 100 inspects every request. - - - `shadow_mode: optional boolean or null` + - `project_type: optional string or null` - Whether the organization's Inference hooks run in shadow mode after this change, or null when this update did not change it. In shadow mode, prompts are still sent to the organization's endpoint and verdicts are recorded, but requests are never blocked. + The project's type after the update: "project", "template", or "design_system". Present only when the update changed it. - - `validate_tool_calls: optional boolean or null` + - `updated_fields: optional array of string` - Whether Inference hooks validate tool calls, as configured after this change. Null means tool calls are not validated: either nothing has been saved for this setting, as in a configuration created before the setting became available, or the setting is not yet available to the organization. A configuration created once the setting is available starts with it on by default. When on, tool calls the model requests are also sent to the organization's endpoint before they run, and its verdict is applied as it is for prompts. + Names of the fields changed by this update, e.g. "name", "description", "project_type", "design_systems". - - `InferenceHooksSigningSecretGenerated object` + - `DesignProjectVersionRestored object` - A request signing secret was generated for the organization's Inference hooks configuration. + A Claude Design project's working tree was rolled back to a previously saved version, replacing its current files with that version's files. - - `type: optional "inference_hooks_signing_secret_generated"` + - `type: optional "design_project_version_restored"` - default: inference_hooks_signing_secret_generated + default: design_project_version_restored - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44761,9 +44859,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `rotated: boolean` + - `design_project_id: string` - Whether this generation replaced an existing signing secret (true) or created the organization's first one (false). Replacing a secret invalidates the previous one immediately. + The Design project that was restored, e.g. "design_proj_01HX...". - `id: optional string` @@ -44783,13 +44881,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DomainClaimInitiated object` + - `project_type: optional string or null` - Domain capture claim initiated over personal accounts on verified domains. + The project's type: "project", "template", or "design_system". - - `type: optional "domain_claim_initiated"` + - `DesignProjectViewed object` - default: domain_claim_initiated + A Claude Design project's content was read. The surface field records which kind of read — a project open, a full-content read, a single-file read, a saved-version read, or an export request. The actor is the reader. + + This activity type is retired: project content reads are no longer + recorded. Events of this type may still appear in feeds for reads that + occurred while it was active. + + - `type: optional "design_project_viewed"` + + default: design_project_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44997,10 +45103,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `design_project_id: string` + + The Design project whose content was read, e.g. "design_proj_01HX...". + + - `surface: string` + + Which read surface recorded this open: "project" (the project was opened), "project_data" (the project's full contents were read or made readable — either a direct data read, which also includes the project's conversations when the reader's access extends to them, or a render-token request, which exposes the project's files for the token's lifetime; the two share this value and are not distinguished), "file" (one of the project's files was read), "version" (a saved version of the project's files, including their contents, was read — version-history browsing that lists names without contents is not recorded), or "export" (an authenticated export of the project's contents was requested). + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional string or null` + + How the viewer was authorized to open the project: "owner" (the project's owner), "member_grant" (an individually invited member), "org_link" (org-wide link sharing), "trusted_service" (an authorized agent), or "design_system_reference" (an indirect read of a design system through a project that uses it). + - `created_at: optional string` When this activity occurred. @@ -45015,13 +45133,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `EndUserInviteRequested object` + - `project_type: optional string or null` - Non-admin member submitted an invite request for a new org member. + The project's type: "project", "template", or "design_system". - - `type: optional "end_user_invite_requested"` + - `DesktopExtensionAllowlisted object` - default: end_user_invite_requested + A desktop extension was added to an org's allowlist. + + - `type: optional "desktop_extension_allowlisted"` + + default: desktop_extension_allowlisted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45229,12 +45351,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invitee_email: string` + - `extension_id: string` + + Allowlisted DXT extension ID - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -45249,13 +45385,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageBillingEnabled object` + - `DesktopExtensionBlocklisted object` - Usage credit billing was enabled for an organization. + A desktop extension was added to the global blocklist. - - `type: optional "extra_usage_billing_enabled"` + - `type: optional "desktop_extension_blocklisted"` - default: extra_usage_billing_enabled + default: desktop_extension_blocklisted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45463,6 +45599,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + Blocklisted DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -45481,13 +45621,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageCreditGranted object` + - `DesktopExtensionDeleted object` - A promotional usage credit grant was claimed. + A desktop extension was deleted, either globally by an admin or org-scoped by an org owner. - - `type: optional "extra_usage_credit_granted"` + - `type: optional "desktop_extension_deleted"` - default: extra_usage_credit_granted + default: desktop_extension_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45695,6 +45835,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -45713,13 +45857,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageSpendLimitCreated object` + - `version: optional string or null` - Usage credit spend limit was created. + Specific version deleted (null if all versions) - - `type: optional "extra_usage_spend_limit_created"` + - `DesktopExtensionRemovedFromAllowlist object` - default: extra_usage_spend_limit_created + A desktop extension was removed from an org's allowlist. + + - `type: optional "desktop_extension_removed_from_allowlist"` + + default: desktop_extension_removed_from_allowlist - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45927,13 +46075,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `extension_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + DXT extension ID removed from allowlist - - `amount: optional number or null` + - `id: optional string` - The monthly credit limit amount in minor units (e.g. cents). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -45941,14 +46089,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `is_enabled: optional boolean or null` - - Whether the spend limit is enabled. - - - `limit_type: optional string or null` - - The type of spend limit created (e.g. organization, seat_tier, member, service, group). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -45957,23 +46097,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ExtraUsageSpendLimitDeleted object` + - `DesktopExtensionUnblocked object` - Usage credit spend limit was deleted. + A desktop extension was removed from the global blocklist. - - `type: optional "extra_usage_spend_limit_deleted"` + - `type: optional "desktop_extension_unblocked"` - default: extra_usage_spend_limit_deleted + default: desktop_extension_unblocked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46181,6 +46311,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + Unblocked DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -46199,23 +46333,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ExtraUsageSpendLimitIncreaseRequestApproved object` + - `DesktopExtensionUploaded object` - A usage credit spend limit increase request was approved. + A desktop extension was uploaded, either globally by an admin or org-scoped by an org owner. - - `type: optional "extra_usage_spend_limit_increase_request_approved"` + - `type: optional "desktop_extension_uploaded"` - default: extra_usage_spend_limit_increase_request_approved + default: desktop_extension_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46423,13 +46547,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + + - `version: string` + + Version string from the manifest + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `amount: optional number or null` + - `attestations: optional array of object` - The approved spend limit amount in minor units (e.g. cents). + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -46445,25 +46585,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `requester_user_id: optional string or null` - - Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - - `spend_limit_id: optional string or null` - - Tagged ID of the member's spend limit that the approval created or updated. - - - `spend_limit_increase_request_id: optional string or null` - - Tagged ID of the spend limit increase request that was approved. - - - `ExtraUsageSpendLimitIncreaseRequestDenied object` + - `DesktopExtensionVersionUploaded object` - A usage credit spend limit increase request was denied. + A new version of an existing org-owned desktop extension was uploaded. - - `type: optional "extra_usage_spend_limit_increase_request_denied"` + - `type: optional "desktop_extension_version_uploaded"` - default: extra_usage_spend_limit_increase_request_denied + default: desktop_extension_version_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46671,10 +46799,30 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + + - `version: string` + + Version string from the manifest + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -46689,21 +46837,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `requester_user_id: optional string or null` - - Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - - `spend_limit_increase_request_id: optional string or null` - - Tagged ID of the spend limit increase request that was denied. - - - `ExtraUsageSpendLimitUpdated object` + - `InferenceHooksConfigDeleted object` - Usage credit spend limit was updated. + Inference hooks configuration was removed for the organization. - - `type: optional "extra_usage_spend_limit_updated"` + - `type: optional "inference_hooks_config_deleted"` - default: extra_usage_spend_limit_updated + default: inference_hooks_config_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46915,24 +47055,12 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `amount: optional number or null` - - The new monthly credit limit amount in minor units (e.g. cents). - - `created_at: optional string` When this activity occurred. format: date-time - - `is_enabled: optional boolean or null` - - Whether the spend limit is enabled. - - - `limit_type: optional string or null` - - The type of spend limit updated (e.g. organization, seat_tier, member, service, group). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -46941,23 +47069,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ClaudeFileDeleted object` + - `InferenceHooksConfigUpdated object` - A file was deleted. + Inference hooks configuration was created or updated for the organization. - - `type: optional "claude_file_deleted"` + - `type: optional "inference_hooks_config_updated"` - default: claude_file_deleted + default: inference_hooks_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47165,9 +47283,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `enabled: boolean` - Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". + Whether Inference hooks enforcement is enabled after this change. + + - `enforcement_mode: string` + + Whether Inference hooks inspects both prompts and responses (prompt_and_response) or prompts only (prompt_only). + + - `fail_mode: string` + + Whether requests are allowed (fail_open) or blocked (fail_closed) when the Inference hooks endpoint cannot be reached. + + - `final_verdict_timeout_ms: number` + + Milliseconds inference waits for the Inference hooks verdict on the response. + + - `prompt_verdict_timeout_ms: number` + + Milliseconds inference waits for the Inference hooks verdict on the prompt. + + - `webhook_url: string` + + Scheme and host of the endpoint that Inference hooks sends prompts and responses to after this change, for example `https://hooks.example.com`; the port, path and query are never included. Empty when the address cannot be shown safely, and on activities recorded before this field was limited to scheme and host. - `id: optional string` @@ -47179,6 +47317,18 @@ compliance activities that can be filtered by various criteria. format: date-time + - `deny_message: optional string or null` + + Administrator-written text shown to users at the end of the error message when a request is blocked by the organization's Inference hooks policy, as configured after this change. Null when the built-in default message is in effect; an empty string when the administrator configured an empty message, in which case no text is appended. + + - `deny_message_enabled: optional boolean or null` + + Whether the organization has the appended deny message turned on, as configured after this change. When on, the administrator-written message (or the built-in default, when none is configured) is appended to the error users see when a request is blocked by the organization's Inference hooks policy; no text is appended when the administrator-written message is empty, or when this is off. + + - `extra_header_names: optional array of string or null` + + Names of the custom HTTP headers attached to every Inference hooks request after this change, or null when this update did not change headers. Header values are write-only and are not recorded. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47187,19 +47337,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `reset_circuit_breaker: optional boolean or null` - **Deprecated** + Whether this update carried an explicit request to clear the circuit breaker. A tripped breaker otherwise survives configuration updates; it also clears whenever an update enables enforcement. - No longer populated. The name can't be looked up once the file is deleted. + - `rollout_percentage: optional number or null` - - `ClaudeFileUploaded object` + Percentage of requests (0-100) inspected by Inference hooks after this change, or null when this update did not change it. 0 disables inspection; 100 inspects every request. - A file was uploaded. + - `shadow_mode: optional boolean or null` - - `type: optional "claude_file_uploaded"` + Whether the organization's Inference hooks run in shadow mode after this change, or null when this update did not change it. In shadow mode, prompts are still sent to the organization's endpoint and verdicts are recorded, but requests are never blocked. - default: claude_file_uploaded + - `validate_tool_calls: optional boolean or null` + + Whether Inference hooks validate tool calls, as configured after this change. Null means tool calls are not validated: either nothing has been saved for this setting, as in a configuration created before the setting became available, or the setting is not yet available to the organization. A configuration created once the setting is available starts with it on by default. When on, tool calls the model requests are also sent to the organization's endpoint before they run, and its verdict is applied as it is for prompts. + + - `InferenceHooksSigningSecretGenerated object` + + A request signing secret was generated for the organization's Inference hooks configuration. + + - `type: optional "inference_hooks_signing_secret_generated"` + + default: inference_hooks_signing_secret_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47407,22 +47567,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `rotated: boolean` - Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". + Whether this generation replaced an existing signing secret (true) or created the organization's first one (false). Replacing a secret invalidates the previous one immediately. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` - - Chat ID if known at upload time (null for the upload-then-attach flow). To find which chats a file was later attached to, use `GET /v1/compliance/apps/chats/files/{claude_file_id}`. - - - `claude_project_id: optional string or null` - - Project ID if file was uploaded to a project - - `created_at: optional string` When this activity occurred. @@ -47437,19 +47589,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** - - No longer populated: the feed carries the object id; resolve the name via the Compliance API. - - - `GheConfigurationCreated object` + - `DomainClaimInitiated object` - Admin created a GHE configuration. + Domain capture claim initiated over personal accounts on verified domains. - - `type: optional "ghe_configuration_created"` + - `type: optional "domain_claim_initiated"` - default: ghe_configuration_created + default: domain_claim_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47657,10 +47803,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -47671,14 +47813,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `display_name: optional string or null` - - Display name given to the configuration - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47687,17 +47821,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - Custom port, if not the HTTPS default - - - `GheConfigurationDeleted object` + - `EndUserInviteRequested object` - Admin deleted a GHE configuration. + Non-admin member submitted an invite request for a new org member. - - `type: optional "ghe_configuration_deleted"` + - `type: optional "end_user_invite_requested"` - default: ghe_configuration_deleted + default: end_user_invite_requested - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47905,9 +48035,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration + - `invitee_email: string` - `id: optional string` @@ -47919,14 +48047,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `display_name: optional string or null` - - Display name the configuration had when deleted - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47935,17 +48055,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - Custom port, if not the HTTPS default - - - `GheConfigurationUpdated object` + - `ExtraUsageBillingEnabled object` - Admin updated a GHE configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + Usage credit billing was enabled for an organization. - - `type: optional "ghe_configuration_updated"` + - `type: optional "extra_usage_billing_enabled"` - default: ghe_configuration_updated + default: extra_usage_billing_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48153,10 +48269,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -48167,38 +48279,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `custom_ca_certificate_updated: optional boolean or null` - - Whether the custom CA certificate was replaced in this update - - - `display_name: optional string or null` - - New display name, when it changed - - - `github_app_client_id: optional string or null` - - New GitHub App client ID, when it changed - - - `github_app_client_secret_updated: optional boolean or null` - - Whether the GitHub App client secret was replaced in this update - - - `github_app_id: optional number or null` - - New GitHub App ID, when it changed - - - `github_app_private_key_updated: optional boolean or null` - - Whether the GitHub App private key was replaced in this update - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance (immutable; included for context) - - - `is_active: optional boolean or null` - - New active state, when it changed - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -48207,45 +48287,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - New port, when it changed - - - `previous_display_name: optional string or null` - - Display name before the change, when it changed - - - `previous_github_app_client_id: optional string or null` - - GitHub App client ID before the change, when it changed - - - `previous_github_app_id: optional number or null` - - GitHub App ID before the change, when it changed - - - `previous_is_active: optional boolean or null` - - Active state before the change, when it changed - - - `previous_port: optional number or null` - - Port before the change, when it changed - - - `read_replica_hostnames_updated: optional boolean or null` - - Whether the read replica hostnames were replaced in this update - - - `webhook_secret_updated: optional boolean or null` - - Whether the webhook secret was replaced in this update - - - `GheUserConnected object` + - `ExtraUsageCreditGranted object` - User connected to a GHE instance. + A promotional usage credit grant was claimed. - - `type: optional "ghe_user_connected"` + - `type: optional "extra_usage_credit_granted"` - default: ghe_user_connected + default: extra_usage_credit_granted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48463,10 +48511,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ghe_configuration_id: optional string or null` - - ID of the GHE configuration - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -48475,13 +48519,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GheUserDisconnected object` + - `ExtraUsageSpendLimitCreated object` - User disconnected from a GHE instance. + Usage credit spend limit was created. - - `type: optional "ghe_user_disconnected"` + - `type: optional "extra_usage_spend_limit_created"` - default: ghe_user_disconnected + default: extra_usage_spend_limit_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48693,15 +48737,23 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `amount: optional number or null` + + The monthly credit limit amount in minor units (e.g. cents). + - `created_at: optional string` When this activity occurred. format: date-time - - `ghe_configuration_id: optional string or null` + - `is_enabled: optional boolean or null` - ID of the GHE configuration + Whether the spend limit is enabled. + + - `limit_type: optional string or null` + + The type of spend limit created (e.g. organization, seat_tier, member, service, group). - `organization_id: optional string or null` @@ -48711,13 +48763,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GheWebhookSignatureInvalid object` + - `spend_limit_id: optional string or null` - Webhook signature validation failed. + Tagged ID of the spend limit. - - `type: optional "ghe_webhook_signature_invalid"` + - `user_id: optional string or null` - default: ghe_webhook_signature_invalid + **Deprecated** + + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. + + - `ExtraUsageSpendLimitDeleted object` + + Usage credit spend limit was deleted. + + - `type: optional "extra_usage_spend_limit_deleted"` + + default: extra_usage_spend_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48925,10 +48987,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -48947,13 +49005,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGitHubIntegrationCreated object` + - `spend_limit_id: optional string or null` - A GitHub integration was enabled for the organization. + Tagged ID of the spend limit. - - `type: optional "claude_github_integration_created"` + - `user_id: optional string or null` - default: claude_github_integration_created + **Deprecated** + + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. + + - `ExtraUsageSpendLimitIncreaseRequestApproved object` + + A usage credit spend limit increase request was approved. + + - `type: optional "extra_usage_spend_limit_increase_request_approved"` + + default: extra_usage_spend_limit_increase_request_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49161,25 +49229,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` + - `amount: optional number or null` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + The approved spend limit amount in minor units (e.g. cents). - `created_at: optional string` @@ -49187,37 +49243,33 @@ compliance activities that can be filtered by various criteria. format: date-time - - `enabled: optional boolean or null` - - Whether the integration is enabled after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with - - `organization_name: optional string or null` - - Name of the GitHub organization the integration is connected to, when known. - - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` + - `requester_user_id: optional string or null` - Whether the integration was enabled before this change; null when the integration had never been configured. + Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - `repository_name: optional string or null` + - `spend_limit_id: optional string or null` - Name of the GitHub repository the integration is connected to, when known. + Tagged ID of the member's spend limit that the approval created or updated. - - `ClaudeGitHubIntegrationDeleted object` + - `spend_limit_increase_request_id: optional string or null` - A GitHub integration was disabled for the organization. + Tagged ID of the spend limit increase request that was approved. - - `type: optional "claude_github_integration_deleted"` + - `ExtraUsageSpendLimitIncreaseRequestDenied object` - default: claude_github_integration_deleted + A usage credit spend limit increase request was denied. + + - `type: optional "extra_usage_spend_limit_increase_request_denied"` + + default: extra_usage_spend_limit_increase_request_denied - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49425,10 +49477,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -49439,37 +49487,29 @@ compliance activities that can be filtered by various criteria. format: date-time - - `enabled: optional boolean or null` - - Whether the integration is enabled after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with - - `organization_name: optional string or null` - - Name of the GitHub organization the integration was connected to, when known. - - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` + - `requester_user_id: optional string or null` - Whether the integration was enabled before this change; null when the integration had never been configured. + Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - `repository_name: optional string or null` + - `spend_limit_increase_request_id: optional string or null` - Name of the GitHub repository the integration was connected to, when known. + Tagged ID of the spend limit increase request that was denied. - - `ClaudeGitHubIntegrationUpdated object` + - `ExtraUsageSpendLimitUpdated object` - A GitHub integration's configuration was updated. + Usage credit spend limit was updated. - - `type: optional "claude_github_integration_updated"` + - `type: optional "extra_usage_spend_limit_updated"` - default: claude_github_integration_updated + default: extra_usage_spend_limit_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49677,43 +49717,53 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `amount: optional number or null` + + The new monthly credit limit amount in minor units (e.g. cents). + - `created_at: optional string` When this activity occurred. format: date-time - - `organization_id: optional string or null` + - `is_enabled: optional boolean or null` - Organization ID this activity is associated with + Whether the spend limit is enabled. - - `organization_name: optional string or null` + - `limit_type: optional string or null` - Name of the GitHub organization the integration is connected to, when known. + The type of spend limit updated (e.g. organization, seat_tier, member, service, group). + + - `organization_id: optional string or null` + + Organization ID this activity is associated with - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `repository_name: optional string or null` + - `spend_limit_id: optional string or null` - Name of the GitHub repository the integration is connected to, when known. + Tagged ID of the spend limit. - - `GitHubAppInstallationLinked object` + - `user_id: optional string or null` - An installation of the Claude GitHub App (a GitHub organization or user account where the App is installed) was linked to the organization, letting the organization's Claude Code features act on that GitHub account's repositories. + **Deprecated** - - `type: optional "github_app_installation_linked"` + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - default: github_app_installation_linked + - `ClaudeFileDeleted object` + + A file was deleted. + + - `type: optional "claude_file_deleted"` + + default: claude_file_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49921,9 +49971,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `github_installation_id: number` + - `claude_file_id: string` - Numeric GitHub ID of the installation that was linked + Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". - `id: optional string` @@ -49935,14 +49985,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_account_login: optional string or null` - - Login of the GitHub organization or user account the App is installed on - - - `github_account_type: optional string or null` - - Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -49951,13 +49993,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GitHubAppInstallationUnlinked object` + - `filename: optional string or null` - An installation of the Claude GitHub App was unlinked from the organization, so the organization's Claude Code features can no longer act on that GitHub account's repositories through it. + **Deprecated** - - `type: optional "github_app_installation_unlinked"` + No longer populated. The name can't be looked up once the file is deleted. - default: github_app_installation_unlinked + - `ClaudeFileUploaded object` + + A file was uploaded. + + - `type: optional "claude_file_uploaded"` + + default: claude_file_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50165,27 +50213,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `github_installation_id: number` + - `claude_file_id: string` - Numeric GitHub ID of the installation that was unlinked + Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` + - `claude_chat_id: optional string or null` - When this activity occurred. + Chat ID if known at upload time (null for the upload-then-attach flow). To find which chats a file was later attached to, use `GET /v1/compliance/apps/chats/files/{claude_file_id}`. - format: date-time + - `claude_project_id: optional string or null` - - `github_account_login: optional string or null` + Project ID if file was uploaded to a project - Login of the GitHub organization or user account the App is installed on + - `created_at: optional string` - - `github_account_type: optional string or null` + When this activity occurred. - Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") + format: date-time - `organization_id: optional string or null` @@ -50195,13 +50243,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GitHubTokenImport object` + - `filename: optional string or null` - A user attempted to import a personal GitHub access token for use with Claude Code. The `result` field indicates the outcome of the import (imported, rejected, or failed). + **Deprecated** - - `type: optional "github_token_import"` + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - default: github_token_import + - `GheConfigurationCreated object` + + Admin created a GHE configuration. + + - `type: optional "ghe_configuration_created"` + + default: ghe_configuration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50409,29 +50463,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `result: "failed_internal" or "imported" or "rejected_feature_disabled" or 5 more` - - The outcome of the import. - - - `"failed_internal"` - - - `"imported"` - - - `"rejected_feature_disabled"` - - - `"rejected_invalid_credential"` - - - `"rejected_missing_repo_scope"` - - - `"rejected_tenant_not_ready"` - - - `"rejected_zdr_policy"` - - - `"unspecified"` - - - `source: string` + - `ghe_configuration_id: string` - How the token was imported. + ID of the GHE configuration - `id: optional string` @@ -50443,13 +50477,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_username: optional string or null` + - `display_name: optional string or null` - The GitHub username the imported token authenticates as, when known. + Display name given to the configuration - - `granted_scopes: optional string or null` + - `hostname: optional string or null` - The scopes granted to the imported token, when available. + Hostname of the GitHub Enterprise instance - `organization_id: optional string or null` @@ -50459,17 +50493,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_fingerprint_sha256: optional string or null` + - `port: optional number or null` - Org-scoped SHA-256 of the submitted token: `sha256(org_uuid || 0x00 || token)`, lowercase-hex-encoded, where `org_uuid` is the organization's UUID as a dashed lowercase string, `0x00` is a single zero byte, and `token` is the submitted value's raw bytes. Per-org correlation only — the same token in two orgs produces distinct fingerprints. Set only when the submitted value carries a known GitHub PAT prefix (a high-entropy token format); unset for all other submissions, including rejected non-PAT input. + Custom port, if not the HTTPS default - - `GitlabConfigurationCreated object` + - `GheConfigurationDeleted object` - An organization admin created a self-managed GitLab configuration for syncing plugin marketplaces. + Admin deleted a GHE configuration. - - `type: optional "gitlab_configuration_created"` + - `type: optional "ghe_configuration_deleted"` - default: gitlab_configuration_created + default: ghe_configuration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50677,9 +50711,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` + - `ghe_configuration_id: string` - ID of the GitLab configuration + ID of the GHE configuration - `id: optional string` @@ -50693,11 +50727,11 @@ compliance activities that can be filtered by various criteria. - `display_name: optional string or null` - Display name given to the configuration + Display name the configuration had when deleted - `hostname: optional string or null` - Hostname of the GitLab instance + Hostname of the GitHub Enterprise instance - `organization_id: optional string or null` @@ -50711,13 +50745,13 @@ compliance activities that can be filtered by various criteria. Custom port, if not the HTTPS default - - `GitlabConfigurationDeleted object` + - `GheConfigurationUpdated object` - An organization admin deleted a self-managed GitLab configuration. + Admin updated a GHE configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. - - `type: optional "gitlab_configuration_deleted"` + - `type: optional "ghe_configuration_updated"` - default: gitlab_configuration_deleted + default: ghe_configuration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50925,9 +50959,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` + - `ghe_configuration_id: string` - ID of the GitLab configuration + ID of the GHE configuration - `id: optional string` @@ -50939,13 +50973,37 @@ compliance activities that can be filtered by various criteria. format: date-time + - `custom_ca_certificate_updated: optional boolean or null` + + Whether the custom CA certificate was replaced in this update + - `display_name: optional string or null` - Display name the configuration had when deleted + New display name, when it changed + + - `github_app_client_id: optional string or null` + + New GitHub App client ID, when it changed + + - `github_app_client_secret_updated: optional boolean or null` + + Whether the GitHub App client secret was replaced in this update + + - `github_app_id: optional number or null` + + New GitHub App ID, when it changed + + - `github_app_private_key_updated: optional boolean or null` + + Whether the GitHub App private key was replaced in this update - `hostname: optional string or null` - Hostname of the GitLab instance + Hostname of the GitHub Enterprise instance (immutable; included for context) + + - `is_active: optional boolean or null` + + New active state, when it changed - `organization_id: optional string or null` @@ -50957,15 +51015,43 @@ compliance activities that can be filtered by various criteria. - `port: optional number or null` - Custom port, if not the HTTPS default + New port, when it changed - - `GitlabConfigurationUpdated object` + - `previous_display_name: optional string or null` - An organization admin updated a self-managed GitLab configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + Display name before the change, when it changed - - `type: optional "gitlab_configuration_updated"` + - `previous_github_app_client_id: optional string or null` - default: gitlab_configuration_updated + GitHub App client ID before the change, when it changed + + - `previous_github_app_id: optional number or null` + + GitHub App ID before the change, when it changed + + - `previous_is_active: optional boolean or null` + + Active state before the change, when it changed + + - `previous_port: optional number or null` + + Port before the change, when it changed + + - `read_replica_hostnames_updated: optional boolean or null` + + Whether the read replica hostnames were replaced in this update + + - `webhook_secret_updated: optional boolean or null` + + Whether the webhook secret was replaced in this update + + - `GheUserConnected object` + + User connected to a GHE instance. + + - `type: optional "ghe_user_connected"` + + default: ghe_user_connected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51173,39 +51259,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` - - ID of the GitLab configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_token_updated: optional boolean or null` - - Whether the access token was replaced in this update - - `created_at: optional string` When this activity occurred. format: date-time - - `custom_ca_certificate_updated: optional boolean or null` - - Whether the custom CA certificate was replaced in this update - - - `display_name: optional string or null` - - New display name, when it changed - - - `hostname: optional string or null` - - Hostname of the GitLab instance (immutable; included for context) - - - `is_active: optional boolean or null` + - `ghe_configuration_id: optional string or null` - New active state, when it changed + ID of the GHE configuration - `organization_id: optional string or null` @@ -51215,29 +51281,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - New port, when it changed - - - `previous_display_name: optional string or null` - - Display name before the change, when it changed - - - `previous_is_active: optional boolean or null` - - Active state before the change, when it changed - - - `previous_port: optional number or null` - - Port before the change, when it changed - - - `ClaudeGdriveIntegrationCreated object` + - `GheUserDisconnected object` - A Google Drive integration was enabled for the organization. + User disconnected from a GHE instance. - - `type: optional "claude_gdrive_integration_created"` + - `type: optional "ghe_user_disconnected"` - default: claude_gdrive_integration_created + default: ghe_user_disconnected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51445,35 +51495,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time - - `folder_id: optional string or null` + - `ghe_configuration_id: optional string or null` - Identifier of the Google Drive folder the integration is connected to, when known. + ID of the GHE configuration - `organization_id: optional string or null` @@ -51483,13 +51517,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGdriveIntegrationDeleted object` + - `GheWebhookSignatureInvalid object` - A Google Drive integration was disabled for the organization. + Webhook signature validation failed. - - `type: optional "claude_gdrive_integration_deleted"` + - `type: optional "ghe_webhook_signature_invalid"` - default: claude_gdrive_integration_deleted + default: ghe_webhook_signature_invalid - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51697,9 +51731,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` + - `ghe_configuration_id: string` - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". + ID of the GHE configuration - `id: optional string` @@ -51711,10 +51745,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `folder_id: optional string or null` - - Identifier of the Google Drive folder the integration was connected to, when known. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -51723,13 +51753,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGdriveIntegrationUpdated object` + - `ClaudeGitHubIntegrationCreated object` - A Google Drive integration's configuration was updated. + A GitHub integration was enabled for the organization. - - `type: optional "claude_gdrive_integration_updated"` + - `type: optional "claude_github_integration_created"` - default: claude_gdrive_integration_updated + default: claude_github_integration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51939,37 +51969,61 @@ compliance activities that can be filtered by various criteria. - `integration_id: string` - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `folder_id: optional string or null` + - `enabled: optional boolean or null` - Identifier of the Google Drive folder the integration is connected to, when known. + Whether the integration is enabled after this change. - `organization_id: optional string or null` Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration is connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupCreated object` + - `previous_enabled: optional boolean or null` - A group was created (RBAC admin or SCIM provisioning). + Whether the integration was enabled before this change; null when the integration had never been configured. - - `type: optional "group_created"` + - `repository_name: optional string or null` - default: group_created + Name of the GitHub repository the integration is connected to, when known. + + - `ClaudeGitHubIntegrationDeleted object` + + A GitHub integration was disabled for the organization. + + - `type: optional "claude_github_integration_deleted"` + + default: claude_github_integration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52177,13 +52231,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the created group - - - `group_name: string` + - `integration_id: string` - Name of the created group + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -52195,21 +52245,37 @@ compliance activities that can be filtered by various criteria. format: date-time + - `enabled: optional boolean or null` + + Whether the integration is enabled after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration was connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupDeleted object` + - `previous_enabled: optional boolean or null` - A group was deleted (RBAC admin or SCIM provisioning). + Whether the integration was enabled before this change; null when the integration had never been configured. - - `type: optional "group_deleted"` + - `repository_name: optional string or null` - default: group_deleted + Name of the GitHub repository the integration was connected to, when known. + + - `ClaudeGitHubIntegrationUpdated object` + + A GitHub integration's configuration was updated. + + - `type: optional "claude_github_integration_updated"` + + default: claude_github_integration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52417,9 +52483,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `integration_id: string` - Tagged ID of the deleted group + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -52435,17 +52501,25 @@ compliance activities that can be filtered by various criteria. Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration is connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupListViewed object` + - `repository_name: optional string or null` - Admin viewed the list of RBAC groups. + Name of the GitHub repository the integration is connected to, when known. - - `type: optional "group_list_viewed"` + - `GitHubAppInstallationLinked object` - default: group_list_viewed + An installation of the Claude GitHub App (a GitHub organization or user account where the App is installed) was linked to the organization, letting the organization's Claude Code features act on that GitHub account's repositories. + + - `type: optional "github_app_installation_linked"` + + default: github_app_installation_linked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52653,6 +52727,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `github_installation_id: number` + + Numeric GitHub ID of the installation that was linked + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -52663,6 +52741,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `github_account_login: optional string or null` + + Login of the GitHub organization or user account the App is installed on + + - `github_account_type: optional string or null` + + Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -52671,13 +52757,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberAdded object` + - `GitHubAppInstallationUnlinked object` - One or more members were added to a group. + An installation of the Claude GitHub App was unlinked from the organization, so the organization's Claude Code features can no longer act on that GitHub account's repositories through it. - - `type: optional "group_member_added"` + - `type: optional "github_app_installation_unlinked"` - default: group_member_added + default: github_app_installation_unlinked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52885,9 +52971,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `github_installation_id: number` - Tagged ID of the group + Numeric GitHub ID of the installation that was unlinked - `id: optional string` @@ -52899,9 +52985,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `github_account_login: optional string or null` - Tagged IDs of the members added: user IDs, or service account IDs (svac_...) when a service account was added + Login of the GitHub organization or user account the App is installed on + + - `github_account_type: optional string or null` + + Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") - `organization_id: optional string or null` @@ -52911,13 +53001,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberAdditionFailed object` + - `GitHubTokenImport object` - A request to add members to a group failed. Some of the requested members may have been added before the failure. + A user attempted to import a personal GitHub access token for use with Claude Code. The `result` field indicates the outcome of the import (imported, rejected, or failed). - - `type: optional "group_member_addition_failed"` + - `type: optional "github_token_import"` - default: group_member_addition_failed + default: github_token_import - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53125,9 +53215,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `result: "failed_internal" or "imported" or "rejected_feature_disabled" or 5 more` - Tagged ID of the group + The outcome of the import. + + - `"failed_internal"` + + - `"imported"` + + - `"rejected_feature_disabled"` + + - `"rejected_invalid_credential"` + + - `"rejected_missing_repo_scope"` + + - `"rejected_tenant_not_ready"` + + - `"rejected_zdr_policy"` + + - `"unspecified"` + + - `source: string` + + How the token was imported. - `id: optional string` @@ -53139,9 +53249,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `github_username: optional string or null` - Tagged IDs of the members the request attempted to add + The GitHub username the imported token authenticates as, when known. + + - `granted_scopes: optional string or null` + + The scopes granted to the imported token, when available. - `organization_id: optional string or null` @@ -53151,13 +53265,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberListViewed object` + - `token_fingerprint_sha256: optional string or null` - Admin viewed the members of an RBAC group. + Org-scoped SHA-256 of the submitted token: `sha256(org_uuid || 0x00 || token)`, lowercase-hex-encoded, where `org_uuid` is the organization's UUID as a dashed lowercase string, `0x00` is a single zero byte, and `token` is the submitted value's raw bytes. Per-org correlation only — the same token in two orgs produces distinct fingerprints. Set only when the submitted value carries a known GitHub PAT prefix (a high-entropy token format); unset for all other submissions, including rejected non-PAT input. - - `type: optional "group_member_list_viewed"` + - `GitlabConfigurationCreated object` - default: group_member_list_viewed + An organization admin created a self-managed GitLab configuration for syncing plugin marketplaces. + + - `type: optional "gitlab_configuration_created"` + + default: gitlab_configuration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53365,9 +53483,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` @@ -53379,6 +53497,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `display_name: optional string or null` + + Display name given to the configuration + + - `hostname: optional string or null` + + Hostname of the GitLab instance + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -53387,13 +53513,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberRemovalFailed object` + - `port: optional number or null` - A request to remove members from a group failed. Some of the requested members may have been removed before the failure. + Custom port, if not the HTTPS default - - `type: optional "group_member_removal_failed"` + - `GitlabConfigurationDeleted object` - default: group_member_removal_failed + An organization admin deleted a self-managed GitLab configuration. + + - `type: optional "gitlab_configuration_deleted"` + + default: gitlab_configuration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53601,9 +53731,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` @@ -53615,9 +53745,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `display_name: optional string or null` - Tagged IDs of the members the request attempted to remove. These are always recorded as user IDs, since whether a member was a service account is only established once its removal succeeds + Display name the configuration had when deleted + + - `hostname: optional string or null` + + Hostname of the GitLab instance - `organization_id: optional string or null` @@ -53627,13 +53761,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberRemoved object` + - `port: optional number or null` - One or more members were removed from a group. + Custom port, if not the HTTPS default - - `type: optional "group_member_removed"` + - `GitlabConfigurationUpdated object` - default: group_member_removed + An organization admin updated a self-managed GitLab configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + + - `type: optional "gitlab_configuration_updated"` + + default: gitlab_configuration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53841,23 +53979,39 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_token_updated: optional boolean or null` + + Whether the access token was replaced in this update + - `created_at: optional string` When this activity occurred. format: date-time - - `member_ids: optional array of string` + - `custom_ca_certificate_updated: optional boolean or null` - Tagged IDs of the members removed: user IDs, or service account IDs (svac_...) when a service account was removed. A requested member that was not in the group is listed as a user ID + Whether the custom CA certificate was replaced in this update + + - `display_name: optional string or null` + + New display name, when it changed + + - `hostname: optional string or null` + + Hostname of the GitLab instance (immutable; included for context) + + - `is_active: optional boolean or null` + + New active state, when it changed - `organization_id: optional string or null` @@ -53867,13 +54021,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupProjectSharesRevoked object` + - `port: optional number or null` - An RBAC group's project shares in one organization were revoked in bulk. + New port, when it changed - - `type: optional "group_project_shares_revoked"` + - `previous_display_name: optional string or null` - default: group_project_shares_revoked + Display name before the change, when it changed + + - `previous_is_active: optional boolean or null` + + Active state before the change, when it changed + + - `previous_port: optional number or null` + + Port before the change, when it changed + + - `ClaudeGdriveIntegrationCreated object` + + A Google Drive integration was enabled for the organization. + + - `type: optional "claude_gdrive_integration_created"` + + default: claude_gdrive_integration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54081,21 +54251,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the group whose project shares were revoked. - - - `revoked_count: number` + - `integration_id: string` - Number of distinct projects whose share with this group was revoked. + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_ids: optional array of string` + - `attestations: optional array of object` - Tagged IDs of the projects whose share with this group was revoked. + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -54103,6 +54277,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration is connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54111,13 +54289,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupSkillSharesRevoked object` + - `ClaudeGdriveIntegrationDeleted object` - An RBAC group's skill shares in one organization were revoked in bulk. + A Google Drive integration was disabled for the organization. - - `type: optional "group_skill_shares_revoked"` + - `type: optional "claude_gdrive_integration_deleted"` - default: group_skill_shares_revoked + default: claude_gdrive_integration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54325,13 +54503,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the group whose skill shares were revoked. - - - `revoked_count: number` + - `integration_id: string` - Number of distinct skills and plugins whose share with this group was revoked: the combined size of `skill_ids` and `plugin_ids`. + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -54343,6 +54517,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration was connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54351,21 +54529,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_ids: optional array of string` - - Tagged IDs of the plugins whose share with this group was revoked. - - - `skill_ids: optional array of string` - - Tagged IDs of the skills whose share with this group was revoked. - - - `GroupUpdated object` + - `ClaudeGdriveIntegrationUpdated object` - A group was updated (RBAC admin or SCIM provisioning). + A Google Drive integration's configuration was updated. - - `type: optional "group_updated"` + - `type: optional "claude_gdrive_integration_updated"` - default: group_updated + default: claude_gdrive_integration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54573,9 +54743,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `integration_id: string` - Tagged ID of the updated group + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -54587,6 +54757,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration is connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54595,13 +54769,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupViewed object` + - `GroupCreated object` - A group was viewed. + A group was created (RBAC admin or SCIM provisioning). - - `type: optional "group_viewed"` + - `type: optional "group_created"` - default: group_viewed + default: group_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54811,7 +54985,11 @@ compliance activities that can be filtered by various criteria. - `group_id: string` - Tagged ID of the viewed group + Tagged ID of the created group + + - `group_name: string` + + Name of the created group - `id: optional string` @@ -54831,13 +55009,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupVisibilityUpdated object` + - `GroupDeleted object` - An RBAC group's visibility policy was updated. + A group was deleted (RBAC admin or SCIM provisioning). - - `type: optional "group_visibility_updated"` + - `type: optional "group_deleted"` - default: group_visibility_updated + default: group_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55047,7 +55225,7 @@ compliance activities that can be filtered by various criteria. - `group_id: string` - Tagged ID of the group whose visibility policy was updated. + Tagged ID of the deleted group - `id: optional string` @@ -55067,69 +55245,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `policies: optional array of object` - - The group's visibility policy after this update. - - - `audience: "everyone" or "members" or "none" or "unspecified"` - - The audience granted this visibility facet. - - - `"everyone"` - - - `"members"` - - - `"none"` - - - `"unspecified"` - - - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` - - The visibility facet this entry grants. - - - `"discover"` - - - `"share_with"` - - - `"unspecified"` - - - `"view_members"` - - - `previous_policies: optional array of object` - - The group's visibility policy before this update. - - - `audience: "everyone" or "members" or "none" or "unspecified"` - - The audience granted this visibility facet. - - - `"everyone"` - - - `"members"` - - - `"none"` - - - `"unspecified"` - - - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` - - The visibility facet this entry grants. - - - `"discover"` - - - `"share_with"` - - - `"unspecified"` - - - `"view_members"` - - - `InferenceHooksCircuitBreakerTripped object` + - `GroupListViewed object` - The organization's Inference hooks circuit breaker tripped automatically: calls to the organization's Inference hooks endpoint crossed a failure threshold, and inspection was suspended to protect live traffic. While tripped, requests are handled according to the organization's failure handling setting — allowed through uninspected (fail open) or rejected (fail closed) — and no per-request Inference hooks activities are recorded. Inspection turns back on by itself once the organization's Inference hooks endpoint returns a valid allow or deny answer to Anthropic's test request again, at least 10 minutes after the trip. An administrator can also end the tripped state by re-enabling Inference hooks inspection. If an administrator saves the Inference hooks settings after the trip (even without changing anything) or generates a new signing secret, inspection no longer turns back on by itself and stays off until an administrator re-enables it. + Admin viewed the list of RBAC groups. - - `type: optional "inference_hooks_circuit_breaker_tripped"` + - `type: optional "group_list_viewed"` - default: inference_hooks_circuit_breaker_tripped + default: group_list_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55337,14 +55459,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `fail_mode: string` - - The failure handling in effect when the breaker tripped: "fail_open" (requests proceed uninspected) or "fail_closed" (requests are rejected). - - - `trigger_reason: string` - - The kind of failure that crossed the threshold. Currently always "webhook_error": repeated failures of calls to the organization's Inference hooks endpoint. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -55363,17 +55477,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `surface: optional string or null` - - The product surface of the request whose failure tripped the breaker, e.g. "claude-ai" or "claude-code". - - - `InferenceHooksRequestDenied object` + - `GroupMemberAdded object` - Inference hooks inspection denied a request. The request was blocked. + One or more members were added to a group. - - `type: optional "inference_hooks_request_denied"` + - `type: optional "group_member_added"` - default: inference_hooks_request_denied + default: group_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55581,13 +55691,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `group_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the group - - `conversation_id: optional string or null` + - `id: optional string` - The conversation the denied request belonged to, when available. The identifier format depends on `surface`. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -55595,9 +55705,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `event: optional string or null` + - `member_ids: optional array of string` - Which hook event the Inference hooks endpoint denied, the same value it received as `type`: "prompt" (the request's prompt, inspected before the model ran) or "tool_call" (the tool calls in a model response, inspected before any of them ran). Absent means "prompt". + Tagged IDs of the members added: user IDs, or service account IDs (svac_...) when a service account was added - `organization_id: optional string or null` @@ -55607,25 +55717,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reference_id: optional string or null` - - The Inference hooks endpoint's own identifier for this scan, when it returned one — lets this denial be matched to the corresponding record in the inspection provider's console. - - - `request_id: optional string or null` - - Anthropic's identifier for the denied request — the same value sent to the Inference hooks endpoint as `request_id`. - - - `surface: optional string or null` - - The product surface the request came from, e.g. "claude-ai" or "claude-code". - - - `InferenceHooksRequestFailedOpen object` + - `GroupMemberAdditionFailed object` - A request proceeded without Inference hooks inspection because a verdict could not be obtained and the organization's Inference hooks configuration is set to fail open. + A request to add members to a group failed. Some of the requested members may have been added before the failure. - - `type: optional "inference_hooks_request_failed_open"` + - `type: optional "group_member_addition_failed"` - default: inference_hooks_request_failed_open + default: group_member_addition_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55833,32 +55931,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `reason: "endpoint_error" or "endpoint_timeout" or "internal_error" or "unspecified"` - - Why Inference hooks inspection did not return a verdict. - - - `"endpoint_error"` - - - `"endpoint_timeout"` - - - `"internal_error"` + - `group_id: string` - - `"unspecified"` + Tagged ID of the group - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `conversation_id: optional string or null` - - The conversation the request belonged to, when available. The identifier format depends on `surface`. - - `created_at: optional string` When this activity occurred. format: date-time + - `member_ids: optional array of string` + + Tagged IDs of the members the request attempted to add + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -55867,21 +55957,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `request_id: optional string or null` - - Anthropic's identifier for the request that proceeded uninspected. When a call to the Inference hooks endpoint was made for this request, it carried this value as `request_id`. - - - `surface: optional string or null` - - The product surface the request came from, e.g. "claude-ai" or "claude-code". - - - `IntegrationUserConnected object` + - `GroupMemberListViewed object` - User connected to an integration. + Admin viewed the members of an RBAC group. - - `type: optional "integration_user_connected"` + - `type: optional "group_member_list_viewed"` - default: integration_user_connected + default: group_member_list_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56089,6 +56171,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56099,18 +56185,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `integration_type: optional string or null` - - The kind of integration the user connected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - - - `mcp_server_id: optional string or null` - - ID of the connected remote MCP server, when the integration is a remote MCP server. - - - `mcp_server_name: optional string or null` - - Display name of the connected remote MCP server, when the integration is a remote MCP server. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -56119,17 +56193,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_vault_connect_mode: optional string or null` - - How a token vault credential sign-in was completed: "authorization_server" for a sign-in at an administrator-provided authorization server, or "mcp_server" for a sign-in at a tool server the organization has not registered as a connector. - - - `IntegrationUserDisconnected object` + - `GroupMemberRemovalFailed object` - User disconnected from an integration. + A request to remove members from a group failed. Some of the requested members may have been removed before the failure. - - `type: optional "integration_user_disconnected"` + - `type: optional "group_member_removal_failed"` - default: integration_user_disconnected + default: group_member_removal_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56337,6 +56407,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56347,17 +56421,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `integration_type: optional string or null` - - The kind of integration the user disconnected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - - - `mcp_server_id: optional string or null` - - ID of the disconnected remote MCP server, when the integration is a remote MCP server. - - - `mcp_server_name: optional string or null` + - `member_ids: optional array of string` - Display name of the disconnected remote MCP server, when the integration is a remote MCP server. + Tagged IDs of the members the request attempted to remove. These are always recorded as user IDs, since whether a member was a service account is only established once its removal succeeds - `organization_id: optional string or null` @@ -56367,13 +56433,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InvoiceCollectionMethodUpdated object` + - `GroupMemberRemoved object` - Invoice collection method was changed. + One or more members were removed from a group. - - `type: optional "invoice_collection_method_updated"` + - `type: optional "group_member_removed"` - default: invoice_collection_method_updated + default: group_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56581,6 +56647,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56591,9 +56661,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_collection_method: optional string or null` + - `member_ids: optional array of string` - New collection method (e.g. charge_automatically, send_invoice). + Tagged IDs of the members removed: user IDs, or service account IDs (svac_...) when a service account was removed. A requested member that was not in the group is listed as a user ID - `organization_id: optional string or null` @@ -56603,13 +56673,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `UserLoggedOut object` + - `GroupProjectSharesRevoked object` - A user signed out of one or all sessions. + An RBAC group's project shares in one organization were revoked in bulk. - - `type: optional "user_logged_out"` + - `type: optional "group_project_shares_revoked"` - default: user_logged_out + default: group_project_shares_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56817,10 +56887,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group whose project shares were revoked. + + - `revoked_count: number` + + Number of distinct projects whose share with this group was revoked. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_ids: optional array of string` + + Tagged IDs of the projects whose share with this group was revoked. + - `created_at: optional string` When this activity occurred. @@ -56835,13 +56917,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiLaunchInitiated object` + - `GroupSkillSharesRevoked object` - LTI launch was initiated. + An RBAC group's skill shares in one organization were revoked in bulk. - - `type: optional "lti_launch_initiated"` + - `type: optional "group_skill_shares_revoked"` - default: lti_launch_initiated + default: group_skill_shares_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57049,6 +57131,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group whose skill shares were revoked. + + - `revoked_count: number` + + Number of distinct skills and plugins whose share with this group was revoked: the combined size of `skill_ids` and `plugin_ids`. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -57067,13 +57157,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiLaunchSuccess object` + - `plugin_ids: optional array of string` - LTI launch completed successfully. + Tagged IDs of the plugins whose share with this group was revoked. - - `type: optional "lti_launch_success"` + - `skill_ids: optional array of string` - default: lti_launch_success + Tagged IDs of the skills whose share with this group was revoked. + + - `GroupUpdated object` + + A group was updated (RBAC admin or SCIM provisioning). + + - `type: optional "group_updated"` + + default: group_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57281,6 +57379,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the updated group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -57299,13 +57401,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiPlatformCreated object` + - `GroupViewed object` - Anthropic staff created an LTI platform integration on behalf of an org. + A group was viewed. - - `type: optional "lti_platform_created"` + - `type: optional "group_viewed"` - default: lti_platform_created + default: group_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57513,13 +57615,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `lti_platform_id: string` - - UUID of the LTI platform - - - `lti_platform_issuer: string` + - `group_id: string` - Platform issuer URL + Tagged ID of the viewed group - `id: optional string` @@ -57539,13 +57637,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiPlatformUpdated object` + - `GroupVisibilityUpdated object` - Anthropic staff updated an LTI platform integration on behalf of an org. + An RBAC group's visibility policy was updated. - - `type: optional "lti_platform_updated"` + - `type: optional "group_visibility_updated"` - default: lti_platform_updated + default: group_visibility_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57753,9 +57851,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `lti_platform_id: string` + - `group_id: string` - UUID of the LTI platform + Tagged ID of the group whose visibility policy was updated. - `id: optional string` @@ -57767,10 +57865,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `lti_platform_issuer: optional string or null` - - Platform issuer URL - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -57779,13 +57873,69 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginFailed object` + - `policies: optional array of object` - A magic link sign-in attempt failed. + The group's visibility policy after this update. - - `type: optional "magic_link_login_failed"` + - `audience: "everyone" or "members" or "none" or "unspecified"` - default: magic_link_login_failed + The audience granted this visibility facet. + + - `"everyone"` + + - `"members"` + + - `"none"` + + - `"unspecified"` + + - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` + + The visibility facet this entry grants. + + - `"discover"` + + - `"share_with"` + + - `"unspecified"` + + - `"view_members"` + + - `previous_policies: optional array of object` + + The group's visibility policy before this update. + + - `audience: "everyone" or "members" or "none" or "unspecified"` + + The audience granted this visibility facet. + + - `"everyone"` + + - `"members"` + + - `"none"` + + - `"unspecified"` + + - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` + + The visibility facet this entry grants. + + - `"discover"` + + - `"share_with"` + + - `"unspecified"` + + - `"view_members"` + + - `InferenceHooksCircuitBreakerTripped object` + + The organization's Inference hooks circuit breaker tripped automatically: calls to the organization's Inference hooks endpoint crossed a failure threshold, and inspection was suspended to protect live traffic. While tripped, requests are handled according to the organization's failure handling setting — allowed through uninspected (fail open) or rejected (fail closed) — and no per-request Inference hooks activities are recorded. Inspection turns back on by itself once the organization's Inference hooks endpoint returns a valid allow or deny answer to Anthropic's test request again, at least 10 minutes after the trip. An administrator can also end the tripped state by re-enabling Inference hooks inspection. If an administrator saves the Inference hooks settings after the trip (even without changing anything) or generates a new signing secret, inspection no longer turns back on by itself and stays off until an administrator re-enables it. + + - `type: optional "inference_hooks_circuit_breaker_tripped"` + + default: inference_hooks_circuit_breaker_tripped - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57993,6 +58143,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `fail_mode: string` + + The failure handling in effect when the breaker tripped: "fail_open" (requests proceed uninspected) or "fail_closed" (requests are rejected). + + - `trigger_reason: string` + + The kind of failure that crossed the threshold. Currently always "webhook_error": repeated failures of calls to the organization's Inference hooks endpoint. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -58011,13 +58169,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginInitiated object` + - `surface: optional string or null` - A user requested a magic link sign-in email. + The product surface of the request whose failure tripped the breaker, e.g. "claude-ai" or "claude-code". - - `type: optional "magic_link_login_initiated"` + - `InferenceHooksRequestDenied object` - default: magic_link_login_initiated + Inference hooks inspection denied a request. The request was blocked. + + - `type: optional "inference_hooks_request_denied"` + + default: inference_hooks_request_denied - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58229,12 +58391,20 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `conversation_id: optional string or null` + + The conversation the denied request belonged to, when available. The identifier format depends on `surface`. + - `created_at: optional string` When this activity occurred. format: date-time + - `event: optional string or null` + + Which hook event the Inference hooks endpoint denied, the same value it received as `type`: "prompt" (the request's prompt, inspected before the model ran) or "tool_call" (the tool calls in a model response, inspected before any of them ran). Absent means "prompt". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -58243,13 +58413,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginSucceeded object` + - `reference_id: optional string or null` - A user successfully signed in with a magic link email. + The Inference hooks endpoint's own identifier for this scan, when it returned one — lets this denial be matched to the corresponding record in the inspection provider's console. - - `type: optional "magic_link_login_succeeded"` + - `request_id: optional string or null` - default: magic_link_login_succeeded + Anthropic's identifier for the denied request — the same value sent to the Inference hooks endpoint as `request_id`. + + - `surface: optional string or null` + + The product surface the request came from, e.g. "claude-ai" or "claude-code". + + - `InferenceHooksRequestFailedOpen object` + + A request proceeded without Inference hooks inspection because a verdict could not be obtained and the organization's Inference hooks configuration is set to fail open. + + - `type: optional "inference_hooks_request_failed_open"` + + default: inference_hooks_request_failed_open - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58457,31 +58639,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `reason: "endpoint_error" or "endpoint_timeout" or "internal_error" or "unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + Why Inference hooks inspection did not return a verdict. - - `auth_method: optional "magic_link" or "unspecified" or null` + - `"endpoint_error"` - The method the user used to authenticate. May be absent on activities recorded before this field was introduced. + - `"endpoint_timeout"` - - `"magic_link"` + - `"internal_error"` - `"unspecified"` - - `created_at: optional string` + - `id: optional string` - When this activity occurred. + Unique identifier for the activity e.g. 'activity_abcd1234' - format: date-time + - `conversation_id: optional string or null` - - `mfa_method: optional "not_used" or "unspecified" or null` + The conversation the request belonged to, when available. The identifier format depends on `surface`. - The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. + - `created_at: optional string` - - `"not_used"` + When this activity occurred. - - `"unspecified"` + format: date-time - `organization_id: optional string or null` @@ -58491,13 +58673,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ManagedOrganizationSetupCompleted object` + - `request_id: optional string or null` - Managed (AWS Marketplace) organization setup was completed. + Anthropic's identifier for the request that proceeded uninspected. When a call to the Inference hooks endpoint was made for this request, it carried this value as `request_id`. - - `type: optional "managed_organization_setup_completed"` + - `surface: optional string or null` - default: managed_organization_setup_completed + The product surface the request came from, e.g. "claude-ai" or "claude-code". + + - `IntegrationUserConnected object` + + User connected to an integration. + + - `type: optional "integration_user_connected"` + + default: integration_user_connected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58715,6 +58905,18 @@ compliance activities that can be filtered by various criteria. format: date-time + - `integration_type: optional string or null` + + The kind of integration the user connected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. + + - `mcp_server_id: optional string or null` + + ID of the connected remote MCP server, when the integration is a remote MCP server. + + - `mcp_server_name: optional string or null` + + Display name of the connected remote MCP server, when the integration is a remote MCP server. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -58723,13 +58925,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceCreated object` + - `token_vault_connect_mode: optional string or null` - Admin created an organization marketplace. + How a token vault credential sign-in was completed: "authorization_server" for a sign-in at an administrator-provided authorization server, or "mcp_server" for a sign-in at a tool server the organization has not registered as a connector. - - `type: optional "marketplace_created"` + - `IntegrationUserDisconnected object` - default: marketplace_created + User disconnected from an integration. + + - `type: optional "integration_user_disconnected"` + + default: integration_user_disconnected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58937,35 +59143,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` + - `created_at: optional string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + When this activity occurred. - - `content_hash: string` + format: date-time - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `integration_type: optional string or null` - - `created_at: optional string` + The kind of integration the user disconnected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - When this activity occurred. + - `mcp_server_id: optional string or null` - format: date-time + ID of the disconnected remote MCP server, when the integration is a remote MCP server. - - `default_installation_preference: optional string or null` + - `mcp_server_name: optional string or null` - Default installation preference the marketplace was created with, applied to its plugins that have no preference of their own (required, auto_install, available or not_available); absent when none was set + Display name of the disconnected remote MCP server, when the integration is a remote MCP server. - `organization_id: optional string or null` @@ -58975,13 +59173,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceDeleted object` + - `InvoiceCollectionMethodUpdated object` - Admin deleted an organization marketplace. + Invoice collection method was changed. - - `type: optional "marketplace_deleted"` + - `type: optional "invoice_collection_method_updated"` - default: marketplace_deleted + default: invoice_collection_method_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59189,10 +59387,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59203,6 +59397,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `new_collection_method: optional string or null` + + New collection method (e.g. charge_automatically, send_invoice). + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -59211,13 +59409,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceUpdated object` + - `UserLoggedOut object` - Admin updated an organization marketplace. + A user signed out of one or all sessions. - - `type: optional "marketplace_updated"` + - `type: optional "user_logged_out"` - default: marketplace_updated + default: user_logged_out - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59425,26 +59623,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -59459,33 +59641,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The setting changes applied in this update; empty for an update that changed no recorded setting (such as a sync) - - - `type: "default_installation_preference" or "unspecified"` - - The marketplace setting that changed - - - `"default_installation_preference"` - - - `"unspecified"` - - - `current_value: string` - - Setting value immediately after this change; empty when the setting is no longer set - - - `previous_value: string` - - Setting value immediately before this change; empty when the setting was not set - - - `MarketplaceWebhookDeleted object` + - `LtiLaunchInitiated object` - Admin removed the GitHub push webhook for a marketplace. + LTI launch was initiated. - - `type: optional "marketplace_webhook_deleted"` + - `type: optional "lti_launch_initiated"` - default: marketplace_webhook_deleted + default: lti_launch_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59693,10 +59855,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59715,13 +59873,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceWebhookProvisioned object` + - `LtiLaunchSuccess object` - Admin provisioned a GitHub push webhook for a marketplace. + LTI launch completed successfully. - - `type: optional "marketplace_webhook_provisioned"` + - `type: optional "lti_launch_success"` - default: marketplace_webhook_provisioned + default: lti_launch_success - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59929,10 +60087,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59943,10 +60097,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_webhook_id: optional number or null` - - GitHub-assigned webhook ID returned by the hooks API - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -59955,13 +60105,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpDirectoryServerPublished object` + - `LtiPlatformCreated object` - The organization published its approved MCP directory listing. + Anthropic staff created an LTI platform integration on behalf of an org. - - `type: optional "mcp_directory_server_published"` + - `type: optional "lti_platform_created"` - default: mcp_directory_server_published + default: lti_platform_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60169,13 +60319,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_directory_server_id: string` + - `lti_platform_id: string` - Tagged ID of the MCP directory listing + UUID of the LTI platform - - `mcp_directory_server_name: string` + - `lti_platform_issuer: string` - Display name of the MCP directory listing + Platform issuer URL - `id: optional string` @@ -60195,13 +60345,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerCreated object` + - `LtiPlatformUpdated object` - An MCP server was added to the organization. + Anthropic staff updated an LTI platform integration on behalf of an org. - - `type: optional "mcp_server_created"` + - `type: optional "lti_platform_updated"` - default: mcp_server_created + default: lti_platform_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60409,36 +60559,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` + - `lti_platform_id: string` - Display name of the MCP server + UUID of the LTI platform - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time + - `lti_platform_issuer: optional string or null` + + Platform issuer URL + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -60447,13 +60585,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerDeleted object` + - `MagicLinkLoginFailed object` - An MCP server was removed from the organization. + A magic link sign-in attempt failed. - - `type: optional "mcp_server_deleted"` + - `type: optional "magic_link_login_failed"` - default: mcp_server_deleted + default: magic_link_login_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60661,14 +60799,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -60687,13 +60817,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerManagedAuthTokenExchanged object` + - `MagicLinkLoginInitiated object` - A user attempted to obtain an access token for an MCP server via enterprise managed authorization. This event reports the outcomes of attempted token exchanges. Repeated failures with the same cause may be reported once until the cause changes, and requests refused before a token exchange is attempted are not reported, except the "connector_scope_not_granted" and "identity_assertion_refused" failures described under error_type. + A user requested a magic link sign-in email. - - `type: optional "mcp_server_managed_auth_token_exchanged"` + - `type: optional "magic_link_login_initiated"` - default: mcp_server_managed_auth_token_exchanged + default: magic_link_login_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60901,48 +61031,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `managed_auth_mode: string` - - The managed-authorization mode used for the exchange ("claude" or "sso"). - - - `mcp_server_id: string` - - The MCP server the exchange was attempted for, e.g. "mcpsrv_01Ab...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `assertion_jti: optional string or null` - - The JWT ID of the identity assertion presented to the authorization server, when one was minted, for cross-reference with the identity provider's own logs. - - - `authorization_server_issuer: optional string or null` - - The issuer identifier of the authorization server the exchange was attempted against. - - - `correlation_id: optional string or null` - - An opaque identifier customers can quote when contacting Anthropic support about this exchange. - - `created_at: optional string` When this activity occurred. format: date-time - - `error_subtype: optional string or null` - - A more specific classification of the failure, when available. For authorization-server rejections this is the OAuth error code the server returned (for example "invalid_grant"); for identity-provider rejections this is the error code the identity provider returned; for refused identity assertions this is a short reason code such as "not_org_member" (the user's membership in the organization could not be confirmed). Values may be added over time; treat an unrecognized value as a generic failure. - - - `error_type: optional string or null` - - A short classification of why the exchange failed, when outcome is "failure". Values include "authorization_server_rejected", "authorization_server_unavailable", "identity_provider_rejected", "sso_session_invalid", "sso_connection_unsupported", "connector_scope_not_granted" and "identity_assertion_refused". The last two are refusals made before a token exchange was attempted: "connector_scope_not_granted" means the organization's role configuration grants no scopes on this connector; "identity_assertion_refused" means no identity assertion could be issued for this user and server (for example, the user's membership in the organization could not be confirmed), and is reported when access the user already had could not be renewed and, depending on the reason, when first connecting; error_subtype names the reason. Values may be added over time; treat an unrecognized value as a generic failure. - - - `mcp_server_name: optional string or null` - - The MCP server's display name at the time of the exchange, when available. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -60951,17 +61049,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `outcome: optional string or null` - - Whether the token exchange succeeded ("success") or was rejected ("failure"). - - - `McpServerManagedAuthUpdated object` + - `MagicLinkLoginSucceeded object` - An MCP server's enterprise managed authorization settings were set, changed, or cleared, including when they were supplied while the server was being added or edited. Fields without a "previous_" prefix describe the settings after the change and are null when the server has no managed authorization settings afterwards; "previous_" fields describe the settings before the change and are null when the server had none before (always the case for a newly added server). + A user successfully signed in with a magic link email. - - `type: optional "mcp_server_managed_auth_updated"` + - `type: optional "magic_link_login_succeeded"` - default: mcp_server_managed_auth_updated + default: magic_link_login_succeeded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61169,25 +61263,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `allowed_scopes: optional string or null` + - `auth_method: optional "magic_link" or "unspecified" or null` - The OAuth scopes managed authorization may request for the server after the change, as a space-delimited list. Null when no scope restriction is configured (or the server has no managed authorization settings); an empty string when the restriction permits no scopes. + The method the user used to authenticate. May be absent on activities recorded before this field was introduced. - - `built_in_roles_included: optional boolean or null` + - `"magic_link"` - Whether, after the change, managed authorization extends to members who hold one of the organization's built-in roles (such as User, Admin, or Owner) rather than a custom role, in addition to members whose custom role grants it. This describes whom managed authorization reaches and is reported on every change, independent of how built-in role access is configured. + - `"unspecified"` - `created_at: optional string` @@ -61195,21 +61281,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `individual_auth_enabled: optional boolean or null` - - Whether members may authorize the server individually, through their own sign-in and consent, after the change. - - - `managed_auth_enabled: optional boolean or null` - - Whether managed authorization is enabled for the server after the change, so that members whose role permits it are authorized through the organization's identity provider. - - - `managed_auth_mode: optional string or null` + - `mfa_method: optional "not_used" or "unspecified" or null` - The managed-authorization mode after the change ("claude" or "sso"): how the identity assertion presented on members' behalf is issued. Recorded whenever managed authorization settings exist, whether or not managed authorization is enabled; null when the server has no managed authorization settings after the change. + The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. - - `mcp_server_url: optional string or null` + - `"not_used"` - Origin (scheme, host and port, the default port omitted) of the MCP server at the time of the change; the path is never included. Null when not available, and on activities recorded before this field was limited to the origin. + - `"unspecified"` - `organization_id: optional string or null` @@ -61219,29 +61297,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_allowed_scopes: optional string or null` - - The OAuth scope restriction before the change, as a space-delimited list; null when no scope restriction was configured. - - - `previous_built_in_roles_included: optional boolean or null` - - Whether managed authorization extended to members holding one of the organization's built-in roles before the change. - - - `previous_individual_auth_enabled: optional boolean or null` - - Whether members could authorize the server individually before the change. - - - `previous_managed_auth_enabled: optional boolean or null` - - Whether managed authorization was enabled for the server before the change. - - - `McpServerUpdated object` + - `ManagedOrganizationSetupCompleted object` - An MCP server's configuration was updated. + Managed (AWS Marketplace) organization setup was completed. - - `type: optional "mcp_server_updated"` + - `type: optional "managed_organization_setup_completed"` - default: mcp_server_updated + default: managed_organization_setup_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61449,30 +61511,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -61487,13 +61529,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpToolPolicyUpdated object` + - `MarketplaceCreated object` - The permission restriction for an MCP tool was set or cleared. + Admin created an organization marketplace. - - `type: optional "mcp_tool_policy_updated"` + - `type: optional "marketplace_created"` - default: mcp_tool_policy_updated + default: marketplace_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61701,33 +61743,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - - `tool_name: string` + - `marketplace_id: string` - Tool name (or '*' for the MCP-server-wide default) + Tagged ID of the marketplace - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `action: optional "reenabled" or "unspecified" or null` - - "reenabled" when the change lifted the organization-wide block on the server (the block a HIPAA configuration places); unset for any other restriction change. - - - `"reenabled"` - - - `"unspecified"` - - `attestations: optional array of object` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none (a server that already carries one is not asked again). + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - `type: string` @@ -61743,9 +61769,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `max_permission: optional string or null` + - `default_installation_preference: optional string or null` - New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + Default installation preference the marketplace was created with, applied to its plugins that have no preference of their own (required, auto_install, available or not_available); absent when none was set - `organization_id: optional string or null` @@ -61755,13 +61781,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgAnalyticsAPICapabilityUpdated object` + - `MarketplaceDeleted object` - Organization analytics_api capability was enabled or disabled. + Admin deleted an organization marketplace. - - `type: optional "org_analytics_api_capability_updated"` + - `type: optional "marketplace_deleted"` - default: org_analytics_api_capability_updated + default: marketplace_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61969,6 +61995,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `marketplace_id: string` + + Tagged ID of the marketplace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -61979,10 +62009,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Whether the analytics API capability is enabled immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -61991,17 +62017,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Whether the analytics API capability was enabled immediately before this change - - - `OrgBulkDeleteInitiated object` + - `MarketplaceUpdated object` - Organization bulk deletion was initiated. + Admin updated an organization marketplace. - - `type: optional "org_bulk_delete_initiated"` + - `type: optional "marketplace_updated"` - default: org_bulk_delete_initiated + default: marketplace_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62209,10 +62231,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `marketplace_id: string` + + Tagged ID of the marketplace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -62227,13 +62265,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCapabilityGrantAdded object` + - `updates: optional array of object` - A capability grant was added to a workspace or role. + The setting changes applied in this update; empty for an update that changed no recorded setting (such as a sync) - - `type: optional "org_capability_grant_added"` + - `type: "default_installation_preference" or "unspecified"` - default: org_capability_grant_added + The marketplace setting that changed + + - `"default_installation_preference"` + + - `"unspecified"` + + - `current_value: string` + + Setting value immediately after this change; empty when the setting is no longer set + + - `previous_value: string` + + Setting value immediately before this change; empty when the setting was not set + + - `MarketplaceWebhookDeleted object` + + Admin removed the GitHub push webhook for a marketplace. + + - `type: optional "marketplace_webhook_deleted"` + + default: marketplace_webhook_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62441,23 +62499,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `grant_type: string` - - The type of capability grant that was added. - - - `principal_id: string` - - Tagged ID of the principal the grant was added to. - - - `principal_type: "rbac_role" or "unspecified" or "workspace"` - - The kind of principal the grant was added to. - - - `"rbac_role"` - - - `"unspecified"` + - `marketplace_id: string` - - `"workspace"` + Tagged ID of the marketplace - `id: optional string` @@ -62477,13 +62521,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCapabilityGrantRemoved object` + - `MarketplaceWebhookProvisioned object` - A capability grant was removed from a workspace or role. + Admin provisioned a GitHub push webhook for a marketplace. - - `type: optional "org_capability_grant_removed"` + - `type: optional "marketplace_webhook_provisioned"` - default: org_capability_grant_removed + default: marketplace_webhook_provisioned - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62691,23 +62735,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `grant_type: string` - - The type of capability grant that was removed. - - - `principal_id: string` - - Tagged ID of the principal the grant was removed from. - - - `principal_type: "rbac_role" or "unspecified" or "workspace"` - - The kind of principal the grant was removed from. - - - `"rbac_role"` - - - `"unspecified"` + - `marketplace_id: string` - - `"workspace"` + Tagged ID of the marketplace - `id: optional string` @@ -62719,6 +62749,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `github_webhook_id: optional number or null` + + GitHub-assigned webhook ID returned by the hooks API + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -62727,13 +62761,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgChatCoworkUnifiedDisabled object` + - `McpDirectoryServerPublished object` - The organization's setting for the unified Chat and Cowork experience was turned off. + The organization published its approved MCP directory listing. - - `type: optional "org_chat_cowork_unified_disabled"` + - `type: optional "mcp_directory_server_published"` - default: org_chat_cowork_unified_disabled + default: mcp_directory_server_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62941,6 +62975,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_directory_server_id: string` + + Tagged ID of the MCP directory listing + + - `mcp_directory_server_name: string` + + Display name of the MCP directory listing + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -62951,10 +62993,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -62963,17 +63001,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgChatCoworkUnifiedEnabled object` + - `McpServerCreated object` - The organization's setting for the unified Chat and Cowork experience was turned on. + An MCP server was added to the organization. - - `type: optional "org_chat_cowork_unified_enabled"` + - `type: optional "mcp_server_created"` - default: org_chat_cowork_unified_enabled + default: mcp_server_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63181,20 +63215,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -63203,17 +63253,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeDataSharingDisabled object` + - `McpServerDeleted object` - Organization Claude Code data sharing was disabled. + An MCP server was removed from the organization. - - `type: optional "org_claude_code_data_sharing_disabled"` + - `type: optional "mcp_server_deleted"` - default: org_claude_code_data_sharing_disabled + default: mcp_server_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63421,6 +63467,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -63431,10 +63485,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -63443,17 +63493,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeDataSharingEnabled object` + - `McpServerManagedAuthTokenExchanged object` - Organization Claude Code data sharing was enabled. + A user attempted to obtain an access token for an MCP server via enterprise managed authorization. This event reports the outcomes of attempted token exchanges. Repeated failures with the same cause may be reported once until the cause changes, and requests refused before a token exchange is attempted are not reported, except the "connector_scope_not_granted" and "identity_assertion_refused" failures described under error_type. - - `type: optional "org_claude_code_data_sharing_enabled"` + - `type: optional "mcp_server_managed_auth_token_exchanged"` - default: org_claude_code_data_sharing_enabled + default: mcp_server_managed_auth_token_exchanged - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63661,19 +63707,47 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `managed_auth_mode: string` + + The managed-authorization mode used for the exchange ("claude" or "sso"). + + - `mcp_server_id: string` + + The MCP server the exchange was attempted for, e.g. "mcpsrv_01Ab...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `assertion_jti: optional string or null` + + The JWT ID of the identity assertion presented to the authorization server, when one was minted, for cross-reference with the identity provider's own logs. + + - `authorization_server_issuer: optional string or null` + + The issuer identifier of the authorization server the exchange was attempted against. + + - `correlation_id: optional string or null` + + An opaque identifier customers can quote when contacting Anthropic support about this exchange. + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` + - `error_subtype: optional string or null` - Setting value immediately after this change + A more specific classification of the failure, when available. For authorization-server rejections this is the OAuth error code the server returned (for example "invalid_grant"); for identity-provider rejections this is the error code the identity provider returned; for refused identity assertions this is a short reason code such as "not_org_member" (the user's membership in the organization could not be confirmed). Values may be added over time; treat an unrecognized value as a generic failure. + + - `error_type: optional string or null` + + A short classification of why the exchange failed, when outcome is "failure". Values include "authorization_server_rejected", "authorization_server_unavailable", "identity_provider_rejected", "sso_session_invalid", "sso_connection_unsupported", "connector_scope_not_granted" and "identity_assertion_refused". The last two are refusals made before a token exchange was attempted: "connector_scope_not_granted" means the organization's role configuration grants no scopes on this connector; "identity_assertion_refused" means no identity assertion could be issued for this user and server (for example, the user's membership in the organization could not be confirmed), and is reported when access the user already had could not be renewed and, depending on the reason, when first connecting; error_subtype names the reason. Values may be added over time; treat an unrecognized value as a generic failure. + + - `mcp_server_name: optional string or null` + + The MCP server's display name at the time of the exchange, when available. - `organization_id: optional string or null` @@ -63683,17 +63757,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `outcome: optional string or null` - Setting value immediately before this change + Whether the token exchange succeeded ("success") or was rejected ("failure"). - - `OrgClaudeCodeDesktopDisabled object` + - `McpServerManagedAuthUpdated object` - Organization Claude Code Desktop was disabled. + An MCP server's enterprise managed authorization settings were set, changed, or cleared, including when they were supplied while the server was being added or edited. Fields without a "previous_" prefix describe the settings after the change and are null when the server has no managed authorization settings afterwards; "previous_" fields describe the settings before the change and are null when the server had none before (always the case for a newly added server). - - `type: optional "org_claude_code_desktop_disabled"` + - `type: optional "mcp_server_managed_auth_updated"` - default: org_claude_code_desktop_disabled + default: mcp_server_managed_auth_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63901,19 +63975,47 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `allowed_scopes: optional string or null` + + The OAuth scopes managed authorization may request for the server after the change, as a space-delimited list. Null when no scope restriction is configured (or the server has no managed authorization settings); an empty string when the restriction permits no scopes. + + - `built_in_roles_included: optional boolean or null` + + Whether, after the change, managed authorization extends to members who hold one of the organization's built-in roles (such as User, Admin, or Owner) rather than a custom role, in addition to members whose custom role grants it. This describes whom managed authorization reaches and is reported on every change, independent of how built-in role access is configured. + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` + - `individual_auth_enabled: optional boolean or null` - Setting value immediately after this change + Whether members may authorize the server individually, through their own sign-in and consent, after the change. + + - `managed_auth_enabled: optional boolean or null` + + Whether managed authorization is enabled for the server after the change, so that members whose role permits it are authorized through the organization's identity provider. + + - `managed_auth_mode: optional string or null` + + The managed-authorization mode after the change ("claude" or "sso"): how the identity assertion presented on members' behalf is issued. Recorded whenever managed authorization settings exist, whether or not managed authorization is enabled; null when the server has no managed authorization settings after the change. + + - `mcp_server_url: optional string or null` + + Origin (scheme, host and port, the default port omitted) of the MCP server at the time of the change; the path is never included. Null when not available, and on activities recorded before this field was limited to the origin. - `organization_id: optional string or null` @@ -63923,17 +64025,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `previous_allowed_scopes: optional string or null` - Setting value immediately before this change + The OAuth scope restriction before the change, as a space-delimited list; null when no scope restriction was configured. - - `OrgClaudeCodeDesktopEnabled object` + - `previous_built_in_roles_included: optional boolean or null` - Organization Claude Code Desktop was enabled. + Whether managed authorization extended to members holding one of the organization's built-in roles before the change. - - `type: optional "org_claude_code_desktop_enabled"` + - `previous_individual_auth_enabled: optional boolean or null` - default: org_claude_code_desktop_enabled + Whether members could authorize the server individually before the change. + + - `previous_managed_auth_enabled: optional boolean or null` + + Whether managed authorization was enabled for the server before the change. + + - `McpServerUpdated object` + + An MCP server's configuration was updated. + + - `type: optional "mcp_server_updated"` + + default: mcp_server_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64141,20 +64255,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64163,17 +64293,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeZeroDataRetentionDisabled object` + - `McpToolPolicyUpdated object` - A primary owner disabled zero data retention for Claude Code, so Claude Code content is retained according to the organization's data retention settings. + The permission restriction for an MCP tool was set or cleared. - - `type: optional "org_claude_code_zero_data_retention_disabled"` + - `type: optional "mcp_tool_policy_updated"` - default: org_claude_code_zero_data_retention_disabled + default: mcp_tool_policy_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64381,16 +64507,52 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + + - `tool_name: string` + + Tool name (or '*' for the MCP-server-wide default) + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `action: optional "reenabled" or "unspecified" or null` + + "reenabled" when the change lifted the organization-wide block on the server (the block a HIPAA configuration places); unset for any other restriction change. + + - `"reenabled"` + + - `"unspecified"` + + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none (a server that already carries one is not asked again). + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time + - `max_permission: optional string or null` + + New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64399,13 +64561,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgComplianceAPISettingsUpdated object` + - `OrgAnalyticsAPICapabilityUpdated object` - Organization compliance API settings were updated. + Organization analytics_api capability was enabled or disabled. - - `type: optional "org_compliance_api_settings_updated"` + - `type: optional "org_analytics_api_capability_updated"` - default: org_compliance_api_settings_updated + default: org_analytics_api_capability_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64617,20 +64779,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `compliance_api_enabled: optional boolean or null` - - Whether the compliance API is enabled for the organization after this change. - - - `compliance_api_logging_enabled: optional boolean or null` - - Whether compliance activity logging is enabled for the organization after this change. - - `created_at: optional string` When this activity occurred. format: date-time + - `current_value: optional boolean or null` + + Whether the analytics API capability is enabled immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64639,13 +64797,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgConnectorDomainGuardUpdated object` + - `previous_value: optional boolean or null` - Enterprise admin changed whether connectors are restricted to verified domains. + Whether the analytics API capability was enabled immediately before this change - - `type: optional "org_connector_domain_guard_updated"` + - `OrgBulkDeleteInitiated object` - default: org_connector_domain_guard_updated + Organization bulk deletion was initiated. + + - `type: optional "org_bulk_delete_initiated"` + + default: org_bulk_delete_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64853,8 +65015,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enforced: boolean` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -64873,13 +65033,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkActWithoutAskingModeDisabled object` + - `OrgCapabilityGrantAdded object` - The "Act without asking" mode in Cowork was disabled for the organization, so members can no longer let Claude act without asking for approval. + A capability grant was added to a workspace or role. - - `type: optional "org_cowork_act_without_asking_mode_disabled"` + - `type: optional "org_capability_grant_added"` - default: org_cowork_act_without_asking_mode_disabled + default: org_capability_grant_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65087,6 +65247,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `grant_type: string` + + The type of capability grant that was added. + + - `principal_id: string` + + Tagged ID of the principal the grant was added to. + + - `principal_type: "rbac_role" or "unspecified" or "workspace"` + + The kind of principal the grant was added to. + + - `"rbac_role"` + + - `"unspecified"` + + - `"workspace"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -65105,13 +65283,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkActWithoutAskingModeEnabled object` + - `OrgCapabilityGrantRemoved object` - The "Act without asking" mode in Cowork was enabled for the organization, allowing members to let Claude act without asking for approval. + A capability grant was removed from a workspace or role. - - `type: optional "org_cowork_act_without_asking_mode_enabled"` + - `type: optional "org_capability_grant_removed"` - default: org_cowork_act_without_asking_mode_enabled + default: org_capability_grant_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65319,6 +65497,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `grant_type: string` + + The type of capability grant that was removed. + + - `principal_id: string` + + Tagged ID of the principal the grant was removed from. + + - `principal_type: "rbac_role" or "unspecified" or "workspace"` + + The kind of principal the grant was removed from. + + - `"rbac_role"` + + - `"unspecified"` + + - `"workspace"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -65337,13 +65533,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkAgentDisabled object` + - `OrgChatCoworkUnifiedDisabled object` - Organization Cowork Agent was disabled. + The organization's setting for the unified Chat and Cowork experience was turned off. - - `type: optional "org_cowork_agent_disabled"` + - `type: optional "org_chat_cowork_unified_disabled"` - default: org_cowork_agent_disabled + default: org_chat_cowork_unified_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65577,13 +65773,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkAgentEnabled object` + - `OrgChatCoworkUnifiedEnabled object` - Organization Cowork Agent was enabled. + The organization's setting for the unified Chat and Cowork experience was turned on. - - `type: optional "org_cowork_agent_enabled"` + - `type: optional "org_chat_cowork_unified_enabled"` - default: org_cowork_agent_enabled + default: org_chat_cowork_unified_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65817,13 +66013,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkAutoModeDisabled object` + - `OrgClaudeCodeDataSharingDisabled object` - The "Auto" permission mode in Cowork was disabled for the organization, so members can no longer let Claude approve its own actions after a safety check. + Organization Claude Code data sharing was disabled. - - `type: optional "org_cowork_auto_mode_disabled"` + - `type: optional "org_claude_code_data_sharing_disabled"` - default: org_cowork_auto_mode_disabled + default: org_claude_code_data_sharing_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66041,237 +66237,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgCoworkAutoModeEnabled object` - - The "Auto" permission mode in Cowork was enabled for the organization, allowing members to let Claude approve its own actions after a safety check. - - - `type: optional "org_cowork_auto_mode_enabled"` - - default: org_cowork_auto_mode_enabled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. + - `current_value: optional boolean or null` - format: date-time + Setting value immediately after this change - `organization_id: optional string or null` @@ -66281,13 +66249,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkBrowserPaneDisabled object` + - `previous_value: optional boolean or null` - The in-app browser in Cowork was disabled for the organization, so Claude can no longer open or use websites in a browser pane during members' Cowork sessions. + Setting value immediately before this change - - `type: optional "org_cowork_browser_pane_disabled"` + - `OrgClaudeCodeDataSharingEnabled object` - default: org_cowork_browser_pane_disabled + Organization Claude Code data sharing was enabled. + + - `type: optional "org_claude_code_data_sharing_enabled"` + + default: org_claude_code_data_sharing_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66505,237 +66477,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgCoworkBrowserPaneEnabled object` - - The in-app browser in Cowork was enabled for the organization, letting Claude open and use websites in a browser pane during members' Cowork sessions. - - - `type: optional "org_cowork_browser_pane_enabled"` - - default: org_cowork_browser_pane_enabled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. + - `current_value: optional boolean or null` - format: date-time + Setting value immediately after this change - `organization_id: optional string or null` @@ -66745,13 +66489,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkDisabled object` + - `previous_value: optional boolean or null` - Organization cowork was disabled. + Setting value immediately before this change - - `type: optional "org_cowork_disabled"` + - `OrgClaudeCodeDesktopDisabled object` - default: org_cowork_disabled + Organization Claude Code Desktop was disabled. + + - `type: optional "org_claude_code_desktop_disabled"` + + default: org_claude_code_desktop_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66985,13 +66733,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkEnabled object` + - `OrgClaudeCodeDesktopEnabled object` - Organization cowork was enabled. + Organization Claude Code Desktop was enabled. - - `type: optional "org_cowork_enabled"` + - `type: optional "org_claude_code_desktop_enabled"` - default: org_cowork_enabled + default: org_claude_code_desktop_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67225,13 +66973,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkMcpAlwaysAllowDisabled object` + - `OrgClaudeCodeZeroDataRetentionDisabled object` - The "Always allow" option for connector tools in Cowork was disabled for the organization, so each use of a connector tool that can make changes requires approval. Read-only connector tools are not affected by this setting. + A primary owner disabled zero data retention for Claude Code, so Claude Code content is retained according to the organization's data retention settings. - - `type: optional "org_cowork_mcp_always_allow_disabled"` + - `type: optional "org_claude_code_zero_data_retention_disabled"` - default: org_cowork_mcp_always_allow_disabled + default: org_claude_code_zero_data_retention_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67457,13 +67205,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkMcpAlwaysAllowEnabled object` + - `OrgComplianceAPISettingsUpdated object` - The "Always allow" option for connector tools in Cowork was enabled for the organization, letting members approve a connector tool that can make changes once and allow its later uses automatically. Read-only connector tools are not affected by this setting. + Organization compliance API settings were updated. - - `type: optional "org_cowork_mcp_always_allow_enabled"` + - `type: optional "org_compliance_api_settings_updated"` - default: org_cowork_mcp_always_allow_enabled + default: org_compliance_api_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67675,6 +67423,14 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `compliance_api_enabled: optional boolean or null` + + Whether the compliance API is enabled for the organization after this change. + + - `compliance_api_logging_enabled: optional boolean or null` + + Whether compliance activity logging is enabled for the organization after this change. + - `created_at: optional string` When this activity occurred. @@ -67689,13 +67445,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkOtlpSettingsUpdated object` + - `OrgConnectorDomainGuardUpdated object` - The organization's Cowork OpenTelemetry monitoring export settings were updated. + Enterprise admin changed whether connectors are restricted to verified domains. - - `type: optional "org_cowork_otlp_settings_updated"` + - `type: optional "org_connector_domain_guard_updated"` - default: org_cowork_otlp_settings_updated + default: org_connector_domain_guard_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67903,6 +67659,8 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enforced: boolean` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -67913,22 +67671,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_otlp_content_capture: optional array of string or null` - - The organization's content-capture settings after the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings are not set or were not modified by this update. - - - `new_otlp_endpoint: optional string or null` - - The OpenTelemetry export endpoint after the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint is unset or was not itself modified by this update. - - - `new_otlp_protocol: optional string or null` - - The OpenTelemetry export protocol after the change. Null if the protocol is unset or was not itself modified by this update. - - - `new_otlp_resource_attributes: optional string or null` - - The OpenTelemetry resource attributes after the change. Null if the attributes are unset or were not themselves modified by this update. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -67937,39 +67679,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `otlp_headers_change: optional "cleared" or "set" or "unspecified" or null` - - Whether the OpenTelemetry export headers were set or cleared. 'set' is recorded for any non-empty submission, including resubmission of an unchanged value. Header values are never included. - - - `"cleared"` - - - `"set"` - - - `"unspecified"` - - - `previous_otlp_content_capture: optional array of string or null` - - The organization's content-capture settings before the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings were not previously set or were not modified by this update. - - - `previous_otlp_endpoint: optional string or null` - - The OpenTelemetry export endpoint before the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint was previously unset or was not itself modified by this update. - - - `previous_otlp_protocol: optional string or null` - - The OpenTelemetry export protocol before the change. Null if the protocol was previously unset or was not itself modified by this update. - - - `previous_otlp_resource_attributes: optional string or null` - - The OpenTelemetry resource attributes before the change. Null if the attributes were previously unset or were not themselves modified by this update. - - - `OrgCoworkRemoteDisabled object` + - `OrgCoworkActWithoutAskingModeDisabled object` - Running Cowork in the cloud was disabled for the organization, so members can no longer run Cowork sessions in Anthropic-hosted remote environments. + The "Act without asking" mode in Cowork was disabled for the organization, so members can no longer let Claude act without asking for approval. - - `type: optional "org_cowork_remote_disabled"` + - `type: optional "org_cowork_act_without_asking_mode_disabled"` - default: org_cowork_remote_disabled + default: org_cowork_act_without_asking_mode_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68195,13 +67911,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkRemoteEnabled object` + - `OrgCoworkActWithoutAskingModeEnabled object` - Running Cowork in the cloud was enabled for the organization, allowing members to run Cowork sessions in Anthropic-hosted remote environments. + The "Act without asking" mode in Cowork was enabled for the organization, allowing members to let Claude act without asking for approval. - - `type: optional "org_cowork_remote_enabled"` + - `type: optional "org_cowork_act_without_asking_mode_enabled"` - default: org_cowork_remote_enabled + default: org_cowork_act_without_asking_mode_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68427,13 +68143,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCreationBlocked object` + - `OrgCoworkAgentDisabled object` - Organization creation was blocked. + Organization Cowork Agent was disabled. - - `type: optional "org_creation_blocked"` + - `type: optional "org_cowork_agent_disabled"` - default: org_creation_blocked + default: org_cowork_agent_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68651,6 +68367,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -68659,17 +68379,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` + - `previous_value: optional boolean or null` - "blocked" when the organization started preventing users with an email address at one of its verified domains from creating new organizations, "unblocked" when it stopped. + Setting value immediately before this change - - `OrgDataExportAccessed object` + - `OrgCoworkAgentEnabled object` - Organization data export file was accessed/downloaded via signed URL. + Organization Cowork Agent was enabled. - - `type: optional "org_data_export_accessed"` + - `type: optional "org_cowork_agent_enabled"` - default: org_data_export_accessed + default: org_cowork_agent_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68887,15 +68607,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was downloaded. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` + - `current_value: optional boolean or null` - - `"workbench"` + Setting value immediately after this change - `organization_id: optional string or null` @@ -68905,13 +68619,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDataExportCompleted object` + - `previous_value: optional boolean or null` - Organization data export was completed. + Setting value immediately before this change - - `type: optional "org_data_export_completed"` + - `OrgCoworkAutoModeDisabled object` - default: org_data_export_completed + The "Auto" permission mode in Cowork was disabled for the organization, so members can no longer let Claude approve its own actions after a safety check. + + - `type: optional "org_cowork_auto_mode_disabled"` + + default: org_cowork_auto_mode_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69129,16 +68847,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was exported. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` - - - `"workbench"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -69147,13 +68855,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDataExportStarted object` + - `OrgCoworkAutoModeEnabled object` - Organization data export was started. + The "Auto" permission mode in Cowork was enabled for the organization, allowing members to let Claude approve its own actions after a safety check. - - `type: optional "org_data_export_started"` + - `type: optional "org_cowork_auto_mode_enabled"` - default: org_data_export_started + default: org_cowork_auto_mode_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69371,16 +69079,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was exported. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` - - - `"workbench"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -69389,23 +69087,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scope: optional "member_own_data" or "organization" or "unspecified" or null` - - Breadth of the export — the whole organization, or only the requesting member's own data. Absent on records written before this field was introduced. - - - `"member_own_data"` - - - `"organization"` - - - `"unspecified"` - - - `OrgDataResidencyUpdated object` + - `OrgCoworkBrowserPaneDisabled object` - The organization's inference data residency settings were updated. + The in-app browser in Cowork was disabled for the organization, so Claude can no longer open or use websites in a browser pane during members' Cowork sessions. - - `type: optional "org_data_residency_updated"` + - `type: optional "org_cowork_browser_pane_disabled"` - default: org_data_residency_updated + default: org_cowork_browser_pane_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69631,35 +69319,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "allowed_inference_geos" or "default_inference_geo" or "unspecified"` - - The data residency setting that changed - - - `"allowed_inference_geos"` - - - `"default_inference_geo"` - - - `"unspecified"` - - - `current_value: optional string or null` - - Setting value immediately after this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. - - - `previous_value: optional string or null` - - Setting value immediately before this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. - - - `OrgDeletedViaBulk object` + - `OrgCoworkBrowserPaneEnabled object` - Organization was deleted via bulk operation. + The in-app browser in Cowork was enabled for the organization, letting Claude open and use websites in a browser pane during members' Cowork sessions. - - `type: optional "org_deleted_via_bulk"` + - `type: optional "org_cowork_browser_pane_enabled"` - default: org_deleted_via_bulk + default: org_cowork_browser_pane_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69885,13 +69551,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDeletionRequested object` + - `OrgCoworkDisabled object` - Organization deletion was requested. + Organization cowork was disabled. - - `type: optional "org_deletion_requested"` + - `type: optional "org_cowork_disabled"` - default: org_deletion_requested + default: org_cowork_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70109,6 +69775,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -70117,13 +69787,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncCompleted object` + - `previous_value: optional boolean or null` - Organization directory resync completed successfully. + Setting value immediately before this change - - `type: optional "org_directory_resync_completed"` + - `OrgCoworkEnabled object` - default: org_directory_resync_completed + Organization cowork was enabled. + + - `type: optional "org_cowork_enabled"` + + default: org_cowork_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70331,10 +70005,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying the directory resync run that completed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70345,6 +70015,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -70353,13 +70027,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncFailed object` + - `previous_value: optional boolean or null` - Organization directory resync failed. + Setting value immediately before this change - - `type: optional "org_directory_resync_failed"` + - `OrgCoworkMcpAlwaysAllowDisabled object` - default: org_directory_resync_failed + The "Always allow" option for connector tools in Cowork was disabled for the organization, so each use of a connector tool that can make changes requires approval. Read-only connector tools are not affected by this setting. + + - `type: optional "org_cowork_mcp_always_allow_disabled"` + + default: org_cowork_mcp_always_allow_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70567,10 +70245,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying the directory resync run that failed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70589,13 +70263,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncStarted object` + - `OrgCoworkMcpAlwaysAllowEnabled object` - Organization directory resync was started asynchronously. + The "Always allow" option for connector tools in Cowork was enabled for the organization, letting members approve a connector tool that can make changes once and allow its later uses automatically. Read-only connector tools are not affected by this setting. - - `type: optional "org_directory_resync_started"` + - `type: optional "org_cowork_mcp_always_allow_enabled"` - default: org_directory_resync_started + default: org_cowork_mcp_always_allow_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70803,10 +70477,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying this directory resync run - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70825,17 +70495,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `sync_destinations: optional array of string` - - Sync destinations the resync targets (for example, accounts and rbac) - - - `OrgDirectorySyncActivated object` + - `OrgCoworkOtlpSettingsUpdated object` - Organization directory sync was activated. + The organization's Cowork OpenTelemetry monitoring export settings were updated. - - `type: optional "org_directory_sync_activated"` + - `type: optional "org_cowork_otlp_settings_updated"` - default: org_directory_sync_activated + default: org_cowork_otlp_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71053,253 +70719,63 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgDirectorySyncAddInitiated object` - - Organization directory sync setup was initiated. - - - `type: optional "org_directory_sync_add_initiated"` - - default: org_directory_sync_add_initiated - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. + - `new_otlp_content_capture: optional array of string or null` - - `type: optional "oidc"` + The organization's content-capture settings after the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings are not set or were not modified by this update. - default: oidc + - `new_otlp_endpoint: optional string or null` - - `issuer: optional string or null` + The OpenTelemetry export endpoint after the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint was cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint is unset or was not itself modified by this update. - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` + - `new_otlp_protocol: optional string or null` - - `subject: optional string or null` + The OpenTelemetry export protocol after the change. Null if the protocol is unset or was not itself modified by this update. - The provider's verified identifier for the caller; its form depends on the provider. + - `new_otlp_resource_attributes: optional string or null` - - `user_agent: optional string or null` + The OpenTelemetry resource attributes after the change. Null if the attributes are unset or were not themselves modified by this update. - - `AttestedDeviceActor object` + - `organization_id: optional string or null` - An attested mobile device authenticated via Apple App Attest. + Organization ID this activity is associated with - - `type: optional "attested_device_actor"` + - `organization_uuid: optional string or null` - default: attested_device_actor + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `external_client_id: string` + - `otlp_headers_change: optional "cleared" or "set" or "unspecified" or null` - - `kid_hash: string` + Whether the OpenTelemetry export headers were set or cleared. 'set' is recorded for any non-empty submission, including resubmission of an unchanged value. Header values are never included. - - `ip_address: optional string or null` + - `"cleared"` - - `user_agent: optional string or null` + - `"set"` - - `id: optional string` + - `"unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `previous_otlp_content_capture: optional array of string or null` - - `created_at: optional string` + The organization's content-capture settings before the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings were not previously set or were not modified by this update. - When this activity occurred. + - `previous_otlp_endpoint: optional string or null` - format: date-time + The OpenTelemetry export endpoint before the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint had been cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint was previously unset or was not itself modified by this update. - - `organization_id: optional string or null` + - `previous_otlp_protocol: optional string or null` - Organization ID this activity is associated with + The OpenTelemetry export protocol before the change. Null if the protocol was previously unset or was not itself modified by this update. - - `organization_uuid: optional string or null` + - `previous_otlp_resource_attributes: optional string or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + The OpenTelemetry resource attributes before the change. Null if the attributes were previously unset or were not themselves modified by this update. - - `OrgDirectorySyncDeleted object` + - `OrgCoworkRemoteDisabled object` - Organization directory sync was deleted. + Running Cowork in the cloud was disabled for the organization, so members can no longer run Cowork sessions in Anthropic-hosted remote environments. - - `type: optional "org_directory_sync_deleted"` + - `type: optional "org_cowork_remote_disabled"` - default: org_directory_sync_deleted + default: org_cowork_remote_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71525,13 +71001,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilityDisabled object` + - `OrgCoworkRemoteEnabled object` - Admin disabled organization discoverability. + Running Cowork in the cloud was enabled for the organization, allowing members to run Cowork sessions in Anthropic-hosted remote environments. - - `type: optional "org_discoverability_disabled"` + - `type: optional "org_cowork_remote_enabled"` - default: org_discoverability_disabled + default: org_cowork_remote_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71757,13 +71233,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilityEnabled object` + - `OrgCreationBlocked object` - Admin enabled organization discoverability. + Organization creation was blocked. - - `type: optional "org_discoverability_enabled"` + - `type: optional "org_creation_blocked"` - default: org_discoverability_enabled + default: org_creation_blocked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71989,13 +71465,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilitySettingsUpdated object` + - `reason: optional string or null` - Admin updated organization discoverability settings. + "blocked" when the organization started preventing users with an email address at one of its verified domains from creating new organizations, "unblocked" when it stopped. - - `type: optional "org_discoverability_settings_updated"` + - `OrgDataExportAccessed object` - default: org_discoverability_settings_updated + Organization data export file was accessed/downloaded via signed URL. + + - `type: optional "org_data_export_accessed"` + + default: org_data_export_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72213,6 +71693,16 @@ compliance activities that can be filtered by various criteria. format: date-time + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` + + Which data set was downloaded. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72221,13 +71711,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainAddInitiated object` + - `OrgDataExportCompleted object` - Organization domain verification was initiated. + Organization data export was completed. - - `type: optional "org_domain_add_initiated"` + - `type: optional "org_data_export_completed"` - default: org_domain_add_initiated + default: org_data_export_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72445,6 +71935,16 @@ compliance activities that can be filtered by various criteria. format: date-time + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` + + Which data set was exported. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72453,13 +71953,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainRemoved object` + - `OrgDataExportStarted object` - Organization domain was removed. + Organization data export was started. - - `type: optional "org_domain_removed"` + - `type: optional "org_data_export_started"` - default: org_domain_removed + default: org_data_export_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72677,9 +72177,15 @@ compliance activities that can be filtered by various criteria. format: date-time - - `domain: optional string or null` + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - The email domain that was removed from the organization, e.g. "example.com". + Which data set was exported. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` - `organization_id: optional string or null` @@ -72689,13 +72195,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainVerified object` + - `scope: optional "member_own_data" or "organization" or "unspecified" or null` - Organization domain was verified. + Breadth of the export — the whole organization, or only the requesting member's own data. Absent on records written before this field was introduced. - - `type: optional "org_domain_verified"` + - `"member_own_data"` - default: org_domain_verified + - `"organization"` + + - `"unspecified"` + + - `OrgDataResidencyUpdated object` + + The organization's inference data residency settings were updated. + + - `type: optional "org_data_residency_updated"` + + default: org_data_residency_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72913,10 +72429,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `domain: optional string or null` - - The email domain that was verified for the organization, e.g. "example.com". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72925,13 +72437,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyCreated object` + - `updates: optional array of object` - A CMEK external key config was created. + The field-level changes applied in this update - - `type: optional "org_external_key_created"` + - `type: "allowed_inference_geos" or "default_inference_geo" or "unspecified"` - default: org_external_key_created + The data residency setting that changed + + - `"allowed_inference_geos"` + + - `"default_inference_geo"` + + - `"unspecified"` + + - `current_value: optional string or null` + + Setting value immediately after this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. + + - `previous_value: optional string or null` + + Setting value immediately before this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. + + - `OrgDeletedViaBulk object` + + Organization was deleted via bulk operation. + + - `type: optional "org_deleted_via_bulk"` + + default: org_deleted_via_bulk - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73139,22 +72673,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the created external key config - - - `provider: "aws" or "azure" or "gcp" or "unspecified"` - - KMS provider backing the key - - - `"aws"` - - - `"azure"` - - - `"gcp"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -73173,13 +72691,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyDeleted object` + - `OrgDeletionRequested object` - A CMEK external key config was deleted. + Organization deletion was requested. - - `type: optional "org_external_key_deleted"` + - `type: optional "org_deletion_requested"` - default: org_external_key_deleted + default: org_deletion_requested - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73387,10 +72905,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the deleted external key config - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -73409,13 +72923,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyUpdated object` + - `OrgDirectoryResyncCompleted object` - A CMEK external key config was updated. + Organization directory resync completed successfully. - - `type: optional "org_external_key_updated"` + - `type: optional "org_directory_resync_completed"` - default: org_external_key_updated + default: org_directory_resync_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73623,9 +73137,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` + - `resync_uuid: string` - Tagged ID of the updated external key config + UUID identifying the directory resync run that completed. - `id: optional string` @@ -73645,37 +73159,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "display_name" or "geo" or "provider_config" or "unspecified"` - - The external key config field that changed - - - `"display_name"` - - - `"geo"` - - - `"provider_config"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `OrgExternalKeyValidated object` + - `OrgDirectoryResyncFailed object` - A CMEK external key config was validated against the customer's KMS. + Organization directory resync failed. - - `type: optional "org_external_key_validated"` + - `type: optional "org_directory_resync_failed"` - default: org_external_key_validated + default: org_directory_resync_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73883,19 +73373,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the validated external key config - - - `validation_result: "failure" or "success" or "unspecified"` - - Outcome of the encrypt/decrypt roundtrip - - - `"failure"` - - - `"success"` + - `resync_uuid: string` - - `"unspecified"` + UUID identifying the directory resync run that failed. - `id: optional string` @@ -73915,13 +73395,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaArtifactsTermsAccepted object` + - `OrgDirectoryResyncStarted object` - An owner of the organization accepted the terms for using artifacts with the HIPAA configuration enabled. + Organization directory resync was started asynchronously. - - `type: optional "org_hipaa_artifacts_terms_accepted"` + - `type: optional "org_directory_resync_started"` - default: org_hipaa_artifacts_terms_accepted + default: org_directory_resync_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74129,13 +73609,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `terms_content_hash: string` - - SHA-256 digest (hex) of the terms that were accepted. - - - `terms_version_label: string` + - `resync_uuid: string` - Version label of the terms that were accepted, e.g. "2026-10-02". + UUID identifying this directory resync run - `id: optional string` @@ -74155,13 +73631,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaClaudeCodeCoworkRestrictionsDeferred object` + - `sync_destinations: optional array of string` - The HIPAA configuration for Claude Code (local mode) and Cowork (local mode) was left off for the organization when the configuration launched, and stays off until it is applied. + Sync destinations the resync targets (for example, accounts and rbac) - - `type: optional "org_hipaa_claude_code_cowork_restrictions_deferred"` + - `OrgDirectorySyncActivated object` - default: org_hipaa_claude_code_cowork_restrictions_deferred + Organization directory sync was activated. + + - `type: optional "org_directory_sync_activated"` + + default: org_directory_sync_activated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74387,13 +73867,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaClaudeCodeCoworkRestrictionsEnabled object` + - `OrgDirectorySyncAddInitiated object` - The HIPAA configuration was applied to Claude Code (local mode) and Cowork (local mode) for the organization. + Organization directory sync setup was initiated. - - `type: optional "org_hipaa_claude_code_cowork_restrictions_enabled"` + - `type: optional "org_directory_sync_add_initiated"` - default: org_hipaa_claude_code_cowork_restrictions_enabled + default: org_directory_sync_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74601,16 +74081,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `reason: "admin_opt_in" or "enabled_by_anthropic" or "unspecified"` - - Why the HIPAA configuration was applied: "admin_opt_in" when an administrator of the organization applied it, "enabled_by_anthropic" when Anthropic applied it for the organization. - - - `"admin_opt_in"` - - - `"enabled_by_anthropic"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -74629,13 +74099,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaSelfServeEnabled object` + - `OrgDirectorySyncDeleted object` - A primary owner accepted the Business Associate Agreement and enabled the HIPAA configuration for the organization through the self-serve flow. + Organization directory sync was deleted. - - `type: optional "org_hipaa_self_serve_enabled"` + - `type: optional "org_directory_sync_deleted"` - default: org_hipaa_self_serve_enabled + default: org_directory_sync_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74843,17 +74313,237 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `baa_content_hash: string` + - `id: optional string` - SHA-256 digest (hex) of the Business Associate Agreement that was accepted. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `baa_version_label: string` + - `created_at: optional string` - Version label of the Business Associate Agreement that was accepted, e.g. "2026-05-06". + When this activity occurred. - - `setup_guide_content_hash: string` + format: date-time - SHA-256 digest (hex) of the HIPAA setup guide that was current when the HIPAA configuration was enabled. + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgDiscoverabilityDisabled object` + + Admin disabled organization discoverability. + + - `type: optional "org_discoverability_disabled"` + + default: org_discoverability_disabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` - `id: optional string` @@ -74873,13 +74563,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionCreated object` + - `OrgDiscoverabilityEnabled object` - Organization IP restriction was created. + Admin enabled organization discoverability. - - `type: optional "org_ip_restriction_created"` + - `type: optional "org_discoverability_enabled"` - default: org_ip_restriction_created + default: org_discoverability_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75097,10 +74787,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_range: optional string or null` - - The IP range added to the allowlist, e.g. "192.0.2.0/24", which is not enforced while it is inactive or the IP allowlist is turned off; absent for activities recorded before this field was added. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75109,13 +74795,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionDeleted object` + - `OrgDiscoverabilitySettingsUpdated object` - Organization IP restriction was deleted. + Admin updated organization discoverability settings. - - `type: optional "org_ip_restriction_deleted"` + - `type: optional "org_discoverability_settings_updated"` - default: org_ip_restriction_deleted + default: org_discoverability_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75333,10 +75019,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_range: optional string or null` - - The IP range removed from the allowlist, e.g. "192.0.2.0/24"; absent for activities recorded before this field was added. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75345,13 +75027,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionUpdated object` + - `OrgDomainAddInitiated object` - Organization IP restriction was updated. + Organization domain verification was initiated. - - `type: optional "org_ip_restriction_updated"` + - `type: optional "org_domain_add_initiated"` - default: org_ip_restriction_updated + default: org_domain_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75569,18 +75251,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_allowlist_enabled: optional boolean or null` - - Whether the organization's IP allowlist is turned on (true) or off (false) after this change; absent when the change did not turn the IP allowlist on or off, and for activities recorded before this field was added. - - - `ip_range: optional string or null` - - The IP range this change applied to, as it is after the change, e.g. "192.0.2.0/24"; absent when the change was not to an individual IP range, and for activities recorded before this field was added. - - - `ip_range_active: optional boolean or null` - - Whether the IP range is active on the allowlist (true) or saved but inactive (false) after this change; absent when the change did not turn the range on or off. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75589,17 +75259,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_ip_range: optional string or null` - - The IP range before this change; absent unless the range itself was changed. - - - `OrgInviteLinkDisabled object` + - `OrgDomainRemoved object` - Organization invite link was disabled. + Organization domain was removed. - - `type: optional "org_invite_link_disabled"` + - `type: optional "org_domain_removed"` - default: org_invite_link_disabled + default: org_domain_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75817,6 +75483,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `domain: optional string or null` + + The email domain that was removed from the organization, e.g. "example.com". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75825,13 +75495,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteLinkGenerated object` + - `OrgDomainVerified object` - Organization invite link was generated. + Organization domain was verified. - - `type: optional "org_invite_link_generated"` + - `type: optional "org_domain_verified"` - default: org_invite_link_generated + default: org_domain_verified - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76049,6 +75719,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `domain: optional string or null` + + The email domain that was verified for the organization, e.g. "example.com". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -76057,13 +75731,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteLinkRegenerated object` + - `OrgExternalKeyCreated object` - Organization invite link was regenerated (previous link invalidated). + A CMEK external key config was created. - - `type: optional "org_invite_link_regenerated"` + - `type: optional "org_external_key_created"` - default: org_invite_link_regenerated + default: org_external_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76271,6 +75945,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `external_key_id: string` + + Tagged ID of the created external key config + + - `provider: "aws" or "azure" or "gcp" or "unspecified"` + + KMS provider backing the key + + - `"aws"` + + - `"azure"` + + - `"gcp"` + + - `"unspecified"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -76289,13 +75979,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteViewed object` + - `OrgExternalKeyDeleted object` - An organization invite was viewed. + A CMEK external key config was deleted. - - `type: optional "org_invite_viewed"` + - `type: optional "org_external_key_deleted"` - default: org_invite_viewed + default: org_external_key_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76503,9 +76193,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invite_id: string` + - `external_key_id: string` - Tagged ID of the viewed invite + Tagged ID of the deleted external key config - `id: optional string` @@ -76525,13 +76215,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInvitesListed object` + - `OrgExternalKeyUpdated object` - Organization invites were listed. + A CMEK external key config was updated. - - `type: optional "org_invites_listed"` + - `type: optional "org_external_key_updated"` - default: org_invites_listed + default: org_external_key_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76739,6 +76429,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `external_key_id: string` + + Tagged ID of the updated external key config + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -76757,13 +76451,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinProposalDecided object` + - `updates: optional array of object` - Approve or reject decision on a parent-org join proposal. + The field-level changes applied in this update - - `type: optional "org_join_proposal_decided"` + - `type: "display_name" or "geo" or "provider_config" or "unspecified"` - default: org_join_proposal_decided + The external key config field that changed + + - `"display_name"` + + - `"geo"` + + - `"provider_config"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `OrgExternalKeyValidated object` + + A CMEK external key config was validated against the customer's KMS. + + - `type: optional "org_external_key_validated"` + + default: org_external_key_validated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76971,7 +76689,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `approved: boolean` + - `external_key_id: string` + + Tagged ID of the validated external key config + + - `validation_result: "failure" or "success" or "unspecified"` + + Outcome of the encrypt/decrypt roundtrip + + - `"failure"` + + - `"success"` + + - `"unspecified"` - `id: optional string` @@ -76991,13 +76721,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestApproved object` + - `OrgHipaaArtifactsTermsAccepted object` - Admin approved a join request. + An owner of the organization accepted the terms for using artifacts with the HIPAA configuration enabled. - - `type: optional "org_join_request_approved"` + - `type: optional "org_hipaa_artifacts_terms_accepted"` - default: org_join_request_approved + default: org_hipaa_artifacts_terms_accepted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77205,6 +76935,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `terms_content_hash: string` + + SHA-256 digest (hex) of the terms that were accepted. + + - `terms_version_label: string` + + Version label of the terms that were accepted, e.g. "2026-10-02". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77223,13 +76961,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestCreated object` + - `OrgHipaaClaudeCodeCoworkRestrictionsDeferred object` - User requested to join an organization. + The HIPAA configuration for Claude Code (local mode) and Cowork (local mode) was left off for the organization when the configuration launched, and stays off until it is applied. - - `type: optional "org_join_request_created"` + - `type: optional "org_hipaa_claude_code_cowork_restrictions_deferred"` - default: org_join_request_created + default: org_hipaa_claude_code_cowork_restrictions_deferred - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77455,13 +77193,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestDismissed object` + - `OrgHipaaClaudeCodeCoworkRestrictionsEnabled object` - Admin dismissed a join request. + The HIPAA configuration was applied to Claude Code (local mode) and Cowork (local mode) for the organization. - - `type: optional "org_join_request_dismissed"` + - `type: optional "org_hipaa_claude_code_cowork_restrictions_enabled"` - default: org_join_request_dismissed + default: org_hipaa_claude_code_cowork_restrictions_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77669,6 +77407,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `reason: "admin_opt_in" or "enabled_by_anthropic" or "unspecified"` + + Why the HIPAA configuration was applied: "admin_opt_in" when an administrator of the organization applied it, "enabled_by_anthropic" when Anthropic applied it for the organization. + + - `"admin_opt_in"` + + - `"enabled_by_anthropic"` + + - `"unspecified"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77687,13 +77435,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestInstantApproved object` + - `OrgHipaaSelfServeEnabled object` - Join request was instantly approved. + A primary owner accepted the Business Associate Agreement and enabled the HIPAA configuration for the organization through the self-serve flow. - - `type: optional "org_join_request_instant_approved"` + - `type: optional "org_hipaa_self_serve_enabled"` - default: org_join_request_instant_approved + default: org_hipaa_self_serve_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77901,6 +77649,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `baa_content_hash: string` + + SHA-256 digest (hex) of the Business Associate Agreement that was accepted. + + - `baa_version_label: string` + + Version label of the Business Associate Agreement that was accepted, e.g. "2026-05-06". + + - `setup_guide_content_hash: string` + + SHA-256 digest (hex) of the HIPAA setup guide that was current when the HIPAA configuration was enabled. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77919,13 +77679,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestsBulkDismissed object` + - `OrgIPRestrictionCreated object` - Admin bulk-dismissed join requests. + Organization IP restriction was created. - - `type: optional "org_join_requests_bulk_dismissed"` + - `type: optional "org_ip_restriction_created"` - default: org_join_requests_bulk_dismissed + default: org_ip_restriction_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78143,6 +77903,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `ip_range: optional string or null` + + The IP range added to the allowlist, e.g. "192.0.2.0/24", which is not enforced while it is inactive or the IP allowlist is turned off; absent for activities recorded before this field was added. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -78151,13 +77915,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgLibrarySubmissionCreated object` + - `OrgIPRestrictionDeleted object` - A member submitted one of their own skills or plugins for publication into the organization library. + Organization IP restriction was deleted. - - `type: optional "org_library_submission_created"` + - `type: optional "org_ip_restriction_deleted"` - default: org_library_submission_created + default: org_ip_restriction_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78365,40 +78129,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `library_submission_id: string` - - The submission. - - - `publish_policy: "off" or "open" or "review" or "unspecified"` - - The organization's Publishing setting when the submission was made: "review" (Requires review) or "open" (Open). Any decision, and whether a reviewer made it, is recorded as org_library_submission_resolved with the same library_submission_id. - - - `"off"` - - - `"open"` - - - `"review"` - - - `"unspecified"` - - - `source_kind: "plugin" or "skill" or "unspecified"` - - Whether the item was submitted as a skill or as a plugin. - - - `"plugin"` - - - `"skill"` - - - `"unspecified"` - - - `source_plugin_id: string` - - The member's own skill or plugin that was submitted. - - - `source_plugin_version_id: string` - - The exact version that was submitted. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -78409,6 +78139,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `ip_range: optional string or null` + + The IP range removed from the allowlist, e.g. "192.0.2.0/24"; absent for activities recorded before this field was added. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -78417,17 +78151,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates_published_plugin_id: optional string or null` - - The existing library entry this submission proposes to update; unset for a new entry. - - - `OrgLibrarySubmissionResolved object` + - `OrgIPRestrictionUpdated object` - A member's submission of a skill or plugin to the organization library was accepted or denied, or an accepted one finished publishing. + Organization IP restriction was updated. - - `type: optional "org_library_submission_resolved"` + - `type: optional "org_ip_restriction_updated"` - default: org_library_submission_resolved + default: org_ip_restriction_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78635,69 +78365,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `content_hash: string` - - SHA-256 digest (hex) of the submitted version's archive, as submitted. Set only on a record whose publish_completed is true, and may be empty even there. A digest of the content, never the content itself. - - - `decision: "accepted" or "denied" or "unspecified"` - - Whether the submission was accepted into the library or denied. - - - `"accepted"` - - - `"denied"` - - - `"unspecified"` - - - `destination_marketplace_id: string` - - The marketplace the submission was accepted into. Empty on a denial. - - - `publish_completed: boolean` - - Whether publication had completed when this record was written. If it completed with the acceptance, there is one accepted record and this is true. Otherwise this is false, and if publication completes later, a second accepted record with the same library_submission_id follows with this set to true. - - - `published_plugin_version_id: string` - - The published version. Empty when publish_completed is false. - - - `source_plugin_id: string` - - The member's own skill or plugin that was submitted. - - - `source_plugin_version_id: string` - - The exact version that was decided on. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with the decision, such as "safe_for_phi"; empty when none were given, and on a second accepted record. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time - - `installation_preference: optional string or null` + - `ip_allowlist_enabled: optional boolean or null` - The installation preference the submission was accepted with: "available", "auto_install" or "required". Unset on a denial, and when an update to an existing library entry was accepted without one. + Whether the organization's IP allowlist is turned on (true) or off (false) after this change; absent when the change did not turn the IP allowlist on or off, and for activities recorded before this field was added. - - `library_submission_id: optional string or null` + - `ip_range: optional string or null` - The submission that was decided on. + The IP range this change applied to, as it is after the change, e.g. "192.0.2.0/24"; absent when the change was not to an individual IP range, and for activities recorded before this field was added. + + - `ip_range_active: optional boolean or null` + + Whether the IP range is active on the allowlist (true) or saved but inactive (false) after this change; absent when the change did not turn the range on or off. - `organization_id: optional string or null` @@ -78707,33 +78395,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `publish_policy: optional "off" or "open" or "review" or "unspecified" or null` - - How this submission was resolved, whatever the organization's setting: "review" when a library reviewer accepted or denied it, "open" when it was accepted on submission with no reviewer. - - - `"off"` - - - `"open"` - - - `"review"` - - - `"unspecified"` - - - `reviewed_by_user_id: optional string or null` - - The library reviewer who made the decision; unset when the submission was accepted without review (publish_policy "open"), or if the reviewer's account had been deleted when this record was written. - - - `submitted_by_user_id: optional string or null` + - `previous_ip_range: optional string or null` - The member who made the submission. + The IP range before this change; absent unless the range itself was changed. - - `OrgLibrarySubmissionWithdrawn object` + - `OrgInviteLinkDisabled object` - A pending submission to the organization library was withdrawn before any reviewer decided on it. + Organization invite link was disabled. - - `type: optional "org_library_submission_withdrawn"` + - `type: optional "org_invite_link_disabled"` - default: org_library_submission_withdrawn + default: org_invite_link_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78941,36 +78613,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `library_submission_id: string` - - The submission. - - - `reason: "requester" or "unspecified"` - - Why the submission was withdrawn. - - - `"requester"` - - - `"unspecified"` - - - `source_kind: "plugin" or "skill" or "unspecified"` - - Whether the withdrawn item had been submitted as a skill or as a plugin. - - - `"plugin"` - - - `"skill"` - - - `"unspecified"` - - - `source_plugin_id: string` - - The member's own skill or plugin that had been submitted. - - - `source_plugin_version_id: string` - - The version that had been submitted. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -78989,13 +78631,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMagicLinkSecondFactorToggled object` + - `OrgInviteLinkGenerated object` - Organization magic link second factor was toggled. + Organization invite link was generated. - - `type: optional "org_magic_link_second_factor_toggled"` + - `type: optional "org_invite_link_generated"` - default: org_magic_link_second_factor_toggled + default: org_invite_link_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79203,10 +78845,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether members signing in with SSO must also complete a magic link as a second factor, after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79225,13 +78863,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberAvatarRemoved object` + - `OrgInviteLinkRegenerated object` - An administrator removed another member's profile picture. + Organization invite link was regenerated (previous link invalidated). - - `type: optional "org_member_avatar_removed"` + - `type: optional "org_invite_link_regenerated"` - default: org_member_avatar_removed + default: org_invite_link_regenerated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79439,10 +79077,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - Tagged ID of the member whose profile picture was removed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79461,13 +79095,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberInvitesDisabled object` + - `OrgInviteViewed object` - Admin disabled member invites for the organization. + An organization invite was viewed. - - `type: optional "org_member_invites_disabled"` + - `type: optional "org_invite_viewed"` - default: org_member_invites_disabled + default: org_invite_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79675,6 +79309,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `invite_id: string` + + Tagged ID of the viewed invite + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79693,13 +79331,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberInvitesEnabled object` + - `OrgInvitesListed object` - Admin enabled member invites for the organization. + Organization invites were listed. - - `type: optional "org_member_invites_enabled"` + - `type: optional "org_invites_listed"` - default: org_member_invites_enabled + default: org_invites_listed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79925,13 +79563,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMembersExported object` + - `OrgJoinProposalDecided object` - Organization members list was exported as CSV. + Approve or reject decision on a parent-org join proposal. - - `type: optional "org_members_exported"` + - `type: optional "org_join_proposal_decided"` - default: org_members_exported + default: org_join_proposal_decided - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80139,6 +79777,8 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `approved: boolean` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -80157,23 +79797,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgModelDefaultUpdated object` - - An organization or role default model setting was changed by an administrator. - - - `type: optional "org_model_default_updated"` - - default: org_model_default_updated - - - `action: "cleared" or "set" or "unspecified"` - - Whether the default model was set or cleared + - `OrgJoinRequestApproved object` - - `"cleared"` + Admin approved a join request. - - `"set"` + - `type: optional "org_join_request_approved"` - - `"unspecified"` + default: org_join_request_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80381,24 +80011,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `override_user_selection: boolean` - - Whether the default is enforced as a fixed default, resetting members' own model selections at the start of each new conversation - - - `principal_id: string` - - Tagged ID of the organization or role the default applies to - - - `principal_type: "org" or "rbac_role" or "unspecified"` - - Whether the default applies to the whole organization or to a single role - - - `"org"` - - - `"rbac_role"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -80409,26 +80021,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `default_model: optional string or null` - - The model set as the default, when the action is set - - - `model_access: optional array of object` - - The per-model access overrides set for this principal; absent when no overrides are configured - - - `api_name: string` - - The model the decision applies to - - - `enabled: boolean` - - Whether members with this principal may select the model - - - `max_effort_level: optional string or null` - - The highest effort level members may select for this model, when capped - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -80437,13 +80029,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgParentJoinProposalCreated object` + - `OrgJoinRequestCreated object` - Organization parent join proposal was created. + User requested to join an organization. - - `type: optional "org_parent_join_proposal_created"` + - `type: optional "org_join_request_created"` - default: org_parent_join_proposal_created + default: org_join_request_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80669,13 +80261,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgParentSearchPerformed object` + - `OrgJoinRequestDismissed object` - Organization parent search was performed. + Admin dismissed a join request. - - `type: optional "org_parent_search_performed"` + - `type: optional "org_join_request_dismissed"` - default: org_parent_search_performed + default: org_join_request_dismissed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80901,13 +80493,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOAddInitiated object` + - `OrgJoinRequestInstantApproved object` - Organization SSO setup was initiated. + Join request was instantly approved. - - `type: optional "org_sso_add_initiated"` + - `type: optional "org_join_request_instant_approved"` - default: org_sso_add_initiated + default: org_join_request_instant_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81133,13 +80725,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionActivated object` + - `OrgJoinRequestsBulkDismissed object` - Organization SSO connection was activated. + Admin bulk-dismissed join requests. - - `type: optional "org_sso_connection_activated"` + - `type: optional "org_join_requests_bulk_dismissed"` - default: org_sso_connection_activated + default: org_join_requests_bulk_dismissed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81351,14 +80943,6 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `connection_id: optional string or null` - - Identifier of the SSO connection that was activated. - - - `connection_type: optional string or null` - - The type of SSO connection that was activated, e.g. "OktaSAML" or "GenericOIDC". - - `created_at: optional string` When this activity occurred. @@ -81373,13 +80957,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionDeactivated object` + - `OrgLibrarySubmissionCreated object` - Organization SSO connection was deactivated. + A member submitted one of their own skills or plugins for publication into the organization library. - - `type: optional "org_sso_connection_deactivated"` + - `type: optional "org_library_submission_created"` - default: org_sso_connection_deactivated + default: org_library_submission_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81587,13 +81171,43 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `library_submission_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The submission. - - `connection_id: optional string or null` + - `publish_policy: "off" or "open" or "review" or "unspecified"` - Identifier of the SSO connection that was deactivated. + The organization's Publishing setting when the submission was made: "review" (Requires review) or "open" (Open). Any decision, and whether a reviewer made it, is recorded as org_library_submission_resolved with the same library_submission_id. + + - `"off"` + + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `source_kind: "plugin" or "skill" or "unspecified"` + + Whether the item was submitted as a skill or as a plugin. + + - `"plugin"` + + - `"skill"` + + - `"unspecified"` + + - `source_plugin_id: string` + + The member's own skill or plugin that was submitted. + + - `source_plugin_version_id: string` + + The exact version that was submitted. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -81609,13 +81223,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionDeleted object` + - `updates_published_plugin_id: optional string or null` - Organization SSO connection was deleted. + The existing library entry this submission proposes to update; unset for a new entry. - - `type: optional "org_sso_connection_deleted"` + - `OrgLibrarySubmissionResolved object` - default: org_sso_connection_deleted + A member's submission of a skill or plugin to the organization library was accepted or denied, or an accepted one finished publishing. + + - `type: optional "org_library_submission_resolved"` + + default: org_library_submission_resolved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81823,13 +81441,55 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `content_hash: string` + + SHA-256 digest (hex) of the submitted version's archive, as submitted. Set only on a record whose publish_completed is true, and may be empty even there. A digest of the content, never the content itself. + + - `decision: "accepted" or "denied" or "unspecified"` + + Whether the submission was accepted into the library or denied. + + - `"accepted"` + + - `"denied"` + + - `"unspecified"` + + - `destination_marketplace_id: string` + + The marketplace the submission was accepted into. Empty on a denial. + + - `publish_completed: boolean` + + Whether publication had completed when this record was written. If it completed with the acceptance, there is one accepted record and this is true. Otherwise this is false, and if publication completes later, a second accepted record with the same library_submission_id follows with this set to true. + + - `published_plugin_version_id: string` + + The published version. Empty when publish_completed is false. + + - `source_plugin_id: string` + + The member's own skill or plugin that was submitted. + + - `source_plugin_version_id: string` + + The exact version that was decided on. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `connection_id: optional string or null` + - `attestations: optional array of object` - Identifier of the SSO connection that was deleted. + Legal attestations given with the decision, such as "safe_for_phi"; empty when none were given, and on a second accepted record. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -81837,6 +81497,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `installation_preference: optional string or null` + + The installation preference the submission was accepted with: "available", "auto_install" or "required". Unset on a denial, and when an update to an existing library entry was accepted without one. + + - `library_submission_id: optional string or null` + + The submission that was decided on. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -81845,13 +81513,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOGroupRoleMappingsUpdated object` + - `publish_policy: optional "off" or "open" or "review" or "unspecified" or null` - Organization SSO group role mappings were updated. + How this submission was resolved, whatever the organization's setting: "review" when a library reviewer accepted or denied it, "open" when it was accepted on submission with no reviewer. - - `type: optional "org_sso_group_role_mappings_updated"` + - `"off"` - default: org_sso_group_role_mappings_updated + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `reviewed_by_user_id: optional string or null` + + The library reviewer who made the decision; unset when the submission was accepted without review (publish_policy "open"), or if the reviewer's account had been deleted when this record was written. + + - `submitted_by_user_id: optional string or null` + + The member who made the submission. + + - `OrgLibrarySubmissionWithdrawn object` + + A pending submission to the organization library was withdrawn before any reviewer decided on it. + + - `type: optional "org_library_submission_withdrawn"` + + default: org_library_submission_withdrawn - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82059,6 +81747,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `library_submission_id: string` + + The submission. + + - `reason: "requester" or "unspecified"` + + Why the submission was withdrawn. + + - `"requester"` + + - `"unspecified"` + + - `source_kind: "plugin" or "skill" or "unspecified"` + + Whether the withdrawn item had been submitted as a skill or as a plugin. + + - `"plugin"` + + - `"skill"` + + - `"unspecified"` + + - `source_plugin_id: string` + + The member's own skill or plugin that had been submitted. + + - `source_plugin_version_id: string` + + The version that had been submitted. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82077,13 +81795,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOProvisioningModeChanged object` + - `OrgMagicLinkSecondFactorToggled object` - Organization SSO provisioning mode was changed. + Organization magic link second factor was toggled. - - `type: optional "org_sso_provisioning_mode_changed"` + - `type: optional "org_magic_link_second_factor_toggled"` - default: org_sso_provisioning_mode_changed + default: org_magic_link_second_factor_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82291,6 +82009,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enabled: boolean` + + Whether members signing in with SSO must also complete a magic link as a second factor, after this change. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82301,10 +82023,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_mode: optional string or null` - - The SSO provisioning mode after this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -82313,17 +82031,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_mode: optional string or null` - - The SSO provisioning mode before this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - - `OrgSSOScimWelcomeEmailToggled object` + - `OrgMemberAvatarRemoved object` - Organization SCIM-provisioned welcome email was toggled. + An administrator removed another member's profile picture. - - `type: optional "org_sso_scim_welcome_email_toggled"` + - `type: optional "org_member_avatar_removed"` - default: org_sso_scim_welcome_email_toggled + default: org_member_avatar_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82531,9 +82245,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` + - `user_id: string` - Whether the SCIM welcome email is enabled after this change. + Tagged ID of the member whose profile picture was removed. - `id: optional string` @@ -82553,17 +82267,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` - - Whether the SCIM welcome email was enabled before this change. - - - `OrgSSOSeatTierAssignmentToggled object` + - `OrgMemberInvitesDisabled object` - Organization SSO seat tier assignment was toggled. + Admin disabled member invites for the organization. - - `type: optional "org_sso_seat_tier_assignment_toggled"` + - `type: optional "org_member_invites_disabled"` - default: org_sso_seat_tier_assignment_toggled + default: org_member_invites_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82771,10 +82481,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether SSO seat tier assignment is enabled after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82793,17 +82499,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` - - Whether SSO seat tier assignment was enabled before this change. - - - `OrgSSOSeatTierMappingsUpdated object` + - `OrgMemberInvitesEnabled object` - Organization SSO seat tier mappings were updated. + Admin enabled member invites for the organization. - - `type: optional "org_sso_seat_tier_mappings_updated"` + - `type: optional "org_member_invites_enabled"` - default: org_sso_seat_tier_mappings_updated + default: org_member_invites_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83021,18 +82723,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_mappings: optional array of object or null` - - Identity provider group to seat tier mappings after this change. - - - `idp_group_name: string` - - Name of the identity provider group. - - - `seat_tier: optional string or null` - - Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -83041,25 +82731,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_mappings: optional array of object or null` - - Identity provider group to seat tier mappings before this change. - - - `idp_group_name: string` - - Name of the identity provider group. - - - `seat_tier: optional string or null` - - Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - - - `OrgSSOToggled object` + - `OrgMembersExported object` - Organization SSO was toggled on or off. + Organization members list was exported as CSV. - - `type: optional "org_sso_toggled"` + - `type: optional "org_members_exported"` - default: org_sso_toggled + default: org_members_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83267,10 +82945,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether SSO login is enforced after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -83289,13 +82963,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSyncDeletingSynchronizedFilesStarted object` + - `OrgModelDefaultUpdated object` - Organization started deleting synchronized files. + An organization or role default model setting was changed by an administrator. - - `type: optional "org_sync_deleting_synchronized_files_started"` + - `type: optional "org_model_default_updated"` - default: org_sync_deleting_synchronized_files_started + default: org_model_default_updated + + - `action: "cleared" or "set" or "unspecified"` + + Whether the default model was set or cleared + + - `"cleared"` + + - `"set"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83503,247 +83187,53 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgSyncSynchronizedFilesDeleted object` - - Organization synchronized files were deleted. - - - `type: optional "org_sync_synchronized_files_deleted"` - - default: org_sync_synchronized_files_deleted - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` + - `override_user_selection: boolean` - - `FederatedActorOidcProvider object` + Whether the default is enforced as a fixed default, resetting members' own model selections at the start of each new conversation - Asserting party: a customer-registered OIDC federation issuer. + - `principal_id: string` - - `type: optional "oidc"` + Tagged ID of the organization or role the default applies to - default: oidc + - `principal_type: "org" or "rbac_role" or "unspecified"` - - `issuer: optional string or null` + Whether the default applies to the whole organization or to a single role - The federation issuer's URL. Null when the presented credential failed verification. + - `"org"` - - `ip_address: optional string or null` + - `"rbac_role"` - - `subject: optional string or null` + - `"unspecified"` - The provider's verified identifier for the caller; its form depends on the provider. + - `id: optional string` - - `user_agent: optional string or null` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `AttestedDeviceActor object` + - `created_at: optional string` - An attested mobile device authenticated via Apple App Attest. + When this activity occurred. - - `type: optional "attested_device_actor"` + format: date-time - default: attested_device_actor + - `default_model: optional string or null` - - `external_client_id: string` + The model set as the default, when the action is set - - `kid_hash: string` + - `model_access: optional array of object` - - `ip_address: optional string or null` + The per-model access overrides set for this principal; absent when no overrides are configured - - `user_agent: optional string or null` + - `api_name: string` - - `id: optional string` + The model the decision applies to - Unique identifier for the activity e.g. 'activity_abcd1234' + - `enabled: boolean` - - `created_at: optional string` + Whether members with this principal may select the model - When this activity occurred. + - `max_effort_level: optional string or null` - format: date-time + The highest effort level members may select for this model, when capped - `organization_id: optional string or null` @@ -83753,13 +83243,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgTaintAdded object` + - `OrgParentJoinProposalCreated object` - A compliance marker (taint) was added to an organization, for example the marker that records its HIPAA configuration. + Organization parent join proposal was created. - - `type: optional "org_taint_added"` + - `type: optional "org_parent_join_proposal_created"` - default: org_taint_added + default: org_parent_join_proposal_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83985,21 +83475,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `taint: optional string or null` - - The marker that was added, for example the HIPAA marker. - - - `workspace_id: optional string or null` - - Tagged ID of the workspace the marker was applied to. Unset when applied at organization scope. - - - `OrgTaintRemoved object` + - `OrgParentSearchPerformed object` - A compliance marker (taint) was removed from an organization. + Organization parent search was performed. - - `type: optional "org_taint_removed"` + - `type: optional "org_parent_search_performed"` - default: org_taint_removed + default: org_parent_search_performed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84225,17 +83707,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `taint: optional string or null` - - The marker that was removed, for example the HIPAA marker. - - - `OrgUserDeleted object` + - `OrgSSOAddInitiated object` - User was removed from organization. + Organization SSO setup was initiated. - - `type: optional "org_user_deleted"` + - `type: optional "org_sso_add_initiated"` - default: org_user_deleted + default: org_sso_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84453,14 +83931,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `deleted_user_email: optional string or null` - - Email address of the member who was removed, when known. - - - `deleted_user_id: optional string or null` - - Tagged ID of the member who was removed from the organization, e.g. "user_01HX...". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84469,13 +83939,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteAccepted object` + - `OrgSSOConnectionActivated object` - Organization user invite was accepted. + Organization SSO connection was activated. - - `type: optional "org_user_invite_accepted"` + - `type: optional "org_sso_connection_activated"` - default: org_user_invite_accepted + default: org_sso_connection_activated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84687,16 +84157,20 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was activated. + + - `connection_type: optional string or null` + + The type of SSO connection that was activated, e.g. "OktaSAML" or "GenericOIDC". + - `created_at: optional string` When this activity occurred. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was accepted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84705,17 +84179,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `rbac_group_ids: optional array of string or null` - - RBAC group IDs the user was added to on acceptance, as confirmed by the group service (absent on rows written before this was recorded, and when the invite carried no groups) - - - `OrgUserInviteDeleted object` + - `OrgSSOConnectionDeactivated object` - Organization user invite was deleted. + Organization SSO connection was deactivated. - - `type: optional "org_user_invite_deleted"` + - `type: optional "org_sso_connection_deactivated"` - default: org_user_invite_deleted + default: org_sso_connection_deactivated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84927,16 +84397,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was deactivated. + - `created_at: optional string` When this activity occurred. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was deleted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84945,13 +84415,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteReSent object` + - `OrgSSOConnectionDeleted object` - Organization user invite was re-sent. + Organization SSO connection was deleted. - - `type: optional "org_user_invite_re_sent"` + - `type: optional "org_sso_connection_deleted"` - default: org_user_invite_re_sent + default: org_sso_connection_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85163,24 +84633,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was deleted. + - `created_at: optional string` When this activity occurred. format: date-time - - `invited_email: optional string or null` - - Email address the invite was re-sent to. - - - `invited_role: optional string or null` - - Role the invited user will receive on joining - - - `invited_seat_tier: optional string or null` - - Seat tier the invited user will receive on joining - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -85189,13 +84651,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteRejected object` + - `OrgSSOGroupRoleMappingsUpdated object` - Organization user invite was rejected. + Organization SSO group role mappings were updated. - - `type: optional "org_user_invite_rejected"` + - `type: optional "org_sso_group_role_mappings_updated"` - default: org_user_invite_rejected + default: org_sso_group_role_mappings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85413,10 +84875,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was rejected. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -85425,13 +84883,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteSent object` + - `OrgSSOProvisioningModeChanged object` - Organization user invite was sent. + Organization SSO provisioning mode was changed. - - `type: optional "org_user_invite_sent"` + - `type: optional "org_sso_provisioning_mode_changed"` - default: org_user_invite_sent + default: org_sso_provisioning_mode_changed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85649,21 +85107,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `invited_email: optional string or null` - - Email address the invite was sent to. - - - `invited_rbac_group_ids: optional array of string or null` - - RBAC group IDs the invited user will be added to on joining - - - `invited_role: optional string or null` - - Role the invited user will receive on joining. - - - `invited_seat_tier: optional string or null` + - `new_mode: optional string or null` - Seat tier the invited user will receive on joining + The SSO provisioning mode after this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - `organization_id: optional string or null` @@ -85673,13 +85119,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserLeft object` + - `previous_mode: optional string or null` - User removed themselves from organization. + The SSO provisioning mode before this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - `type: optional "org_user_left"` + - `OrgSSOScimWelcomeEmailToggled object` - default: org_user_left + Organization SCIM-provisioned welcome email was toggled. + + - `type: optional "org_sso_scim_welcome_email_toggled"` + + default: org_sso_scim_welcome_email_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85887,6 +85337,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enabled: boolean` + + Whether the SCIM welcome email is enabled after this change. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -85905,17 +85359,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` + - `previous_enabled: optional boolean or null` - The role the member held in the organization before leaving, e.g. "user" or "admin". + Whether the SCIM welcome email was enabled before this change. - - `OrgUserSharesRetained object` + - `OrgSSOSeatTierAssignmentToggled object` - A member left or was removed from the organization while projects, skills, plugins, or chats they had shared were still shared, and those shares were kept. + Organization SSO seat tier assignment was toggled. - - `type: optional "org_user_shares_retained"` + - `type: optional "org_sso_seat_tier_assignment_toggled"` - default: org_user_shares_retained + default: org_sso_seat_tier_assignment_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86123,34 +85577,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_count: number` - - Number of distinct resources the member had shared that are still shared, counted up to a fixed limit, so a lower bound when `truncated` is true; it can exceed the number of IDs listed below. - - - `share_count: number` - - Number of shares kept across those resources (one per audience a resource is shared with), counted up to the same limit, so a lower bound when `truncated` is true. - - - `truncated: boolean` - - True when the ID lists do not include every still-shared resource or the counts stopped at their limit. - - - `user_id: string` + - `enabled: boolean` - Tagged ID of the member who left or was removed. + Whether SSO seat tier assignment is enabled after this change. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_ids: optional array of string` - - Tagged IDs of chats among those resources. - - - `claude_project_ids: optional array of string` - - Tagged IDs of projects among those resources; the four ID lists hold at most the first 50 resources between them. - - `created_at: optional string` When this activity occurred. @@ -86165,21 +85599,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_ids: optional array of string` - - Tagged IDs of plugins among those resources. - - - `skill_ids: optional array of string` + - `previous_enabled: optional boolean or null` - Tagged IDs of skills among those resources. + Whether SSO seat tier assignment was enabled before this change. - - `OrgUserTrustedDevicesRevoked object` + - `OrgSSOSeatTierMappingsUpdated object` - An organization admin revoked a member's trusted devices and signed the member out of all active sessions. + Organization SSO seat tier mappings were updated. - - `type: optional "org_user_trusted_devices_revoked"` + - `type: optional "org_sso_seat_tier_mappings_updated"` - default: org_user_trusted_devices_revoked + default: org_sso_seat_tier_mappings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86387,31 +85817,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `completed: boolean` - - Whether the operation completed fully. False records an attempt that revoked the counted credentials but failed before finishing. - - - `devices_revoked_count: number` + - `id: optional string` - Number of trusted devices revoked + Unique identifier for the activity e.g. 'activity_abcd1234' - - `sessions_revoked_count: number` + - `created_at: optional string` - Number of active sessions the member was signed out of + When this activity occurred. - - `user_id: string` + format: date-time - Tagged ID of the member whose trusted devices were revoked + - `current_mappings: optional array of object or null` - - `id: optional string` + Identity provider group to seat tier mappings after this change. - Unique identifier for the activity e.g. 'activity_abcd1234' + - `idp_group_name: string` - - `created_at: optional string` + Name of the identity provider group. - When this activity occurred. + - `seat_tier: optional string or null` - format: date-time + Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - `organization_id: optional string or null` @@ -86421,13 +85847,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserViewed object` + - `previous_mappings: optional array of object or null` - An organization user was viewed. + Identity provider group to seat tier mappings before this change. - - `type: optional "org_user_viewed"` + - `idp_group_name: string` - default: org_user_viewed + Name of the identity provider group. + + - `seat_tier: optional string or null` + + Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. + + - `OrgSSOToggled object` + + Organization SSO was toggled on or off. + + - `type: optional "org_sso_toggled"` + + default: org_sso_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86635,9 +86073,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` + - `enabled: boolean` - Tagged ID of the viewed user + Whether SSO login is enforced after this change. - `id: optional string` @@ -86657,13 +86095,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUsersListed object` + - `OrgSyncDeletingSynchronizedFilesStarted object` - Organization users were listed. + Organization started deleting synchronized files. - - `type: optional "org_users_listed"` + - `type: optional "org_sync_deleting_synchronized_files_started"` - default: org_users_listed + default: org_sync_deleting_synchronized_files_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86889,13 +86327,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgWorkAcrossAppsDisabled object` + - `OrgSyncSynchronizedFilesDeleted object` - The organization's "Let Claude work across apps" setting was turned off. + Organization synchronized files were deleted. - - `type: optional "org_work_across_apps_disabled"` + - `type: optional "org_sync_synchronized_files_deleted"` - default: org_work_across_apps_disabled + default: org_sync_synchronized_files_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87113,10 +86551,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -87125,17 +86559,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgWorkAcrossAppsEnabled object` + - `OrgTaintAdded object` - The organization's "Let Claude work across apps" setting was turned on. + A compliance marker (taint) was added to an organization, for example the marker that records its HIPAA configuration. - - `type: optional "org_work_across_apps_enabled"` + - `type: optional "org_taint_added"` - default: org_work_across_apps_enabled + default: org_taint_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87353,10 +86783,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -87365,17 +86791,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `taint: optional string or null` - Setting value immediately before this change + The marker that was added, for example the HIPAA marker. - - `OrganizationAddressUpdated object` + - `workspace_id: optional string or null` - The organization's billing or shipping address was updated. + Tagged ID of the workspace the marker was applied to. Unset when applied at organization scope. - - `type: optional "organization_address_updated"` + - `OrgTaintRemoved object` - default: organization_address_updated + A compliance marker (taint) was removed from an organization. + + - `type: optional "org_taint_removed"` + + default: org_taint_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87587,14 +87017,6 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `billing_address_updated: optional boolean or null` - - Whether the billing address was updated. - - - `billing_name_updated: optional boolean or null` - - Whether the billing name was updated. - - `created_at: optional string` When this activity occurred. @@ -87609,21 +87031,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `shipping_address_updated: optional boolean or null` - - Whether the shipping address was updated. - - - `shipping_name_updated: optional boolean or null` + - `taint: optional string or null` - Whether the shipping name was updated. + The marker that was removed, for example the HIPAA marker. - - `OrganizationIconDeleted object` + - `OrgUserDeleted object` - Organization's custom icon deleted. + User was removed from organization. - - `type: optional "organization_icon_deleted"` + - `type: optional "org_user_deleted"` - default: organization_icon_deleted + default: org_user_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87841,237 +87259,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrganizationIconUpdated object` - - Organization's custom icon uploaded or replaced. - - - `type: optional "organization_icon_updated"` - - default: organization_icon_updated - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' + - `deleted_user_email: optional string or null` - - `created_at: optional string` + Email address of the member who was removed, when known. - When this activity occurred. + - `deleted_user_id: optional string or null` - format: date-time + Tagged ID of the member who was removed from the organization, e.g. "user_01HX...". - `organization_id: optional string or null` @@ -88081,13 +87275,3625 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeOrganizationSettingsUpdated object` + - `OrgUserInviteAccepted object` - Organization settings were updated. + Organization user invite was accepted. - - `type: optional "claude_organization_settings_updated"` + - `type: optional "org_user_invite_accepted"` - default: claude_organization_settings_updated + default: org_user_invite_accepted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was accepted. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `rbac_group_ids: optional array of string or null` + + RBAC group IDs the user was added to on acceptance, as confirmed by the group service (absent on rows written before this was recorded, and when the invite carried no groups) + + - `OrgUserInviteDeleted object` + + Organization user invite was deleted. + + - `type: optional "org_user_invite_deleted"` + + default: org_user_invite_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was deleted. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteReSent object` + + Organization user invite was re-sent. + + - `type: optional "org_user_invite_re_sent"` + + default: org_user_invite_re_sent + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invited_email: optional string or null` + + Email address the invite was re-sent to. + + - `invited_role: optional string or null` + + Role the invited user will receive on joining + + - `invited_seat_tier: optional string or null` + + Seat tier the invited user will receive on joining + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteRejected object` + + Organization user invite was rejected. + + - `type: optional "org_user_invite_rejected"` + + default: org_user_invite_rejected + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was rejected. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteSent object` + + Organization user invite was sent. + + - `type: optional "org_user_invite_sent"` + + default: org_user_invite_sent + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invited_email: optional string or null` + + Email address the invite was sent to. + + - `invited_rbac_group_ids: optional array of string or null` + + RBAC group IDs the invited user will be added to on joining + + - `invited_role: optional string or null` + + Role the invited user will receive on joining. + + - `invited_seat_tier: optional string or null` + + Seat tier the invited user will receive on joining + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserLeft object` + + User removed themselves from organization. + + - `type: optional "org_user_left"` + + default: org_user_left + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_role: optional string or null` + + The role the member held in the organization before leaving, e.g. "user" or "admin". + + - `OrgUserSharesRetained object` + + A member left or was removed from the organization while projects, skills, plugins, or chats they had shared were still shared, and those shares were kept. + + - `type: optional "org_user_shares_retained"` + + default: org_user_shares_retained + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `resource_count: number` + + Number of distinct resources the member had shared that are still shared, counted up to a fixed limit, so a lower bound when `truncated` is true; it can exceed the number of IDs listed below. + + - `share_count: number` + + Number of shares kept across those resources (one per audience a resource is shared with), counted up to the same limit, so a lower bound when `truncated` is true. + + - `truncated: boolean` + + True when the ID lists do not include every still-shared resource or the counts stopped at their limit. + + - `user_id: string` + + Tagged ID of the member who left or was removed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `claude_chat_ids: optional array of string` + + Tagged IDs of chats among those resources. + + - `claude_project_ids: optional array of string` + + Tagged IDs of projects among those resources; the four ID lists hold at most the first 50 resources between them. + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `plugin_ids: optional array of string` + + Tagged IDs of plugins among those resources. + + - `skill_ids: optional array of string` + + Tagged IDs of skills among those resources. + + - `OrgUserTrustedDevicesRevoked object` + + An organization admin revoked a member's trusted devices and signed the member out of all active sessions. + + - `type: optional "org_user_trusted_devices_revoked"` + + default: org_user_trusted_devices_revoked + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `completed: boolean` + + Whether the operation completed fully. False records an attempt that revoked the counted credentials but failed before finishing. + + - `devices_revoked_count: number` + + Number of trusted devices revoked + + - `sessions_revoked_count: number` + + Number of active sessions the member was signed out of + + - `user_id: string` + + Tagged ID of the member whose trusted devices were revoked + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserViewed object` + + An organization user was viewed. + + - `type: optional "org_user_viewed"` + + default: org_user_viewed + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `user_id: string` + + Tagged ID of the viewed user + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUsersListed object` + + Organization users were listed. + + - `type: optional "org_users_listed"` + + default: org_users_listed + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgWorkAcrossAppsDisabled object` + + The organization's "Let Claude work across apps" setting was turned off. + + - `type: optional "org_work_across_apps_disabled"` + + default: org_work_across_apps_disabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `OrgWorkAcrossAppsEnabled object` + + The organization's "Let Claude work across apps" setting was turned on. + + - `type: optional "org_work_across_apps_enabled"` + + default: org_work_across_apps_enabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `OrganizationAddressUpdated object` + + The organization's billing or shipping address was updated. + + - `type: optional "organization_address_updated"` + + default: organization_address_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `billing_address_updated: optional boolean or null` + + Whether the billing address was updated. + + - `billing_name_updated: optional boolean or null` + + Whether the billing name was updated. + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `shipping_address_updated: optional boolean or null` + + Whether the shipping address was updated. + + - `shipping_name_updated: optional boolean or null` + + Whether the shipping name was updated. + + - `OrganizationIconDeleted object` + + Organization's custom icon deleted. + + - `type: optional "organization_icon_deleted"` + + default: organization_icon_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrganizationIconUpdated object` + + Organization's custom icon uploaded or replaced. + + - `type: optional "organization_icon_updated"` + + default: organization_icon_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `ClaudeOrganizationSettingsUpdated object` + + Organization settings were updated. + + - `type: optional "claude_organization_settings_updated"` + + default: claude_organization_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -142822,27 +145628,31 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts \ **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -Streams the content of one version of a Claude Code Artifact as the -response body. +Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files. -Returns 404 for Artifacts that don't exist or belong to another parent -organization. A listed version id can start returning 404 if subsequent -publishes rotated it out of retained history — re-list on 404. Returns -503 while the version's content upload is still in flight or was -abandoned — retry with backoff. Returns 422 with -`error.details.error_code` `multi_file_unavailable` for a version that -has more than one file, unless the request sets `multi_file_format=zip`, -which returns those files as a ZIP archive. With `multi_file_format=zip`, -a version with more than one file, one of them with a name the API cannot -export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude -Doc's versions hold only the web page that displays the Doc and never come -back as a ZIP. That page usually has more than one file, so a Doc's version -usually gets the 422 `multi_file_unavailable`. Download the Doc's text with -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. -Oversized encoded content aborts mid-stream: headers and initial bytes arrive -but the body terminates early — an aborted chunked transfer is the -only truncation signal for encoded content. `Content-MD5` is emitted -only for identity-stored content; validate against it when present. +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again. +- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff. +- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: the version ID, as in the request. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -142858,7 +145668,7 @@ only for identity-stored content; validate against it when present. - `multi_file_format: optional string` - Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter. + Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP. #### Headers @@ -142882,26 +145692,39 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/ve **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content` -Streams an Artifact's current content as the response body. For a -Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per -text tab, and the request must set `multi_file_format=zip`. For any other -Artifact, it is the latest version, as -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -returns it. - -Returns 404 for Artifacts that don't exist or that the API key cannot read. -Returns 400 with `error.details.error_code` `cmek_key_disabled` when the -organization's customer-managed encryption key can't be used, for example -because it is disabled or revoked. Returns 503 when the content can't be -produced right now; wait the number of seconds in the `Retry-After` -header, or retry with backoff when it is absent. For a Claude Doc, a 422's -`error.details.error_code` is `multi_file_unavailable` when the request -does not set `multi_file_format=zip`, `document_unavailable` when the Doc -has no text to export (for example, it has no text tab or is in the trash), -`document_too_large` when the export is over 16 MiB, or -`cmek_org_unsupported` when the organization uses customer-managed -encryption keys and the export can't be served for it right now. For any -other Artifact, the 422s are the version download's. +Streams an Artifact's current content as the response body, in chunks with no `Content-Length`. + +For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`. + +For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist, or the API key cannot read it. +- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again. +- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent. +- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry. +- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes. +- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry. +- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: null. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -142913,7 +145736,7 @@ other Artifact, the 422s are the version download's. - `multi_file_format: optional string` - Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. + Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. #### Headers diff --git a/content/en/api/compliance/activities.md b/content/en/api/compliance/activities.md index 2bd8b81475..161fa3cc4f 100644 --- a/content/en/api/compliance/activities.md +++ b/content/en/api/compliance/activities.md @@ -17,7 +17,7 @@ compliance activities that can be filtered by various criteria. ### Query parameters -- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Filter activities by type. See the response `data` schema for the additional fields each type returns. Cannot be combined with `exclude_activity_types[]`. @@ -537,6 +537,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -2220,7 +2264,7 @@ compliance activities that can be filtered by various criteria. format: date-time -- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Exclude activities of these types. Cannot be combined with `activity_types[]`. @@ -2740,6 +2784,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -4421,7 +4509,7 @@ compliance activities that can be filtered by various criteria. ### Returns -- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 533 more` +- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 544 more` List of activity records. Each element's `type` field identifies which activity it is and which additional fields are present. @@ -34399,13 +34487,13 @@ compliance activities that can be filtered by various criteria. Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - - `ClaudePluginArchiveAccessed object` + - `ClaudeInsightsAttributionSettingUpdated object` - A version archive of a member-owned plugin, containing that member's own files, was downloaded. + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. - - `type: optional "claude_plugin_archive_accessed"` + - `type: optional "claude_insights_attribution_setting_updated"` - default: claude_plugin_archive_accessed + default: claude_insights_attribution_setting_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34613,22 +34701,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The member's personal marketplace the plugin belongs to. - - - `owner_user_id: string` - - The member who owns the plugin. - - - `plugin_id: string` - - The plugin whose archive was downloaded. - - - `plugin_version_id: string` - - The version whose archive was downloaded. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -34639,6 +34711,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this write + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -34647,13 +34723,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePluginDownloaded object` + - `previous_value: optional boolean or null` - The archive of the plugin version a member was served was downloaded to install or update the plugin in one of the member's Claude apps (Claude in the browser, the Claude desktop app, Claude Code, or a cloud session). Recorded when the member explicitly installs, updates or downloads the plugin (user_action), and when a fetch creates the member's install record for the plugin — its first delivery to them, whether a background sync of a plugin distributed to them or their own first install, which then carries both records (first_delivery). A plugin the member enabled in Claude is on the feed as claude_plugin_enabled and its later delivery by a client's background sync is not recorded again; nor are re-syncs, or fetches that only display the plugin's files in the browser. + Setting value immediately before this write - - `type: optional "claude_plugin_downloaded"` + - `ClaudeInsightsReportArchived object` - default: claude_plugin_downloaded + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_archived"` + + default: claude_insights_report_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34861,13 +34941,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `plugin_id: string` + - `report_id: string` - The plugin that was downloaded. + The report that was archived, e.g. "insr_01HX...". - `id: optional string` @@ -34887,27 +34963,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_version_id: optional string or null` - - The version whose archive was downloaded; unset for a plugin that predates version records. - - - `reason: optional "first_delivery" or "unspecified" or "user_action" or null` - - Why this download was recorded: the member's explicit action, or the archive's first delivery to them. - - - `"first_delivery"` - - - `"unspecified"` - - - `"user_action"` - - - `ClaudePluginServedVersionUpdated object` + - `ClaudeInsightsReportAttributionViewed object` - A plugin's served version was updated: an administrator or the owner chose a version, a saved version became the served version, or an accepted library submission was published into the plugin. + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. - - `type: optional "claude_plugin_served_version_updated"` + - `type: optional "claude_insights_report_attribution_viewed"` - default: claude_plugin_served_version_updated + default: claude_insights_report_attribution_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35115,44 +35177,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `plugin_id: string` + - `report_id: string` - The plugin whose served version was updated. + The report that was viewed with attribution, e.g. "insr_01HX...". - - `to_plugin_version_id: string` + - `id: optional string` - The served version after the update. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `trigger: "library_publish" or "manual" or "save" or "unspecified"` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - What caused the update. + How the member who viewed the attributed rendering was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. Not set on events recorded before this field existed. - - `"library_publish"` + - `"admin"` - - `"manual"` + - `"delegate"` - - `"save"` + - `"share_recipient"` - `"unspecified"` - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` When this activity occurred. format: date-time - - `from_plugin_version_id: optional string or null` - - The served version before the update; the same as to_plugin_version_id when the update kept the served version. Unset when the plugin had no served version. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -35161,13 +35211,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePluginVersionCreated object` + - `ClaudeInsightsReportDeleted object` - A new version of a plugin was created. + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. - - `type: optional "claude_plugin_version_created"` + - `type: optional "claude_insights_report_deleted"` - default: claude_plugin_version_created + default: claude_insights_report_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35375,42 +35425,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `is_initial_version: boolean` - - Whether this version also created the plugin (its first version). - - - `marketplace_id: string` - - The marketplace the plugin belongs to. - - - `origin: "library_publish" or "marketplace_sync" or "unspecified" or "upload"` - - How the version came to exist. - - - `"library_publish"` - - - `"marketplace_sync"` - - - `"unspecified"` - - - `"upload"` - - - `plugin_id: string` - - The plugin that gained a version. - - - `plugin_version_id: string` + - `report_id: string` - The new version. + The report that was deleted, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `became_served_version: optional boolean or null` - - Whether this became the plugin's served version as soon as it was created; if so, there may be no claude_plugin_served_version_updated record for the change. When false, the served version stayed as it was, and making this the served version later is recorded as claude_plugin_served_version_updated. - - `created_at: optional string` When this activity occurred. @@ -35425,13 +35447,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectSyncSourceCreated object` + - `purge_confirmed: optional boolean or null` - A sync source was connected to a Claude project's knowledge base. + Whether the report was also removed from the organization's report list. False means the report document was removed but the report was not removed from the list (for example it was unarchived at the same time), so it may still appear there until a later delete succeeds. Not set on events recorded before this field existed. - - `type: optional "claude_project_sync_source_created"` + - `ClaudeInsightsReportFeedbackSubmitted object` - default: claude_project_sync_source_created + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `type: optional "claude_insights_report_feedback_submitted"` + + default: claude_insights_report_feedback_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35639,17 +35665,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source was connected to. - - - `claude_project_sync_source_id: string` - - Tagged ID of the per-project sync source that was created. - - - `provider: string` + - `report_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The report the feedback was submitted on, e.g. "insr_01HX...". - `id: optional string` @@ -35669,17 +35687,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` - - A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - - `ClaudeProjectSyncSourceDeleted object` + - `ClaudeInsightsReportRenamed object` - A sync source was disconnected from a Claude project's knowledge base. + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_project_sync_source_deleted"` + - `type: optional "claude_insights_report_renamed"` - default: claude_project_sync_source_deleted + default: claude_insights_report_renamed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -35887,17 +35901,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source was disconnected from. - - - `claude_project_sync_source_id: string` - - Tagged ID of the per-project sync source that was deleted. - - - `provider: string` + - `report_id: string` - The external provider backing the sync source. Always `unspecified` for deletion events. + The report that was renamed, e.g. "insr_01HX...". - `id: optional string` @@ -35917,13 +35923,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectSyncSourceUpdated object` + - `ClaudeInsightsReportSharingUpdated object` - A Claude project sync source's configuration was updated. + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. - - `type: optional "claude_project_sync_source_updated"` + - `type: optional "claude_insights_report_sharing_updated"` - default: claude_project_sync_source_updated + default: claude_insights_report_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36131,25 +36137,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the sync source belongs to. - - - `claude_project_sync_source_id: string` + - `attributed_view_allowed: boolean` - Tagged ID of the per-project sync source that was updated. + Whether, after the change, the members the report is shared with may open the rendering that attributes findings to individual members. - - `provider: string` + - `report_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The report whose sharing was changed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `config_changed: optional boolean or null` + - `added_account_ids: optional array of string` - Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. + The members granted access by this change, e.g. "user_01HX...". - `created_at: optional string` @@ -36165,17 +36167,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` + - `removed_account_ids: optional array of string` - A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. + The members whose access was removed by this change, e.g. "user_01HX...". - - `ClaudeSkillDownloaded object` + - `ClaudeInsightsReportTriggered object` - A member explicitly downloaded a skill's files to their device: the Download action in Claude, a single file saved from the skill viewer, or an install they asked one of their Claude apps for. Background syncs to the Claude apps, viewing a skill in the app and services reading a skill on the member's behalf are not recorded. + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. - - `type: optional "claude_skill_downloaded"` + - `type: optional "claude_insights_report_triggered"` - default: claude_skill_downloaded + default: claude_insights_report_triggered - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36383,25 +36385,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `download_kind: "bundle" or "file" or "instructions" or "unspecified"` - - Whether the whole bundle, one file, or only the instructions were downloaded. + - `report_id: string` - - `"bundle"` + The report that was triggered, e.g. "insr_01HX...". - - `"file"` + - `id: optional string` - - `"instructions"` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `"unspecified"` + - `admission_arm: optional "admin" or "delegate" or "unspecified" or null` - - `skill_id: string` + How the member who triggered the report was admitted: an organization admin or a delegate. Not set on events recorded before this field existed. - The skill that was downloaded. + - `"admin"` - - `id: optional string` + - `"delegate"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `"unspecified"` - `created_at: optional string` @@ -36409,9 +36409,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `marketplace_id: optional string or null` + - `end_date: optional string or null` - The marketplace of the plugin that carries the skill; unset for a standalone skill. + Last day (ISO 8601 date) of the date range the report covers, when specified. - `organization_id: optional string or null` @@ -36421,39 +36421,53 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `owner_user_id: optional string or null` + - `products: optional array of string` - The member who owns the skill; unset for an organization-owned skill. + Product surfaces the report was scoped to, for example "chat", "cc" (Claude Code) or "cowork". Empty when the report covers all products. - - `plugin_id: optional string or null` + - `requester_account_id: optional string or null` - The plugin that carries the skill; unset for a standalone skill. + The member who triggered the report, e.g. "user_01HX...". Not set on events recorded before this field existed. - - `scope: optional "organization" or "personal" or "unspecified" or null` + - `resolved_population: optional number or null` - Whether the skill is a member's own or the organization's. + How many accounts the directory listed under the selected groups or attribute values when the report was triggered. Not set for a report covering the whole organization, nor on events recorded before this field existed. - - `"organization"` + - `scim_group_ids: optional array of string` - - `"personal"` + Directory groups the report was scoped to. Empty when the report covers the whole organization. - - `"unspecified"` + - `scope_attribute: optional string or null` - - `skill_name: optional string or null` + Directory attribute ("department" / "cost_center") the report was scoped to. Unset when the report is not attribute-scoped. - The name of the skill that was downloaded. + - `scope_attribute_values: optional array of string` - - `skill_version: optional string or null` + The selected values of that attribute as the directory carries them (customer directory text). Empty when the report is not attribute-scoped. - The version that was downloaded; unset for an unversioned skill. + - `scope_kind: optional "attribute" or "groups" or "unspecified" or "whole_organization" or null` - - `ClaudeSurveyClosed object` + What the report's population was scoped to. Not set on events recorded before this field existed. - An organization admin closed an in-app survey before its end date, ending the collection of responses; a survey that reaches its end date records no event. + - `"attribute"` - - `type: optional "claude_survey_closed"` + - `"groups"` - default: claude_survey_closed + - `"unspecified"` + + - `"whole_organization"` + + - `start_date: optional string or null` + + First day (ISO 8601 date) of the date range the report covers, when specified. + + - `ClaudeInsightsReportUnarchived object` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_unarchived"` + + default: claude_insights_report_unarchived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36661,9 +36675,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `survey_id: string` + - `report_id: string` - Tagged ID of the closed survey, e.g. "srvy_01HX...". + The report that was restored, e.g. "insr_01HX...". - `id: optional string` @@ -36683,13 +36697,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyCreated object` + - `ClaudeInsightsReportViewed object` - An organization admin launched an in-app survey to its chosen audience, opening it immediately or at a scheduled start time. + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). - - `type: optional "claude_survey_created"` + - `type: optional "claude_insights_report_viewed"` - default: claude_survey_created + default: claude_insights_report_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -36897,33 +36911,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `all_members: boolean` - - Whether the survey was opened to every member of the organization. When false, it was opened to members who, at launch, were in any of the selected groups, departments, or cost centers. - - - `survey_id: string` - - Tagged ID of the created survey, e.g. "srvy_01HX...". - - - `survey_name: string` + - `report_id: string` - The name the admin gave the survey. Not shown to members. + The report that was viewed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `audience_cost_centers: optional array of string` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - Cost center values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by cost center. + How the member who viewed the report was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. - - `audience_departments: optional array of string` + - `"admin"` - Department values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by department. + - `"delegate"` - - `audience_group_ids: optional array of string` + - `"share_recipient"` - Tagged IDs of the groups the survey was opened to, e.g. "rbac_group_01HX...". + - `"unspecified"` - `created_at: optional string` @@ -36939,13 +36945,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyDeleted object` + - `ClaudeInsightsResourceAccessUpdated object` - An organization admin permanently deleted a closed in-app survey together with every response collected for it. + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. - - `type: optional "claude_survey_deleted"` + - `type: optional "claude_insights_resource_access_updated"` - default: claude_survey_deleted + default: claude_insights_resource_access_updated + + - `account_id: string` + + The member whose delegated scope changed, e.g. "user_01HX...". - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37153,17 +37163,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `response_count: number` + - `id: optional string` - The number of submitted responses that were deleted with the survey. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `survey_id: string` + - `added_scim_group_ids: optional array of string` - Tagged ID of the deleted survey, e.g. "srvy_01HX...". + Directory groups this change added to the member's scope. - - `id: optional string` + - `added_scope_attribute: optional string or null` - Unique identifier for the activity e.g. 'activity_abcd1234' + Directory attribute ("department" / "cost_center") of the added values below. Unset when no attribute value was added. + + - `added_scope_attribute_values: optional array of string` + + The values of that attribute this change added, as the directory carries them (customer directory text). - `created_at: optional string` @@ -37179,13 +37193,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyResponseSubmitted object` + - `removed_scim_group_ids: optional array of string` - A member submitted their response to an in-app survey run by their organization; the record omits the response content, and a retried submission can produce more than one record for the same response. + Directory groups this change removed from the member's scope. - - `type: optional "claude_survey_response_submitted"` + - `removed_scope_attribute: optional string or null` - default: claude_survey_response_submitted + Directory attribute of the removed values below. Unset when no attribute value was removed. + + - `removed_scope_attribute_values: optional array of string` + + The values of that attribute this change removed. + + - `ClaudePluginArchiveAccessed object` + + A version archive of a member-owned plugin, containing that member's own files, was downloaded. + + - `type: optional "claude_plugin_archive_accessed"` + + default: claude_plugin_archive_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37393,9 +37419,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `survey_id: string` + - `marketplace_id: string` - Tagged ID of the survey that was answered, e.g. "srvy_01HX...". + The member's personal marketplace the plugin belongs to. + + - `owner_user_id: string` + + The member who owns the plugin. + + - `plugin_id: string` + + The plugin whose archive was downloaded. + + - `plugin_version_id: string` + + The version whose archive was downloaded. - `id: optional string` @@ -37415,13 +37453,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSurveyResponsesExported object` + - `ClaudePluginDownloaded object` - An organization admin downloaded a survey's responses as a CSV file, one row per response with the member's email address (blank if it is no longer available, for example because they left the organization), the groups, department and cost center they were invited through, the product they answered in, the submission time, and their answers. + The archive of the plugin version a member was served was downloaded to install or update the plugin in one of the member's Claude apps (Claude in the browser, the Claude desktop app, Claude Code, or a cloud session). Recorded when the member explicitly installs, updates or downloads the plugin (user_action), and when a fetch creates the member's install record for the plugin — its first delivery to them, whether a background sync of a plugin distributed to them or their own first install, which then carries both records (first_delivery). A plugin the member enabled in Claude is on the feed as claude_plugin_enabled and its later delivery by a client's background sync is not recorded again; nor are re-syncs, or fetches that only display the plugin's files in the browser. - - `type: optional "claude_survey_responses_exported"` + - `type: optional "claude_plugin_downloaded"` - default: claude_survey_responses_exported + default: claude_plugin_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37629,13 +37667,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `response_count: number` + - `marketplace_id: string` - The number of submitted responses included in the export. + The marketplace the plugin belongs to. - - `survey_id: string` + - `plugin_id: string` - Tagged ID of the exported survey, e.g. "srvy_01HX...". + The plugin that was downloaded. - `id: optional string` @@ -37655,13 +37693,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeUserSeatTierUpdated object` + - `plugin_version_id: optional string or null` - An organization member's seat tier was changed. A null `previous_seat_tier` means the member previously had no seat assigned; a null `current_seat_tier` means the seat was removed. + The version whose archive was downloaded; unset for a plugin that predates version records. - - `type: optional "claude_user_seat_tier_updated"` + - `reason: optional "first_delivery" or "unspecified" or "user_action" or null` - default: claude_user_seat_tier_updated + Why this download was recorded: the member's explicit action, or the archive's first delivery to them. + + - `"first_delivery"` + + - `"unspecified"` + + - `"user_action"` + + - `ClaudePluginServedVersionUpdated object` + + A plugin's served version was updated: an administrator or the owner chose a version, a saved version became the served version, or an accepted library submission was published into the plugin. + + - `type: optional "claude_plugin_served_version_updated"` + + default: claude_plugin_served_version_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -37869,13 +37921,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_email: string` + - `marketplace_id: string` - Email address of the member at the time of the change. + The marketplace the plugin belongs to. - - `user_id: string` + - `plugin_id: string` - Tagged ID of the member whose seat tier changed. + The plugin whose served version was updated. + + - `to_plugin_version_id: string` + + The served version after the update. + + - `trigger: "library_publish" or "manual" or "save" or "unspecified"` + + What caused the update. + + - `"library_publish"` + + - `"manual"` + + - `"save"` + + - `"unspecified"` - `id: optional string` @@ -37887,9 +37955,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_seat_tier: optional string or null` + - `from_plugin_version_id: optional string or null` - The member's seat tier after this change, or null if the seat was removed. + The served version before the update; the same as to_plugin_version_id when the update kept the served version. Unset when the plugin had no served version. - `organization_id: optional string or null` @@ -37899,17 +37967,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_seat_tier: optional string or null` - - The member's seat tier before this change, or null if no seat was assigned. - - - `CliPluginExecPolicyUpdated object` + - `ClaudePluginVersionCreated object` - Admin set or cleared the per-op permission ceiling for a plugin CLI. + A new version of a plugin was created. - - `type: optional "cli_plugin_exec_policy_updated"` + - `type: optional "claude_plugin_version_created"` - default: cli_plugin_exec_policy_updated + default: claude_plugin_version_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38117,40 +38181,48 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `cli_name: string` + - `is_initial_version: boolean` - CLI name as declared by the plugin manifest + Whether this version also created the plugin (its first version). - `marketplace_id: string` - Marketplace ID owning the plugin + The marketplace the plugin belongs to. - - `op_name: string` + - `origin: "library_publish" or "marketplace_sync" or "unspecified" or "upload"` - Op name (or '*' for the per-CLI default) + How the version came to exist. + + - `"library_publish"` + + - `"marketplace_sync"` + + - `"unspecified"` + + - `"upload"` - `plugin_id: string` - Plugin ID resolved from the URL + The plugin that gained a version. - - `plugin_name: string` + - `plugin_version_id: string` - Plugin name within its marketplace + The new version. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `became_served_version: optional boolean or null` + + Whether this became the plugin's served version as soon as it was created; if so, there may be no claude_plugin_served_version_updated record for the change. When false, the served version stayed as it was, and making this the served version later is recorded as claude_plugin_served_version_updated. + - `created_at: optional string` When this activity occurred. format: date-time - - `max_permission: optional string or null` - - New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -38159,17 +38231,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_max_permission: optional string or null` - - Max permission the op had before this change ('allow' | 'ask' | 'blocked'), or null when no policy existed for the op - - - `ClaudeCommandCreated object` + - `ClaudeProjectSyncSourceCreated object` - Command was created. + A sync source was connected to a Claude project's knowledge base. - - `type: optional "claude_command_created"` + - `type: optional "claude_project_sync_source_created"` - default: claude_command_created + default: claude_project_sync_source_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38377,13 +38445,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `claude_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the project the sync source was connected to. - - `command_id: optional string or null` + - `claude_project_sync_source_id: string` - - `command_name: optional string or null` + Tagged ID of the per-project sync source that was created. + + - `provider: string` + + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -38399,13 +38475,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCommandDeleted object` + - `resource_descriptor: optional string or null` - Command was deleted. + A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_command_deleted"` + - `ClaudeProjectSyncSourceDeleted object` - default: claude_command_deleted + A sync source was disconnected from a Claude project's knowledge base. + + - `type: optional "claude_project_sync_source_deleted"` + + default: claude_project_sync_source_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38613,13 +38693,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `claude_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the project the sync source was disconnected from. - - `command_id: optional string or null` + - `claude_project_sync_source_id: string` - - `command_name: optional string or null` + Tagged ID of the per-project sync source that was deleted. + + - `provider: string` + + The external provider backing the sync source. Always `unspecified` for deletion events. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -38635,13 +38723,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCommandReplaced object` + - `ClaudeProjectSyncSourceUpdated object` - Command was replaced. + A Claude project sync source's configuration was updated. - - `type: optional "claude_command_replaced"` + - `type: optional "claude_project_sync_source_updated"` - default: claude_command_replaced + default: claude_project_sync_source_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -38849,13 +38937,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project the sync source belongs to. + + - `claude_project_sync_source_id: string` + + Tagged ID of the per-project sync source that was updated. + + - `provider: string` + + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `command_id: optional string or null` + - `config_changed: optional boolean or null` - - `command_name: optional string or null` + Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. - `created_at: optional string` @@ -38871,13 +38971,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ComplianceAPIAccessed object` + - `resource_descriptor: optional string or null` - Logging event auto-generated for each compliance API request. + A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "compliance_api_accessed"` + - `ClaudeSkillDownloaded object` - default: compliance_api_accessed + A member explicitly downloaded a skill's files to their device: the Download action in Claude, a single file saved from the skill viewer, or an install they asked one of their Claude apps for. Background syncs to the Claude apps, viewing a skill in the app and services reading a skill on the member's behalf are not recorded. + + - `type: optional "claude_skill_downloaded"` + + default: claude_skill_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39085,31 +39189,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `request_id: string` - - Identifier of the request, as returned in the response's request-id header - - - `request_method: "DELETE" or "GET" or "POST" or 2 more` - - HTTP method of the request + - `download_kind: "bundle" or "file" or "instructions" or "unspecified"` - - `"DELETE"` + Whether the whole bundle, one file, or only the instructions were downloaded. - - `"GET"` + - `"bundle"` - - `"POST"` + - `"file"` - - `"PUT"` + - `"instructions"` - `"unspecified"` - - `status_code: number` - - HTTP status code - - - `url: string` + - `skill_id: string` - Full URL that was requested, including any query string + The skill that was downloaded. - `id: optional string` @@ -39121,6 +39215,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `marketplace_id: optional string or null` + + The marketplace of the plugin that carries the skill; unset for a standalone skill. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -39129,17 +39227,39 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `request_body: optional string or null` + - `owner_user_id: optional string or null` - Serialized JSON request body + The member who owns the skill; unset for an organization-owned skill. - - `CoworkSessionUpdated object` + - `plugin_id: optional string or null` - A Cowork session was updated. + The plugin that carries the skill; unset for a standalone skill. - - `type: optional "cowork_session_updated"` + - `scope: optional "organization" or "personal" or "unspecified" or null` - default: cowork_session_updated + Whether the skill is a member's own or the organization's. + + - `"organization"` + + - `"personal"` + + - `"unspecified"` + + - `skill_name: optional string or null` + + The name of the skill that was downloaded. + + - `skill_version: optional string or null` + + The version that was downloaded; unset for an unversioned skill. + + - `ClaudeSurveyClosed object` + + An organization admin closed an in-app survey before its end date, ending the collection of responses; a survey that reaches its end date records no event. + + - `type: optional "claude_survey_closed"` + + default: claude_survey_closed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39347,18 +39467,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `cowork_session_id: string` + - `survey_id: string` - Tagged ID of the updated session, e.g. "sess_01HX...". + Tagged ID of the closed survey, e.g. "srvy_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_id: optional string or null` - - Tagged ID of the project the session was moved to, if any, e.g. "claude_proj_01HX...". Absent when the session was removed from its project. - - `created_at: optional string` When this activity occurred. @@ -39373,13 +39489,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesignProjectArtifactPublished object` + - `ClaudeSurveyCreated object` - A Claude Design project's content was published as a claude.ai artifact, making a snapshot of one of its files viewable outside the project's sharing settings. + An organization admin launched an in-app survey to its chosen audience, opening it immediately or at a scheduled start time. - - `type: optional "design_project_artifact_published"` + - `type: optional "claude_survey_created"` - default: design_project_artifact_published + default: claude_survey_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39587,24 +39703,40 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `all_members: boolean` - The Design project whose content was published, e.g. "design_proj_01HX...". + Whether the survey was opened to every member of the organization. When false, it was opened to members who, at launch, were in any of the selected groups, departments, or cost centers. + + - `survey_id: string` + + Tagged ID of the created survey, e.g. "srvy_01HX...". + + - `survey_name: string` + + The name the admin gave the survey. Not shown to members. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `audience_cost_centers: optional array of string` + + Cost center values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by cost center. + + - `audience_departments: optional array of string` + + Department values the admin selected, exactly as the organization's identity provider sends them through SCIM. Empty when the survey did not target by department. + + - `audience_group_ids: optional array of string` + + Tagged IDs of the groups the survey was opened to, e.g. "rbac_group_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `is_public: optional boolean or null` - - True when the published artifact is publicly viewable after this call (anyone with the link). False when it is not — by default, a newly published artifact is visible only to the person who published it. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -39613,17 +39745,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectCreated object` + - `ClaudeSurveyDeleted object` - A Claude Design project was created. + An organization admin permanently deleted a closed in-app survey together with every response collected for it. - - `type: optional "design_project_created"` + - `type: optional "claude_survey_deleted"` - default: design_project_created + default: claude_survey_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -39831,13 +39959,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `creation_method: string` + - `response_count: number` - How the project was created: "direct", "duplicate", "remix", or "template_from_project". + The number of submitted responses that were deleted with the survey. - - `design_project_id: string` + - `survey_id: string` - The Design project that was created, e.g. "design_proj_01HX...". + Tagged ID of the deleted survey, e.g. "srvy_01HX...". - `id: optional string` @@ -39857,21 +39985,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project type: "project", "template", or "design_system". - - - `source_project_id: optional string or null` - - The source project this was created from, when created via duplicate, remix, or template-from-project. Unset for direct creation. - - - `DesignProjectDeleted object` + - `ClaudeSurveyResponseSubmitted object` - A Claude Design project was deleted. + A member submitted their response to an in-app survey run by their organization; the record omits the response content, and a retried submission can produce more than one record for the same response. - - `type: optional "design_project_deleted"` + - `type: optional "claude_survey_response_submitted"` - default: design_project_deleted + default: claude_survey_response_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40079,9 +40199,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `survey_id: string` - The Design project that was deleted, e.g. "design_proj_01HX...". + Tagged ID of the survey that was answered, e.g. "srvy_01HX...". - `id: optional string` @@ -40101,13 +40221,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesignProjectMemberAdded object` + - `ClaudeSurveyResponsesExported object` - A member was granted access to a Claude Design project. + An organization admin downloaded a survey's responses as a CSV file, one row per response with the member's email address (blank if it is no longer available, for example because they left the organization), the groups, department and cost center they were invited through, the product they answered in, the submission time, and their answers. - - `type: optional "design_project_member_added"` + - `type: optional "claude_survey_responses_exported"` - default: design_project_member_added + default: claude_survey_responses_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40315,21 +40435,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project the member was added to, e.g. "design_proj_01HX...". - - - `principal_id: string` - - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". - - - `principal_type: string` + - `response_count: number` - The kind of member that was added: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + The number of submitted responses included in the export. - - `role: string` + - `survey_id: string` - The role the member was granted: "viewer", "commenter", or "editor". Access-group ("compartment") members are always view-only. + Tagged ID of the exported survey, e.g. "srvy_01HX...". - `id: optional string` @@ -40349,17 +40461,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectMemberRemoved object` + - `ClaudeUserSeatTierUpdated object` - A member's access to a Claude Design project was revoked. + An organization member's seat tier was changed. A null `previous_seat_tier` means the member previously had no seat assigned; a null `current_seat_tier` means the seat was removed. - - `type: optional "design_project_member_removed"` + - `type: optional "claude_user_seat_tier_updated"` - default: design_project_member_removed + default: claude_user_seat_tier_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40567,17 +40675,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project the member was removed from, e.g. "design_proj_01HX...". - - - `principal_id: string` + - `user_email: string` - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + Email address of the member at the time of the change. - - `principal_type: string` + - `user_id: string` - The kind of member that was removed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + Tagged ID of the member whose seat tier changed. - `id: optional string` @@ -40589,6 +40693,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_seat_tier: optional string or null` + + The member's seat tier after this change, or null if the seat was removed. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -40597,17 +40705,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` + - `previous_seat_tier: optional string or null` - The project's type: "project", "template", or "design_system". + The member's seat tier before this change, or null if no seat was assigned. - - `DesignProjectMemberRoleUpdated object` + - `CliPluginExecPolicyUpdated object` - A Claude Design project member's role was changed. + Admin set or cleared the per-op permission ceiling for a plugin CLI. - - `type: optional "design_project_member_role_updated"` + - `type: optional "cli_plugin_exec_policy_updated"` - default: design_project_member_role_updated + default: cli_plugin_exec_policy_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -40815,21 +40923,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `cli_name: string` - The Design project the member belongs to, e.g. "design_proj_01HX...". + CLI name as declared by the plugin manifest - - `principal_id: string` + - `marketplace_id: string` - The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + Marketplace ID owning the plugin - - `principal_type: string` + - `op_name: string` - The kind of member whose role was changed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + Op name (or '*' for the per-CLI default) - - `role: string` + - `plugin_id: string` - The member's role after the change: "viewer", "commenter", or "editor". + Plugin ID resolved from the URL + + - `plugin_name: string` + + Plugin name within its marketplace - `id: optional string` @@ -40841,6 +40953,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `max_permission: optional string or null` + + New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -40849,21 +40965,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` - - The member's role before the change. - - - `project_type: optional string or null` + - `previous_max_permission: optional string or null` - The project's type: "project", "template", or "design_system". + Max permission the op had before this change ('allow' | 'ask' | 'blocked'), or null when no policy existed for the op - - `DesignProjectPublished object` + - `ClaudeCommandCreated object` - A Claude Design template or design system was published, making it discoverable by everyone in its organization. + Command was created. - - `type: optional "design_project_published"` + - `type: optional "claude_command_created"` - default: design_project_published + default: claude_command_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41071,14 +41183,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project that was published, e.g. "design_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41093,17 +41205,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "template" or "design_system". - - - `DesignProjectSharingUpdated object` + - `ClaudeCommandDeleted object` - A Claude Design project's link-sharing settings were changed — who the project's link works for, and what people opening it through the link may do. Access granted to individual members is reported separately (see design_project_member_added). + Command was deleted. - - `type: optional "design_project_sharing_updated"` + - `type: optional "claude_command_deleted"` - default: design_project_sharing_updated + default: claude_command_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41311,22 +41419,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project whose sharing settings changed, e.g. "design_proj_01HX...". - - - `new_link_permission: string` - - What people opening the project through its link may do after the change: "view", "comment", or "edit". - - - `new_scope: string` - - Who the project link is set to work for after the change: "invited" (only the owner and individually invited members) or "org" (anyone in the project's organization, where the organization's own sharing settings allow org-wide visibility). This records the project's stored setting as changed by the actor; organization-level settings can further restrict who the link actually admits, and changes to those settings are not project events. Projects created before link sharing was restricted may also report a legacy "public" value. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41341,25 +41441,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_link_permission: optional string or null` - - What people opening the project through its link could do before the change. - - - `previous_scope: optional string or null` - - Who the project link was set to work for before the change — the stored setting, with the same organization-level caveat as new_scope. May include the legacy "public" value. - - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectUnpublished object` + - `ClaudeCommandReplaced object` - A Claude Design template or design system was unpublished, removing it from its organization's shared gallery. + Command was replaced. - - `type: optional "design_project_unpublished"` + - `type: optional "claude_command_replaced"` - default: design_project_unpublished + default: claude_command_replaced - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41567,14 +41655,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` - - The Design project that was unpublished, e.g. "design_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `command_id: optional string or null` + + - `command_name: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -41589,17 +41677,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "template" or "design_system". - - - `DesignProjectUpdated object` + - `ComplianceAPIAccessed object` - A Claude Design project's metadata was updated. + Logging event auto-generated for each compliance API request. - - `type: optional "design_project_updated"` + - `type: optional "compliance_api_accessed"` - default: design_project_updated + default: compliance_api_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -41807,9 +41891,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `request_id: string` - The Design project that was updated, e.g. "design_proj_01HX...". + Identifier of the request, as returned in the response's request-id header + + - `request_method: "DELETE" or "GET" or "POST" or 2 more` + + HTTP method of the request + + - `"DELETE"` + + - `"GET"` + + - `"POST"` + + - `"PUT"` + + - `"unspecified"` + + - `status_code: number` + + HTTP status code + + - `url: string` + + Full URL that was requested, including any query string - `id: optional string` @@ -41829,21 +41935,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type after the update: "project", "template", or "design_system". Present only when the update changed it. - - - `updated_fields: optional array of string` + - `request_body: optional string or null` - Names of the fields changed by this update, e.g. "name", "description", "project_type", "design_systems". + Serialized JSON request body - - `DesignProjectVersionRestored object` + - `CoworkSessionUpdated object` - A Claude Design project's working tree was rolled back to a previously saved version, replacing its current files with that version's files. + A Cowork session was updated. - - `type: optional "design_project_version_restored"` + - `type: optional "cowork_session_updated"` - default: design_project_version_restored + default: cowork_session_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42051,14 +42153,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `design_project_id: string` + - `cowork_session_id: string` - The Design project that was restored, e.g. "design_proj_01HX...". + Tagged ID of the updated session, e.g. "sess_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + Tagged ID of the project the session was moved to, if any, e.g. "claude_proj_01HX...". Absent when the session was removed from its project. + - `created_at: optional string` When this activity occurred. @@ -42073,21 +42179,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `project_type: optional string or null` - - The project's type: "project", "template", or "design_system". - - - `DesignProjectViewed object` - - A Claude Design project's content was read. The surface field records which kind of read — a project open, a full-content read, a single-file read, a saved-version read, or an export request. The actor is the reader. + - `DesignProjectArtifactPublished object` - This activity type is retired: project content reads are no longer - recorded. Events of this type may still appear in feeds for reads that - occurred while it was active. + A Claude Design project's content was published as a claude.ai artifact, making a snapshot of one of its files viewable outside the project's sharing settings. - - `type: optional "design_project_viewed"` + - `type: optional "design_project_artifact_published"` - default: design_project_viewed + default: design_project_artifact_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42297,26 +42395,22 @@ compliance activities that can be filtered by various criteria. - `design_project_id: string` - The Design project whose content was read, e.g. "design_proj_01HX...". - - - `surface: string` - - Which read surface recorded this open: "project" (the project was opened), "project_data" (the project's full contents were read or made readable — either a direct data read, which also includes the project's conversations when the reader's access extends to them, or a render-token request, which exposes the project's files for the token's lifetime; the two share this value and are not distinguished), "file" (one of the project's files was read), "version" (a saved version of the project's files, including their contents, was read — version-history browsing that lists names without contents is not recorded), or "export" (an authenticated export of the project's contents was requested). + The Design project whose content was published, e.g. "design_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional string or null` - - How the viewer was authorized to open the project: "owner" (the project's owner), "member_grant" (an individually invited member), "org_link" (org-wide link sharing), "trusted_service" (an authorized agent), or "design_system_reference" (an indirect read of a design system through a project that uses it). - - `created_at: optional string` When this activity occurred. format: date-time + - `is_public: optional boolean or null` + + True when the published artifact is publicly viewable after this call (anyone with the link). False when it is not — by default, a newly published artifact is visible only to the person who published it. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -42329,13 +42423,13 @@ compliance activities that can be filtered by various criteria. The project's type: "project", "template", or "design_system". - - `DesktopExtensionAllowlisted object` + - `DesignProjectCreated object` - A desktop extension was added to an org's allowlist. + A Claude Design project was created. - - `type: optional "desktop_extension_allowlisted"` + - `type: optional "design_project_created"` - default: desktop_extension_allowlisted + default: design_project_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42543,25 +42637,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - Allowlisted DXT extension ID - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `attestations: optional array of object` + - `creation_method: string` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + How the project was created: "direct", "duplicate", "remix", or "template_from_project". - - `type: string` + - `design_project_id: string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + The Design project that was created, e.g. "design_proj_01HX...". - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -42577,13 +42663,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionBlocklisted object` + - `project_type: optional string or null` - A desktop extension was added to the global blocklist. + The project type: "project", "template", or "design_system". - - `type: optional "desktop_extension_blocklisted"` + - `source_project_id: optional string or null` - default: desktop_extension_blocklisted + The source project this was created from, when created via duplicate, remix, or template-from-project. Unset for direct creation. + + - `DesignProjectDeleted object` + + A Claude Design project was deleted. + + - `type: optional "design_project_deleted"` + + default: design_project_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -42791,9 +42885,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - Blocklisted DXT extension ID + The Design project that was deleted, e.g. "design_proj_01HX...". - `id: optional string` @@ -42813,13 +42907,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionDeleted object` + - `DesignProjectMemberAdded object` - A desktop extension was deleted, either globally by an admin or org-scoped by an org owner. + A member was granted access to a Claude Design project. - - `type: optional "desktop_extension_deleted"` + - `type: optional "design_project_member_added"` - default: desktop_extension_deleted + default: design_project_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43027,9 +43121,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - DXT extension ID + The Design project the member was added to, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member that was added: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + + - `role: string` + + The role the member was granted: "viewer", "commenter", or "editor". Access-group ("compartment") members are always view-only. - `id: optional string` @@ -43049,17 +43155,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `version: optional string or null` + - `project_type: optional string or null` - Specific version deleted (null if all versions) + The project's type: "project", "template", or "design_system". - - `DesktopExtensionRemovedFromAllowlist object` + - `DesignProjectMemberRemoved object` - A desktop extension was removed from an org's allowlist. + A member's access to a Claude Design project was revoked. - - `type: optional "desktop_extension_removed_from_allowlist"` + - `type: optional "design_project_member_removed"` - default: desktop_extension_removed_from_allowlist + default: design_project_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43267,9 +43373,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - DXT extension ID removed from allowlist + The Design project the member was removed from, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member that was removed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). - `id: optional string` @@ -43289,13 +43403,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionUnblocked object` + - `project_type: optional string or null` - A desktop extension was removed from the global blocklist. + The project's type: "project", "template", or "design_system". - - `type: optional "desktop_extension_unblocked"` + - `DesignProjectMemberRoleUpdated object` - default: desktop_extension_unblocked + A Claude Design project member's role was changed. + + - `type: optional "design_project_member_role_updated"` + + default: design_project_member_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43503,9 +43621,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` + - `design_project_id: string` - Unblocked DXT extension ID + The Design project the member belongs to, e.g. "design_proj_01HX...". + + - `principal_id: string` + + The member's identifier: a tagged user ID (e.g. "user_01HX...") for "account", the group's identifier for "compartment", or the service's identifier for "trusted_service". + + - `principal_type: string` + + The kind of member whose role was changed: "account" (a user), "compartment" (a named access group), or "trusted_service" (an authorized agent). + + - `role: string` + + The member's role after the change: "viewer", "commenter", or "editor". - `id: optional string` @@ -43525,13 +43655,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionUploaded object` + - `previous_role: optional string or null` - A desktop extension was uploaded, either globally by an admin or org-scoped by an org owner. + The member's role before the change. - - `type: optional "desktop_extension_uploaded"` + - `project_type: optional string or null` - default: desktop_extension_uploaded + The project's type: "project", "template", or "design_system". + + - `DesignProjectPublished object` + + A Claude Design template or design system was published, making it discoverable by everyone in its organization. + + - `type: optional "design_project_published"` + + default: design_project_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43739,30 +43877,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - DXT extension ID - - - `version: string` + - `design_project_id: string` - Version string from the manifest + The Design project that was published, e.g. "design_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -43777,13 +43899,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DesktopExtensionVersionUploaded object` + - `project_type: optional string or null` - A new version of an existing org-owned desktop extension was uploaded. + The project's type: "template" or "design_system". - - `type: optional "desktop_extension_version_uploaded"` + - `DesignProjectSharingUpdated object` - default: desktop_extension_version_uploaded + A Claude Design project's link-sharing settings were changed — who the project's link works for, and what people opening it through the link may do. Access granted to individual members is reported separately (see design_project_member_added). + + - `type: optional "design_project_sharing_updated"` + + default: design_project_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -43991,29 +44117,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `extension_id: string` - - DXT extension ID - - - `version: string` - - Version string from the manifest - - - `id: optional string` + - `design_project_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The Design project whose sharing settings changed, e.g. "design_proj_01HX...". - - `attestations: optional array of object` + - `new_link_permission: string` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + What people opening the project through its link may do after the change: "view", "comment", or "edit". - - `type: string` + - `new_scope: string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + Who the project link is set to work for after the change: "invited" (only the owner and individually invited members) or "org" (anyone in the project's organization, where the organization's own sharing settings allow org-wide visibility). This records the project's stored setting as changed by the actor; organization-level settings can further restrict who the link actually admits, and changes to those settings are not project events. Projects created before link sharing was restricted may also report a legacy "public" value. - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -44029,13 +44147,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InferenceHooksConfigDeleted object` + - `previous_link_permission: optional string or null` - Inference hooks configuration was removed for the organization. + What people opening the project through its link could do before the change. - - `type: optional "inference_hooks_config_deleted"` + - `previous_scope: optional string or null` - default: inference_hooks_config_deleted + Who the project link was set to work for before the change — the stored setting, with the same organization-level caveat as new_scope. May include the legacy "public" value. + + - `project_type: optional string or null` + + The project's type: "project", "template", or "design_system". + + - `DesignProjectUnpublished object` + + A Claude Design template or design system was unpublished, removing it from its organization's shared gallery. + + - `type: optional "design_project_unpublished"` + + default: design_project_unpublished - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44243,6 +44373,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `design_project_id: string` + + The Design project that was unpublished, e.g. "design_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -44261,13 +44395,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InferenceHooksConfigUpdated object` + - `project_type: optional string or null` - Inference hooks configuration was created or updated for the organization. + The project's type: "template" or "design_system". - - `type: optional "inference_hooks_config_updated"` + - `DesignProjectUpdated object` - default: inference_hooks_config_updated + A Claude Design project's metadata was updated. + + - `type: optional "design_project_updated"` + + default: design_project_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44475,29 +44613,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether Inference hooks enforcement is enabled after this change. - - - `enforcement_mode: string` - - Whether Inference hooks inspects both prompts and responses (prompt_and_response) or prompts only (prompt_only). - - - `fail_mode: string` - - Whether requests are allowed (fail_open) or blocked (fail_closed) when the Inference hooks endpoint cannot be reached. - - - `final_verdict_timeout_ms: number` - - Milliseconds inference waits for the Inference hooks verdict on the response. - - - `prompt_verdict_timeout_ms: number` - - Milliseconds inference waits for the Inference hooks verdict on the prompt. - - - `webhook_url: string` + - `design_project_id: string` - Scheme and host of the endpoint that Inference hooks sends prompts and responses to after this change, for example `https://hooks.example.com`; the port, path and query are never included. Empty when the address cannot be shown safely, and on activities recorded before this field was limited to scheme and host. + The Design project that was updated, e.g. "design_proj_01HX...". - `id: optional string` @@ -44509,18 +44627,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `deny_message: optional string or null` - - Administrator-written text shown to users at the end of the error message when a request is blocked by the organization's Inference hooks policy, as configured after this change. Null when the built-in default message is in effect; an empty string when the administrator configured an empty message, in which case no text is appended. - - - `deny_message_enabled: optional boolean or null` - - Whether the organization has the appended deny message turned on, as configured after this change. When on, the administrator-written message (or the built-in default, when none is configured) is appended to the error users see when a request is blocked by the organization's Inference hooks policy; no text is appended when the administrator-written message is empty, or when this is off. - - - `extra_header_names: optional array of string or null` - - Names of the custom HTTP headers attached to every Inference hooks request after this change, or null when this update did not change headers. Header values are write-only and are not recorded. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -44529,29 +44635,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reset_circuit_breaker: optional boolean or null` - - Whether this update carried an explicit request to clear the circuit breaker. A tripped breaker otherwise survives configuration updates; it also clears whenever an update enables enforcement. - - - `rollout_percentage: optional number or null` - - Percentage of requests (0-100) inspected by Inference hooks after this change, or null when this update did not change it. 0 disables inspection; 100 inspects every request. - - - `shadow_mode: optional boolean or null` + - `project_type: optional string or null` - Whether the organization's Inference hooks run in shadow mode after this change, or null when this update did not change it. In shadow mode, prompts are still sent to the organization's endpoint and verdicts are recorded, but requests are never blocked. + The project's type after the update: "project", "template", or "design_system". Present only when the update changed it. - - `validate_tool_calls: optional boolean or null` + - `updated_fields: optional array of string` - Whether Inference hooks validate tool calls, as configured after this change. Null means tool calls are not validated: either nothing has been saved for this setting, as in a configuration created before the setting became available, or the setting is not yet available to the organization. A configuration created once the setting is available starts with it on by default. When on, tool calls the model requests are also sent to the organization's endpoint before they run, and its verdict is applied as it is for prompts. + Names of the fields changed by this update, e.g. "name", "description", "project_type", "design_systems". - - `InferenceHooksSigningSecretGenerated object` + - `DesignProjectVersionRestored object` - A request signing secret was generated for the organization's Inference hooks configuration. + A Claude Design project's working tree was rolled back to a previously saved version, replacing its current files with that version's files. - - `type: optional "inference_hooks_signing_secret_generated"` + - `type: optional "design_project_version_restored"` - default: inference_hooks_signing_secret_generated + default: design_project_version_restored - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44759,9 +44857,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `rotated: boolean` + - `design_project_id: string` - Whether this generation replaced an existing signing secret (true) or created the organization's first one (false). Replacing a secret invalidates the previous one immediately. + The Design project that was restored, e.g. "design_proj_01HX...". - `id: optional string` @@ -44781,13 +44879,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `DomainClaimInitiated object` + - `project_type: optional string or null` - Domain capture claim initiated over personal accounts on verified domains. + The project's type: "project", "template", or "design_system". - - `type: optional "domain_claim_initiated"` + - `DesignProjectViewed object` - default: domain_claim_initiated + A Claude Design project's content was read. The surface field records which kind of read — a project open, a full-content read, a single-file read, a saved-version read, or an export request. The actor is the reader. + + This activity type is retired: project content reads are no longer + recorded. Events of this type may still appear in feeds for reads that + occurred while it was active. + + - `type: optional "design_project_viewed"` + + default: design_project_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -44995,10 +45101,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `design_project_id: string` + + The Design project whose content was read, e.g. "design_proj_01HX...". + + - `surface: string` + + Which read surface recorded this open: "project" (the project was opened), "project_data" (the project's full contents were read or made readable — either a direct data read, which also includes the project's conversations when the reader's access extends to them, or a render-token request, which exposes the project's files for the token's lifetime; the two share this value and are not distinguished), "file" (one of the project's files was read), "version" (a saved version of the project's files, including their contents, was read — version-history browsing that lists names without contents is not recorded), or "export" (an authenticated export of the project's contents was requested). + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional string or null` + + How the viewer was authorized to open the project: "owner" (the project's owner), "member_grant" (an individually invited member), "org_link" (org-wide link sharing), "trusted_service" (an authorized agent), or "design_system_reference" (an indirect read of a design system through a project that uses it). + - `created_at: optional string` When this activity occurred. @@ -45013,13 +45131,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `EndUserInviteRequested object` + - `project_type: optional string or null` - Non-admin member submitted an invite request for a new org member. + The project's type: "project", "template", or "design_system". - - `type: optional "end_user_invite_requested"` + - `DesktopExtensionAllowlisted object` - default: end_user_invite_requested + A desktop extension was added to an org's allowlist. + + - `type: optional "desktop_extension_allowlisted"` + + default: desktop_extension_allowlisted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45227,12 +45349,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invitee_email: string` + - `extension_id: string` + + Allowlisted DXT extension ID - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -45247,13 +45383,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageBillingEnabled object` + - `DesktopExtensionBlocklisted object` - Usage credit billing was enabled for an organization. + A desktop extension was added to the global blocklist. - - `type: optional "extra_usage_billing_enabled"` + - `type: optional "desktop_extension_blocklisted"` - default: extra_usage_billing_enabled + default: desktop_extension_blocklisted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45461,6 +45597,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + Blocklisted DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -45479,13 +45619,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageCreditGranted object` + - `DesktopExtensionDeleted object` - A promotional usage credit grant was claimed. + A desktop extension was deleted, either globally by an admin or org-scoped by an org owner. - - `type: optional "extra_usage_credit_granted"` + - `type: optional "desktop_extension_deleted"` - default: extra_usage_credit_granted + default: desktop_extension_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45693,6 +45833,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -45711,13 +45855,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ExtraUsageSpendLimitCreated object` + - `version: optional string or null` - Usage credit spend limit was created. + Specific version deleted (null if all versions) - - `type: optional "extra_usage_spend_limit_created"` + - `DesktopExtensionRemovedFromAllowlist object` - default: extra_usage_spend_limit_created + A desktop extension was removed from an org's allowlist. + + - `type: optional "desktop_extension_removed_from_allowlist"` + + default: desktop_extension_removed_from_allowlist - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -45925,13 +46073,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `extension_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + DXT extension ID removed from allowlist - - `amount: optional number or null` + - `id: optional string` - The monthly credit limit amount in minor units (e.g. cents). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -45939,14 +46087,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `is_enabled: optional boolean or null` - - Whether the spend limit is enabled. - - - `limit_type: optional string or null` - - The type of spend limit created (e.g. organization, seat_tier, member, service, group). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -45955,23 +46095,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ExtraUsageSpendLimitDeleted object` + - `DesktopExtensionUnblocked object` - Usage credit spend limit was deleted. + A desktop extension was removed from the global blocklist. - - `type: optional "extra_usage_spend_limit_deleted"` + - `type: optional "desktop_extension_unblocked"` - default: extra_usage_spend_limit_deleted + default: desktop_extension_unblocked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46179,6 +46309,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + Unblocked DXT extension ID + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -46197,23 +46331,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ExtraUsageSpendLimitIncreaseRequestApproved object` + - `DesktopExtensionUploaded object` - A usage credit spend limit increase request was approved. + A desktop extension was uploaded, either globally by an admin or org-scoped by an org owner. - - `type: optional "extra_usage_spend_limit_increase_request_approved"` + - `type: optional "desktop_extension_uploaded"` - default: extra_usage_spend_limit_increase_request_approved + default: desktop_extension_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46421,13 +46545,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + + - `version: string` + + Version string from the manifest + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `amount: optional number or null` + - `attestations: optional array of object` - The approved spend limit amount in minor units (e.g. cents). + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -46443,25 +46583,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `requester_user_id: optional string or null` - - Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - - `spend_limit_id: optional string or null` - - Tagged ID of the member's spend limit that the approval created or updated. - - - `spend_limit_increase_request_id: optional string or null` - - Tagged ID of the spend limit increase request that was approved. - - - `ExtraUsageSpendLimitIncreaseRequestDenied object` + - `DesktopExtensionVersionUploaded object` - A usage credit spend limit increase request was denied. + A new version of an existing org-owned desktop extension was uploaded. - - `type: optional "extra_usage_spend_limit_increase_request_denied"` + - `type: optional "desktop_extension_version_uploaded"` - default: extra_usage_spend_limit_increase_request_denied + default: desktop_extension_version_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46669,10 +46797,30 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `extension_id: string` + + DXT extension ID + + - `version: string` + + Version string from the manifest + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -46687,21 +46835,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `requester_user_id: optional string or null` - - Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - - `spend_limit_increase_request_id: optional string or null` - - Tagged ID of the spend limit increase request that was denied. - - - `ExtraUsageSpendLimitUpdated object` + - `InferenceHooksConfigDeleted object` - Usage credit spend limit was updated. + Inference hooks configuration was removed for the organization. - - `type: optional "extra_usage_spend_limit_updated"` + - `type: optional "inference_hooks_config_deleted"` - default: extra_usage_spend_limit_updated + default: inference_hooks_config_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -46913,24 +47053,12 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `amount: optional number or null` - - The new monthly credit limit amount in minor units (e.g. cents). - - `created_at: optional string` When this activity occurred. format: date-time - - `is_enabled: optional boolean or null` - - Whether the spend limit is enabled. - - - `limit_type: optional string or null` - - The type of spend limit updated (e.g. organization, seat_tier, member, service, group). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -46939,23 +47067,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - Tagged ID of the spend limit. - - - `user_id: optional string or null` - - **Deprecated** - - Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - - - `ClaudeFileDeleted object` + - `InferenceHooksConfigUpdated object` - A file was deleted. + Inference hooks configuration was created or updated for the organization. - - `type: optional "claude_file_deleted"` + - `type: optional "inference_hooks_config_updated"` - default: claude_file_deleted + default: inference_hooks_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47163,9 +47281,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `enabled: boolean` - Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". + Whether Inference hooks enforcement is enabled after this change. + + - `enforcement_mode: string` + + Whether Inference hooks inspects both prompts and responses (prompt_and_response) or prompts only (prompt_only). + + - `fail_mode: string` + + Whether requests are allowed (fail_open) or blocked (fail_closed) when the Inference hooks endpoint cannot be reached. + + - `final_verdict_timeout_ms: number` + + Milliseconds inference waits for the Inference hooks verdict on the response. + + - `prompt_verdict_timeout_ms: number` + + Milliseconds inference waits for the Inference hooks verdict on the prompt. + + - `webhook_url: string` + + Scheme and host of the endpoint that Inference hooks sends prompts and responses to after this change, for example `https://hooks.example.com`; the port, path and query are never included. Empty when the address cannot be shown safely, and on activities recorded before this field was limited to scheme and host. - `id: optional string` @@ -47177,6 +47315,18 @@ compliance activities that can be filtered by various criteria. format: date-time + - `deny_message: optional string or null` + + Administrator-written text shown to users at the end of the error message when a request is blocked by the organization's Inference hooks policy, as configured after this change. Null when the built-in default message is in effect; an empty string when the administrator configured an empty message, in which case no text is appended. + + - `deny_message_enabled: optional boolean or null` + + Whether the organization has the appended deny message turned on, as configured after this change. When on, the administrator-written message (or the built-in default, when none is configured) is appended to the error users see when a request is blocked by the organization's Inference hooks policy; no text is appended when the administrator-written message is empty, or when this is off. + + - `extra_header_names: optional array of string or null` + + Names of the custom HTTP headers attached to every Inference hooks request after this change, or null when this update did not change headers. Header values are write-only and are not recorded. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47185,19 +47335,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `reset_circuit_breaker: optional boolean or null` - **Deprecated** + Whether this update carried an explicit request to clear the circuit breaker. A tripped breaker otherwise survives configuration updates; it also clears whenever an update enables enforcement. - No longer populated. The name can't be looked up once the file is deleted. + - `rollout_percentage: optional number or null` - - `ClaudeFileUploaded object` + Percentage of requests (0-100) inspected by Inference hooks after this change, or null when this update did not change it. 0 disables inspection; 100 inspects every request. - A file was uploaded. + - `shadow_mode: optional boolean or null` - - `type: optional "claude_file_uploaded"` + Whether the organization's Inference hooks run in shadow mode after this change, or null when this update did not change it. In shadow mode, prompts are still sent to the organization's endpoint and verdicts are recorded, but requests are never blocked. - default: claude_file_uploaded + - `validate_tool_calls: optional boolean or null` + + Whether Inference hooks validate tool calls, as configured after this change. Null means tool calls are not validated: either nothing has been saved for this setting, as in a configuration created before the setting became available, or the setting is not yet available to the organization. A configuration created once the setting is available starts with it on by default. When on, tool calls the model requests are also sent to the organization's endpoint before they run, and its verdict is applied as it is for prompts. + + - `InferenceHooksSigningSecretGenerated object` + + A request signing secret was generated for the organization's Inference hooks configuration. + + - `type: optional "inference_hooks_signing_secret_generated"` + + default: inference_hooks_signing_secret_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47405,22 +47565,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `rotated: boolean` - Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". + Whether this generation replaced an existing signing secret (true) or created the organization's first one (false). Replacing a secret invalidates the previous one immediately. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` - - Chat ID if known at upload time (null for the upload-then-attach flow). To find which chats a file was later attached to, use `GET /v1/compliance/apps/chats/files/{claude_file_id}`. - - - `claude_project_id: optional string or null` - - Project ID if file was uploaded to a project - - `created_at: optional string` When this activity occurred. @@ -47435,19 +47587,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** - - No longer populated: the feed carries the object id; resolve the name via the Compliance API. - - - `GheConfigurationCreated object` + - `DomainClaimInitiated object` - Admin created a GHE configuration. + Domain capture claim initiated over personal accounts on verified domains. - - `type: optional "ghe_configuration_created"` + - `type: optional "domain_claim_initiated"` - default: ghe_configuration_created + default: domain_claim_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47655,10 +47801,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -47669,14 +47811,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `display_name: optional string or null` - - Display name given to the configuration - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47685,17 +47819,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - Custom port, if not the HTTPS default - - - `GheConfigurationDeleted object` + - `EndUserInviteRequested object` - Admin deleted a GHE configuration. + Non-admin member submitted an invite request for a new org member. - - `type: optional "ghe_configuration_deleted"` + - `type: optional "end_user_invite_requested"` - default: ghe_configuration_deleted + default: end_user_invite_requested - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -47903,9 +48033,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration + - `invitee_email: string` - `id: optional string` @@ -47917,14 +48045,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `display_name: optional string or null` - - Display name the configuration had when deleted - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -47933,17 +48053,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - Custom port, if not the HTTPS default - - - `GheConfigurationUpdated object` + - `ExtraUsageBillingEnabled object` - Admin updated a GHE configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + Usage credit billing was enabled for an organization. - - `type: optional "ghe_configuration_updated"` + - `type: optional "extra_usage_billing_enabled"` - default: ghe_configuration_updated + default: extra_usage_billing_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48151,10 +48267,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -48165,38 +48277,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `custom_ca_certificate_updated: optional boolean or null` - - Whether the custom CA certificate was replaced in this update - - - `display_name: optional string or null` - - New display name, when it changed - - - `github_app_client_id: optional string or null` - - New GitHub App client ID, when it changed - - - `github_app_client_secret_updated: optional boolean or null` - - Whether the GitHub App client secret was replaced in this update - - - `github_app_id: optional number or null` - - New GitHub App ID, when it changed - - - `github_app_private_key_updated: optional boolean or null` - - Whether the GitHub App private key was replaced in this update - - - `hostname: optional string or null` - - Hostname of the GitHub Enterprise instance (immutable; included for context) - - - `is_active: optional boolean or null` - - New active state, when it changed - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -48205,45 +48285,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - New port, when it changed - - - `previous_display_name: optional string or null` - - Display name before the change, when it changed - - - `previous_github_app_client_id: optional string or null` - - GitHub App client ID before the change, when it changed - - - `previous_github_app_id: optional number or null` - - GitHub App ID before the change, when it changed - - - `previous_is_active: optional boolean or null` - - Active state before the change, when it changed - - - `previous_port: optional number or null` - - Port before the change, when it changed - - - `read_replica_hostnames_updated: optional boolean or null` - - Whether the read replica hostnames were replaced in this update - - - `webhook_secret_updated: optional boolean or null` - - Whether the webhook secret was replaced in this update - - - `GheUserConnected object` + - `ExtraUsageCreditGranted object` - User connected to a GHE instance. + A promotional usage credit grant was claimed. - - `type: optional "ghe_user_connected"` + - `type: optional "extra_usage_credit_granted"` - default: ghe_user_connected + default: extra_usage_credit_granted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48461,10 +48509,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ghe_configuration_id: optional string or null` - - ID of the GHE configuration - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -48473,13 +48517,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GheUserDisconnected object` + - `ExtraUsageSpendLimitCreated object` - User disconnected from a GHE instance. + Usage credit spend limit was created. - - `type: optional "ghe_user_disconnected"` + - `type: optional "extra_usage_spend_limit_created"` - default: ghe_user_disconnected + default: extra_usage_spend_limit_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48691,15 +48735,23 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `amount: optional number or null` + + The monthly credit limit amount in minor units (e.g. cents). + - `created_at: optional string` When this activity occurred. format: date-time - - `ghe_configuration_id: optional string or null` + - `is_enabled: optional boolean or null` - ID of the GHE configuration + Whether the spend limit is enabled. + + - `limit_type: optional string or null` + + The type of spend limit created (e.g. organization, seat_tier, member, service, group). - `organization_id: optional string or null` @@ -48709,13 +48761,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GheWebhookSignatureInvalid object` + - `spend_limit_id: optional string or null` - Webhook signature validation failed. + Tagged ID of the spend limit. - - `type: optional "ghe_webhook_signature_invalid"` + - `user_id: optional string or null` - default: ghe_webhook_signature_invalid + **Deprecated** + + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. + + - `ExtraUsageSpendLimitDeleted object` + + Usage credit spend limit was deleted. + + - `type: optional "extra_usage_spend_limit_deleted"` + + default: extra_usage_spend_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -48923,10 +48985,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `ghe_configuration_id: string` - - ID of the GHE configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -48945,13 +49003,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGitHubIntegrationCreated object` + - `spend_limit_id: optional string or null` - A GitHub integration was enabled for the organization. + Tagged ID of the spend limit. - - `type: optional "claude_github_integration_created"` + - `user_id: optional string or null` - default: claude_github_integration_created + **Deprecated** + + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. + + - `ExtraUsageSpendLimitIncreaseRequestApproved object` + + A usage credit spend limit increase request was approved. + + - `type: optional "extra_usage_spend_limit_increase_request_approved"` + + default: extra_usage_spend_limit_increase_request_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49159,25 +49227,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` + - `amount: optional number or null` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + The approved spend limit amount in minor units (e.g. cents). - `created_at: optional string` @@ -49185,37 +49241,33 @@ compliance activities that can be filtered by various criteria. format: date-time - - `enabled: optional boolean or null` - - Whether the integration is enabled after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with - - `organization_name: optional string or null` - - Name of the GitHub organization the integration is connected to, when known. - - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` + - `requester_user_id: optional string or null` - Whether the integration was enabled before this change; null when the integration had never been configured. + Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - `repository_name: optional string or null` + - `spend_limit_id: optional string or null` - Name of the GitHub repository the integration is connected to, when known. + Tagged ID of the member's spend limit that the approval created or updated. - - `ClaudeGitHubIntegrationDeleted object` + - `spend_limit_increase_request_id: optional string or null` - A GitHub integration was disabled for the organization. + Tagged ID of the spend limit increase request that was approved. - - `type: optional "claude_github_integration_deleted"` + - `ExtraUsageSpendLimitIncreaseRequestDenied object` - default: claude_github_integration_deleted + A usage credit spend limit increase request was denied. + + - `type: optional "extra_usage_spend_limit_increase_request_denied"` + + default: extra_usage_spend_limit_increase_request_denied - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49423,10 +49475,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -49437,37 +49485,29 @@ compliance activities that can be filtered by various criteria. format: date-time - - `enabled: optional boolean or null` - - Whether the integration is enabled after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with - - `organization_name: optional string or null` - - Name of the GitHub organization the integration was connected to, when known. - - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` + - `requester_user_id: optional string or null` - Whether the integration was enabled before this change; null when the integration had never been configured. + Tagged ID of the member who requested the increase, e.g. "user_01HX...". - - `repository_name: optional string or null` + - `spend_limit_increase_request_id: optional string or null` - Name of the GitHub repository the integration was connected to, when known. + Tagged ID of the spend limit increase request that was denied. - - `ClaudeGitHubIntegrationUpdated object` + - `ExtraUsageSpendLimitUpdated object` - A GitHub integration's configuration was updated. + Usage credit spend limit was updated. - - `type: optional "claude_github_integration_updated"` + - `type: optional "extra_usage_spend_limit_updated"` - default: claude_github_integration_updated + default: extra_usage_spend_limit_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49675,43 +49715,53 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `amount: optional number or null` + + The new monthly credit limit amount in minor units (e.g. cents). + - `created_at: optional string` When this activity occurred. format: date-time - - `organization_id: optional string or null` + - `is_enabled: optional boolean or null` - Organization ID this activity is associated with + Whether the spend limit is enabled. - - `organization_name: optional string or null` + - `limit_type: optional string or null` - Name of the GitHub organization the integration is connected to, when known. + The type of spend limit updated (e.g. organization, seat_tier, member, service, group). + + - `organization_id: optional string or null` + + Organization ID this activity is associated with - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `repository_name: optional string or null` + - `spend_limit_id: optional string or null` - Name of the GitHub repository the integration is connected to, when known. + Tagged ID of the spend limit. - - `GitHubAppInstallationLinked object` + - `user_id: optional string or null` - An installation of the Claude GitHub App (a GitHub organization or user account where the App is installed) was linked to the organization, letting the organization's Claude Code features act on that GitHub account's repositories. + **Deprecated** - - `type: optional "github_app_installation_linked"` + Deprecated. Tagged ID of the admin who performed the action — not the target member. Use `spend_limit_id` to look up the target member. - default: github_app_installation_linked + - `ClaudeFileDeleted object` + + A file was deleted. + + - `type: optional "claude_file_deleted"` + + default: claude_file_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -49919,9 +49969,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `github_installation_id: number` + - `claude_file_id: string` - Numeric GitHub ID of the installation that was linked + Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". - `id: optional string` @@ -49933,14 +49983,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_account_login: optional string or null` - - Login of the GitHub organization or user account the App is installed on - - - `github_account_type: optional string or null` - - Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -49949,13 +49991,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GitHubAppInstallationUnlinked object` + - `filename: optional string or null` - An installation of the Claude GitHub App was unlinked from the organization, so the organization's Claude Code features can no longer act on that GitHub account's repositories through it. + **Deprecated** - - `type: optional "github_app_installation_unlinked"` + No longer populated. The name can't be looked up once the file is deleted. - default: github_app_installation_unlinked + - `ClaudeFileUploaded object` + + A file was uploaded. + + - `type: optional "claude_file_uploaded"` + + default: claude_file_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50163,27 +50211,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `github_installation_id: number` + - `claude_file_id: string` - Numeric GitHub ID of the installation that was unlinked + Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` + - `claude_chat_id: optional string or null` - When this activity occurred. + Chat ID if known at upload time (null for the upload-then-attach flow). To find which chats a file was later attached to, use `GET /v1/compliance/apps/chats/files/{claude_file_id}`. - format: date-time + - `claude_project_id: optional string or null` - - `github_account_login: optional string or null` + Project ID if file was uploaded to a project - Login of the GitHub organization or user account the App is installed on + - `created_at: optional string` - - `github_account_type: optional string or null` + When this activity occurred. - Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") + format: date-time - `organization_id: optional string or null` @@ -50193,13 +50241,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GitHubTokenImport object` + - `filename: optional string or null` - A user attempted to import a personal GitHub access token for use with Claude Code. The `result` field indicates the outcome of the import (imported, rejected, or failed). + **Deprecated** - - `type: optional "github_token_import"` + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - default: github_token_import + - `GheConfigurationCreated object` + + Admin created a GHE configuration. + + - `type: optional "ghe_configuration_created"` + + default: ghe_configuration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50407,29 +50461,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `result: "failed_internal" or "imported" or "rejected_feature_disabled" or 5 more` - - The outcome of the import. - - - `"failed_internal"` - - - `"imported"` - - - `"rejected_feature_disabled"` - - - `"rejected_invalid_credential"` - - - `"rejected_missing_repo_scope"` - - - `"rejected_tenant_not_ready"` - - - `"rejected_zdr_policy"` - - - `"unspecified"` - - - `source: string` + - `ghe_configuration_id: string` - How the token was imported. + ID of the GHE configuration - `id: optional string` @@ -50441,13 +50475,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_username: optional string or null` + - `display_name: optional string or null` - The GitHub username the imported token authenticates as, when known. + Display name given to the configuration - - `granted_scopes: optional string or null` + - `hostname: optional string or null` - The scopes granted to the imported token, when available. + Hostname of the GitHub Enterprise instance - `organization_id: optional string or null` @@ -50457,17 +50491,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_fingerprint_sha256: optional string or null` + - `port: optional number or null` - Org-scoped SHA-256 of the submitted token: `sha256(org_uuid || 0x00 || token)`, lowercase-hex-encoded, where `org_uuid` is the organization's UUID as a dashed lowercase string, `0x00` is a single zero byte, and `token` is the submitted value's raw bytes. Per-org correlation only — the same token in two orgs produces distinct fingerprints. Set only when the submitted value carries a known GitHub PAT prefix (a high-entropy token format); unset for all other submissions, including rejected non-PAT input. + Custom port, if not the HTTPS default - - `GitlabConfigurationCreated object` + - `GheConfigurationDeleted object` - An organization admin created a self-managed GitLab configuration for syncing plugin marketplaces. + Admin deleted a GHE configuration. - - `type: optional "gitlab_configuration_created"` + - `type: optional "ghe_configuration_deleted"` - default: gitlab_configuration_created + default: ghe_configuration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50675,9 +50709,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` + - `ghe_configuration_id: string` - ID of the GitLab configuration + ID of the GHE configuration - `id: optional string` @@ -50691,11 +50725,11 @@ compliance activities that can be filtered by various criteria. - `display_name: optional string or null` - Display name given to the configuration + Display name the configuration had when deleted - `hostname: optional string or null` - Hostname of the GitLab instance + Hostname of the GitHub Enterprise instance - `organization_id: optional string or null` @@ -50709,13 +50743,13 @@ compliance activities that can be filtered by various criteria. Custom port, if not the HTTPS default - - `GitlabConfigurationDeleted object` + - `GheConfigurationUpdated object` - An organization admin deleted a self-managed GitLab configuration. + Admin updated a GHE configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. - - `type: optional "gitlab_configuration_deleted"` + - `type: optional "ghe_configuration_updated"` - default: gitlab_configuration_deleted + default: ghe_configuration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -50923,9 +50957,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` + - `ghe_configuration_id: string` - ID of the GitLab configuration + ID of the GHE configuration - `id: optional string` @@ -50937,13 +50971,37 @@ compliance activities that can be filtered by various criteria. format: date-time + - `custom_ca_certificate_updated: optional boolean or null` + + Whether the custom CA certificate was replaced in this update + - `display_name: optional string or null` - Display name the configuration had when deleted + New display name, when it changed + + - `github_app_client_id: optional string or null` + + New GitHub App client ID, when it changed + + - `github_app_client_secret_updated: optional boolean or null` + + Whether the GitHub App client secret was replaced in this update + + - `github_app_id: optional number or null` + + New GitHub App ID, when it changed + + - `github_app_private_key_updated: optional boolean or null` + + Whether the GitHub App private key was replaced in this update - `hostname: optional string or null` - Hostname of the GitLab instance + Hostname of the GitHub Enterprise instance (immutable; included for context) + + - `is_active: optional boolean or null` + + New active state, when it changed - `organization_id: optional string or null` @@ -50955,15 +51013,43 @@ compliance activities that can be filtered by various criteria. - `port: optional number or null` - Custom port, if not the HTTPS default + New port, when it changed - - `GitlabConfigurationUpdated object` + - `previous_display_name: optional string or null` - An organization admin updated a self-managed GitLab configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + Display name before the change, when it changed - - `type: optional "gitlab_configuration_updated"` + - `previous_github_app_client_id: optional string or null` - default: gitlab_configuration_updated + GitHub App client ID before the change, when it changed + + - `previous_github_app_id: optional number or null` + + GitHub App ID before the change, when it changed + + - `previous_is_active: optional boolean or null` + + Active state before the change, when it changed + + - `previous_port: optional number or null` + + Port before the change, when it changed + + - `read_replica_hostnames_updated: optional boolean or null` + + Whether the read replica hostnames were replaced in this update + + - `webhook_secret_updated: optional boolean or null` + + Whether the webhook secret was replaced in this update + + - `GheUserConnected object` + + User connected to a GHE instance. + + - `type: optional "ghe_user_connected"` + + default: ghe_user_connected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51171,39 +51257,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `gitlab_configuration_id: string` - - ID of the GitLab configuration - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_token_updated: optional boolean or null` - - Whether the access token was replaced in this update - - `created_at: optional string` When this activity occurred. format: date-time - - `custom_ca_certificate_updated: optional boolean or null` - - Whether the custom CA certificate was replaced in this update - - - `display_name: optional string or null` - - New display name, when it changed - - - `hostname: optional string or null` - - Hostname of the GitLab instance (immutable; included for context) - - - `is_active: optional boolean or null` + - `ghe_configuration_id: optional string or null` - New active state, when it changed + ID of the GHE configuration - `organization_id: optional string or null` @@ -51213,29 +51279,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `port: optional number or null` - - New port, when it changed - - - `previous_display_name: optional string or null` - - Display name before the change, when it changed - - - `previous_is_active: optional boolean or null` - - Active state before the change, when it changed - - - `previous_port: optional number or null` - - Port before the change, when it changed - - - `ClaudeGdriveIntegrationCreated object` + - `GheUserDisconnected object` - A Google Drive integration was enabled for the organization. + User disconnected from a GHE instance. - - `type: optional "claude_gdrive_integration_created"` + - `type: optional "ghe_user_disconnected"` - default: claude_gdrive_integration_created + default: ghe_user_disconnected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51443,35 +51493,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` - - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time - - `folder_id: optional string or null` + - `ghe_configuration_id: optional string or null` - Identifier of the Google Drive folder the integration is connected to, when known. + ID of the GHE configuration - `organization_id: optional string or null` @@ -51481,13 +51515,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGdriveIntegrationDeleted object` + - `GheWebhookSignatureInvalid object` - A Google Drive integration was disabled for the organization. + Webhook signature validation failed. - - `type: optional "claude_gdrive_integration_deleted"` + - `type: optional "ghe_webhook_signature_invalid"` - default: claude_gdrive_integration_deleted + default: ghe_webhook_signature_invalid - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51695,9 +51729,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `integration_id: string` + - `ghe_configuration_id: string` - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". + ID of the GHE configuration - `id: optional string` @@ -51709,10 +51743,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `folder_id: optional string or null` - - Identifier of the Google Drive folder the integration was connected to, when known. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -51721,13 +51751,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeGdriveIntegrationUpdated object` + - `ClaudeGitHubIntegrationCreated object` - A Google Drive integration's configuration was updated. + A GitHub integration was enabled for the organization. - - `type: optional "claude_gdrive_integration_updated"` + - `type: optional "claude_github_integration_created"` - default: claude_gdrive_integration_updated + default: claude_github_integration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -51937,37 +51967,61 @@ compliance activities that can be filtered by various criteria. - `integration_id: string` - Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `folder_id: optional string or null` + - `enabled: optional boolean or null` - Identifier of the Google Drive folder the integration is connected to, when known. + Whether the integration is enabled after this change. - `organization_id: optional string or null` Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration is connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupCreated object` + - `previous_enabled: optional boolean or null` - A group was created (RBAC admin or SCIM provisioning). + Whether the integration was enabled before this change; null when the integration had never been configured. - - `type: optional "group_created"` + - `repository_name: optional string or null` - default: group_created + Name of the GitHub repository the integration is connected to, when known. + + - `ClaudeGitHubIntegrationDeleted object` + + A GitHub integration was disabled for the organization. + + - `type: optional "claude_github_integration_deleted"` + + default: claude_github_integration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52175,13 +52229,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the created group - - - `group_name: string` + - `integration_id: string` - Name of the created group + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -52193,21 +52243,37 @@ compliance activities that can be filtered by various criteria. format: date-time + - `enabled: optional boolean or null` + + Whether the integration is enabled after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration was connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupDeleted object` + - `previous_enabled: optional boolean or null` - A group was deleted (RBAC admin or SCIM provisioning). + Whether the integration was enabled before this change; null when the integration had never been configured. - - `type: optional "group_deleted"` + - `repository_name: optional string or null` - default: group_deleted + Name of the GitHub repository the integration was connected to, when known. + + - `ClaudeGitHubIntegrationUpdated object` + + A GitHub integration's configuration was updated. + + - `type: optional "claude_github_integration_updated"` + + default: claude_github_integration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52415,9 +52481,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `integration_id: string` - Tagged ID of the deleted group + Tagged ID of the GitHub integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -52433,17 +52499,25 @@ compliance activities that can be filtered by various criteria. Organization ID this activity is associated with + - `organization_name: optional string or null` + + Name of the GitHub organization the integration is connected to, when known. + - `organization_uuid: optional string or null` Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupListViewed object` + - `repository_name: optional string or null` - Admin viewed the list of RBAC groups. + Name of the GitHub repository the integration is connected to, when known. - - `type: optional "group_list_viewed"` + - `GitHubAppInstallationLinked object` - default: group_list_viewed + An installation of the Claude GitHub App (a GitHub organization or user account where the App is installed) was linked to the organization, letting the organization's Claude Code features act on that GitHub account's repositories. + + - `type: optional "github_app_installation_linked"` + + default: github_app_installation_linked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52651,6 +52725,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `github_installation_id: number` + + Numeric GitHub ID of the installation that was linked + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -52661,6 +52739,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `github_account_login: optional string or null` + + Login of the GitHub organization or user account the App is installed on + + - `github_account_type: optional string or null` + + Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -52669,13 +52755,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberAdded object` + - `GitHubAppInstallationUnlinked object` - One or more members were added to a group. + An installation of the Claude GitHub App was unlinked from the organization, so the organization's Claude Code features can no longer act on that GitHub account's repositories through it. - - `type: optional "group_member_added"` + - `type: optional "github_app_installation_unlinked"` - default: group_member_added + default: github_app_installation_unlinked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -52883,9 +52969,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `github_installation_id: number` - Tagged ID of the group + Numeric GitHub ID of the installation that was unlinked - `id: optional string` @@ -52897,9 +52983,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `github_account_login: optional string or null` - Tagged IDs of the members added: user IDs, or service account IDs (svac_...) when a service account was added + Login of the GitHub organization or user account the App is installed on + + - `github_account_type: optional string or null` + + Whether that GitHub account is an organization or a user account, as reported by GitHub ("Organization" or "User") - `organization_id: optional string or null` @@ -52909,13 +52999,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberAdditionFailed object` + - `GitHubTokenImport object` - A request to add members to a group failed. Some of the requested members may have been added before the failure. + A user attempted to import a personal GitHub access token for use with Claude Code. The `result` field indicates the outcome of the import (imported, rejected, or failed). - - `type: optional "group_member_addition_failed"` + - `type: optional "github_token_import"` - default: group_member_addition_failed + default: github_token_import - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53123,9 +53213,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `result: "failed_internal" or "imported" or "rejected_feature_disabled" or 5 more` - Tagged ID of the group + The outcome of the import. + + - `"failed_internal"` + + - `"imported"` + + - `"rejected_feature_disabled"` + + - `"rejected_invalid_credential"` + + - `"rejected_missing_repo_scope"` + + - `"rejected_tenant_not_ready"` + + - `"rejected_zdr_policy"` + + - `"unspecified"` + + - `source: string` + + How the token was imported. - `id: optional string` @@ -53137,9 +53247,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `github_username: optional string or null` - Tagged IDs of the members the request attempted to add + The GitHub username the imported token authenticates as, when known. + + - `granted_scopes: optional string or null` + + The scopes granted to the imported token, when available. - `organization_id: optional string or null` @@ -53149,13 +53263,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberListViewed object` + - `token_fingerprint_sha256: optional string or null` - Admin viewed the members of an RBAC group. + Org-scoped SHA-256 of the submitted token: `sha256(org_uuid || 0x00 || token)`, lowercase-hex-encoded, where `org_uuid` is the organization's UUID as a dashed lowercase string, `0x00` is a single zero byte, and `token` is the submitted value's raw bytes. Per-org correlation only — the same token in two orgs produces distinct fingerprints. Set only when the submitted value carries a known GitHub PAT prefix (a high-entropy token format); unset for all other submissions, including rejected non-PAT input. - - `type: optional "group_member_list_viewed"` + - `GitlabConfigurationCreated object` - default: group_member_list_viewed + An organization admin created a self-managed GitLab configuration for syncing plugin marketplaces. + + - `type: optional "gitlab_configuration_created"` + + default: gitlab_configuration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53363,9 +53481,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` @@ -53377,6 +53495,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `display_name: optional string or null` + + Display name given to the configuration + + - `hostname: optional string or null` + + Hostname of the GitLab instance + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -53385,13 +53511,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberRemovalFailed object` + - `port: optional number or null` - A request to remove members from a group failed. Some of the requested members may have been removed before the failure. + Custom port, if not the HTTPS default - - `type: optional "group_member_removal_failed"` + - `GitlabConfigurationDeleted object` - default: group_member_removal_failed + An organization admin deleted a self-managed GitLab configuration. + + - `type: optional "gitlab_configuration_deleted"` + + default: gitlab_configuration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53599,9 +53729,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` @@ -53613,9 +53743,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `member_ids: optional array of string` + - `display_name: optional string or null` - Tagged IDs of the members the request attempted to remove. These are always recorded as user IDs, since whether a member was a service account is only established once its removal succeeds + Display name the configuration had when deleted + + - `hostname: optional string or null` + + Hostname of the GitLab instance - `organization_id: optional string or null` @@ -53625,13 +53759,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupMemberRemoved object` + - `port: optional number or null` - One or more members were removed from a group. + Custom port, if not the HTTPS default - - `type: optional "group_member_removed"` + - `GitlabConfigurationUpdated object` - default: group_member_removed + An organization admin updated a self-managed GitLab configuration. Previous/new field pairs are recorded only for settings that changed in the update; secret credentials are never recorded, only whether they were replaced. + + - `type: optional "gitlab_configuration_updated"` + + default: gitlab_configuration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -53839,23 +53977,39 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `gitlab_configuration_id: string` - Tagged ID of the group + ID of the GitLab configuration - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_token_updated: optional boolean or null` + + Whether the access token was replaced in this update + - `created_at: optional string` When this activity occurred. format: date-time - - `member_ids: optional array of string` + - `custom_ca_certificate_updated: optional boolean or null` - Tagged IDs of the members removed: user IDs, or service account IDs (svac_...) when a service account was removed. A requested member that was not in the group is listed as a user ID + Whether the custom CA certificate was replaced in this update + + - `display_name: optional string or null` + + New display name, when it changed + + - `hostname: optional string or null` + + Hostname of the GitLab instance (immutable; included for context) + + - `is_active: optional boolean or null` + + New active state, when it changed - `organization_id: optional string or null` @@ -53865,13 +54019,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupProjectSharesRevoked object` + - `port: optional number or null` - An RBAC group's project shares in one organization were revoked in bulk. + New port, when it changed - - `type: optional "group_project_shares_revoked"` + - `previous_display_name: optional string or null` - default: group_project_shares_revoked + Display name before the change, when it changed + + - `previous_is_active: optional boolean or null` + + Active state before the change, when it changed + + - `previous_port: optional number or null` + + Port before the change, when it changed + + - `ClaudeGdriveIntegrationCreated object` + + A Google Drive integration was enabled for the organization. + + - `type: optional "claude_gdrive_integration_created"` + + default: claude_gdrive_integration_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54079,21 +54249,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the group whose project shares were revoked. - - - `revoked_count: number` + - `integration_id: string` - Number of distinct projects whose share with this group was revoked. + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_ids: optional array of string` + - `attestations: optional array of object` - Tagged IDs of the projects whose share with this group was revoked. + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -54101,6 +54275,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration is connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54109,13 +54287,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupSkillSharesRevoked object` + - `ClaudeGdriveIntegrationDeleted object` - An RBAC group's skill shares in one organization were revoked in bulk. + A Google Drive integration was disabled for the organization. - - `type: optional "group_skill_shares_revoked"` + - `type: optional "claude_gdrive_integration_deleted"` - default: group_skill_shares_revoked + default: claude_gdrive_integration_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54323,13 +54501,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the group whose skill shares were revoked. - - - `revoked_count: number` + - `integration_id: string` - Number of distinct skills and plugins whose share with this group was revoked: the combined size of `skill_ids` and `plugin_ids`. + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -54341,6 +54515,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration was connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54349,21 +54527,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_ids: optional array of string` - - Tagged IDs of the plugins whose share with this group was revoked. - - - `skill_ids: optional array of string` - - Tagged IDs of the skills whose share with this group was revoked. - - - `GroupUpdated object` + - `ClaudeGdriveIntegrationUpdated object` - A group was updated (RBAC admin or SCIM provisioning). + A Google Drive integration's configuration was updated. - - `type: optional "group_updated"` + - `type: optional "claude_gdrive_integration_updated"` - default: group_updated + default: claude_gdrive_integration_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54571,9 +54741,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` + - `integration_id: string` - Tagged ID of the updated group + Tagged ID of the Google Drive integration, e.g. "claude_sync_source_01HX...". - `id: optional string` @@ -54585,6 +54755,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `folder_id: optional string or null` + + Identifier of the Google Drive folder the integration is connected to, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -54593,13 +54767,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupViewed object` + - `GroupCreated object` - A group was viewed. + A group was created (RBAC admin or SCIM provisioning). - - `type: optional "group_viewed"` + - `type: optional "group_created"` - default: group_viewed + default: group_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -54809,7 +54983,11 @@ compliance activities that can be filtered by various criteria. - `group_id: string` - Tagged ID of the viewed group + Tagged ID of the created group + + - `group_name: string` + + Name of the created group - `id: optional string` @@ -54829,13 +55007,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `GroupVisibilityUpdated object` + - `GroupDeleted object` - An RBAC group's visibility policy was updated. + A group was deleted (RBAC admin or SCIM provisioning). - - `type: optional "group_visibility_updated"` + - `type: optional "group_deleted"` - default: group_visibility_updated + default: group_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55045,7 +55223,7 @@ compliance activities that can be filtered by various criteria. - `group_id: string` - Tagged ID of the group whose visibility policy was updated. + Tagged ID of the deleted group - `id: optional string` @@ -55065,69 +55243,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `policies: optional array of object` - - The group's visibility policy after this update. - - - `audience: "everyone" or "members" or "none" or "unspecified"` - - The audience granted this visibility facet. - - - `"everyone"` - - - `"members"` - - - `"none"` - - - `"unspecified"` - - - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` - - The visibility facet this entry grants. - - - `"discover"` - - - `"share_with"` - - - `"unspecified"` - - - `"view_members"` - - - `previous_policies: optional array of object` - - The group's visibility policy before this update. - - - `audience: "everyone" or "members" or "none" or "unspecified"` - - The audience granted this visibility facet. - - - `"everyone"` - - - `"members"` - - - `"none"` - - - `"unspecified"` - - - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` - - The visibility facet this entry grants. - - - `"discover"` - - - `"share_with"` - - - `"unspecified"` - - - `"view_members"` - - - `InferenceHooksCircuitBreakerTripped object` + - `GroupListViewed object` - The organization's Inference hooks circuit breaker tripped automatically: calls to the organization's Inference hooks endpoint crossed a failure threshold, and inspection was suspended to protect live traffic. While tripped, requests are handled according to the organization's failure handling setting — allowed through uninspected (fail open) or rejected (fail closed) — and no per-request Inference hooks activities are recorded. Inspection turns back on by itself once the organization's Inference hooks endpoint returns a valid allow or deny answer to Anthropic's test request again, at least 10 minutes after the trip. An administrator can also end the tripped state by re-enabling Inference hooks inspection. If an administrator saves the Inference hooks settings after the trip (even without changing anything) or generates a new signing secret, inspection no longer turns back on by itself and stays off until an administrator re-enables it. + Admin viewed the list of RBAC groups. - - `type: optional "inference_hooks_circuit_breaker_tripped"` + - `type: optional "group_list_viewed"` - default: inference_hooks_circuit_breaker_tripped + default: group_list_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55335,14 +55457,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `fail_mode: string` - - The failure handling in effect when the breaker tripped: "fail_open" (requests proceed uninspected) or "fail_closed" (requests are rejected). - - - `trigger_reason: string` - - The kind of failure that crossed the threshold. Currently always "webhook_error": repeated failures of calls to the organization's Inference hooks endpoint. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -55361,17 +55475,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `surface: optional string or null` - - The product surface of the request whose failure tripped the breaker, e.g. "claude-ai" or "claude-code". - - - `InferenceHooksRequestDenied object` + - `GroupMemberAdded object` - Inference hooks inspection denied a request. The request was blocked. + One or more members were added to a group. - - `type: optional "inference_hooks_request_denied"` + - `type: optional "group_member_added"` - default: inference_hooks_request_denied + default: group_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55579,13 +55689,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `group_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the group - - `conversation_id: optional string or null` + - `id: optional string` - The conversation the denied request belonged to, when available. The identifier format depends on `surface`. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -55593,9 +55703,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `event: optional string or null` + - `member_ids: optional array of string` - Which hook event the Inference hooks endpoint denied, the same value it received as `type`: "prompt" (the request's prompt, inspected before the model ran) or "tool_call" (the tool calls in a model response, inspected before any of them ran). Absent means "prompt". + Tagged IDs of the members added: user IDs, or service account IDs (svac_...) when a service account was added - `organization_id: optional string or null` @@ -55605,25 +55715,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reference_id: optional string or null` - - The Inference hooks endpoint's own identifier for this scan, when it returned one — lets this denial be matched to the corresponding record in the inspection provider's console. - - - `request_id: optional string or null` - - Anthropic's identifier for the denied request — the same value sent to the Inference hooks endpoint as `request_id`. - - - `surface: optional string or null` - - The product surface the request came from, e.g. "claude-ai" or "claude-code". - - - `InferenceHooksRequestFailedOpen object` + - `GroupMemberAdditionFailed object` - A request proceeded without Inference hooks inspection because a verdict could not be obtained and the organization's Inference hooks configuration is set to fail open. + A request to add members to a group failed. Some of the requested members may have been added before the failure. - - `type: optional "inference_hooks_request_failed_open"` + - `type: optional "group_member_addition_failed"` - default: inference_hooks_request_failed_open + default: group_member_addition_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -55831,32 +55929,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `reason: "endpoint_error" or "endpoint_timeout" or "internal_error" or "unspecified"` - - Why Inference hooks inspection did not return a verdict. - - - `"endpoint_error"` - - - `"endpoint_timeout"` - - - `"internal_error"` + - `group_id: string` - - `"unspecified"` + Tagged ID of the group - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `conversation_id: optional string or null` - - The conversation the request belonged to, when available. The identifier format depends on `surface`. - - `created_at: optional string` When this activity occurred. format: date-time + - `member_ids: optional array of string` + + Tagged IDs of the members the request attempted to add + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -55865,21 +55955,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `request_id: optional string or null` - - Anthropic's identifier for the request that proceeded uninspected. When a call to the Inference hooks endpoint was made for this request, it carried this value as `request_id`. - - - `surface: optional string or null` - - The product surface the request came from, e.g. "claude-ai" or "claude-code". - - - `IntegrationUserConnected object` + - `GroupMemberListViewed object` - User connected to an integration. + Admin viewed the members of an RBAC group. - - `type: optional "integration_user_connected"` + - `type: optional "group_member_list_viewed"` - default: integration_user_connected + default: group_member_list_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56087,6 +56169,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56097,18 +56183,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `integration_type: optional string or null` - - The kind of integration the user connected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - - - `mcp_server_id: optional string or null` - - ID of the connected remote MCP server, when the integration is a remote MCP server. - - - `mcp_server_name: optional string or null` - - Display name of the connected remote MCP server, when the integration is a remote MCP server. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -56117,17 +56191,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_vault_connect_mode: optional string or null` - - How a token vault credential sign-in was completed: "authorization_server" for a sign-in at an administrator-provided authorization server, or "mcp_server" for a sign-in at a tool server the organization has not registered as a connector. - - - `IntegrationUserDisconnected object` + - `GroupMemberRemovalFailed object` - User disconnected from an integration. + A request to remove members from a group failed. Some of the requested members may have been removed before the failure. - - `type: optional "integration_user_disconnected"` + - `type: optional "group_member_removal_failed"` - default: integration_user_disconnected + default: group_member_removal_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56335,6 +56405,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56345,17 +56419,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `integration_type: optional string or null` - - The kind of integration the user disconnected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - - - `mcp_server_id: optional string or null` - - ID of the disconnected remote MCP server, when the integration is a remote MCP server. - - - `mcp_server_name: optional string or null` + - `member_ids: optional array of string` - Display name of the disconnected remote MCP server, when the integration is a remote MCP server. + Tagged IDs of the members the request attempted to remove. These are always recorded as user IDs, since whether a member was a service account is only established once its removal succeeds - `organization_id: optional string or null` @@ -56365,13 +56431,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `InvoiceCollectionMethodUpdated object` + - `GroupMemberRemoved object` - Invoice collection method was changed. + One or more members were removed from a group. - - `type: optional "invoice_collection_method_updated"` + - `type: optional "group_member_removed"` - default: invoice_collection_method_updated + default: group_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56579,6 +56645,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -56589,9 +56659,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_collection_method: optional string or null` + - `member_ids: optional array of string` - New collection method (e.g. charge_automatically, send_invoice). + Tagged IDs of the members removed: user IDs, or service account IDs (svac_...) when a service account was removed. A requested member that was not in the group is listed as a user ID - `organization_id: optional string or null` @@ -56601,13 +56671,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `UserLoggedOut object` + - `GroupProjectSharesRevoked object` - A user signed out of one or all sessions. + An RBAC group's project shares in one organization were revoked in bulk. - - `type: optional "user_logged_out"` + - `type: optional "group_project_shares_revoked"` - default: user_logged_out + default: group_project_shares_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -56815,10 +56885,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group whose project shares were revoked. + + - `revoked_count: number` + + Number of distinct projects whose share with this group was revoked. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_ids: optional array of string` + + Tagged IDs of the projects whose share with this group was revoked. + - `created_at: optional string` When this activity occurred. @@ -56833,13 +56915,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiLaunchInitiated object` + - `GroupSkillSharesRevoked object` - LTI launch was initiated. + An RBAC group's skill shares in one organization were revoked in bulk. - - `type: optional "lti_launch_initiated"` + - `type: optional "group_skill_shares_revoked"` - default: lti_launch_initiated + default: group_skill_shares_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57047,6 +57129,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the group whose skill shares were revoked. + + - `revoked_count: number` + + Number of distinct skills and plugins whose share with this group was revoked: the combined size of `skill_ids` and `plugin_ids`. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -57065,13 +57155,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiLaunchSuccess object` + - `plugin_ids: optional array of string` - LTI launch completed successfully. + Tagged IDs of the plugins whose share with this group was revoked. - - `type: optional "lti_launch_success"` + - `skill_ids: optional array of string` - default: lti_launch_success + Tagged IDs of the skills whose share with this group was revoked. + + - `GroupUpdated object` + + A group was updated (RBAC admin or SCIM provisioning). + + - `type: optional "group_updated"` + + default: group_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57279,6 +57377,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `group_id: string` + + Tagged ID of the updated group + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -57297,13 +57399,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiPlatformCreated object` + - `GroupViewed object` - Anthropic staff created an LTI platform integration on behalf of an org. + A group was viewed. - - `type: optional "lti_platform_created"` + - `type: optional "group_viewed"` - default: lti_platform_created + default: group_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57511,13 +57613,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `lti_platform_id: string` - - UUID of the LTI platform - - - `lti_platform_issuer: string` + - `group_id: string` - Platform issuer URL + Tagged ID of the viewed group - `id: optional string` @@ -57537,13 +57635,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `LtiPlatformUpdated object` + - `GroupVisibilityUpdated object` - Anthropic staff updated an LTI platform integration on behalf of an org. + An RBAC group's visibility policy was updated. - - `type: optional "lti_platform_updated"` + - `type: optional "group_visibility_updated"` - default: lti_platform_updated + default: group_visibility_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57751,9 +57849,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `lti_platform_id: string` + - `group_id: string` - UUID of the LTI platform + Tagged ID of the group whose visibility policy was updated. - `id: optional string` @@ -57765,10 +57863,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `lti_platform_issuer: optional string or null` - - Platform issuer URL - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -57777,13 +57871,69 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginFailed object` + - `policies: optional array of object` - A magic link sign-in attempt failed. + The group's visibility policy after this update. - - `type: optional "magic_link_login_failed"` + - `audience: "everyone" or "members" or "none" or "unspecified"` - default: magic_link_login_failed + The audience granted this visibility facet. + + - `"everyone"` + + - `"members"` + + - `"none"` + + - `"unspecified"` + + - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` + + The visibility facet this entry grants. + + - `"discover"` + + - `"share_with"` + + - `"unspecified"` + + - `"view_members"` + + - `previous_policies: optional array of object` + + The group's visibility policy before this update. + + - `audience: "everyone" or "members" or "none" or "unspecified"` + + The audience granted this visibility facet. + + - `"everyone"` + + - `"members"` + + - `"none"` + + - `"unspecified"` + + - `visibility_type: "discover" or "share_with" or "unspecified" or "view_members"` + + The visibility facet this entry grants. + + - `"discover"` + + - `"share_with"` + + - `"unspecified"` + + - `"view_members"` + + - `InferenceHooksCircuitBreakerTripped object` + + The organization's Inference hooks circuit breaker tripped automatically: calls to the organization's Inference hooks endpoint crossed a failure threshold, and inspection was suspended to protect live traffic. While tripped, requests are handled according to the organization's failure handling setting — allowed through uninspected (fail open) or rejected (fail closed) — and no per-request Inference hooks activities are recorded. Inspection turns back on by itself once the organization's Inference hooks endpoint returns a valid allow or deny answer to Anthropic's test request again, at least 10 minutes after the trip. An administrator can also end the tripped state by re-enabling Inference hooks inspection. If an administrator saves the Inference hooks settings after the trip (even without changing anything) or generates a new signing secret, inspection no longer turns back on by itself and stays off until an administrator re-enables it. + + - `type: optional "inference_hooks_circuit_breaker_tripped"` + + default: inference_hooks_circuit_breaker_tripped - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -57991,6 +58141,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `fail_mode: string` + + The failure handling in effect when the breaker tripped: "fail_open" (requests proceed uninspected) or "fail_closed" (requests are rejected). + + - `trigger_reason: string` + + The kind of failure that crossed the threshold. Currently always "webhook_error": repeated failures of calls to the organization's Inference hooks endpoint. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -58009,13 +58167,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginInitiated object` + - `surface: optional string or null` - A user requested a magic link sign-in email. + The product surface of the request whose failure tripped the breaker, e.g. "claude-ai" or "claude-code". - - `type: optional "magic_link_login_initiated"` + - `InferenceHooksRequestDenied object` - default: magic_link_login_initiated + Inference hooks inspection denied a request. The request was blocked. + + - `type: optional "inference_hooks_request_denied"` + + default: inference_hooks_request_denied - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58227,12 +58389,20 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `conversation_id: optional string or null` + + The conversation the denied request belonged to, when available. The identifier format depends on `surface`. + - `created_at: optional string` When this activity occurred. format: date-time + - `event: optional string or null` + + Which hook event the Inference hooks endpoint denied, the same value it received as `type`: "prompt" (the request's prompt, inspected before the model ran) or "tool_call" (the tool calls in a model response, inspected before any of them ran). Absent means "prompt". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -58241,13 +58411,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MagicLinkLoginSucceeded object` + - `reference_id: optional string or null` - A user successfully signed in with a magic link email. + The Inference hooks endpoint's own identifier for this scan, when it returned one — lets this denial be matched to the corresponding record in the inspection provider's console. - - `type: optional "magic_link_login_succeeded"` + - `request_id: optional string or null` - default: magic_link_login_succeeded + Anthropic's identifier for the denied request — the same value sent to the Inference hooks endpoint as `request_id`. + + - `surface: optional string or null` + + The product surface the request came from, e.g. "claude-ai" or "claude-code". + + - `InferenceHooksRequestFailedOpen object` + + A request proceeded without Inference hooks inspection because a verdict could not be obtained and the organization's Inference hooks configuration is set to fail open. + + - `type: optional "inference_hooks_request_failed_open"` + + default: inference_hooks_request_failed_open - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58455,31 +58637,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `reason: "endpoint_error" or "endpoint_timeout" or "internal_error" or "unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + Why Inference hooks inspection did not return a verdict. - - `auth_method: optional "magic_link" or "unspecified" or null` + - `"endpoint_error"` - The method the user used to authenticate. May be absent on activities recorded before this field was introduced. + - `"endpoint_timeout"` - - `"magic_link"` + - `"internal_error"` - `"unspecified"` - - `created_at: optional string` + - `id: optional string` - When this activity occurred. + Unique identifier for the activity e.g. 'activity_abcd1234' - format: date-time + - `conversation_id: optional string or null` - - `mfa_method: optional "not_used" or "unspecified" or null` + The conversation the request belonged to, when available. The identifier format depends on `surface`. - The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. + - `created_at: optional string` - - `"not_used"` + When this activity occurred. - - `"unspecified"` + format: date-time - `organization_id: optional string or null` @@ -58489,13 +58671,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ManagedOrganizationSetupCompleted object` + - `request_id: optional string or null` - Managed (AWS Marketplace) organization setup was completed. + Anthropic's identifier for the request that proceeded uninspected. When a call to the Inference hooks endpoint was made for this request, it carried this value as `request_id`. - - `type: optional "managed_organization_setup_completed"` + - `surface: optional string or null` - default: managed_organization_setup_completed + The product surface the request came from, e.g. "claude-ai" or "claude-code". + + - `IntegrationUserConnected object` + + User connected to an integration. + + - `type: optional "integration_user_connected"` + + default: integration_user_connected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58713,6 +58903,18 @@ compliance activities that can be filtered by various criteria. format: date-time + - `integration_type: optional string or null` + + The kind of integration the user connected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. + + - `mcp_server_id: optional string or null` + + ID of the connected remote MCP server, when the integration is a remote MCP server. + + - `mcp_server_name: optional string or null` + + Display name of the connected remote MCP server, when the integration is a remote MCP server. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -58721,13 +58923,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceCreated object` + - `token_vault_connect_mode: optional string or null` - Admin created an organization marketplace. + How a token vault credential sign-in was completed: "authorization_server" for a sign-in at an administrator-provided authorization server, or "mcp_server" for a sign-in at a tool server the organization has not registered as a connector. - - `type: optional "marketplace_created"` + - `IntegrationUserDisconnected object` - default: marketplace_created + User disconnected from an integration. + + - `type: optional "integration_user_disconnected"` + + default: integration_user_disconnected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -58935,35 +59141,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` + - `created_at: optional string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + When this activity occurred. - - `content_hash: string` + format: date-time - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `integration_type: optional string or null` - - `created_at: optional string` + The kind of integration the user disconnected, e.g. "github", "gdrive", "slack", or "mcp" for a remote MCP server. - When this activity occurred. + - `mcp_server_id: optional string or null` - format: date-time + ID of the disconnected remote MCP server, when the integration is a remote MCP server. - - `default_installation_preference: optional string or null` + - `mcp_server_name: optional string or null` - Default installation preference the marketplace was created with, applied to its plugins that have no preference of their own (required, auto_install, available or not_available); absent when none was set + Display name of the disconnected remote MCP server, when the integration is a remote MCP server. - `organization_id: optional string or null` @@ -58973,13 +59171,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceDeleted object` + - `InvoiceCollectionMethodUpdated object` - Admin deleted an organization marketplace. + Invoice collection method was changed. - - `type: optional "marketplace_deleted"` + - `type: optional "invoice_collection_method_updated"` - default: marketplace_deleted + default: invoice_collection_method_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59187,10 +59385,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59201,6 +59395,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `new_collection_method: optional string or null` + + New collection method (e.g. charge_automatically, send_invoice). + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -59209,13 +59407,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceUpdated object` + - `UserLoggedOut object` - Admin updated an organization marketplace. + A user signed out of one or all sessions. - - `type: optional "marketplace_updated"` + - `type: optional "user_logged_out"` - default: marketplace_updated + default: user_logged_out - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59423,26 +59621,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -59457,33 +59639,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The setting changes applied in this update; empty for an update that changed no recorded setting (such as a sync) - - - `type: "default_installation_preference" or "unspecified"` - - The marketplace setting that changed - - - `"default_installation_preference"` - - - `"unspecified"` - - - `current_value: string` - - Setting value immediately after this change; empty when the setting is no longer set - - - `previous_value: string` - - Setting value immediately before this change; empty when the setting was not set - - - `MarketplaceWebhookDeleted object` + - `LtiLaunchInitiated object` - Admin removed the GitHub push webhook for a marketplace. + LTI launch was initiated. - - `type: optional "marketplace_webhook_deleted"` + - `type: optional "lti_launch_initiated"` - default: marketplace_webhook_deleted + default: lti_launch_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59691,10 +59853,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59713,13 +59871,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `MarketplaceWebhookProvisioned object` + - `LtiLaunchSuccess object` - Admin provisioned a GitHub push webhook for a marketplace. + LTI launch completed successfully. - - `type: optional "marketplace_webhook_provisioned"` + - `type: optional "lti_launch_success"` - default: marketplace_webhook_provisioned + default: lti_launch_success - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -59927,10 +60085,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Tagged ID of the marketplace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -59941,10 +60095,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_webhook_id: optional number or null` - - GitHub-assigned webhook ID returned by the hooks API - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -59953,13 +60103,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpDirectoryServerPublished object` + - `LtiPlatformCreated object` - The organization published its approved MCP directory listing. + Anthropic staff created an LTI platform integration on behalf of an org. - - `type: optional "mcp_directory_server_published"` + - `type: optional "lti_platform_created"` - default: mcp_directory_server_published + default: lti_platform_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60167,13 +60317,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_directory_server_id: string` + - `lti_platform_id: string` - Tagged ID of the MCP directory listing + UUID of the LTI platform - - `mcp_directory_server_name: string` + - `lti_platform_issuer: string` - Display name of the MCP directory listing + Platform issuer URL - `id: optional string` @@ -60193,13 +60343,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerCreated object` + - `LtiPlatformUpdated object` - An MCP server was added to the organization. + Anthropic staff updated an LTI platform integration on behalf of an org. - - `type: optional "mcp_server_created"` + - `type: optional "lti_platform_updated"` - default: mcp_server_created + default: lti_platform_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60407,36 +60557,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` + - `lti_platform_id: string` - Display name of the MCP server + UUID of the LTI platform - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time + - `lti_platform_issuer: optional string or null` + + Platform issuer URL + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -60445,13 +60583,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerDeleted object` + - `MagicLinkLoginFailed object` - An MCP server was removed from the organization. + A magic link sign-in attempt failed. - - `type: optional "mcp_server_deleted"` + - `type: optional "magic_link_login_failed"` - default: mcp_server_deleted + default: magic_link_login_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60659,14 +60797,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -60685,13 +60815,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpServerManagedAuthTokenExchanged object` + - `MagicLinkLoginInitiated object` - A user attempted to obtain an access token for an MCP server via enterprise managed authorization. This event reports the outcomes of attempted token exchanges. Repeated failures with the same cause may be reported once until the cause changes, and requests refused before a token exchange is attempted are not reported, except the "connector_scope_not_granted" and "identity_assertion_refused" failures described under error_type. + A user requested a magic link sign-in email. - - `type: optional "mcp_server_managed_auth_token_exchanged"` + - `type: optional "magic_link_login_initiated"` - default: mcp_server_managed_auth_token_exchanged + default: magic_link_login_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -60899,48 +61029,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `managed_auth_mode: string` - - The managed-authorization mode used for the exchange ("claude" or "sso"). - - - `mcp_server_id: string` - - The MCP server the exchange was attempted for, e.g. "mcpsrv_01Ab...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `assertion_jti: optional string or null` - - The JWT ID of the identity assertion presented to the authorization server, when one was minted, for cross-reference with the identity provider's own logs. - - - `authorization_server_issuer: optional string or null` - - The issuer identifier of the authorization server the exchange was attempted against. - - - `correlation_id: optional string or null` - - An opaque identifier customers can quote when contacting Anthropic support about this exchange. - - `created_at: optional string` When this activity occurred. format: date-time - - `error_subtype: optional string or null` - - A more specific classification of the failure, when available. For authorization-server rejections this is the OAuth error code the server returned (for example "invalid_grant"); for identity-provider rejections this is the error code the identity provider returned; for refused identity assertions this is a short reason code such as "not_org_member" (the user's membership in the organization could not be confirmed). Values may be added over time; treat an unrecognized value as a generic failure. - - - `error_type: optional string or null` - - A short classification of why the exchange failed, when outcome is "failure". Values include "authorization_server_rejected", "authorization_server_unavailable", "identity_provider_rejected", "sso_session_invalid", "sso_connection_unsupported", "connector_scope_not_granted" and "identity_assertion_refused". The last two are refusals made before a token exchange was attempted: "connector_scope_not_granted" means the organization's role configuration grants no scopes on this connector; "identity_assertion_refused" means no identity assertion could be issued for this user and server (for example, the user's membership in the organization could not be confirmed), and is reported when access the user already had could not be renewed and, depending on the reason, when first connecting; error_subtype names the reason. Values may be added over time; treat an unrecognized value as a generic failure. - - - `mcp_server_name: optional string or null` - - The MCP server's display name at the time of the exchange, when available. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -60949,17 +61047,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `outcome: optional string or null` - - Whether the token exchange succeeded ("success") or was rejected ("failure"). - - - `McpServerManagedAuthUpdated object` + - `MagicLinkLoginSucceeded object` - An MCP server's enterprise managed authorization settings were set, changed, or cleared, including when they were supplied while the server was being added or edited. Fields without a "previous_" prefix describe the settings after the change and are null when the server has no managed authorization settings afterwards; "previous_" fields describe the settings before the change and are null when the server had none before (always the case for a newly added server). + A user successfully signed in with a magic link email. - - `type: optional "mcp_server_managed_auth_updated"` + - `type: optional "magic_link_login_succeeded"` - default: mcp_server_managed_auth_updated + default: magic_link_login_succeeded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61167,25 +61261,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `allowed_scopes: optional string or null` + - `auth_method: optional "magic_link" or "unspecified" or null` - The OAuth scopes managed authorization may request for the server after the change, as a space-delimited list. Null when no scope restriction is configured (or the server has no managed authorization settings); an empty string when the restriction permits no scopes. + The method the user used to authenticate. May be absent on activities recorded before this field was introduced. - - `built_in_roles_included: optional boolean or null` + - `"magic_link"` - Whether, after the change, managed authorization extends to members who hold one of the organization's built-in roles (such as User, Admin, or Owner) rather than a custom role, in addition to members whose custom role grants it. This describes whom managed authorization reaches and is reported on every change, independent of how built-in role access is configured. + - `"unspecified"` - `created_at: optional string` @@ -61193,21 +61279,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `individual_auth_enabled: optional boolean or null` - - Whether members may authorize the server individually, through their own sign-in and consent, after the change. - - - `managed_auth_enabled: optional boolean or null` - - Whether managed authorization is enabled for the server after the change, so that members whose role permits it are authorized through the organization's identity provider. - - - `managed_auth_mode: optional string or null` + - `mfa_method: optional "not_used" or "unspecified" or null` - The managed-authorization mode after the change ("claude" or "sso"): how the identity assertion presented on members' behalf is issued. Recorded whenever managed authorization settings exist, whether or not managed authorization is enabled; null when the server has no managed authorization settings after the change. + The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. - - `mcp_server_url: optional string or null` + - `"not_used"` - Origin (scheme, host and port, the default port omitted) of the MCP server at the time of the change; the path is never included. Null when not available, and on activities recorded before this field was limited to the origin. + - `"unspecified"` - `organization_id: optional string or null` @@ -61217,29 +61295,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_allowed_scopes: optional string or null` - - The OAuth scope restriction before the change, as a space-delimited list; null when no scope restriction was configured. - - - `previous_built_in_roles_included: optional boolean or null` - - Whether managed authorization extended to members holding one of the organization's built-in roles before the change. - - - `previous_individual_auth_enabled: optional boolean or null` - - Whether members could authorize the server individually before the change. - - - `previous_managed_auth_enabled: optional boolean or null` - - Whether managed authorization was enabled for the server before the change. - - - `McpServerUpdated object` + - `ManagedOrganizationSetupCompleted object` - An MCP server's configuration was updated. + Managed (AWS Marketplace) organization setup was completed. - - `type: optional "mcp_server_updated"` + - `type: optional "managed_organization_setup_completed"` - default: mcp_server_updated + default: managed_organization_setup_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61447,30 +61509,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. @@ -61485,13 +61527,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `McpToolPolicyUpdated object` + - `MarketplaceCreated object` - The permission restriction for an MCP tool was set or cleared. + Admin created an organization marketplace. - - `type: optional "mcp_tool_policy_updated"` + - `type: optional "marketplace_created"` - default: mcp_tool_policy_updated + default: marketplace_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61699,33 +61741,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `mcp_server_id: string` - - Tagged ID of the MCP server - - - `mcp_server_name: string` - - Display name of the MCP server - - - `tool_name: string` + - `marketplace_id: string` - Tool name (or '*' for the MCP-server-wide default) + Tagged ID of the marketplace - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `action: optional "reenabled" or "unspecified" or null` - - "reenabled" when the change lifted the organization-wide block on the server (the block a HIPAA configuration places); unset for any other restriction change. - - - `"reenabled"` - - - `"unspecified"` - - `attestations: optional array of object` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none (a server that already carries one is not asked again). + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. - `type: string` @@ -61741,9 +61767,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `max_permission: optional string or null` + - `default_installation_preference: optional string or null` - New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + Default installation preference the marketplace was created with, applied to its plugins that have no preference of their own (required, auto_install, available or not_available); absent when none was set - `organization_id: optional string or null` @@ -61753,13 +61779,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgAnalyticsAPICapabilityUpdated object` + - `MarketplaceDeleted object` - Organization analytics_api capability was enabled or disabled. + Admin deleted an organization marketplace. - - `type: optional "org_analytics_api_capability_updated"` + - `type: optional "marketplace_deleted"` - default: org_analytics_api_capability_updated + default: marketplace_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -61967,6 +61993,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `marketplace_id: string` + + Tagged ID of the marketplace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -61977,10 +62007,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Whether the analytics API capability is enabled immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -61989,17 +62015,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Whether the analytics API capability was enabled immediately before this change - - - `OrgBulkDeleteInitiated object` + - `MarketplaceUpdated object` - Organization bulk deletion was initiated. + Admin updated an organization marketplace. - - `type: optional "org_bulk_delete_initiated"` + - `type: optional "marketplace_updated"` - default: org_bulk_delete_initiated + default: marketplace_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62207,10 +62229,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `marketplace_id: string` + + Tagged ID of the marketplace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. @@ -62225,13 +62263,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCapabilityGrantAdded object` + - `updates: optional array of object` - A capability grant was added to a workspace or role. + The setting changes applied in this update; empty for an update that changed no recorded setting (such as a sync) - - `type: optional "org_capability_grant_added"` + - `type: "default_installation_preference" or "unspecified"` - default: org_capability_grant_added + The marketplace setting that changed + + - `"default_installation_preference"` + + - `"unspecified"` + + - `current_value: string` + + Setting value immediately after this change; empty when the setting is no longer set + + - `previous_value: string` + + Setting value immediately before this change; empty when the setting was not set + + - `MarketplaceWebhookDeleted object` + + Admin removed the GitHub push webhook for a marketplace. + + - `type: optional "marketplace_webhook_deleted"` + + default: marketplace_webhook_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62439,23 +62497,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `grant_type: string` - - The type of capability grant that was added. - - - `principal_id: string` - - Tagged ID of the principal the grant was added to. - - - `principal_type: "rbac_role" or "unspecified" or "workspace"` - - The kind of principal the grant was added to. - - - `"rbac_role"` - - - `"unspecified"` + - `marketplace_id: string` - - `"workspace"` + Tagged ID of the marketplace - `id: optional string` @@ -62475,13 +62519,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCapabilityGrantRemoved object` + - `MarketplaceWebhookProvisioned object` - A capability grant was removed from a workspace or role. + Admin provisioned a GitHub push webhook for a marketplace. - - `type: optional "org_capability_grant_removed"` + - `type: optional "marketplace_webhook_provisioned"` - default: org_capability_grant_removed + default: marketplace_webhook_provisioned - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62689,23 +62733,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `grant_type: string` - - The type of capability grant that was removed. - - - `principal_id: string` - - Tagged ID of the principal the grant was removed from. - - - `principal_type: "rbac_role" or "unspecified" or "workspace"` - - The kind of principal the grant was removed from. - - - `"rbac_role"` - - - `"unspecified"` + - `marketplace_id: string` - - `"workspace"` + Tagged ID of the marketplace - `id: optional string` @@ -62717,6 +62747,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `github_webhook_id: optional number or null` + + GitHub-assigned webhook ID returned by the hooks API + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -62725,13 +62759,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgChatCoworkUnifiedDisabled object` + - `McpDirectoryServerPublished object` - The organization's setting for the unified Chat and Cowork experience was turned off. + The organization published its approved MCP directory listing. - - `type: optional "org_chat_cowork_unified_disabled"` + - `type: optional "mcp_directory_server_published"` - default: org_chat_cowork_unified_disabled + default: mcp_directory_server_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -62939,6 +62973,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_directory_server_id: string` + + Tagged ID of the MCP directory listing + + - `mcp_directory_server_name: string` + + Display name of the MCP directory listing + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -62949,10 +62991,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -62961,17 +62999,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgChatCoworkUnifiedEnabled object` + - `McpServerCreated object` - The organization's setting for the unified Chat and Cowork experience was turned on. + An MCP server was added to the organization. - - `type: optional "org_chat_cowork_unified_enabled"` + - `type: optional "mcp_server_created"` - default: org_chat_cowork_unified_enabled + default: mcp_server_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63179,20 +63213,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -63201,17 +63251,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeDataSharingDisabled object` + - `McpServerDeleted object` - Organization Claude Code data sharing was disabled. + An MCP server was removed from the organization. - - `type: optional "org_claude_code_data_sharing_disabled"` + - `type: optional "mcp_server_deleted"` - default: org_claude_code_data_sharing_disabled + default: mcp_server_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63419,6 +63465,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -63429,10 +63483,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -63441,17 +63491,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeDataSharingEnabled object` + - `McpServerManagedAuthTokenExchanged object` - Organization Claude Code data sharing was enabled. + A user attempted to obtain an access token for an MCP server via enterprise managed authorization. This event reports the outcomes of attempted token exchanges. Repeated failures with the same cause may be reported once until the cause changes, and requests refused before a token exchange is attempted are not reported, except the "connector_scope_not_granted" and "identity_assertion_refused" failures described under error_type. - - `type: optional "org_claude_code_data_sharing_enabled"` + - `type: optional "mcp_server_managed_auth_token_exchanged"` - default: org_claude_code_data_sharing_enabled + default: mcp_server_managed_auth_token_exchanged - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63659,19 +63705,47 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `managed_auth_mode: string` + + The managed-authorization mode used for the exchange ("claude" or "sso"). + + - `mcp_server_id: string` + + The MCP server the exchange was attempted for, e.g. "mcpsrv_01Ab...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `assertion_jti: optional string or null` + + The JWT ID of the identity assertion presented to the authorization server, when one was minted, for cross-reference with the identity provider's own logs. + + - `authorization_server_issuer: optional string or null` + + The issuer identifier of the authorization server the exchange was attempted against. + + - `correlation_id: optional string or null` + + An opaque identifier customers can quote when contacting Anthropic support about this exchange. + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` + - `error_subtype: optional string or null` - Setting value immediately after this change + A more specific classification of the failure, when available. For authorization-server rejections this is the OAuth error code the server returned (for example "invalid_grant"); for identity-provider rejections this is the error code the identity provider returned; for refused identity assertions this is a short reason code such as "not_org_member" (the user's membership in the organization could not be confirmed). Values may be added over time; treat an unrecognized value as a generic failure. + + - `error_type: optional string or null` + + A short classification of why the exchange failed, when outcome is "failure". Values include "authorization_server_rejected", "authorization_server_unavailable", "identity_provider_rejected", "sso_session_invalid", "sso_connection_unsupported", "connector_scope_not_granted" and "identity_assertion_refused". The last two are refusals made before a token exchange was attempted: "connector_scope_not_granted" means the organization's role configuration grants no scopes on this connector; "identity_assertion_refused" means no identity assertion could be issued for this user and server (for example, the user's membership in the organization could not be confirmed), and is reported when access the user already had could not be renewed and, depending on the reason, when first connecting; error_subtype names the reason. Values may be added over time; treat an unrecognized value as a generic failure. + + - `mcp_server_name: optional string or null` + + The MCP server's display name at the time of the exchange, when available. - `organization_id: optional string or null` @@ -63681,17 +63755,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `outcome: optional string or null` - Setting value immediately before this change + Whether the token exchange succeeded ("success") or was rejected ("failure"). - - `OrgClaudeCodeDesktopDisabled object` + - `McpServerManagedAuthUpdated object` - Organization Claude Code Desktop was disabled. + An MCP server's enterprise managed authorization settings were set, changed, or cleared, including when they were supplied while the server was being added or edited. Fields without a "previous_" prefix describe the settings after the change and are null when the server has no managed authorization settings afterwards; "previous_" fields describe the settings before the change and are null when the server had none before (always the case for a newly added server). - - `type: optional "org_claude_code_desktop_disabled"` + - `type: optional "mcp_server_managed_auth_updated"` - default: org_claude_code_desktop_disabled + default: mcp_server_managed_auth_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -63899,19 +63973,47 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `allowed_scopes: optional string or null` + + The OAuth scopes managed authorization may request for the server after the change, as a space-delimited list. Null when no scope restriction is configured (or the server has no managed authorization settings); an empty string when the restriction permits no scopes. + + - `built_in_roles_included: optional boolean or null` + + Whether, after the change, managed authorization extends to members who hold one of the organization's built-in roles (such as User, Admin, or Owner) rather than a custom role, in addition to members whose custom role grants it. This describes whom managed authorization reaches and is reported on every change, independent of how built-in role access is configured. + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` + - `individual_auth_enabled: optional boolean or null` - Setting value immediately after this change + Whether members may authorize the server individually, through their own sign-in and consent, after the change. + + - `managed_auth_enabled: optional boolean or null` + + Whether managed authorization is enabled for the server after the change, so that members whose role permits it are authorized through the organization's identity provider. + + - `managed_auth_mode: optional string or null` + + The managed-authorization mode after the change ("claude" or "sso"): how the identity assertion presented on members' behalf is issued. Recorded whenever managed authorization settings exist, whether or not managed authorization is enabled; null when the server has no managed authorization settings after the change. + + - `mcp_server_url: optional string or null` + + Origin (scheme, host and port, the default port omitted) of the MCP server at the time of the change; the path is never included. Null when not available, and on activities recorded before this field was limited to the origin. - `organization_id: optional string or null` @@ -63921,17 +64023,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `previous_allowed_scopes: optional string or null` - Setting value immediately before this change + The OAuth scope restriction before the change, as a space-delimited list; null when no scope restriction was configured. - - `OrgClaudeCodeDesktopEnabled object` + - `previous_built_in_roles_included: optional boolean or null` - Organization Claude Code Desktop was enabled. + Whether managed authorization extended to members holding one of the organization's built-in roles before the change. - - `type: optional "org_claude_code_desktop_enabled"` + - `previous_individual_auth_enabled: optional boolean or null` - default: org_claude_code_desktop_enabled + Whether members could authorize the server individually before the change. + + - `previous_managed_auth_enabled: optional boolean or null` + + Whether managed authorization was enabled for the server before the change. + + - `McpServerUpdated object` + + An MCP server's configuration was updated. + + - `type: optional "mcp_server_updated"` + + default: mcp_server_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64139,20 +64253,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64161,17 +64291,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgClaudeCodeZeroDataRetentionDisabled object` + - `McpToolPolicyUpdated object` - A primary owner disabled zero data retention for Claude Code, so Claude Code content is retained according to the organization's data retention settings. + The permission restriction for an MCP tool was set or cleared. - - `type: optional "org_claude_code_zero_data_retention_disabled"` + - `type: optional "mcp_tool_policy_updated"` - default: org_claude_code_zero_data_retention_disabled + default: mcp_tool_policy_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64379,16 +64505,52 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `mcp_server_id: string` + + Tagged ID of the MCP server + + - `mcp_server_name: string` + + Display name of the MCP server + + - `tool_name: string` + + Tool name (or '*' for the MCP-server-wide default) + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `action: optional "reenabled" or "unspecified" or null` + + "reenabled" when the change lifted the organization-wide block on the server (the block a HIPAA configuration places); unset for any other restriction change. + + - `"reenabled"` + + - `"unspecified"` + + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none (a server that already carries one is not asked again). + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time + - `max_permission: optional string or null` + + New max_permission value ('allow' | 'ask' | 'blocked'), or null when cleared + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64397,13 +64559,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgComplianceAPISettingsUpdated object` + - `OrgAnalyticsAPICapabilityUpdated object` - Organization compliance API settings were updated. + Organization analytics_api capability was enabled or disabled. - - `type: optional "org_compliance_api_settings_updated"` + - `type: optional "org_analytics_api_capability_updated"` - default: org_compliance_api_settings_updated + default: org_analytics_api_capability_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64615,20 +64777,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `compliance_api_enabled: optional boolean or null` - - Whether the compliance API is enabled for the organization after this change. - - - `compliance_api_logging_enabled: optional boolean or null` - - Whether compliance activity logging is enabled for the organization after this change. - - `created_at: optional string` When this activity occurred. format: date-time + - `current_value: optional boolean or null` + + Whether the analytics API capability is enabled immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -64637,13 +64795,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgConnectorDomainGuardUpdated object` + - `previous_value: optional boolean or null` - Enterprise admin changed whether connectors are restricted to verified domains. + Whether the analytics API capability was enabled immediately before this change - - `type: optional "org_connector_domain_guard_updated"` + - `OrgBulkDeleteInitiated object` - default: org_connector_domain_guard_updated + Organization bulk deletion was initiated. + + - `type: optional "org_bulk_delete_initiated"` + + default: org_bulk_delete_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -64851,8 +65013,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enforced: boolean` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -64871,13 +65031,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkActWithoutAskingModeDisabled object` + - `OrgCapabilityGrantAdded object` - The "Act without asking" mode in Cowork was disabled for the organization, so members can no longer let Claude act without asking for approval. + A capability grant was added to a workspace or role. - - `type: optional "org_cowork_act_without_asking_mode_disabled"` + - `type: optional "org_capability_grant_added"` - default: org_cowork_act_without_asking_mode_disabled + default: org_capability_grant_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65085,6 +65245,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `grant_type: string` + + The type of capability grant that was added. + + - `principal_id: string` + + Tagged ID of the principal the grant was added to. + + - `principal_type: "rbac_role" or "unspecified" or "workspace"` + + The kind of principal the grant was added to. + + - `"rbac_role"` + + - `"unspecified"` + + - `"workspace"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -65103,13 +65281,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkActWithoutAskingModeEnabled object` + - `OrgCapabilityGrantRemoved object` - The "Act without asking" mode in Cowork was enabled for the organization, allowing members to let Claude act without asking for approval. + A capability grant was removed from a workspace or role. - - `type: optional "org_cowork_act_without_asking_mode_enabled"` + - `type: optional "org_capability_grant_removed"` - default: org_cowork_act_without_asking_mode_enabled + default: org_capability_grant_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65317,6 +65495,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `grant_type: string` + + The type of capability grant that was removed. + + - `principal_id: string` + + Tagged ID of the principal the grant was removed from. + + - `principal_type: "rbac_role" or "unspecified" or "workspace"` + + The kind of principal the grant was removed from. + + - `"rbac_role"` + + - `"unspecified"` + + - `"workspace"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -65335,13 +65531,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkAgentDisabled object` + - `OrgChatCoworkUnifiedDisabled object` - Organization Cowork Agent was disabled. + The organization's setting for the unified Chat and Cowork experience was turned off. - - `type: optional "org_cowork_agent_disabled"` + - `type: optional "org_chat_cowork_unified_disabled"` - default: org_cowork_agent_disabled + default: org_chat_cowork_unified_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65575,13 +65771,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkAgentEnabled object` + - `OrgChatCoworkUnifiedEnabled object` - Organization Cowork Agent was enabled. + The organization's setting for the unified Chat and Cowork experience was turned on. - - `type: optional "org_cowork_agent_enabled"` + - `type: optional "org_chat_cowork_unified_enabled"` - default: org_cowork_agent_enabled + default: org_chat_cowork_unified_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -65815,13 +66011,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkAutoModeDisabled object` + - `OrgClaudeCodeDataSharingDisabled object` - The "Auto" permission mode in Cowork was disabled for the organization, so members can no longer let Claude approve its own actions after a safety check. + Organization Claude Code data sharing was disabled. - - `type: optional "org_cowork_auto_mode_disabled"` + - `type: optional "org_claude_code_data_sharing_disabled"` - default: org_cowork_auto_mode_disabled + default: org_claude_code_data_sharing_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66039,237 +66235,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgCoworkAutoModeEnabled object` - - The "Auto" permission mode in Cowork was enabled for the organization, allowing members to let Claude approve its own actions after a safety check. - - - `type: optional "org_cowork_auto_mode_enabled"` - - default: org_cowork_auto_mode_enabled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. + - `current_value: optional boolean or null` - format: date-time + Setting value immediately after this change - `organization_id: optional string or null` @@ -66279,13 +66247,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkBrowserPaneDisabled object` + - `previous_value: optional boolean or null` - The in-app browser in Cowork was disabled for the organization, so Claude can no longer open or use websites in a browser pane during members' Cowork sessions. + Setting value immediately before this change - - `type: optional "org_cowork_browser_pane_disabled"` + - `OrgClaudeCodeDataSharingEnabled object` - default: org_cowork_browser_pane_disabled + Organization Claude Code data sharing was enabled. + + - `type: optional "org_claude_code_data_sharing_enabled"` + + default: org_claude_code_data_sharing_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66503,237 +66475,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgCoworkBrowserPaneEnabled object` - - The in-app browser in Cowork was enabled for the organization, letting Claude open and use websites in a browser pane during members' Cowork sessions. - - - `type: optional "org_cowork_browser_pane_enabled"` - - default: org_cowork_browser_pane_enabled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. + - `current_value: optional boolean or null` - format: date-time + Setting value immediately after this change - `organization_id: optional string or null` @@ -66743,13 +66487,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkDisabled object` + - `previous_value: optional boolean or null` - Organization cowork was disabled. + Setting value immediately before this change - - `type: optional "org_cowork_disabled"` + - `OrgClaudeCodeDesktopDisabled object` - default: org_cowork_disabled + Organization Claude Code Desktop was disabled. + + - `type: optional "org_claude_code_desktop_disabled"` + + default: org_claude_code_desktop_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -66983,13 +66731,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkEnabled object` + - `OrgClaudeCodeDesktopEnabled object` - Organization cowork was enabled. + Organization Claude Code Desktop was enabled. - - `type: optional "org_cowork_enabled"` + - `type: optional "org_claude_code_desktop_enabled"` - default: org_cowork_enabled + default: org_claude_code_desktop_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67223,13 +66971,13 @@ compliance activities that can be filtered by various criteria. Setting value immediately before this change - - `OrgCoworkMcpAlwaysAllowDisabled object` + - `OrgClaudeCodeZeroDataRetentionDisabled object` - The "Always allow" option for connector tools in Cowork was disabled for the organization, so each use of a connector tool that can make changes requires approval. Read-only connector tools are not affected by this setting. + A primary owner disabled zero data retention for Claude Code, so Claude Code content is retained according to the organization's data retention settings. - - `type: optional "org_cowork_mcp_always_allow_disabled"` + - `type: optional "org_claude_code_zero_data_retention_disabled"` - default: org_cowork_mcp_always_allow_disabled + default: org_claude_code_zero_data_retention_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67455,13 +67203,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkMcpAlwaysAllowEnabled object` + - `OrgComplianceAPISettingsUpdated object` - The "Always allow" option for connector tools in Cowork was enabled for the organization, letting members approve a connector tool that can make changes once and allow its later uses automatically. Read-only connector tools are not affected by this setting. + Organization compliance API settings were updated. - - `type: optional "org_cowork_mcp_always_allow_enabled"` + - `type: optional "org_compliance_api_settings_updated"` - default: org_cowork_mcp_always_allow_enabled + default: org_compliance_api_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67673,6 +67421,14 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `compliance_api_enabled: optional boolean or null` + + Whether the compliance API is enabled for the organization after this change. + + - `compliance_api_logging_enabled: optional boolean or null` + + Whether compliance activity logging is enabled for the organization after this change. + - `created_at: optional string` When this activity occurred. @@ -67687,13 +67443,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkOtlpSettingsUpdated object` + - `OrgConnectorDomainGuardUpdated object` - The organization's Cowork OpenTelemetry monitoring export settings were updated. + Enterprise admin changed whether connectors are restricted to verified domains. - - `type: optional "org_cowork_otlp_settings_updated"` + - `type: optional "org_connector_domain_guard_updated"` - default: org_cowork_otlp_settings_updated + default: org_connector_domain_guard_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -67901,6 +67657,8 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enforced: boolean` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -67911,22 +67669,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_otlp_content_capture: optional array of string or null` - - The organization's content-capture settings after the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings are not set or were not modified by this update. - - - `new_otlp_endpoint: optional string or null` - - The OpenTelemetry export endpoint after the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint is unset or was not itself modified by this update. - - - `new_otlp_protocol: optional string or null` - - The OpenTelemetry export protocol after the change. Null if the protocol is unset or was not itself modified by this update. - - - `new_otlp_resource_attributes: optional string or null` - - The OpenTelemetry resource attributes after the change. Null if the attributes are unset or were not themselves modified by this update. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -67935,39 +67677,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `otlp_headers_change: optional "cleared" or "set" or "unspecified" or null` - - Whether the OpenTelemetry export headers were set or cleared. 'set' is recorded for any non-empty submission, including resubmission of an unchanged value. Header values are never included. - - - `"cleared"` - - - `"set"` - - - `"unspecified"` - - - `previous_otlp_content_capture: optional array of string or null` - - The organization's content-capture settings before the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings were not previously set or were not modified by this update. - - - `previous_otlp_endpoint: optional string or null` - - The OpenTelemetry export endpoint before the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint was previously unset or was not itself modified by this update. - - - `previous_otlp_protocol: optional string or null` - - The OpenTelemetry export protocol before the change. Null if the protocol was previously unset or was not itself modified by this update. - - - `previous_otlp_resource_attributes: optional string or null` - - The OpenTelemetry resource attributes before the change. Null if the attributes were previously unset or were not themselves modified by this update. - - - `OrgCoworkRemoteDisabled object` + - `OrgCoworkActWithoutAskingModeDisabled object` - Running Cowork in the cloud was disabled for the organization, so members can no longer run Cowork sessions in Anthropic-hosted remote environments. + The "Act without asking" mode in Cowork was disabled for the organization, so members can no longer let Claude act without asking for approval. - - `type: optional "org_cowork_remote_disabled"` + - `type: optional "org_cowork_act_without_asking_mode_disabled"` - default: org_cowork_remote_disabled + default: org_cowork_act_without_asking_mode_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68193,13 +67909,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCoworkRemoteEnabled object` + - `OrgCoworkActWithoutAskingModeEnabled object` - Running Cowork in the cloud was enabled for the organization, allowing members to run Cowork sessions in Anthropic-hosted remote environments. + The "Act without asking" mode in Cowork was enabled for the organization, allowing members to let Claude act without asking for approval. - - `type: optional "org_cowork_remote_enabled"` + - `type: optional "org_cowork_act_without_asking_mode_enabled"` - default: org_cowork_remote_enabled + default: org_cowork_act_without_asking_mode_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68425,13 +68141,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgCreationBlocked object` + - `OrgCoworkAgentDisabled object` - Organization creation was blocked. + Organization Cowork Agent was disabled. - - `type: optional "org_creation_blocked"` + - `type: optional "org_cowork_agent_disabled"` - default: org_creation_blocked + default: org_cowork_agent_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68649,6 +68365,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -68657,17 +68377,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` + - `previous_value: optional boolean or null` - "blocked" when the organization started preventing users with an email address at one of its verified domains from creating new organizations, "unblocked" when it stopped. + Setting value immediately before this change - - `OrgDataExportAccessed object` + - `OrgCoworkAgentEnabled object` - Organization data export file was accessed/downloaded via signed URL. + Organization Cowork Agent was enabled. - - `type: optional "org_data_export_accessed"` + - `type: optional "org_cowork_agent_enabled"` - default: org_data_export_accessed + default: org_cowork_agent_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -68885,15 +68605,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was downloaded. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` + - `current_value: optional boolean or null` - - `"workbench"` + Setting value immediately after this change - `organization_id: optional string or null` @@ -68903,13 +68617,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDataExportCompleted object` + - `previous_value: optional boolean or null` - Organization data export was completed. + Setting value immediately before this change - - `type: optional "org_data_export_completed"` + - `OrgCoworkAutoModeDisabled object` - default: org_data_export_completed + The "Auto" permission mode in Cowork was disabled for the organization, so members can no longer let Claude approve its own actions after a safety check. + + - `type: optional "org_cowork_auto_mode_disabled"` + + default: org_cowork_auto_mode_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69127,16 +68845,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was exported. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` - - - `"workbench"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -69145,13 +68853,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDataExportStarted object` + - `OrgCoworkAutoModeEnabled object` - Organization data export was started. + The "Auto" permission mode in Cowork was enabled for the organization, allowing members to let Claude approve its own actions after a safety check. - - `type: optional "org_data_export_started"` + - `type: optional "org_cowork_auto_mode_enabled"` - default: org_data_export_started + default: org_cowork_auto_mode_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69369,16 +69077,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - - Which data set was exported. Absent on records written before this field was introduced. - - - `"conversations"` - - - `"unspecified"` - - - `"workbench"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -69387,23 +69085,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scope: optional "member_own_data" or "organization" or "unspecified" or null` - - Breadth of the export — the whole organization, or only the requesting member's own data. Absent on records written before this field was introduced. - - - `"member_own_data"` - - - `"organization"` - - - `"unspecified"` - - - `OrgDataResidencyUpdated object` + - `OrgCoworkBrowserPaneDisabled object` - The organization's inference data residency settings were updated. + The in-app browser in Cowork was disabled for the organization, so Claude can no longer open or use websites in a browser pane during members' Cowork sessions. - - `type: optional "org_data_residency_updated"` + - `type: optional "org_cowork_browser_pane_disabled"` - default: org_data_residency_updated + default: org_cowork_browser_pane_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69629,35 +69317,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "allowed_inference_geos" or "default_inference_geo" or "unspecified"` - - The data residency setting that changed - - - `"allowed_inference_geos"` - - - `"default_inference_geo"` - - - `"unspecified"` - - - `current_value: optional string or null` - - Setting value immediately after this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. - - - `previous_value: optional string or null` - - Setting value immediately before this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. - - - `OrgDeletedViaBulk object` + - `OrgCoworkBrowserPaneEnabled object` - Organization was deleted via bulk operation. + The in-app browser in Cowork was enabled for the organization, letting Claude open and use websites in a browser pane during members' Cowork sessions. - - `type: optional "org_deleted_via_bulk"` + - `type: optional "org_cowork_browser_pane_enabled"` - default: org_deleted_via_bulk + default: org_cowork_browser_pane_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -69883,13 +69549,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDeletionRequested object` + - `OrgCoworkDisabled object` - Organization deletion was requested. + Organization cowork was disabled. - - `type: optional "org_deletion_requested"` + - `type: optional "org_cowork_disabled"` - default: org_deletion_requested + default: org_cowork_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70107,6 +69773,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -70115,13 +69785,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncCompleted object` + - `previous_value: optional boolean or null` - Organization directory resync completed successfully. + Setting value immediately before this change - - `type: optional "org_directory_resync_completed"` + - `OrgCoworkEnabled object` - default: org_directory_resync_completed + Organization cowork was enabled. + + - `type: optional "org_cowork_enabled"` + + default: org_cowork_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70329,10 +70003,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying the directory resync run that completed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70343,6 +70013,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this change + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -70351,13 +70025,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncFailed object` + - `previous_value: optional boolean or null` - Organization directory resync failed. + Setting value immediately before this change - - `type: optional "org_directory_resync_failed"` + - `OrgCoworkMcpAlwaysAllowDisabled object` - default: org_directory_resync_failed + The "Always allow" option for connector tools in Cowork was disabled for the organization, so each use of a connector tool that can make changes requires approval. Read-only connector tools are not affected by this setting. + + - `type: optional "org_cowork_mcp_always_allow_disabled"` + + default: org_cowork_mcp_always_allow_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70565,10 +70243,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying the directory resync run that failed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70587,13 +70261,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDirectoryResyncStarted object` + - `OrgCoworkMcpAlwaysAllowEnabled object` - Organization directory resync was started asynchronously. + The "Always allow" option for connector tools in Cowork was enabled for the organization, letting members approve a connector tool that can make changes once and allow its later uses automatically. Read-only connector tools are not affected by this setting. - - `type: optional "org_directory_resync_started"` + - `type: optional "org_cowork_mcp_always_allow_enabled"` - default: org_directory_resync_started + default: org_cowork_mcp_always_allow_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -70801,10 +70475,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resync_uuid: string` - - UUID identifying this directory resync run - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -70823,17 +70493,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `sync_destinations: optional array of string` - - Sync destinations the resync targets (for example, accounts and rbac) - - - `OrgDirectorySyncActivated object` + - `OrgCoworkOtlpSettingsUpdated object` - Organization directory sync was activated. + The organization's Cowork OpenTelemetry monitoring export settings were updated. - - `type: optional "org_directory_sync_activated"` + - `type: optional "org_cowork_otlp_settings_updated"` - default: org_directory_sync_activated + default: org_cowork_otlp_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71051,253 +70717,63 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgDirectorySyncAddInitiated object` - - Organization directory sync setup was initiated. - - - `type: optional "org_directory_sync_add_initiated"` - - default: org_directory_sync_add_initiated - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. + - `new_otlp_content_capture: optional array of string or null` - - `type: optional "oidc"` + The organization's content-capture settings after the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings are not set or were not modified by this update. - default: oidc + - `new_otlp_endpoint: optional string or null` - - `issuer: optional string or null` + The OpenTelemetry export endpoint after the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint was cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint is unset or was not itself modified by this update. - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` + - `new_otlp_protocol: optional string or null` - - `subject: optional string or null` + The OpenTelemetry export protocol after the change. Null if the protocol is unset or was not itself modified by this update. - The provider's verified identifier for the caller; its form depends on the provider. + - `new_otlp_resource_attributes: optional string or null` - - `user_agent: optional string or null` + The OpenTelemetry resource attributes after the change. Null if the attributes are unset or were not themselves modified by this update. - - `AttestedDeviceActor object` + - `organization_id: optional string or null` - An attested mobile device authenticated via Apple App Attest. + Organization ID this activity is associated with - - `type: optional "attested_device_actor"` + - `organization_uuid: optional string or null` - default: attested_device_actor + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `external_client_id: string` + - `otlp_headers_change: optional "cleared" or "set" or "unspecified" or null` - - `kid_hash: string` + Whether the OpenTelemetry export headers were set or cleared. 'set' is recorded for any non-empty submission, including resubmission of an unchanged value. Header values are never included. - - `ip_address: optional string or null` + - `"cleared"` - - `user_agent: optional string or null` + - `"set"` - - `id: optional string` + - `"unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `previous_otlp_content_capture: optional array of string or null` - - `created_at: optional string` + The organization's content-capture settings before the change, as a sorted list of category names. An empty list means content capture is explicitly turned off. Null if the settings were not previously set or were not modified by this update. - When this activity occurred. + - `previous_otlp_endpoint: optional string or null` - format: date-time + The OpenTelemetry export endpoint before the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint had been cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint was previously unset or was not itself modified by this update. - - `organization_id: optional string or null` + - `previous_otlp_protocol: optional string or null` - Organization ID this activity is associated with + The OpenTelemetry export protocol before the change. Null if the protocol was previously unset or was not itself modified by this update. - - `organization_uuid: optional string or null` + - `previous_otlp_resource_attributes: optional string or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + The OpenTelemetry resource attributes before the change. Null if the attributes were previously unset or were not themselves modified by this update. - - `OrgDirectorySyncDeleted object` + - `OrgCoworkRemoteDisabled object` - Organization directory sync was deleted. + Running Cowork in the cloud was disabled for the organization, so members can no longer run Cowork sessions in Anthropic-hosted remote environments. - - `type: optional "org_directory_sync_deleted"` + - `type: optional "org_cowork_remote_disabled"` - default: org_directory_sync_deleted + default: org_cowork_remote_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71523,13 +70999,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilityDisabled object` + - `OrgCoworkRemoteEnabled object` - Admin disabled organization discoverability. + Running Cowork in the cloud was enabled for the organization, allowing members to run Cowork sessions in Anthropic-hosted remote environments. - - `type: optional "org_discoverability_disabled"` + - `type: optional "org_cowork_remote_enabled"` - default: org_discoverability_disabled + default: org_cowork_remote_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71755,13 +71231,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilityEnabled object` + - `OrgCreationBlocked object` - Admin enabled organization discoverability. + Organization creation was blocked. - - `type: optional "org_discoverability_enabled"` + - `type: optional "org_creation_blocked"` - default: org_discoverability_enabled + default: org_creation_blocked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -71987,13 +71463,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDiscoverabilitySettingsUpdated object` + - `reason: optional string or null` - Admin updated organization discoverability settings. + "blocked" when the organization started preventing users with an email address at one of its verified domains from creating new organizations, "unblocked" when it stopped. - - `type: optional "org_discoverability_settings_updated"` + - `OrgDataExportAccessed object` - default: org_discoverability_settings_updated + Organization data export file was accessed/downloaded via signed URL. + + - `type: optional "org_data_export_accessed"` + + default: org_data_export_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72211,6 +71691,16 @@ compliance activities that can be filtered by various criteria. format: date-time + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` + + Which data set was downloaded. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72219,13 +71709,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainAddInitiated object` + - `OrgDataExportCompleted object` - Organization domain verification was initiated. + Organization data export was completed. - - `type: optional "org_domain_add_initiated"` + - `type: optional "org_data_export_completed"` - default: org_domain_add_initiated + default: org_data_export_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72443,6 +71933,16 @@ compliance activities that can be filtered by various criteria. format: date-time + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` + + Which data set was exported. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72451,13 +71951,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainRemoved object` + - `OrgDataExportStarted object` - Organization domain was removed. + Organization data export was started. - - `type: optional "org_domain_removed"` + - `type: optional "org_data_export_started"` - default: org_domain_removed + default: org_data_export_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72675,9 +72175,15 @@ compliance activities that can be filtered by various criteria. format: date-time - - `domain: optional string or null` + - `export_type: optional "conversations" or "unspecified" or "workbench" or null` - The email domain that was removed from the organization, e.g. "example.com". + Which data set was exported. Absent on records written before this field was introduced. + + - `"conversations"` + + - `"unspecified"` + + - `"workbench"` - `organization_id: optional string or null` @@ -72687,13 +72193,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgDomainVerified object` + - `scope: optional "member_own_data" or "organization" or "unspecified" or null` - Organization domain was verified. + Breadth of the export — the whole organization, or only the requesting member's own data. Absent on records written before this field was introduced. - - `type: optional "org_domain_verified"` + - `"member_own_data"` - default: org_domain_verified + - `"organization"` + + - `"unspecified"` + + - `OrgDataResidencyUpdated object` + + The organization's inference data residency settings were updated. + + - `type: optional "org_data_residency_updated"` + + default: org_data_residency_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -72911,10 +72427,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `domain: optional string or null` - - The email domain that was verified for the organization, e.g. "example.com". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -72923,13 +72435,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyCreated object` + - `updates: optional array of object` - A CMEK external key config was created. + The field-level changes applied in this update - - `type: optional "org_external_key_created"` + - `type: "allowed_inference_geos" or "default_inference_geo" or "unspecified"` - default: org_external_key_created + The data residency setting that changed + + - `"allowed_inference_geos"` + + - `"default_inference_geo"` + + - `"unspecified"` + + - `current_value: optional string or null` + + Setting value immediately after this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. + + - `previous_value: optional string or null` + + Setting value immediately before this change. For allowed_inference_geos: a comma-separated list of geo codes (e.g. 'global,us'), or the literal 'unrestricted'. For default_inference_geo: a single geo code. + + - `OrgDeletedViaBulk object` + + Organization was deleted via bulk operation. + + - `type: optional "org_deleted_via_bulk"` + + default: org_deleted_via_bulk - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73137,22 +72671,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the created external key config - - - `provider: "aws" or "azure" or "gcp" or "unspecified"` - - KMS provider backing the key - - - `"aws"` - - - `"azure"` - - - `"gcp"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -73171,13 +72689,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyDeleted object` + - `OrgDeletionRequested object` - A CMEK external key config was deleted. + Organization deletion was requested. - - `type: optional "org_external_key_deleted"` + - `type: optional "org_deletion_requested"` - default: org_external_key_deleted + default: org_deletion_requested - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73385,10 +72903,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the deleted external key config - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -73407,13 +72921,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgExternalKeyUpdated object` + - `OrgDirectoryResyncCompleted object` - A CMEK external key config was updated. + Organization directory resync completed successfully. - - `type: optional "org_external_key_updated"` + - `type: optional "org_directory_resync_completed"` - default: org_external_key_updated + default: org_directory_resync_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73621,9 +73135,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` + - `resync_uuid: string` - Tagged ID of the updated external key config + UUID identifying the directory resync run that completed. - `id: optional string` @@ -73643,37 +73157,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "display_name" or "geo" or "provider_config" or "unspecified"` - - The external key config field that changed - - - `"display_name"` - - - `"geo"` - - - `"provider_config"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `OrgExternalKeyValidated object` + - `OrgDirectoryResyncFailed object` - A CMEK external key config was validated against the customer's KMS. + Organization directory resync failed. - - `type: optional "org_external_key_validated"` + - `type: optional "org_directory_resync_failed"` - default: org_external_key_validated + default: org_directory_resync_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -73881,19 +73371,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `external_key_id: string` - - Tagged ID of the validated external key config - - - `validation_result: "failure" or "success" or "unspecified"` - - Outcome of the encrypt/decrypt roundtrip - - - `"failure"` - - - `"success"` + - `resync_uuid: string` - - `"unspecified"` + UUID identifying the directory resync run that failed. - `id: optional string` @@ -73913,13 +73393,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaArtifactsTermsAccepted object` + - `OrgDirectoryResyncStarted object` - An owner of the organization accepted the terms for using artifacts with the HIPAA configuration enabled. + Organization directory resync was started asynchronously. - - `type: optional "org_hipaa_artifacts_terms_accepted"` + - `type: optional "org_directory_resync_started"` - default: org_hipaa_artifacts_terms_accepted + default: org_directory_resync_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74127,13 +73607,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `terms_content_hash: string` - - SHA-256 digest (hex) of the terms that were accepted. - - - `terms_version_label: string` + - `resync_uuid: string` - Version label of the terms that were accepted, e.g. "2026-10-02". + UUID identifying this directory resync run - `id: optional string` @@ -74153,13 +73629,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaClaudeCodeCoworkRestrictionsDeferred object` + - `sync_destinations: optional array of string` - The HIPAA configuration for Claude Code (local mode) and Cowork (local mode) was left off for the organization when the configuration launched, and stays off until it is applied. + Sync destinations the resync targets (for example, accounts and rbac) - - `type: optional "org_hipaa_claude_code_cowork_restrictions_deferred"` + - `OrgDirectorySyncActivated object` - default: org_hipaa_claude_code_cowork_restrictions_deferred + Organization directory sync was activated. + + - `type: optional "org_directory_sync_activated"` + + default: org_directory_sync_activated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74385,13 +73865,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaClaudeCodeCoworkRestrictionsEnabled object` + - `OrgDirectorySyncAddInitiated object` - The HIPAA configuration was applied to Claude Code (local mode) and Cowork (local mode) for the organization. + Organization directory sync setup was initiated. - - `type: optional "org_hipaa_claude_code_cowork_restrictions_enabled"` + - `type: optional "org_directory_sync_add_initiated"` - default: org_hipaa_claude_code_cowork_restrictions_enabled + default: org_directory_sync_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74599,16 +74079,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `reason: "admin_opt_in" or "enabled_by_anthropic" or "unspecified"` - - Why the HIPAA configuration was applied: "admin_opt_in" when an administrator of the organization applied it, "enabled_by_anthropic" when Anthropic applied it for the organization. - - - `"admin_opt_in"` - - - `"enabled_by_anthropic"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -74627,13 +74097,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgHipaaSelfServeEnabled object` + - `OrgDirectorySyncDeleted object` - A primary owner accepted the Business Associate Agreement and enabled the HIPAA configuration for the organization through the self-serve flow. + Organization directory sync was deleted. - - `type: optional "org_hipaa_self_serve_enabled"` + - `type: optional "org_directory_sync_deleted"` - default: org_hipaa_self_serve_enabled + default: org_directory_sync_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -74841,17 +74311,237 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `baa_content_hash: string` + - `id: optional string` - SHA-256 digest (hex) of the Business Associate Agreement that was accepted. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `baa_version_label: string` + - `created_at: optional string` - Version label of the Business Associate Agreement that was accepted, e.g. "2026-05-06". + When this activity occurred. - - `setup_guide_content_hash: string` + format: date-time - SHA-256 digest (hex) of the HIPAA setup guide that was current when the HIPAA configuration was enabled. + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgDiscoverabilityDisabled object` + + Admin disabled organization discoverability. + + - `type: optional "org_discoverability_disabled"` + + default: org_discoverability_disabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` - `id: optional string` @@ -74871,13 +74561,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionCreated object` + - `OrgDiscoverabilityEnabled object` - Organization IP restriction was created. + Admin enabled organization discoverability. - - `type: optional "org_ip_restriction_created"` + - `type: optional "org_discoverability_enabled"` - default: org_ip_restriction_created + default: org_discoverability_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75095,10 +74785,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_range: optional string or null` - - The IP range added to the allowlist, e.g. "192.0.2.0/24", which is not enforced while it is inactive or the IP allowlist is turned off; absent for activities recorded before this field was added. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75107,13 +74793,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionDeleted object` + - `OrgDiscoverabilitySettingsUpdated object` - Organization IP restriction was deleted. + Admin updated organization discoverability settings. - - `type: optional "org_ip_restriction_deleted"` + - `type: optional "org_discoverability_settings_updated"` - default: org_ip_restriction_deleted + default: org_discoverability_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75331,10 +75017,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_range: optional string or null` - - The IP range removed from the allowlist, e.g. "192.0.2.0/24"; absent for activities recorded before this field was added. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75343,13 +75025,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgIPRestrictionUpdated object` + - `OrgDomainAddInitiated object` - Organization IP restriction was updated. + Organization domain verification was initiated. - - `type: optional "org_ip_restriction_updated"` + - `type: optional "org_domain_add_initiated"` - default: org_ip_restriction_updated + default: org_domain_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75567,18 +75249,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ip_allowlist_enabled: optional boolean or null` - - Whether the organization's IP allowlist is turned on (true) or off (false) after this change; absent when the change did not turn the IP allowlist on or off, and for activities recorded before this field was added. - - - `ip_range: optional string or null` - - The IP range this change applied to, as it is after the change, e.g. "192.0.2.0/24"; absent when the change was not to an individual IP range, and for activities recorded before this field was added. - - - `ip_range_active: optional boolean or null` - - Whether the IP range is active on the allowlist (true) or saved but inactive (false) after this change; absent when the change did not turn the range on or off. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75587,17 +75257,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_ip_range: optional string or null` - - The IP range before this change; absent unless the range itself was changed. - - - `OrgInviteLinkDisabled object` + - `OrgDomainRemoved object` - Organization invite link was disabled. + Organization domain was removed. - - `type: optional "org_invite_link_disabled"` + - `type: optional "org_domain_removed"` - default: org_invite_link_disabled + default: org_domain_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -75815,6 +75481,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `domain: optional string or null` + + The email domain that was removed from the organization, e.g. "example.com". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -75823,13 +75493,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteLinkGenerated object` + - `OrgDomainVerified object` - Organization invite link was generated. + Organization domain was verified. - - `type: optional "org_invite_link_generated"` + - `type: optional "org_domain_verified"` - default: org_invite_link_generated + default: org_domain_verified - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76047,6 +75717,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `domain: optional string or null` + + The email domain that was verified for the organization, e.g. "example.com". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -76055,13 +75729,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteLinkRegenerated object` + - `OrgExternalKeyCreated object` - Organization invite link was regenerated (previous link invalidated). + A CMEK external key config was created. - - `type: optional "org_invite_link_regenerated"` + - `type: optional "org_external_key_created"` - default: org_invite_link_regenerated + default: org_external_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76269,6 +75943,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `external_key_id: string` + + Tagged ID of the created external key config + + - `provider: "aws" or "azure" or "gcp" or "unspecified"` + + KMS provider backing the key + + - `"aws"` + + - `"azure"` + + - `"gcp"` + + - `"unspecified"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -76287,13 +75977,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInviteViewed object` + - `OrgExternalKeyDeleted object` - An organization invite was viewed. + A CMEK external key config was deleted. - - `type: optional "org_invite_viewed"` + - `type: optional "org_external_key_deleted"` - default: org_invite_viewed + default: org_external_key_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76501,9 +76191,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invite_id: string` + - `external_key_id: string` - Tagged ID of the viewed invite + Tagged ID of the deleted external key config - `id: optional string` @@ -76523,13 +76213,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgInvitesListed object` + - `OrgExternalKeyUpdated object` - Organization invites were listed. + A CMEK external key config was updated. - - `type: optional "org_invites_listed"` + - `type: optional "org_external_key_updated"` - default: org_invites_listed + default: org_external_key_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76737,6 +76427,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `external_key_id: string` + + Tagged ID of the updated external key config + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -76755,13 +76449,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinProposalDecided object` + - `updates: optional array of object` - Approve or reject decision on a parent-org join proposal. + The field-level changes applied in this update - - `type: optional "org_join_proposal_decided"` + - `type: "display_name" or "geo" or "provider_config" or "unspecified"` - default: org_join_proposal_decided + The external key config field that changed + + - `"display_name"` + + - `"geo"` + + - `"provider_config"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `OrgExternalKeyValidated object` + + A CMEK external key config was validated against the customer's KMS. + + - `type: optional "org_external_key_validated"` + + default: org_external_key_validated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -76969,7 +76687,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `approved: boolean` + - `external_key_id: string` + + Tagged ID of the validated external key config + + - `validation_result: "failure" or "success" or "unspecified"` + + Outcome of the encrypt/decrypt roundtrip + + - `"failure"` + + - `"success"` + + - `"unspecified"` - `id: optional string` @@ -76989,13 +76719,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestApproved object` + - `OrgHipaaArtifactsTermsAccepted object` - Admin approved a join request. + An owner of the organization accepted the terms for using artifacts with the HIPAA configuration enabled. - - `type: optional "org_join_request_approved"` + - `type: optional "org_hipaa_artifacts_terms_accepted"` - default: org_join_request_approved + default: org_hipaa_artifacts_terms_accepted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77203,6 +76933,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `terms_content_hash: string` + + SHA-256 digest (hex) of the terms that were accepted. + + - `terms_version_label: string` + + Version label of the terms that were accepted, e.g. "2026-10-02". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77221,13 +76959,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestCreated object` + - `OrgHipaaClaudeCodeCoworkRestrictionsDeferred object` - User requested to join an organization. + The HIPAA configuration for Claude Code (local mode) and Cowork (local mode) was left off for the organization when the configuration launched, and stays off until it is applied. - - `type: optional "org_join_request_created"` + - `type: optional "org_hipaa_claude_code_cowork_restrictions_deferred"` - default: org_join_request_created + default: org_hipaa_claude_code_cowork_restrictions_deferred - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77453,13 +77191,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestDismissed object` + - `OrgHipaaClaudeCodeCoworkRestrictionsEnabled object` - Admin dismissed a join request. + The HIPAA configuration was applied to Claude Code (local mode) and Cowork (local mode) for the organization. - - `type: optional "org_join_request_dismissed"` + - `type: optional "org_hipaa_claude_code_cowork_restrictions_enabled"` - default: org_join_request_dismissed + default: org_hipaa_claude_code_cowork_restrictions_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77667,6 +77405,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `reason: "admin_opt_in" or "enabled_by_anthropic" or "unspecified"` + + Why the HIPAA configuration was applied: "admin_opt_in" when an administrator of the organization applied it, "enabled_by_anthropic" when Anthropic applied it for the organization. + + - `"admin_opt_in"` + + - `"enabled_by_anthropic"` + + - `"unspecified"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77685,13 +77433,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestInstantApproved object` + - `OrgHipaaSelfServeEnabled object` - Join request was instantly approved. + A primary owner accepted the Business Associate Agreement and enabled the HIPAA configuration for the organization through the self-serve flow. - - `type: optional "org_join_request_instant_approved"` + - `type: optional "org_hipaa_self_serve_enabled"` - default: org_join_request_instant_approved + default: org_hipaa_self_serve_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -77899,6 +77647,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `baa_content_hash: string` + + SHA-256 digest (hex) of the Business Associate Agreement that was accepted. + + - `baa_version_label: string` + + Version label of the Business Associate Agreement that was accepted, e.g. "2026-05-06". + + - `setup_guide_content_hash: string` + + SHA-256 digest (hex) of the HIPAA setup guide that was current when the HIPAA configuration was enabled. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -77917,13 +77677,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgJoinRequestsBulkDismissed object` + - `OrgIPRestrictionCreated object` - Admin bulk-dismissed join requests. + Organization IP restriction was created. - - `type: optional "org_join_requests_bulk_dismissed"` + - `type: optional "org_ip_restriction_created"` - default: org_join_requests_bulk_dismissed + default: org_ip_restriction_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78141,6 +77901,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `ip_range: optional string or null` + + The IP range added to the allowlist, e.g. "192.0.2.0/24", which is not enforced while it is inactive or the IP allowlist is turned off; absent for activities recorded before this field was added. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -78149,13 +77913,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgLibrarySubmissionCreated object` + - `OrgIPRestrictionDeleted object` - A member submitted one of their own skills or plugins for publication into the organization library. + Organization IP restriction was deleted. - - `type: optional "org_library_submission_created"` + - `type: optional "org_ip_restriction_deleted"` - default: org_library_submission_created + default: org_ip_restriction_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78363,40 +78127,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `library_submission_id: string` - - The submission. - - - `publish_policy: "off" or "open" or "review" or "unspecified"` - - The organization's Publishing setting when the submission was made: "review" (Requires review) or "open" (Open). Any decision, and whether a reviewer made it, is recorded as org_library_submission_resolved with the same library_submission_id. - - - `"off"` - - - `"open"` - - - `"review"` - - - `"unspecified"` - - - `source_kind: "plugin" or "skill" or "unspecified"` - - Whether the item was submitted as a skill or as a plugin. - - - `"plugin"` - - - `"skill"` - - - `"unspecified"` - - - `source_plugin_id: string` - - The member's own skill or plugin that was submitted. - - - `source_plugin_version_id: string` - - The exact version that was submitted. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -78407,6 +78137,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `ip_range: optional string or null` + + The IP range removed from the allowlist, e.g. "192.0.2.0/24"; absent for activities recorded before this field was added. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -78415,17 +78149,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates_published_plugin_id: optional string or null` - - The existing library entry this submission proposes to update; unset for a new entry. - - - `OrgLibrarySubmissionResolved object` + - `OrgIPRestrictionUpdated object` - A member's submission of a skill or plugin to the organization library was accepted or denied, or an accepted one finished publishing. + Organization IP restriction was updated. - - `type: optional "org_library_submission_resolved"` + - `type: optional "org_ip_restriction_updated"` - default: org_library_submission_resolved + default: org_ip_restriction_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78633,69 +78363,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `content_hash: string` - - SHA-256 digest (hex) of the submitted version's archive, as submitted. Set only on a record whose publish_completed is true, and may be empty even there. A digest of the content, never the content itself. - - - `decision: "accepted" or "denied" or "unspecified"` - - Whether the submission was accepted into the library or denied. - - - `"accepted"` - - - `"denied"` - - - `"unspecified"` - - - `destination_marketplace_id: string` - - The marketplace the submission was accepted into. Empty on a denial. - - - `publish_completed: boolean` - - Whether publication had completed when this record was written. If it completed with the acceptance, there is one accepted record and this is true. Otherwise this is false, and if publication completes later, a second accepted record with the same library_submission_id follows with this set to true. - - - `published_plugin_version_id: string` - - The published version. Empty when publish_completed is false. - - - `source_plugin_id: string` - - The member's own skill or plugin that was submitted. - - - `source_plugin_version_id: string` - - The exact version that was decided on. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `attestations: optional array of object` - - Legal attestations given with the decision, such as "safe_for_phi"; empty when none were given, and on a second accepted record. - - - `type: string` - - Attestation type, such as "safe_for_phi" (may be used with protected health information). - - - `content_hash: string` - - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - - `created_at: optional string` When this activity occurred. format: date-time - - `installation_preference: optional string or null` + - `ip_allowlist_enabled: optional boolean or null` - The installation preference the submission was accepted with: "available", "auto_install" or "required". Unset on a denial, and when an update to an existing library entry was accepted without one. + Whether the organization's IP allowlist is turned on (true) or off (false) after this change; absent when the change did not turn the IP allowlist on or off, and for activities recorded before this field was added. - - `library_submission_id: optional string or null` + - `ip_range: optional string or null` - The submission that was decided on. + The IP range this change applied to, as it is after the change, e.g. "192.0.2.0/24"; absent when the change was not to an individual IP range, and for activities recorded before this field was added. + + - `ip_range_active: optional boolean or null` + + Whether the IP range is active on the allowlist (true) or saved but inactive (false) after this change; absent when the change did not turn the range on or off. - `organization_id: optional string or null` @@ -78705,33 +78393,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `publish_policy: optional "off" or "open" or "review" or "unspecified" or null` - - How this submission was resolved, whatever the organization's setting: "review" when a library reviewer accepted or denied it, "open" when it was accepted on submission with no reviewer. - - - `"off"` - - - `"open"` - - - `"review"` - - - `"unspecified"` - - - `reviewed_by_user_id: optional string or null` - - The library reviewer who made the decision; unset when the submission was accepted without review (publish_policy "open"), or if the reviewer's account had been deleted when this record was written. - - - `submitted_by_user_id: optional string or null` + - `previous_ip_range: optional string or null` - The member who made the submission. + The IP range before this change; absent unless the range itself was changed. - - `OrgLibrarySubmissionWithdrawn object` + - `OrgInviteLinkDisabled object` - A pending submission to the organization library was withdrawn before any reviewer decided on it. + Organization invite link was disabled. - - `type: optional "org_library_submission_withdrawn"` + - `type: optional "org_invite_link_disabled"` - default: org_library_submission_withdrawn + default: org_invite_link_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -78939,36 +78611,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `library_submission_id: string` - - The submission. - - - `reason: "requester" or "unspecified"` - - Why the submission was withdrawn. - - - `"requester"` - - - `"unspecified"` - - - `source_kind: "plugin" or "skill" or "unspecified"` - - Whether the withdrawn item had been submitted as a skill or as a plugin. - - - `"plugin"` - - - `"skill"` - - - `"unspecified"` - - - `source_plugin_id: string` - - The member's own skill or plugin that had been submitted. - - - `source_plugin_version_id: string` - - The version that had been submitted. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -78987,13 +78629,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMagicLinkSecondFactorToggled object` + - `OrgInviteLinkGenerated object` - Organization magic link second factor was toggled. + Organization invite link was generated. - - `type: optional "org_magic_link_second_factor_toggled"` + - `type: optional "org_invite_link_generated"` - default: org_magic_link_second_factor_toggled + default: org_invite_link_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79201,10 +78843,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether members signing in with SSO must also complete a magic link as a second factor, after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79223,13 +78861,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberAvatarRemoved object` + - `OrgInviteLinkRegenerated object` - An administrator removed another member's profile picture. + Organization invite link was regenerated (previous link invalidated). - - `type: optional "org_member_avatar_removed"` + - `type: optional "org_invite_link_regenerated"` - default: org_member_avatar_removed + default: org_invite_link_regenerated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79437,10 +79075,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - Tagged ID of the member whose profile picture was removed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79459,13 +79093,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberInvitesDisabled object` + - `OrgInviteViewed object` - Admin disabled member invites for the organization. + An organization invite was viewed. - - `type: optional "org_member_invites_disabled"` + - `type: optional "org_invite_viewed"` - default: org_member_invites_disabled + default: org_invite_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79673,6 +79307,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `invite_id: string` + + Tagged ID of the viewed invite + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -79691,13 +79329,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMemberInvitesEnabled object` + - `OrgInvitesListed object` - Admin enabled member invites for the organization. + Organization invites were listed. - - `type: optional "org_member_invites_enabled"` + - `type: optional "org_invites_listed"` - default: org_member_invites_enabled + default: org_invites_listed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -79923,13 +79561,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgMembersExported object` + - `OrgJoinProposalDecided object` - Organization members list was exported as CSV. + Approve or reject decision on a parent-org join proposal. - - `type: optional "org_members_exported"` + - `type: optional "org_join_proposal_decided"` - default: org_members_exported + default: org_join_proposal_decided - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80137,6 +79775,8 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `approved: boolean` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -80155,23 +79795,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgModelDefaultUpdated object` - - An organization or role default model setting was changed by an administrator. - - - `type: optional "org_model_default_updated"` - - default: org_model_default_updated - - - `action: "cleared" or "set" or "unspecified"` - - Whether the default model was set or cleared + - `OrgJoinRequestApproved object` - - `"cleared"` + Admin approved a join request. - - `"set"` + - `type: optional "org_join_request_approved"` - - `"unspecified"` + default: org_join_request_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80379,24 +80009,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `override_user_selection: boolean` - - Whether the default is enforced as a fixed default, resetting members' own model selections at the start of each new conversation - - - `principal_id: string` - - Tagged ID of the organization or role the default applies to - - - `principal_type: "org" or "rbac_role" or "unspecified"` - - Whether the default applies to the whole organization or to a single role - - - `"org"` - - - `"rbac_role"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -80407,26 +80019,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `default_model: optional string or null` - - The model set as the default, when the action is set - - - `model_access: optional array of object` - - The per-model access overrides set for this principal; absent when no overrides are configured - - - `api_name: string` - - The model the decision applies to - - - `enabled: boolean` - - Whether members with this principal may select the model - - - `max_effort_level: optional string or null` - - The highest effort level members may select for this model, when capped - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -80435,13 +80027,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgParentJoinProposalCreated object` + - `OrgJoinRequestCreated object` - Organization parent join proposal was created. + User requested to join an organization. - - `type: optional "org_parent_join_proposal_created"` + - `type: optional "org_join_request_created"` - default: org_parent_join_proposal_created + default: org_join_request_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80667,13 +80259,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgParentSearchPerformed object` + - `OrgJoinRequestDismissed object` - Organization parent search was performed. + Admin dismissed a join request. - - `type: optional "org_parent_search_performed"` + - `type: optional "org_join_request_dismissed"` - default: org_parent_search_performed + default: org_join_request_dismissed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -80899,13 +80491,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOAddInitiated object` + - `OrgJoinRequestInstantApproved object` - Organization SSO setup was initiated. + Join request was instantly approved. - - `type: optional "org_sso_add_initiated"` + - `type: optional "org_join_request_instant_approved"` - default: org_sso_add_initiated + default: org_join_request_instant_approved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81131,13 +80723,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionActivated object` + - `OrgJoinRequestsBulkDismissed object` - Organization SSO connection was activated. + Admin bulk-dismissed join requests. - - `type: optional "org_sso_connection_activated"` + - `type: optional "org_join_requests_bulk_dismissed"` - default: org_sso_connection_activated + default: org_join_requests_bulk_dismissed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81349,14 +80941,6 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `connection_id: optional string or null` - - Identifier of the SSO connection that was activated. - - - `connection_type: optional string or null` - - The type of SSO connection that was activated, e.g. "OktaSAML" or "GenericOIDC". - - `created_at: optional string` When this activity occurred. @@ -81371,13 +80955,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionDeactivated object` + - `OrgLibrarySubmissionCreated object` - Organization SSO connection was deactivated. + A member submitted one of their own skills or plugins for publication into the organization library. - - `type: optional "org_sso_connection_deactivated"` + - `type: optional "org_library_submission_created"` - default: org_sso_connection_deactivated + default: org_library_submission_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81585,13 +81169,43 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `library_submission_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The submission. - - `connection_id: optional string or null` + - `publish_policy: "off" or "open" or "review" or "unspecified"` - Identifier of the SSO connection that was deactivated. + The organization's Publishing setting when the submission was made: "review" (Requires review) or "open" (Open). Any decision, and whether a reviewer made it, is recorded as org_library_submission_resolved with the same library_submission_id. + + - `"off"` + + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `source_kind: "plugin" or "skill" or "unspecified"` + + Whether the item was submitted as a skill or as a plugin. + + - `"plugin"` + + - `"skill"` + + - `"unspecified"` + + - `source_plugin_id: string` + + The member's own skill or plugin that was submitted. + + - `source_plugin_version_id: string` + + The exact version that was submitted. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -81607,13 +81221,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOConnectionDeleted object` + - `updates_published_plugin_id: optional string or null` - Organization SSO connection was deleted. + The existing library entry this submission proposes to update; unset for a new entry. - - `type: optional "org_sso_connection_deleted"` + - `OrgLibrarySubmissionResolved object` - default: org_sso_connection_deleted + A member's submission of a skill or plugin to the organization library was accepted or denied, or an accepted one finished publishing. + + - `type: optional "org_library_submission_resolved"` + + default: org_library_submission_resolved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -81821,13 +81439,55 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `content_hash: string` + + SHA-256 digest (hex) of the submitted version's archive, as submitted. Set only on a record whose publish_completed is true, and may be empty even there. A digest of the content, never the content itself. + + - `decision: "accepted" or "denied" or "unspecified"` + + Whether the submission was accepted into the library or denied. + + - `"accepted"` + + - `"denied"` + + - `"unspecified"` + + - `destination_marketplace_id: string` + + The marketplace the submission was accepted into. Empty on a denial. + + - `publish_completed: boolean` + + Whether publication had completed when this record was written. If it completed with the acceptance, there is one accepted record and this is true. Otherwise this is false, and if publication completes later, a second accepted record with the same library_submission_id follows with this set to true. + + - `published_plugin_version_id: string` + + The published version. Empty when publish_completed is false. + + - `source_plugin_id: string` + + The member's own skill or plugin that was submitted. + + - `source_plugin_version_id: string` + + The exact version that was decided on. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `connection_id: optional string or null` + - `attestations: optional array of object` - Identifier of the SSO connection that was deleted. + Legal attestations given with the decision, such as "safe_for_phi"; empty when none were given, and on a second accepted record. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). - `created_at: optional string` @@ -81835,6 +81495,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `installation_preference: optional string or null` + + The installation preference the submission was accepted with: "available", "auto_install" or "required". Unset on a denial, and when an update to an existing library entry was accepted without one. + + - `library_submission_id: optional string or null` + + The submission that was decided on. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -81843,13 +81511,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOGroupRoleMappingsUpdated object` + - `publish_policy: optional "off" or "open" or "review" or "unspecified" or null` - Organization SSO group role mappings were updated. + How this submission was resolved, whatever the organization's setting: "review" when a library reviewer accepted or denied it, "open" when it was accepted on submission with no reviewer. - - `type: optional "org_sso_group_role_mappings_updated"` + - `"off"` - default: org_sso_group_role_mappings_updated + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `reviewed_by_user_id: optional string or null` + + The library reviewer who made the decision; unset when the submission was accepted without review (publish_policy "open"), or if the reviewer's account had been deleted when this record was written. + + - `submitted_by_user_id: optional string or null` + + The member who made the submission. + + - `OrgLibrarySubmissionWithdrawn object` + + A pending submission to the organization library was withdrawn before any reviewer decided on it. + + - `type: optional "org_library_submission_withdrawn"` + + default: org_library_submission_withdrawn - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82057,6 +81745,36 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `library_submission_id: string` + + The submission. + + - `reason: "requester" or "unspecified"` + + Why the submission was withdrawn. + + - `"requester"` + + - `"unspecified"` + + - `source_kind: "plugin" or "skill" or "unspecified"` + + Whether the withdrawn item had been submitted as a skill or as a plugin. + + - `"plugin"` + + - `"skill"` + + - `"unspecified"` + + - `source_plugin_id: string` + + The member's own skill or plugin that had been submitted. + + - `source_plugin_version_id: string` + + The version that had been submitted. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82075,13 +81793,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSSOProvisioningModeChanged object` + - `OrgMagicLinkSecondFactorToggled object` - Organization SSO provisioning mode was changed. + Organization magic link second factor was toggled. - - `type: optional "org_sso_provisioning_mode_changed"` + - `type: optional "org_magic_link_second_factor_toggled"` - default: org_sso_provisioning_mode_changed + default: org_magic_link_second_factor_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82289,6 +82007,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enabled: boolean` + + Whether members signing in with SSO must also complete a magic link as a second factor, after this change. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82299,10 +82021,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `new_mode: optional string or null` - - The SSO provisioning mode after this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -82311,17 +82029,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_mode: optional string or null` - - The SSO provisioning mode before this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - - `OrgSSOScimWelcomeEmailToggled object` + - `OrgMemberAvatarRemoved object` - Organization SCIM-provisioned welcome email was toggled. + An administrator removed another member's profile picture. - - `type: optional "org_sso_scim_welcome_email_toggled"` + - `type: optional "org_member_avatar_removed"` - default: org_sso_scim_welcome_email_toggled + default: org_member_avatar_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82529,9 +82243,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` + - `user_id: string` - Whether the SCIM welcome email is enabled after this change. + Tagged ID of the member whose profile picture was removed. - `id: optional string` @@ -82551,17 +82265,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` - - Whether the SCIM welcome email was enabled before this change. - - - `OrgSSOSeatTierAssignmentToggled object` + - `OrgMemberInvitesDisabled object` - Organization SSO seat tier assignment was toggled. + Admin disabled member invites for the organization. - - `type: optional "org_sso_seat_tier_assignment_toggled"` + - `type: optional "org_member_invites_disabled"` - default: org_sso_seat_tier_assignment_toggled + default: org_member_invites_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -82769,10 +82479,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether SSO seat tier assignment is enabled after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -82791,17 +82497,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_enabled: optional boolean or null` - - Whether SSO seat tier assignment was enabled before this change. - - - `OrgSSOSeatTierMappingsUpdated object` + - `OrgMemberInvitesEnabled object` - Organization SSO seat tier mappings were updated. + Admin enabled member invites for the organization. - - `type: optional "org_sso_seat_tier_mappings_updated"` + - `type: optional "org_member_invites_enabled"` - default: org_sso_seat_tier_mappings_updated + default: org_member_invites_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83019,18 +82721,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_mappings: optional array of object or null` - - Identity provider group to seat tier mappings after this change. - - - `idp_group_name: string` - - Name of the identity provider group. - - - `seat_tier: optional string or null` - - Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -83039,25 +82729,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_mappings: optional array of object or null` - - Identity provider group to seat tier mappings before this change. - - - `idp_group_name: string` - - Name of the identity provider group. - - - `seat_tier: optional string or null` - - Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - - - `OrgSSOToggled object` + - `OrgMembersExported object` - Organization SSO was toggled on or off. + Organization members list was exported as CSV. - - `type: optional "org_sso_toggled"` + - `type: optional "org_members_exported"` - default: org_sso_toggled + default: org_members_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83265,10 +82943,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` - - Whether SSO login is enforced after this change. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -83287,13 +82961,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgSyncDeletingSynchronizedFilesStarted object` + - `OrgModelDefaultUpdated object` - Organization started deleting synchronized files. + An organization or role default model setting was changed by an administrator. - - `type: optional "org_sync_deleting_synchronized_files_started"` + - `type: optional "org_model_default_updated"` - default: org_sync_deleting_synchronized_files_started + default: org_model_default_updated + + - `action: "cleared" or "set" or "unspecified"` + + Whether the default model was set or cleared + + - `"cleared"` + + - `"set"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83501,247 +83185,53 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrgSyncSynchronizedFilesDeleted object` - - Organization synchronized files were deleted. - - - `type: optional "org_sync_synchronized_files_deleted"` - - default: org_sync_synchronized_files_deleted - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` + - `override_user_selection: boolean` - - `FederatedActorOidcProvider object` + Whether the default is enforced as a fixed default, resetting members' own model selections at the start of each new conversation - Asserting party: a customer-registered OIDC federation issuer. + - `principal_id: string` - - `type: optional "oidc"` + Tagged ID of the organization or role the default applies to - default: oidc + - `principal_type: "org" or "rbac_role" or "unspecified"` - - `issuer: optional string or null` + Whether the default applies to the whole organization or to a single role - The federation issuer's URL. Null when the presented credential failed verification. + - `"org"` - - `ip_address: optional string or null` + - `"rbac_role"` - - `subject: optional string or null` + - `"unspecified"` - The provider's verified identifier for the caller; its form depends on the provider. + - `id: optional string` - - `user_agent: optional string or null` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `AttestedDeviceActor object` + - `created_at: optional string` - An attested mobile device authenticated via Apple App Attest. + When this activity occurred. - - `type: optional "attested_device_actor"` + format: date-time - default: attested_device_actor + - `default_model: optional string or null` - - `external_client_id: string` + The model set as the default, when the action is set - - `kid_hash: string` + - `model_access: optional array of object` - - `ip_address: optional string or null` + The per-model access overrides set for this principal; absent when no overrides are configured - - `user_agent: optional string or null` + - `api_name: string` - - `id: optional string` + The model the decision applies to - Unique identifier for the activity e.g. 'activity_abcd1234' + - `enabled: boolean` - - `created_at: optional string` + Whether members with this principal may select the model - When this activity occurred. + - `max_effort_level: optional string or null` - format: date-time + The highest effort level members may select for this model, when capped - `organization_id: optional string or null` @@ -83751,13 +83241,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgTaintAdded object` + - `OrgParentJoinProposalCreated object` - A compliance marker (taint) was added to an organization, for example the marker that records its HIPAA configuration. + Organization parent join proposal was created. - - `type: optional "org_taint_added"` + - `type: optional "org_parent_join_proposal_created"` - default: org_taint_added + default: org_parent_join_proposal_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -83983,21 +83473,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `taint: optional string or null` - - The marker that was added, for example the HIPAA marker. - - - `workspace_id: optional string or null` - - Tagged ID of the workspace the marker was applied to. Unset when applied at organization scope. - - - `OrgTaintRemoved object` + - `OrgParentSearchPerformed object` - A compliance marker (taint) was removed from an organization. + Organization parent search was performed. - - `type: optional "org_taint_removed"` + - `type: optional "org_parent_search_performed"` - default: org_taint_removed + default: org_parent_search_performed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84223,17 +83705,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `taint: optional string or null` - - The marker that was removed, for example the HIPAA marker. - - - `OrgUserDeleted object` + - `OrgSSOAddInitiated object` - User was removed from organization. + Organization SSO setup was initiated. - - `type: optional "org_user_deleted"` + - `type: optional "org_sso_add_initiated"` - default: org_user_deleted + default: org_sso_add_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84451,14 +83929,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `deleted_user_email: optional string or null` - - Email address of the member who was removed, when known. - - - `deleted_user_id: optional string or null` - - Tagged ID of the member who was removed from the organization, e.g. "user_01HX...". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84467,13 +83937,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteAccepted object` + - `OrgSSOConnectionActivated object` - Organization user invite was accepted. + Organization SSO connection was activated. - - `type: optional "org_user_invite_accepted"` + - `type: optional "org_sso_connection_activated"` - default: org_user_invite_accepted + default: org_sso_connection_activated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84685,16 +84155,20 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was activated. + + - `connection_type: optional string or null` + + The type of SSO connection that was activated, e.g. "OktaSAML" or "GenericOIDC". + - `created_at: optional string` When this activity occurred. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was accepted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84703,17 +84177,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `rbac_group_ids: optional array of string or null` - - RBAC group IDs the user was added to on acceptance, as confirmed by the group service (absent on rows written before this was recorded, and when the invite carried no groups) - - - `OrgUserInviteDeleted object` + - `OrgSSOConnectionDeactivated object` - Organization user invite was deleted. + Organization SSO connection was deactivated. - - `type: optional "org_user_invite_deleted"` + - `type: optional "org_sso_connection_deactivated"` - default: org_user_invite_deleted + default: org_sso_connection_deactivated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -84925,16 +84395,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was deactivated. + - `created_at: optional string` When this activity occurred. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was deleted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -84943,13 +84413,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteReSent object` + - `OrgSSOConnectionDeleted object` - Organization user invite was re-sent. + Organization SSO connection was deleted. - - `type: optional "org_user_invite_re_sent"` + - `type: optional "org_sso_connection_deleted"` - default: org_user_invite_re_sent + default: org_sso_connection_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85161,24 +84631,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `connection_id: optional string or null` + + Identifier of the SSO connection that was deleted. + - `created_at: optional string` When this activity occurred. format: date-time - - `invited_email: optional string or null` - - Email address the invite was re-sent to. - - - `invited_role: optional string or null` - - Role the invited user will receive on joining - - - `invited_seat_tier: optional string or null` - - Seat tier the invited user will receive on joining - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -85187,13 +84649,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteRejected object` + - `OrgSSOGroupRoleMappingsUpdated object` - Organization user invite was rejected. + Organization SSO group role mappings were updated. - - `type: optional "org_user_invite_rejected"` + - `type: optional "org_sso_group_role_mappings_updated"` - default: org_user_invite_rejected + default: org_sso_group_role_mappings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85411,10 +84873,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `invite_id: optional string or null` - - Tagged ID of the invite that was rejected. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -85423,13 +84881,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserInviteSent object` + - `OrgSSOProvisioningModeChanged object` - Organization user invite was sent. + Organization SSO provisioning mode was changed. - - `type: optional "org_user_invite_sent"` + - `type: optional "org_sso_provisioning_mode_changed"` - default: org_user_invite_sent + default: org_sso_provisioning_mode_changed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85647,21 +85105,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `invited_email: optional string or null` - - Email address the invite was sent to. - - - `invited_rbac_group_ids: optional array of string or null` - - RBAC group IDs the invited user will be added to on joining - - - `invited_role: optional string or null` - - Role the invited user will receive on joining. - - - `invited_seat_tier: optional string or null` + - `new_mode: optional string or null` - Seat tier the invited user will receive on joining + The SSO provisioning mode after this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - `organization_id: optional string or null` @@ -85671,13 +85117,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserLeft object` + - `previous_mode: optional string or null` - User removed themselves from organization. + The SSO provisioning mode before this change, e.g. "LOGIN_ONLY", "JIT_PERMISSIVE", "JIT_ADVANCED", "SCIM_PERMISSIVE", or "SCIM_ADVANCED". - - `type: optional "org_user_left"` + - `OrgSSOScimWelcomeEmailToggled object` - default: org_user_left + Organization SCIM-provisioned welcome email was toggled. + + - `type: optional "org_sso_scim_welcome_email_toggled"` + + default: org_sso_scim_welcome_email_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -85885,6 +85335,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `enabled: boolean` + + Whether the SCIM welcome email is enabled after this change. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -85903,17 +85357,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` + - `previous_enabled: optional boolean or null` - The role the member held in the organization before leaving, e.g. "user" or "admin". + Whether the SCIM welcome email was enabled before this change. - - `OrgUserSharesRetained object` + - `OrgSSOSeatTierAssignmentToggled object` - A member left or was removed from the organization while projects, skills, plugins, or chats they had shared were still shared, and those shares were kept. + Organization SSO seat tier assignment was toggled. - - `type: optional "org_user_shares_retained"` + - `type: optional "org_sso_seat_tier_assignment_toggled"` - default: org_user_shares_retained + default: org_sso_seat_tier_assignment_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86121,34 +85575,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_count: number` - - Number of distinct resources the member had shared that are still shared, counted up to a fixed limit, so a lower bound when `truncated` is true; it can exceed the number of IDs listed below. - - - `share_count: number` - - Number of shares kept across those resources (one per audience a resource is shared with), counted up to the same limit, so a lower bound when `truncated` is true. - - - `truncated: boolean` - - True when the ID lists do not include every still-shared resource or the counts stopped at their limit. - - - `user_id: string` + - `enabled: boolean` - Tagged ID of the member who left or was removed. + Whether SSO seat tier assignment is enabled after this change. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_ids: optional array of string` - - Tagged IDs of chats among those resources. - - - `claude_project_ids: optional array of string` - - Tagged IDs of projects among those resources; the four ID lists hold at most the first 50 resources between them. - - `created_at: optional string` When this activity occurred. @@ -86163,21 +85597,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_ids: optional array of string` - - Tagged IDs of plugins among those resources. - - - `skill_ids: optional array of string` + - `previous_enabled: optional boolean or null` - Tagged IDs of skills among those resources. + Whether SSO seat tier assignment was enabled before this change. - - `OrgUserTrustedDevicesRevoked object` + - `OrgSSOSeatTierMappingsUpdated object` - An organization admin revoked a member's trusted devices and signed the member out of all active sessions. + Organization SSO seat tier mappings were updated. - - `type: optional "org_user_trusted_devices_revoked"` + - `type: optional "org_sso_seat_tier_mappings_updated"` - default: org_user_trusted_devices_revoked + default: org_sso_seat_tier_mappings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86385,31 +85815,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `completed: boolean` - - Whether the operation completed fully. False records an attempt that revoked the counted credentials but failed before finishing. - - - `devices_revoked_count: number` + - `id: optional string` - Number of trusted devices revoked + Unique identifier for the activity e.g. 'activity_abcd1234' - - `sessions_revoked_count: number` + - `created_at: optional string` - Number of active sessions the member was signed out of + When this activity occurred. - - `user_id: string` + format: date-time - Tagged ID of the member whose trusted devices were revoked + - `current_mappings: optional array of object or null` - - `id: optional string` + Identity provider group to seat tier mappings after this change. - Unique identifier for the activity e.g. 'activity_abcd1234' + - `idp_group_name: string` - - `created_at: optional string` + Name of the identity provider group. - When this activity occurred. + - `seat_tier: optional string or null` - format: date-time + Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. - `organization_id: optional string or null` @@ -86419,13 +85845,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUserViewed object` + - `previous_mappings: optional array of object or null` - An organization user was viewed. + Identity provider group to seat tier mappings before this change. - - `type: optional "org_user_viewed"` + - `idp_group_name: string` - default: org_user_viewed + Name of the identity provider group. + + - `seat_tier: optional string or null` + + Seat tier assigned to members of the identity provider group, or null if the mapping assigns no seat. + + - `OrgSSOToggled object` + + Organization SSO was toggled on or off. + + - `type: optional "org_sso_toggled"` + + default: org_sso_toggled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86633,9 +86071,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` + - `enabled: boolean` - Tagged ID of the viewed user + Whether SSO login is enforced after this change. - `id: optional string` @@ -86655,13 +86093,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgUsersListed object` + - `OrgSyncDeletingSynchronizedFilesStarted object` - Organization users were listed. + Organization started deleting synchronized files. - - `type: optional "org_users_listed"` + - `type: optional "org_sync_deleting_synchronized_files_started"` - default: org_users_listed + default: org_sync_deleting_synchronized_files_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -86887,13 +86325,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OrgWorkAcrossAppsDisabled object` + - `OrgSyncSynchronizedFilesDeleted object` - The organization's "Let Claude work across apps" setting was turned off. + Organization synchronized files were deleted. - - `type: optional "org_work_across_apps_disabled"` + - `type: optional "org_sync_synchronized_files_deleted"` - default: org_work_across_apps_disabled + default: org_sync_synchronized_files_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87111,10 +86549,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -87123,17 +86557,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `OrgWorkAcrossAppsEnabled object` + - `OrgTaintAdded object` - The organization's "Let Claude work across apps" setting was turned on. + A compliance marker (taint) was added to an organization, for example the marker that records its HIPAA configuration. - - `type: optional "org_work_across_apps_enabled"` + - `type: optional "org_taint_added"` - default: org_work_across_apps_enabled + default: org_taint_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87351,10 +86781,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `current_value: optional boolean or null` - - Setting value immediately after this change - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -87363,17 +86789,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `taint: optional string or null` - Setting value immediately before this change + The marker that was added, for example the HIPAA marker. - - `OrganizationAddressUpdated object` + - `workspace_id: optional string or null` - The organization's billing or shipping address was updated. + Tagged ID of the workspace the marker was applied to. Unset when applied at organization scope. - - `type: optional "organization_address_updated"` + - `OrgTaintRemoved object` - default: organization_address_updated + A compliance marker (taint) was removed from an organization. + + - `type: optional "org_taint_removed"` + + default: org_taint_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87585,14 +87015,6 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `billing_address_updated: optional boolean or null` - - Whether the billing address was updated. - - - `billing_name_updated: optional boolean or null` - - Whether the billing name was updated. - - `created_at: optional string` When this activity occurred. @@ -87607,21 +87029,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `shipping_address_updated: optional boolean or null` - - Whether the shipping address was updated. - - - `shipping_name_updated: optional boolean or null` + - `taint: optional string or null` - Whether the shipping name was updated. + The marker that was removed, for example the HIPAA marker. - - `OrganizationIconDeleted object` + - `OrgUserDeleted object` - Organization's custom icon deleted. + User was removed from organization. - - `type: optional "organization_icon_deleted"` + - `type: optional "org_user_deleted"` - default: organization_icon_deleted + default: org_user_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -87839,237 +87257,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `OrganizationIconUpdated object` - - Organization's custom icon uploaded or replaced. - - - `type: optional "organization_icon_updated"` - - default: organization_icon_updated - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' + - `deleted_user_email: optional string or null` - - `created_at: optional string` + Email address of the member who was removed, when known. - When this activity occurred. + - `deleted_user_id: optional string or null` - format: date-time + Tagged ID of the member who was removed from the organization, e.g. "user_01HX...". - `organization_id: optional string or null` @@ -88079,13 +87273,3625 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeOrganizationSettingsUpdated object` + - `OrgUserInviteAccepted object` - Organization settings were updated. + Organization user invite was accepted. - - `type: optional "claude_organization_settings_updated"` + - `type: optional "org_user_invite_accepted"` - default: claude_organization_settings_updated + default: org_user_invite_accepted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was accepted. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `rbac_group_ids: optional array of string or null` + + RBAC group IDs the user was added to on acceptance, as confirmed by the group service (absent on rows written before this was recorded, and when the invite carried no groups) + + - `OrgUserInviteDeleted object` + + Organization user invite was deleted. + + - `type: optional "org_user_invite_deleted"` + + default: org_user_invite_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was deleted. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteReSent object` + + Organization user invite was re-sent. + + - `type: optional "org_user_invite_re_sent"` + + default: org_user_invite_re_sent + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invited_email: optional string or null` + + Email address the invite was re-sent to. + + - `invited_role: optional string or null` + + Role the invited user will receive on joining + + - `invited_seat_tier: optional string or null` + + Seat tier the invited user will receive on joining + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteRejected object` + + Organization user invite was rejected. + + - `type: optional "org_user_invite_rejected"` + + default: org_user_invite_rejected + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invite_id: optional string or null` + + Tagged ID of the invite that was rejected. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserInviteSent object` + + Organization user invite was sent. + + - `type: optional "org_user_invite_sent"` + + default: org_user_invite_sent + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `invited_email: optional string or null` + + Email address the invite was sent to. + + - `invited_rbac_group_ids: optional array of string or null` + + RBAC group IDs the invited user will be added to on joining + + - `invited_role: optional string or null` + + Role the invited user will receive on joining. + + - `invited_seat_tier: optional string or null` + + Seat tier the invited user will receive on joining + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserLeft object` + + User removed themselves from organization. + + - `type: optional "org_user_left"` + + default: org_user_left + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_role: optional string or null` + + The role the member held in the organization before leaving, e.g. "user" or "admin". + + - `OrgUserSharesRetained object` + + A member left or was removed from the organization while projects, skills, plugins, or chats they had shared were still shared, and those shares were kept. + + - `type: optional "org_user_shares_retained"` + + default: org_user_shares_retained + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `resource_count: number` + + Number of distinct resources the member had shared that are still shared, counted up to a fixed limit, so a lower bound when `truncated` is true; it can exceed the number of IDs listed below. + + - `share_count: number` + + Number of shares kept across those resources (one per audience a resource is shared with), counted up to the same limit, so a lower bound when `truncated` is true. + + - `truncated: boolean` + + True when the ID lists do not include every still-shared resource or the counts stopped at their limit. + + - `user_id: string` + + Tagged ID of the member who left or was removed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `claude_chat_ids: optional array of string` + + Tagged IDs of chats among those resources. + + - `claude_project_ids: optional array of string` + + Tagged IDs of projects among those resources; the four ID lists hold at most the first 50 resources between them. + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `plugin_ids: optional array of string` + + Tagged IDs of plugins among those resources. + + - `skill_ids: optional array of string` + + Tagged IDs of skills among those resources. + + - `OrgUserTrustedDevicesRevoked object` + + An organization admin revoked a member's trusted devices and signed the member out of all active sessions. + + - `type: optional "org_user_trusted_devices_revoked"` + + default: org_user_trusted_devices_revoked + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `completed: boolean` + + Whether the operation completed fully. False records an attempt that revoked the counted credentials but failed before finishing. + + - `devices_revoked_count: number` + + Number of trusted devices revoked + + - `sessions_revoked_count: number` + + Number of active sessions the member was signed out of + + - `user_id: string` + + Tagged ID of the member whose trusted devices were revoked + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUserViewed object` + + An organization user was viewed. + + - `type: optional "org_user_viewed"` + + default: org_user_viewed + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `user_id: string` + + Tagged ID of the viewed user + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgUsersListed object` + + Organization users were listed. + + - `type: optional "org_users_listed"` + + default: org_users_listed + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrgWorkAcrossAppsDisabled object` + + The organization's "Let Claude work across apps" setting was turned off. + + - `type: optional "org_work_across_apps_disabled"` + + default: org_work_across_apps_disabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `OrgWorkAcrossAppsEnabled object` + + The organization's "Let Claude work across apps" setting was turned on. + + - `type: optional "org_work_across_apps_enabled"` + + default: org_work_across_apps_enabled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `OrganizationAddressUpdated object` + + The organization's billing or shipping address was updated. + + - `type: optional "organization_address_updated"` + + default: organization_address_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `billing_address_updated: optional boolean or null` + + Whether the billing address was updated. + + - `billing_name_updated: optional boolean or null` + + Whether the billing name was updated. + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `shipping_address_updated: optional boolean or null` + + Whether the shipping address was updated. + + - `shipping_name_updated: optional boolean or null` + + Whether the shipping name was updated. + + - `OrganizationIconDeleted object` + + Organization's custom icon deleted. + + - `type: optional "organization_icon_deleted"` + + default: organization_icon_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OrganizationIconUpdated object` + + Organization's custom icon uploaded or replaced. + + - `type: optional "organization_icon_updated"` + + default: organization_icon_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `ClaudeOrganizationSettingsUpdated object` + + Organization settings were updated. + + - `type: optional "claude_organization_settings_updated"` + + default: claude_organization_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -88295,1938 +91101,5278 @@ compliance activities that can be filtered by various criteria. - `updates: array of Name or Capabilities or RedactContent or 104 more` - - `Name object` + - `Name object` + + The organization name setting was changed. + + - `type: optional "name"` + + default: name + + - `current_value: optional string or null` + + Setting value immediately after this change + + - `previous_value: optional string or null` + + Setting value immediately before this change + + - `Capabilities object` + + The organization capabilities setting was changed. + + - `type: optional "capabilities"` + + default: capabilities + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `RedactContent object` + + The organization content-redaction setting was changed. + + - `type: optional "redact_content"` + + default: redact_content + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `PublicProjectsEnabled object` + + The public projects setting was changed for the organization. + + - `type: optional "public_projects_enabled"` + + default: public_projects_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `WebSearchEnabled object` + + The web search setting was changed. + + - `type: optional "web_search_enabled"` + + default: web_search_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `GeolocationEnabled object` + + The geolocation setting was changed. + + - `type: optional "geolocation_enabled"` + + default: geolocation_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `EnabledSaffron object` + + The memory setting was changed for the organization. + + - `type: optional "enabled_saffron"` + + default: enabled_saffron + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `DataRetentionPeriods object` + + The data retention periods setting was changed for the organization. + + - `type: optional "data_retention_periods"` + + default: data_retention_periods + + - `current_value: optional array of object or null` + + Setting value immediately after this change + + - `data_type: "all" or "artifact_private" or "artifact_shared" or 2 more` + + - `"all"` + + - `"artifact_private"` + + - `"artifact_shared"` + + - `"chat"` + + - `"project"` + + - `duration: number` + + minimum: -2147483648, maximum: 2147483647 + + - `timescale: "day" or "indefinite" or "month"` + + - `"day"` + + - `"indefinite"` + + - `"month"` + + - `previous_value: optional array of object or null` + + Setting value immediately before this change + + - `data_type: "all" or "artifact_private" or "artifact_shared" or 2 more` + + - `"all"` + + - `"artifact_private"` + + - `"artifact_shared"` + + - `"chat"` + + - `"project"` + + - `duration: number` + + minimum: -2147483648, maximum: 2147483647 + + - `timescale: "day" or "indefinite" or "month"` + + - `"day"` + + - `"indefinite"` + + - `"month"` + + - `MembersLimit object` + + The members limit setting was changed for the organization. + + - `type: optional "members_limit"` + + default: members_limit + + - `current_value: optional number or null` + + Setting value immediately after this change + + - `previous_value: optional number or null` + + Setting value immediately before this change + + - `ClaudeAPIInArtifactsEnabled object` + + The Claude API in Artifacts setting was changed. + + - `type: optional "claude_api_in_artifacts_enabled"` + + default: claude_api_in_artifacts_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `SupportContactMode object` + + The support contact routing mode setting was changed for the organization. + + - `type: optional "support_contact_mode"` + + default: support_contact_mode + + - `current_value: optional "ai_support_only" or "human_support_restricted" or "unspecified" or null` + + Setting value immediately after this change + + - `"ai_support_only"` + + - `"human_support_restricted"` + + - `"unspecified"` + + - `previous_value: optional "ai_support_only" or "human_support_restricted" or "unspecified" or null` + + Setting value immediately before this change + + - `"ai_support_only"` + + - `"human_support_restricted"` + + - `"unspecified"` + + - `SupportContactAlwaysIncludeAdminsOwners object` + + The support contact always-include-admins-owners setting was changed for the organization. + + - `type: optional "support_contact_always_include_admins_owners"` + + default: support_contact_always_include_admins_owners + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `SupportContactDesignatedGroups object` + + The support contact designated groups setting was changed for the organization. + + - `type: optional "support_contact_designated_groups"` + + default: support_contact_designated_groups + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `SubscriptionItemQuotas object` + + The organization's subscription seat quotas were changed. + + - `type: optional "subscription_item_quotas"` + + default: subscription_item_quotas + + - `current_value: optional map[number] or null` + + Seat-type to quantity mapping immediately after this change. A null quantity means the item is unlimited/unmetered. + + - `previous_value: optional map[number] or null` + + Seat-type to quantity mapping immediately before this change. A null quantity means the item was unlimited/unmetered. + + - `MembersBulkSeatTierAssignment object` + + All organization members were assigned the specified seat tier. + + - `type: optional "members_bulk_seat_tier_assignment"` + + default: members_bulk_seat_tier_assignment + + - `current_value: optional string or null` + + The seat tier every member was assigned to + + - `member_count: optional number or null` + + Number of members whose seat tier was changed + + - `previous_value: optional string or null` + + Not populated; members may have held differing seat tiers before the bulk assignment + + - `ClaudeCodeWebEnabled object` + + The Claude Code cloud sessions setting was changed for the organization. + + - `type: optional "claude_code_web_enabled"` + + default: claude_code_web_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeDesktopBypassPermissionsEnabled object` + + The Claude Code Desktop bypass-permissions mode setting was changed for the organization. + + - `type: optional "claude_code_desktop_bypass_permissions_enabled"` + + default: claude_code_desktop_bypass_permissions_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeDesktopAutoPermissionsEnabled object` + + The Claude Code Desktop auto-permissions mode setting was changed for the organization. + + - `type: optional "claude_code_desktop_auto_permissions_enabled"` + + default: claude_code_desktop_auto_permissions_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `SkillsEnabled object` + + The Claude.ai skills setting was changed for the organization. + + - `type: optional "skills_enabled"` + + default: skills_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `WorkbenchCompletionFeedbackEnabled object` + + The Workbench completion feedback setting was changed for the organization. + + - `type: optional "workbench_completion_feedback_enabled"` + + default: workbench_completion_feedback_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAICompletionFeedbackEnabled object` + + The Claude.ai completion feedback setting was changed for the organization. + + - `type: optional "claude_ai_completion_feedback_enabled"` + + default: claude_ai_completion_feedback_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAIIntegrationSharingEnabled object` + + The Claude.ai integration sharing setting was changed for the organization. + + - `type: optional "claude_ai_integration_sharing_enabled"` + + default: claude_ai_integration_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAIChatSharingEnabled object` + + The Claude.ai chat sharing setting was changed for the organization. + + - `type: optional "claude_ai_chat_sharing_enabled"` + + default: claude_ai_chat_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAICcrSharingEnabled object` + + The Claude.ai remote Claude Code session sharing setting was changed for the organization. + + - `type: optional "claude_ai_ccr_sharing_enabled"` + + default: claude_ai_ccr_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAICcrSupportSharingEnabled object` + + The Anthropic support access setting for Claude Code sessions was changed for the organization. + + - `type: optional "claude_ai_ccr_support_sharing_enabled"` + + default: claude_ai_ccr_support_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `BatchesDownloadUiVisibility object` + + The batches download UI visibility setting was changed for the organization. + + - `type: optional "batches_download_ui_visibility"` + + default: batches_download_ui_visibility + + - `current_value: optional "all" or "none" or "selected" or "unspecified" or null` + + Setting value immediately after this change + + - `"all"` + + - `"none"` + + - `"selected"` + + - `"unspecified"` + + - `previous_value: optional "all" or "none" or "selected" or "unspecified" or null` + + Setting value immediately before this change + + - `"all"` + + - `"none"` + + - `"selected"` + + - `"unspecified"` + + - `AllowedInviteDomains object` + + The allowed invite domains setting was changed for the organization. + + - `type: optional "allowed_invite_domains"` + + default: allowed_invite_domains + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `WebSearchAPISettings object` + + The web search API setting was changed for the organization. + + - `type: optional "web_search_api_settings"` + + default: web_search_api_settings + + - `current_value: optional object or null` + + Setting value immediately after this change + + - `domain_filters: object or null` + + Allowed/blocked domain filters shared by web_search and web_fetch tools. + + - `allowed_domains: optional array of string or null` + + - `blocked_domains: optional array of string or null` + + - `is_enabled: boolean` + + - `previous_value: optional object or null` + + Setting value immediately before this change + + - `domain_filters: object or null` + + Allowed/blocked domain filters shared by web_search and web_fetch tools. + + - `allowed_domains: optional array of string or null` + + - `blocked_domains: optional array of string or null` + + - `is_enabled: boolean` + + - `WebFetchAPISettings object` + + The web fetch API setting was changed for the organization. + + - `type: optional "web_fetch_api_settings"` + + default: web_fetch_api_settings + + - `current_value: optional object or null` + + Setting value immediately after this change + + - `domain_filters: object or null` + + Allowed/blocked domain filters shared by web_search and web_fetch tools. + + - `allowed_domains: optional array of string or null` + + - `blocked_domains: optional array of string or null` + + - `is_enabled: boolean` + + - `previous_value: optional object or null` + + Setting value immediately before this change + + - `domain_filters: object or null` + + Allowed/blocked domain filters shared by web_search and web_fetch tools. + + - `allowed_domains: optional array of string or null` + + - `blocked_domains: optional array of string or null` + + - `is_enabled: boolean` + + - `DefaultWorkspaceSettings object` + + The default workspace setting was changed for the organization. + + - `type: optional "default_workspace_settings"` + + default: default_workspace_settings + + - `current_value: optional object or null` + + Setting value immediately after this change + + - `enable_api_keys: optional boolean` + + default: true + + - `previous_value: optional object or null` + + Setting value immediately before this change + + - `enable_api_keys: optional boolean` + + default: true + + - `BatchesDownloadUiEnabledWorkspaceIDs object` + + The batches download UI enabled workspace IDs setting was changed for the organization. + + - `type: optional "batches_download_ui_enabled_workspace_ids"` + + default: batches_download_ui_enabled_workspace_ids + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `ClaudeCodeManagedSettings object` + + The organization's Claude Code managed settings were changed. + + The full previous and current settings content is provided in the + `previous_value` and `current_value` fields. + + - `type: optional "claude_code_managed_settings"` + + default: claude_code_managed_settings + + - `current_value: optional map[unknown] or null` + + - `current_version: optional number or null` + + - `previous_value: optional map[unknown] or null` + + - `previous_version: optional number or null` + + - `settings_uuid: optional string or null` + + - `AccountSessionDurationSeconds object` + + Tracks changes to the enterprise account session duration setting (in seconds). + + - `type: optional "account_session_duration_seconds"` + + default: account_session_duration_seconds + + - `current_value: optional number or null` + + Setting value immediately after this change + + - `previous_value: optional number or null` + + Setting value immediately before this change + + - `VcsConnections object` + + Tracks changes to VCS (GitHub, etc.) organization connections. + + - `type: optional "vcs_connections"` + + default: vcs_connections + + - `current_value: optional array of object or null` + + Setting value immediately after this change + + - `type: "github"` + + Supported Version Control System providers. + + - `org_name: string` + + - `metadata: optional map[string] or null` + + - `org_id: optional string or null` + + - `previous_value: optional array of object or null` + + Setting value immediately before this change + + - `type: "github"` + + Supported Version Control System providers. + + - `org_name: string` + + - `metadata: optional map[string] or null` + + - `org_id: optional string or null` + + - `DisabledAdminRequestTypes object` + + Tracks changes to which admin request types are disabled. + + - `type: optional "disabled_admin_request_types"` + + default: disabled_admin_request_types + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `MemberUsageDashboardVisible object` + + The member usage dashboard visibility setting was changed for the organization. + + - `type: optional "member_usage_dashboard_visible"` + + default: member_usage_dashboard_visible + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `CodeExecutionNetworkEgressEnabled object` + + The code execution network egress setting was changed for the organization. + + - `type: optional "code_execution_network_egress_enabled"` + + default: code_execution_network_egress_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `CodeExecutionDomainAllowlistChanged object` + + The code execution domain allowlist setting was changed for the organization. + + - `type: optional "code_execution_domain_allowlist_changed"` + + default: code_execution_domain_allowlist_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change + + - `previous_value: optional array of string or null` + + Setting value immediately before this change + + - `CodeExecutionDomainAllowlistTemplateChanged object` + + The code execution domain allowlist template setting was changed for the organization. + + - `type: optional "code_execution_domain_allowlist_template_changed"` + + default: code_execution_domain_allowlist_template_changed + + - `current_value: optional "custom" or "full_egress" or "package_managers" or "unspecified" or null` + + Setting value immediately after this change + + - `"custom"` + + - `"full_egress"` + + - `"package_managers"` + + - `"unspecified"` + + - `previous_value: optional "custom" or "full_egress" or "package_managers" or "unspecified" or null` + + Setting value immediately before this change + + - `"custom"` + + - `"full_egress"` + + - `"package_managers"` + + - `"unspecified"` + + - `ChatEnabled object` + + The chat setting was changed for the organization. + + - `type: optional "chat_enabled"` + + default: chat_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeQuickWebSetupEnabled object` + + The Claude Code quick web setup setting was changed for the organization. + + - `type: optional "claude_code_quick_web_setup_enabled"` + + default: claude_code_quick_web_setup_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeTeamMemoryMode object` + + The Claude Code team memory mode setting was changed for the organization. + + - `type: optional "claude_code_team_memory_mode"` + + default: claude_code_team_memory_mode + + - `current_value: optional "all_org_members" or "github_repo" or "off" or 2 more or null` + + Setting value immediately after this change + + - `"all_org_members"` + + - `"github_repo"` + + - `"off"` + + - `"specific_groups"` + + - `"unspecified"` + + - `previous_value: optional "all_org_members" or "github_repo" or "off" or 2 more or null` + + Setting value immediately before this change + + - `"all_org_members"` + + - `"github_repo"` + + - `"off"` + + - `"specific_groups"` + + - `"unspecified"` + + - `BrowserExtensionSettings object` + + The browser extension setting was changed for the organization. + + - `type: optional "browser_extension_settings"` + + default: browser_extension_settings + + - `current_value: optional map[unknown] or null` + + Setting value immediately after this change + + - `previous_value: optional map[unknown] or null` + + Setting value immediately before this change + + - `IsDesktopExtensionAllowlistEnabled object` + + The desktop extension allowlist setting was changed for the organization. + + - `type: optional "is_desktop_extension_allowlist_enabled"` + + default: is_desktop_extension_allowlist_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `AllowMemberDataExport object` + + The per-member self-serve data export setting was changed for the organization. + + - `type: optional "allow_member_data_export"` + + default: allow_member_data_export + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAIDesignEnabled object` + + The Claude Design setting was changed for the organization. + + - `type: optional "claude_ai_design_enabled"` + + default: claude_ai_design_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceEnabled object` + + The setting that turns Claude Science on or off for the organization was changed. + + - `type: optional "claude_science_enabled"` + + default: claude_science_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceMemoryEnabled object` + + The Claude Science memory setting was changed for the organization. + + - `type: optional "claude_science_memory_enabled"` + + default: claude_science_memory_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceCustomConnectorsEnabled object` + + The Claude Science custom connectors setting was changed for the organization. + + - `type: optional "claude_science_custom_connectors_enabled"` + + default: claude_science_custom_connectors_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceCustomSkillsEnabled object` + + The Claude Science custom skills setting was changed for the organization. + + - `type: optional "claude_science_custom_skills_enabled"` + + default: claude_science_custom_skills_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceManagedNetworkAllowlistEnabled object` + + The Claude Science setting that puts the network allowlist under the organization's management, instead of each member managing their own, was changed for the organization. + + - `type: optional "claude_science_managed_network_allowlist_enabled"` + + default: claude_science_managed_network_allowlist_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceSSHHostsEnabled object` + + The Claude Science SSH hosts setting was changed for the organization. + + - `type: optional "claude_science_ssh_hosts_enabled"` + + default: claude_science_ssh_hosts_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceModalEnabled object` + + The Claude Science setting that lets members connect Modal cloud compute was changed for the organization. + + - `type: optional "claude_science_modal_enabled"` + + default: claude_science_modal_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceScientificModelEndpointsEnabled object` + + The Claude Science scientific model endpoints setting was changed for the organization. + + - `type: optional "claude_science_scientific_model_endpoints_enabled"` + + default: claude_science_scientific_model_endpoints_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceNetworkAllowlistChanged object` + + The hostnames on the organization's Claude Science network allowlist, which applies to members while the organization manages the allowlist, were changed. + + - `type: optional "claude_science_network_allowlist_changed"` + + default: claude_science_network_allowlist_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the organization's complete saved allowlist (built-in and custom domains alike) as lowercase hostnames, each optionally prefixed with '*.'. Null means no list is saved (this change reset it), so Claude Science's built-in allowlist applies; an empty list means a list with no domains on it is saved. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the organization's complete saved allowlist (built-in and custom domains alike) as lowercase hostnames, each optionally prefixed with '*.'. Null means no list was saved at that point (never saved, or since reset), so Claude Science's built-in allowlist applied; an empty list means a list with no domains on it had been saved. + + - `ClaudeScienceModalWorkspaceAllowlistChanged object` + + The Claude Science Modal cloud compute workspace allowlist setting was changed for the organization. + + - `type: optional "claude_science_modal_workspace_allowlist_changed"` + + default: claude_science_modal_workspace_allowlist_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the Modal workspace names members can connect to. Null or an empty list means any workspace is allowed. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the Modal workspace names members could connect to. Null or an empty list means any workspace was allowed. + + - `ClaudeSciencePackageMirrorCondaChannelChanged object` + + The Claude Science package mirror setting for the conda channel was changed for the organization. + + - `type: optional "claude_science_package_mirror_conda_channel_changed"` + + default: claude_science_package_mirror_conda_channel_changed + + - `current_value: optional string or null` + + Setting value immediately after this change: the HTTPS URL of the organization's conda channel mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none is set. + + - `previous_value: optional string or null` + + Setting value immediately before this change: the HTTPS URL of the organization's conda channel mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none was set. + + - `ClaudeSciencePackageMirrorPipIndexChanged object` + + The Claude Science package mirror setting for the Python package index was changed for the organization. + + - `type: optional "claude_science_package_mirror_pip_index_changed"` + + default: claude_science_package_mirror_pip_index_changed + + - `current_value: optional string or null` + + Setting value immediately after this change: the HTTPS URL of the organization's Python (pip) package index mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none is set. + + - `previous_value: optional string or null` + + Setting value immediately before this change: the HTTPS URL of the organization's Python (pip) package index mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none was set. + + - `ClaudeAISkillPluginsScanningEnabled object` + + The skill and plugin security scanning setting was changed for the organization. + + - `type: optional "claude_ai_skill_plugins_scanning_enabled"` + + default: claude_ai_skill_plugins_scanning_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ArtifactPublishingEnabled object` + + The Artifact publishing setting was changed for the organization. + + - `type: optional "artifact_publishing_enabled"` + + default: artifact_publishing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ArtifactExternalSharingEnabled object` + + The Artifact external sharing setting was changed for the organization. + + - `type: optional "artifact_external_sharing_enabled"` + + default: artifact_external_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ArtifactPresenceEnabled object` + + The Artifact presence setting was changed for the organization. + + - `type: optional "artifact_presence_enabled"` + + default: artifact_presence_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAISkillSharingEnabled object` + + The Claude.ai skill sharing setting was changed for the organization. + + - `type: optional "claude_ai_skill_sharing_enabled"` + + default: claude_ai_skill_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAISkillSharingOrgEnabled object` + + The Claude.ai organization-wide skill sharing setting was changed for the organization. + + - `type: optional "claude_ai_skill_sharing_org_enabled"` + + default: claude_ai_skill_sharing_org_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAISkillSharingGroupEnabled object` + + The Claude.ai group-based skill sharing setting was changed for the organization. + + - `type: optional "claude_ai_skill_sharing_group_enabled"` + + default: claude_ai_skill_sharing_group_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAISkillPublishPolicy object` + + The Claude.ai organization skill publish policy was changed for the organization. + + - `type: optional "claude_ai_skill_publish_policy"` + + default: claude_ai_skill_publish_policy + + - `current_value: optional "off" or "open" or "review" or "unspecified" or null` + + Setting value immediately after this change + + - `"off"` + + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `previous_value: optional "off" or "open" or "review" or "unspecified" or null` + + Setting value immediately before this change + + - `"off"` + + - `"open"` + + - `"review"` + + - `"unspecified"` + + - `ClaudeCodeRemoteControlEnabled object` + + The Claude Code remote control setting was changed for the organization. + + - `type: optional "claude_code_remote_control_enabled"` + + default: claude_code_remote_control_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeRemoteControlDefaultEnabled object` + + The Claude Code remote control auto-enable default was changed for the organization. + + - `type: optional "claude_code_remote_control_default_enabled"` + + default: claude_code_remote_control_default_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeRoutinesEnabled object` + + The Claude Code routines setting was changed for the organization. + + - `type: optional "claude_code_routines_enabled"` + + default: claude_code_routines_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeWorkflowsEnabled object` + + The Claude Code Workflows setting was changed for the organization. + + - `type: optional "claude_code_workflows_enabled"` + + default: claude_code_workflows_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `FrontierServicesDataUseEnabled object` + + The frontier services data use setting was changed for the organization. + + - `type: optional "frontier_services_data_use_enabled"` + + default: frontier_services_data_use_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `LtiCourseProjectsEnabled object` + + The LTI course projects setting was changed for the organization. + + - `type: optional "lti_course_projects_enabled"` + + default: lti_course_projects_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAISkillCreationEnabled object` + + The Claude.ai skill creation setting was changed for the organization. + + - `type: optional "claude_ai_skill_creation_enabled"` + + default: claude_ai_skill_creation_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeGitHubAnalyticsEnabled object` + + The Claude Code GitHub analytics setting was changed for the organization. + + - `type: optional "claude_code_github_analytics_enabled"` + + default: claude_code_github_analytics_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeHideManagedEnvironments object` + + The Claude Code hide managed environments setting was changed for the organization. + + - `type: optional "claude_code_hide_managed_environments"` + + default: claude_code_hide_managed_environments + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeAllowSessionPoolMoves object` + + The Claude Code allow session pool moves setting was changed for the organization. + + - `type: optional "claude_code_allow_session_pool_moves"` + + default: claude_code_allow_session_pool_moves + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeDisableAnthropicCompute object` + + The Claude Code disable Anthropic compute setting was changed for the organization. + + - `type: optional "claude_code_disable_anthropic_compute"` + + default: claude_code_disable_anthropic_compute + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeMetricsLoggingEnabled object` + + The Claude Code metrics logging setting was changed for the organization. + + - `type: optional "claude_code_metrics_logging_enabled"` + + default: claude_code_metrics_logging_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeFastModeEnabled object` + + The Claude Code fast mode setting was changed for the organization. + + - `type: optional "claude_code_fast_mode_enabled"` + + default: claude_code_fast_mode_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeCodeTrustedDevicesRequired object` + + The Claude Code trusted devices setting was changed for the organization. + + - `type: optional "claude_code_trusted_devices_required"` + + default: claude_code_trusted_devices_required + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `CoworkTrustedDevicesRequired object` + + The Cowork trusted devices enforcement setting was changed for the organization. + + - `type: optional "cowork_trusted_devices_required"` + + default: cowork_trusted_devices_required + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `InlineVisualizationsEnabled object` + + The inline visualizations setting was changed for the organization. + + - `type: optional "inline_visualizations_enabled"` + + default: inline_visualizations_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `OrganizationBannerSettings object` + + The organization banner setting was changed. + + - `type: optional "organization_banner_settings"` + + default: organization_banner_settings + + - `current_value: optional map[unknown] or null` + + Setting value immediately after this change + + - `previous_value: optional map[unknown] or null` + + Setting value immediately before this change + + - `ClaudeInSlackSettings object` + + The Claude in Slack setting was changed for the organization. + + - `type: optional "claude_in_slack_settings"` + + default: claude_in_slack_settings + + - `current_value: optional map[unknown] or null` + + Setting value immediately after this change + + - `previous_value: optional map[unknown] or null` + + Setting value immediately before this change + + - `ClaudeCodeDefaultWorkerEnvironmentID object` + + The Claude Code default worker environment setting was changed for the organization. + + - `type: optional "claude_code_default_worker_environment_id"` + + default: claude_code_default_worker_environment_id + + - `current_value: optional string or null` + + Setting value immediately after this change + + - `previous_value: optional string or null` + + Setting value immediately before this change + + - `ClaudeCodeDefaultWorkerPoolID object` + + The Claude Code default worker pool setting was changed for the organization. + + - `type: optional "claude_code_default_worker_pool_id"` + + default: claude_code_default_worker_pool_id + + - `current_value: optional string or null` + + Setting value immediately after this change + + - `previous_value: optional string or null` + + Setting value immediately before this change + + - `ManagedAgentsEnabled object` + + The managed agents setting was changed for the organization. + + - `type: optional "managed_agents_enabled"` + + default: managed_agents_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceFeaturedConnectorsDefaultChanged object` + + The organization-wide default for Claude Science featured connectors was changed for the organization. + + - `type: optional "claude_science_featured_connectors_default_changed"` + + default: claude_science_featured_connectors_default_changed + + - `current_value: optional boolean or null` + + Setting value immediately after this change: whether featured connectors not set individually are on for members. Null means no organization-wide default is set (this change removed it), so the plan default applies. + + - `previous_value: optional boolean or null` + + Setting value immediately before this change: whether featured connectors not set individually were on for members. Null means no organization-wide default was set, so the plan default applied. + + - `ClaudeScienceFeaturedConnectorsEnabledListChanged object` + + The list of Claude Science featured connectors individually turned on for members was changed for the organization. + + - `type: optional "claude_science_featured_connectors_enabled_list_changed"` + + default: claude_science_featured_connectors_enabled_list_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the ids of the featured connectors individually turned on. Null or an empty list means none. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the ids of the featured connectors individually turned on. Null or an empty list means none. + + - `ClaudeScienceFeaturedConnectorsDisabledListChanged object` + + The list of Claude Science featured connectors individually turned off for members was changed for the organization. + + - `type: optional "claude_science_featured_connectors_disabled_list_changed"` + + default: claude_science_featured_connectors_disabled_list_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the ids of the featured connectors individually turned off. Null or an empty list means none. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the ids of the featured connectors individually turned off. Null or an empty list means none. + + - `ClaudeScienceFeaturedSkillsDefaultChanged object` + + The organization-wide default for Claude Science featured skills was changed for the organization. + + - `type: optional "claude_science_featured_skills_default_changed"` + + default: claude_science_featured_skills_default_changed + + - `current_value: optional boolean or null` + + Setting value immediately after this change: whether featured skills not set individually are on for members. Null means no organization-wide default is set (this change removed it), so the plan default applies. + + - `previous_value: optional boolean or null` + + Setting value immediately before this change: whether featured skills not set individually were on for members. Null means no organization-wide default was set, so the plan default applied. + + - `ClaudeScienceFeaturedSkillsEnabledListChanged object` + + The list of Claude Science featured skills individually turned on for members was changed for the organization. + + - `type: optional "claude_science_featured_skills_enabled_list_changed"` + + default: claude_science_featured_skills_enabled_list_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the ids of the featured skills individually turned on. Null or an empty list means none. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the ids of the featured skills individually turned on. Null or an empty list means none. + + - `ClaudeScienceFeaturedSkillsDisabledListChanged object` + + The list of Claude Science featured skills individually turned off for members was changed for the organization. + + - `type: optional "claude_science_featured_skills_disabled_list_changed"` + + default: claude_science_featured_skills_disabled_list_changed + + - `current_value: optional array of string or null` + + Setting value immediately after this change: the ids of the featured skills individually turned off. Null or an empty list means none. + + - `previous_value: optional array of string or null` + + Setting value immediately before this change: the ids of the featured skills individually turned off. Null or an empty list means none. + + - `FilesAPIEnabled object` + + The Files API was turned on or off for the organization. + + - `type: optional "files_api_enabled"` + + default: files_api_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `SkillsAPIEnabled object` + + The Skills API was turned on or off for the organization. + + - `type: optional "skills_api_enabled"` + + default: skills_api_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `PasswordManagerIntegrationEnabled object` + + The password manager integration setting was changed for the organization. + + - `type: optional "password_manager_integration_enabled"` + + default: password_manager_integration_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `APIKeyCreationEnabled object` + + The setting that allows members to create new API keys was changed for the organization. + + - `type: optional "api_key_creation_enabled"` + + default: api_key_creation_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAcademyInferenceEnabled object` + + The setting that lets members use Claude in Claude Academy was changed for the organization. + + - `type: optional "claude_academy_inference_enabled"` + + default: claude_academy_inference_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeScienceLocalWorkImportEnabled object` + + The Claude Science setting that lets members access projects, sessions, and artifacts previously saved on their computer under other sign-ins, and add them to their account in the organization, was changed for the organization. + + - `type: optional "claude_science_local_work_import_enabled"` + + default: claude_science_local_work_import_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAIProjectSharingEnabled object` + + The Claude.ai project sharing setting (whether members can share projects with new recipients: people, groups, or the whole organization) was changed for the organization. + + - `type: optional "claude_ai_project_sharing_enabled"` + + default: claude_ai_project_sharing_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ArtifactTypeSlidesEnabled object` + + The setting that lets members create Slides, one of Anthropic's built-in Artifact types, was changed for the organization. + + - `type: optional "artifact_type_slides_enabled"` + + default: artifact_type_slides_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `ArtifactTypeDesignEnabled object` + + The setting that lets members create Design, one of Anthropic's built-in Artifact types and separate from the Claude Design setting, was changed for the organization. + + - `type: optional "artifact_type_design_enabled"` + + default: artifact_type_design_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `ArtifactTypeDesignSystemsEnabled object` + + The setting that lets members create Design systems, one of Anthropic's built-in Artifact types, was changed for the organization. + + - `type: optional "artifact_type_design_systems_enabled"` + + default: artifact_type_design_systems_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `ArtifactTypeDocsEnabled object` + + The setting that lets members create Claude Docs, one of Anthropic's built-in Artifact types, was changed for the organization. + + - `type: optional "artifact_type_docs_enabled"` + + default: artifact_type_docs_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `ArtifactTypeMotionEnabled object` + + The setting that lets members create Motion, one of Anthropic's built-in Artifact types, was changed for the organization. + + - `type: optional "artifact_type_motion_enabled"` + + default: artifact_type_motion_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `ArtifactTypeDashboardsEnabled object` + + The setting that lets members create Dashboards, one of Anthropic's built-in Artifact types, was changed for the organization. + + - `type: optional "artifact_type_dashboards_enabled"` + + default: artifact_type_dashboards_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + + - `BuiltInBrowserDataImportEnabled object` + + The setting that lets members import cookies and site data from other browsers into the Claude desktop app's built-in browser was changed for the organization. + + - `type: optional "built_in_browser_data_import_enabled"` + + default: built_in_browser_data_import_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change. Null means the setting was not set, so its default applied. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `OwnedProjectsAccessRestored object` + + Access to owned projects was restored. + + - `type: optional "owned_projects_access_restored"` + + default: owned_projects_access_restored + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `user_id: optional string or null` + + Tagged ID of the member whose access to their owned projects was restored, when known. + + - `PaymentMethodUpdated object` + + The organization's default payment method was updated. + + - `type: optional "payment_method_updated"` + + default: payment_method_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `PendingShareCreated object` + + A pending share of a project or skill was created for an email address that is not yet an organization member. + + - `type: optional "pending_share_created"` + + default: pending_share_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `invitee_email: string` + + Email address the share was created for. + + - `resource_id: string` + + Tagged ID of the resource being shared. + + - `resource_type: string` + + The type of resource being shared. + + - `role: string` + + The role that will be granted when the invitee joins the organization. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `PendingShareRevoked object` + + A pending share of a project or skill was revoked before the invitee joined the organization. + + - `type: optional "pending_share_revoked"` + + default: pending_share_revoked + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `invitee_email: string` + + Email address the share had been created for. + + - `resource_id: string` + + Tagged ID of the resource that was shared. + + - `resource_type: string` + + The type of resource that was shared. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `PhoneCodeSent object` + + User requested a phone verification code. + + - `type: optional "phone_code_sent"` + + default: phone_code_sent + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `PhoneCodeVerified object` + + User successfully verified their phone code. + + - `type: optional "phone_code_verified"` + + default: phone_code_verified + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. - The organization name setting was changed. + - `type: optional "federated_identity_actor"` - - `type: optional "name"` + default: federated_identity_actor - default: name + - `issuer: string` - - `current_value: optional string or null` + - `subject: string` - Setting value immediately after this change + - `audience: optional array of string` - - `previous_value: optional string or null` + - `ip_address: optional string or null` - Setting value immediately before this change + - `user_agent: optional string or null` - - `Capabilities object` + - `FederatedActor object` - The organization capabilities setting was changed. + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `type: optional "capabilities"` + - `type: optional "federated_actor"` - default: capabilities + default: federated_actor - - `current_value: optional array of string or null` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - Setting value immediately after this change + - `FederatedActorAwsProvider object` - - `previous_value: optional array of string or null` + Asserting party: the AWS account the organization is bound to. - Setting value immediately before this change + - `type: optional "aws"` - - `RedactContent object` + default: aws - The organization content-redaction setting was changed. + - `account_id: string` - - `type: optional "redact_content"` + - `signed_principal: string` - default: redact_content + The AWS-signed ARN of the IAM principal that requested the token. - - `current_value: optional boolean or null` + - `FederatedActorAzureProvider object` - Setting value immediately after this change + Asserting party: the Azure subscription the organization is bound to. - - `previous_value: optional boolean or null` + - `type: optional "azure"` - Setting value immediately before this change + default: azure - - `PublicProjectsEnabled object` + - `subscription_id: string` - The public projects setting was changed for the organization. + - `FederatedActorGcpProvider object` - - `type: optional "public_projects_enabled"` + Asserting party: the GCP project the organization is bound to. - default: public_projects_enabled + - `type: optional "gcp"` - - `current_value: optional boolean or null` + default: gcp - Setting value immediately after this change + - `project_number: string` - - `previous_value: optional boolean or null` + - `FederatedActorOidcProvider object` - Setting value immediately before this change + Asserting party: a customer-registered OIDC federation issuer. - - `WebSearchEnabled object` + - `type: optional "oidc"` - The web search setting was changed. + default: oidc - - `type: optional "web_search_enabled"` + - `issuer: optional string or null` - default: web_search_enabled + The federation issuer's URL. Null when the presented credential failed verification. - - `current_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately after this change + - `subject: optional string or null` - - `previous_value: optional boolean or null` + The provider's verified identifier for the caller; its form depends on the provider. - Setting value immediately before this change + - `user_agent: optional string or null` - - `GeolocationEnabled object` + - `AttestedDeviceActor object` - The geolocation setting was changed. + An attested mobile device authenticated via Apple App Attest. - - `type: optional "geolocation_enabled"` + - `type: optional "attested_device_actor"` - default: geolocation_enabled + default: attested_device_actor - - `current_value: optional boolean or null` + - `external_client_id: string` - Setting value immediately after this change + - `kid_hash: string` - - `previous_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately before this change + - `user_agent: optional string or null` - - `EnabledSaffron object` + - `id: optional string` - The memory setting was changed for the organization. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `type: optional "enabled_saffron"` + - `created_at: optional string` - default: enabled_saffron + When this activity occurred. - - `current_value: optional boolean or null` + format: date-time - Setting value immediately after this change + - `organization_id: optional string or null` - - `previous_value: optional boolean or null` + Organization ID this activity is associated with - Setting value immediately before this change + - `organization_uuid: optional string or null` - - `DataRetentionPeriods object` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - The data retention periods setting was changed for the organization. + - `PlatformAgentArchived object` - - `type: optional "data_retention_periods"` + An agent was archived on the API platform. - default: data_retention_periods + - `type: optional "platform_agent_archived"` - - `current_value: optional array of object or null` + default: platform_agent_archived - Setting value immediately after this change + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `data_type: "all" or "artifact_private" or "artifact_shared" or 2 more` + - `APIActor object` - - `"all"` + - `type: optional "api_actor"` - - `"artifact_private"` + default: api_actor - - `"artifact_shared"` + - `api_key_id: string` - - `"chat"` + - `ip_address: string` - - `"project"` + - `user_agent: string` - - `duration: number` + - `UserActor object` - minimum: -2147483648, maximum: 2147483647 + - `type: optional "user_actor"` - - `timescale: "day" or "indefinite" or "month"` + default: user_actor - - `"day"` + - `email_address: string` - - `"indefinite"` + format: email - - `"month"` + - `ip_address: string` - - `previous_value: optional array of object or null` + - `user_agent: string` - Setting value immediately before this change + - `user_id: string` - - `data_type: "all" or "artifact_private" or "artifact_shared" or 2 more` + - `UnauthenticatedUserActor object` - - `"all"` + - `type: optional "unauthenticated_user_actor"` - - `"artifact_private"` + default: unauthenticated_user_actor - - `"artifact_shared"` + - `ip_address: string` - - `"chat"` + - `user_agent: string` - - `"project"` + - `unauthenticated_email_address: optional string or null` - - `duration: number` + format: email - minimum: -2147483648, maximum: 2147483647 + - `AnthropicActor object` - - `timescale: "day" or "indefinite" or "month"` + - `type: optional "anthropic_actor"` - - `"day"` + default: anthropic_actor - - `"indefinite"` + - `email_address: optional string or null` - - `"month"` + format: email - - `MembersLimit object` + - `SystemActor object` - The members limit setting was changed for the organization. + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `type: optional "members_limit"` + - `type: optional "system_actor"` - default: members_limit + default: system_actor - - `current_value: optional number or null` + - `service: optional string or null` - Setting value immediately after this change + Name of the automated process that performed the action, when known. - - `previous_value: optional number or null` + - `AdminAPIKeyActor object` - Setting value immediately before this change + - `type: optional "admin_api_key_actor"` - - `ClaudeAPIInArtifactsEnabled object` + default: admin_api_key_actor - The Claude API in Artifacts setting was changed. + - `admin_api_key_id: string` - - `type: optional "claude_api_in_artifacts_enabled"` + - `ip_address: string` - default: claude_api_in_artifacts_enabled + - `user_agent: string` - - `current_value: optional boolean or null` + - `ServiceAccountActor object` - Setting value immediately after this change + - `type: optional "service_account_actor"` - - `previous_value: optional boolean or null` + default: service_account_actor - Setting value immediately before this change + - `ip_address: string` - - `SupportContactMode object` + - `service_account_id: string` - The support contact routing mode setting was changed for the organization. + - `user_agent: string` - - `type: optional "support_contact_mode"` + - `ScimDirectorySyncActor object` - default: support_contact_mode + - `type: optional "scim_directory_sync_actor"` - - `current_value: optional "ai_support_only" or "human_support_restricted" or "unspecified" or null` + default: scim_directory_sync_actor - Setting value immediately after this change + - `directory_id: string` - - `"ai_support_only"` + - `workos_event_id: string` - - `"human_support_restricted"` + - `idp_connection_type: optional string or null` - - `"unspecified"` + - `FederatedIdentityActor object` - - `previous_value: optional "ai_support_only" or "human_support_restricted" or "unspecified" or null` + A federated external workload authenticated via a verified OIDC token. - Setting value immediately before this change + Carries the verified issuer, subject, and audience claims from the + presented JWT. - - `"ai_support_only"` + - `type: optional "federated_identity_actor"` - - `"human_support_restricted"` + default: federated_identity_actor - - `"unspecified"` + - `issuer: string` - - `SupportContactAlwaysIncludeAdminsOwners object` + - `subject: string` - The support contact always-include-admins-owners setting was changed for the organization. + - `audience: optional array of string` - - `type: optional "support_contact_always_include_admins_owners"` + - `ip_address: optional string or null` - default: support_contact_always_include_admins_owners + - `user_agent: optional string or null` - - `current_value: optional boolean or null` + - `FederatedActor object` - Setting value immediately after this change + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `previous_value: optional boolean or null` + - `type: optional "federated_actor"` - Setting value immediately before this change + default: federated_actor - - `SupportContactDesignatedGroups object` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - The support contact designated groups setting was changed for the organization. + - `FederatedActorAwsProvider object` - - `type: optional "support_contact_designated_groups"` + Asserting party: the AWS account the organization is bound to. - default: support_contact_designated_groups + - `type: optional "aws"` - - `current_value: optional array of string or null` + default: aws - Setting value immediately after this change + - `account_id: string` - - `previous_value: optional array of string or null` + - `signed_principal: string` - Setting value immediately before this change + The AWS-signed ARN of the IAM principal that requested the token. - - `SubscriptionItemQuotas object` + - `FederatedActorAzureProvider object` - The organization's subscription seat quotas were changed. + Asserting party: the Azure subscription the organization is bound to. - - `type: optional "subscription_item_quotas"` + - `type: optional "azure"` - default: subscription_item_quotas + default: azure - - `current_value: optional map[number] or null` + - `subscription_id: string` - Seat-type to quantity mapping immediately after this change. A null quantity means the item is unlimited/unmetered. + - `FederatedActorGcpProvider object` - - `previous_value: optional map[number] or null` + Asserting party: the GCP project the organization is bound to. - Seat-type to quantity mapping immediately before this change. A null quantity means the item was unlimited/unmetered. + - `type: optional "gcp"` - - `MembersBulkSeatTierAssignment object` + default: gcp - All organization members were assigned the specified seat tier. + - `project_number: string` - - `type: optional "members_bulk_seat_tier_assignment"` + - `FederatedActorOidcProvider object` - default: members_bulk_seat_tier_assignment + Asserting party: a customer-registered OIDC federation issuer. - - `current_value: optional string or null` + - `type: optional "oidc"` - The seat tier every member was assigned to + default: oidc - - `member_count: optional number or null` + - `issuer: optional string or null` - Number of members whose seat tier was changed + The federation issuer's URL. Null when the presented credential failed verification. - - `previous_value: optional string or null` + - `ip_address: optional string or null` - Not populated; members may have held differing seat tiers before the bulk assignment + - `subject: optional string or null` - - `ClaudeCodeWebEnabled object` + The provider's verified identifier for the caller; its form depends on the provider. - The Claude Code cloud sessions setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "claude_code_web_enabled"` + - `AttestedDeviceActor object` - default: claude_code_web_enabled + An attested mobile device authenticated via Apple App Attest. - - `current_value: optional boolean or null` + - `type: optional "attested_device_actor"` - Setting value immediately after this change + default: attested_device_actor - - `previous_value: optional boolean or null` + - `external_client_id: string` - Setting value immediately before this change + - `kid_hash: string` - - `ClaudeCodeDesktopBypassPermissionsEnabled object` + - `ip_address: optional string or null` - The Claude Code Desktop bypass-permissions mode setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "claude_code_desktop_bypass_permissions_enabled"` + - `agent_id: string` - default: claude_code_desktop_bypass_permissions_enabled + The agent that was archived, e.g. "agent_01HX...". - - `current_value: optional boolean or null` + - `id: optional string` - Setting value immediately after this change + Unique identifier for the activity e.g. 'activity_abcd1234' - - `previous_value: optional boolean or null` + - `created_at: optional string` - Setting value immediately before this change + When this activity occurred. - - `ClaudeCodeDesktopAutoPermissionsEnabled object` + format: date-time - The Claude Code Desktop auto-permissions mode setting was changed for the organization. + - `organization_id: optional string or null` - - `type: optional "claude_code_desktop_auto_permissions_enabled"` + Organization ID this activity is associated with - default: claude_code_desktop_auto_permissions_enabled + - `organization_uuid: optional string or null` - - `current_value: optional boolean or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - Setting value immediately after this change + - `workspace_id: optional string or null` - - `previous_value: optional boolean or null` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - Setting value immediately before this change + - `PlatformAgentCreated object` - - `SkillsEnabled object` + An agent was created on the API platform. - The Claude.ai skills setting was changed for the organization. + - `type: optional "platform_agent_created"` - - `type: optional "skills_enabled"` + default: platform_agent_created - default: skills_enabled + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `current_value: optional boolean or null` + - `APIActor object` - Setting value immediately after this change + - `type: optional "api_actor"` - - `previous_value: optional boolean or null` + default: api_actor - Setting value immediately before this change + - `api_key_id: string` - - `WorkbenchCompletionFeedbackEnabled object` + - `ip_address: string` - The Workbench completion feedback setting was changed for the organization. + - `user_agent: string` - - `type: optional "workbench_completion_feedback_enabled"` + - `UserActor object` - default: workbench_completion_feedback_enabled + - `type: optional "user_actor"` - - `current_value: optional boolean or null` + default: user_actor - Setting value immediately after this change + - `email_address: string` - - `previous_value: optional boolean or null` + format: email - Setting value immediately before this change + - `ip_address: string` - - `ClaudeAICompletionFeedbackEnabled object` + - `user_agent: string` - The Claude.ai completion feedback setting was changed for the organization. + - `user_id: string` - - `type: optional "claude_ai_completion_feedback_enabled"` + - `UnauthenticatedUserActor object` - default: claude_ai_completion_feedback_enabled + - `type: optional "unauthenticated_user_actor"` - - `current_value: optional boolean or null` + default: unauthenticated_user_actor - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `user_agent: string` - Setting value immediately before this change + - `unauthenticated_email_address: optional string or null` - - `ClaudeAIIntegrationSharingEnabled object` + format: email - The Claude.ai integration sharing setting was changed for the organization. + - `AnthropicActor object` - - `type: optional "claude_ai_integration_sharing_enabled"` + - `type: optional "anthropic_actor"` - default: claude_ai_integration_sharing_enabled + default: anthropic_actor - - `current_value: optional boolean or null` + - `email_address: optional string or null` - Setting value immediately after this change + format: email - - `previous_value: optional boolean or null` + - `SystemActor object` - Setting value immediately before this change + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `ClaudeAIChatSharingEnabled object` + - `type: optional "system_actor"` - The Claude.ai chat sharing setting was changed for the organization. + default: system_actor - - `type: optional "claude_ai_chat_sharing_enabled"` + - `service: optional string or null` - default: claude_ai_chat_sharing_enabled + Name of the automated process that performed the action, when known. - - `current_value: optional boolean or null` + - `AdminAPIKeyActor object` - Setting value immediately after this change + - `type: optional "admin_api_key_actor"` - - `previous_value: optional boolean or null` + default: admin_api_key_actor - Setting value immediately before this change + - `admin_api_key_id: string` - - `ClaudeAICcrSharingEnabled object` + - `ip_address: string` - The Claude.ai remote Claude Code session sharing setting was changed for the organization. + - `user_agent: string` - - `type: optional "claude_ai_ccr_sharing_enabled"` + - `ServiceAccountActor object` - default: claude_ai_ccr_sharing_enabled + - `type: optional "service_account_actor"` - - `current_value: optional boolean or null` + default: service_account_actor - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `service_account_id: string` - Setting value immediately before this change + - `user_agent: string` - - `ClaudeAICcrSupportSharingEnabled object` + - `ScimDirectorySyncActor object` - The Anthropic support access setting for Claude Code sessions was changed for the organization. + - `type: optional "scim_directory_sync_actor"` - - `type: optional "claude_ai_ccr_support_sharing_enabled"` + default: scim_directory_sync_actor - default: claude_ai_ccr_support_sharing_enabled + - `directory_id: string` - - `current_value: optional boolean or null` + - `workos_event_id: string` - Setting value immediately after this change + - `idp_connection_type: optional string or null` - - `previous_value: optional boolean or null` + - `FederatedIdentityActor object` - Setting value immediately before this change + A federated external workload authenticated via a verified OIDC token. - - `BatchesDownloadUiVisibility object` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - The batches download UI visibility setting was changed for the organization. + - `type: optional "federated_identity_actor"` - - `type: optional "batches_download_ui_visibility"` + default: federated_identity_actor - default: batches_download_ui_visibility + - `issuer: string` - - `current_value: optional "all" or "none" or "selected" or "unspecified" or null` + - `subject: string` - Setting value immediately after this change + - `audience: optional array of string` - - `"all"` + - `ip_address: optional string or null` - - `"none"` + - `user_agent: optional string or null` - - `"selected"` + - `FederatedActor object` - - `"unspecified"` + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `previous_value: optional "all" or "none" or "selected" or "unspecified" or null` + - `type: optional "federated_actor"` - Setting value immediately before this change + default: federated_actor - - `"all"` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - `"none"` + - `FederatedActorAwsProvider object` - - `"selected"` + Asserting party: the AWS account the organization is bound to. - - `"unspecified"` + - `type: optional "aws"` - - `AllowedInviteDomains object` + default: aws - The allowed invite domains setting was changed for the organization. + - `account_id: string` - - `type: optional "allowed_invite_domains"` + - `signed_principal: string` - default: allowed_invite_domains + The AWS-signed ARN of the IAM principal that requested the token. - - `current_value: optional array of string or null` + - `FederatedActorAzureProvider object` - Setting value immediately after this change + Asserting party: the Azure subscription the organization is bound to. - - `previous_value: optional array of string or null` + - `type: optional "azure"` - Setting value immediately before this change + default: azure - - `WebSearchAPISettings object` + - `subscription_id: string` - The web search API setting was changed for the organization. + - `FederatedActorGcpProvider object` - - `type: optional "web_search_api_settings"` + Asserting party: the GCP project the organization is bound to. - default: web_search_api_settings + - `type: optional "gcp"` - - `current_value: optional object or null` + default: gcp - Setting value immediately after this change + - `project_number: string` - - `domain_filters: object or null` + - `FederatedActorOidcProvider object` - Allowed/blocked domain filters shared by web_search and web_fetch tools. + Asserting party: a customer-registered OIDC federation issuer. - - `allowed_domains: optional array of string or null` + - `type: optional "oidc"` - - `blocked_domains: optional array of string or null` + default: oidc - - `is_enabled: boolean` + - `issuer: optional string or null` - - `previous_value: optional object or null` + The federation issuer's URL. Null when the presented credential failed verification. - Setting value immediately before this change + - `ip_address: optional string or null` - - `domain_filters: object or null` + - `subject: optional string or null` - Allowed/blocked domain filters shared by web_search and web_fetch tools. + The provider's verified identifier for the caller; its form depends on the provider. - - `allowed_domains: optional array of string or null` + - `user_agent: optional string or null` - - `blocked_domains: optional array of string or null` + - `AttestedDeviceActor object` - - `is_enabled: boolean` + An attested mobile device authenticated via Apple App Attest. - - `WebFetchAPISettings object` + - `type: optional "attested_device_actor"` - The web fetch API setting was changed for the organization. + default: attested_device_actor - - `type: optional "web_fetch_api_settings"` + - `external_client_id: string` - default: web_fetch_api_settings + - `kid_hash: string` - - `current_value: optional object or null` + - `ip_address: optional string or null` - Setting value immediately after this change + - `user_agent: optional string or null` - - `domain_filters: object or null` + - `agent_id: string` - Allowed/blocked domain filters shared by web_search and web_fetch tools. + The agent that was created, e.g. "agent_01HX...". - - `allowed_domains: optional array of string or null` + - `id: optional string` - - `blocked_domains: optional array of string or null` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `is_enabled: boolean` + - `created_at: optional string` - - `previous_value: optional object or null` + When this activity occurred. - Setting value immediately before this change + format: date-time - - `domain_filters: object or null` + - `organization_id: optional string or null` - Allowed/blocked domain filters shared by web_search and web_fetch tools. + Organization ID this activity is associated with - - `allowed_domains: optional array of string or null` + - `organization_uuid: optional string or null` - - `blocked_domains: optional array of string or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `is_enabled: boolean` + - `workspace_id: optional string or null` - - `DefaultWorkspaceSettings object` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - The default workspace setting was changed for the organization. + - `PlatformAgentDeleted object` - - `type: optional "default_workspace_settings"` + An agent was deleted from the API platform. - default: default_workspace_settings + - `type: optional "platform_agent_deleted"` - - `current_value: optional object or null` + default: platform_agent_deleted - Setting value immediately after this change + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `enable_api_keys: optional boolean` + - `APIActor object` - default: true + - `type: optional "api_actor"` - - `previous_value: optional object or null` + default: api_actor - Setting value immediately before this change + - `api_key_id: string` - - `enable_api_keys: optional boolean` + - `ip_address: string` - default: true + - `user_agent: string` - - `BatchesDownloadUiEnabledWorkspaceIDs object` + - `UserActor object` - The batches download UI enabled workspace IDs setting was changed for the organization. + - `type: optional "user_actor"` - - `type: optional "batches_download_ui_enabled_workspace_ids"` + default: user_actor - default: batches_download_ui_enabled_workspace_ids + - `email_address: string` - - `current_value: optional array of string or null` + format: email - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional array of string or null` + - `user_agent: string` - Setting value immediately before this change + - `user_id: string` - - `ClaudeCodeManagedSettings object` + - `UnauthenticatedUserActor object` - The organization's Claude Code managed settings were changed. + - `type: optional "unauthenticated_user_actor"` - The full previous and current settings content is provided in the - `previous_value` and `current_value` fields. + default: unauthenticated_user_actor - - `type: optional "claude_code_managed_settings"` + - `ip_address: string` - default: claude_code_managed_settings + - `user_agent: string` - - `current_value: optional map[unknown] or null` + - `unauthenticated_email_address: optional string or null` - - `current_version: optional number or null` + format: email - - `previous_value: optional map[unknown] or null` + - `AnthropicActor object` - - `previous_version: optional number or null` + - `type: optional "anthropic_actor"` - - `settings_uuid: optional string or null` + default: anthropic_actor - - `AccountSessionDurationSeconds object` + - `email_address: optional string or null` - Tracks changes to the enterprise account session duration setting (in seconds). + format: email - - `type: optional "account_session_duration_seconds"` + - `SystemActor object` - default: account_session_duration_seconds + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `current_value: optional number or null` + - `type: optional "system_actor"` - Setting value immediately after this change + default: system_actor - - `previous_value: optional number or null` + - `service: optional string or null` - Setting value immediately before this change + Name of the automated process that performed the action, when known. - - `VcsConnections object` + - `AdminAPIKeyActor object` - Tracks changes to VCS (GitHub, etc.) organization connections. + - `type: optional "admin_api_key_actor"` - - `type: optional "vcs_connections"` + default: admin_api_key_actor - default: vcs_connections + - `admin_api_key_id: string` - - `current_value: optional array of object or null` + - `ip_address: string` - Setting value immediately after this change + - `user_agent: string` - - `type: "github"` + - `ServiceAccountActor object` - Supported Version Control System providers. + - `type: optional "service_account_actor"` - - `org_name: string` + default: service_account_actor - - `metadata: optional map[string] or null` + - `ip_address: string` - - `org_id: optional string or null` + - `service_account_id: string` - - `previous_value: optional array of object or null` + - `user_agent: string` - Setting value immediately before this change + - `ScimDirectorySyncActor object` - - `type: "github"` + - `type: optional "scim_directory_sync_actor"` - Supported Version Control System providers. + default: scim_directory_sync_actor - - `org_name: string` + - `directory_id: string` - - `metadata: optional map[string] or null` + - `workos_event_id: string` - - `org_id: optional string or null` + - `idp_connection_type: optional string or null` - - `DisabledAdminRequestTypes object` + - `FederatedIdentityActor object` - Tracks changes to which admin request types are disabled. + A federated external workload authenticated via a verified OIDC token. - - `type: optional "disabled_admin_request_types"` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - default: disabled_admin_request_types + - `type: optional "federated_identity_actor"` - - `current_value: optional array of string or null` + default: federated_identity_actor - Setting value immediately after this change + - `issuer: string` - - `previous_value: optional array of string or null` + - `subject: string` - Setting value immediately before this change + - `audience: optional array of string` - - `MemberUsageDashboardVisible object` + - `ip_address: optional string or null` - The member usage dashboard visibility setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "member_usage_dashboard_visible"` + - `FederatedActor object` - default: member_usage_dashboard_visible + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `current_value: optional boolean or null` + - `type: optional "federated_actor"` - Setting value immediately after this change + default: federated_actor - - `previous_value: optional boolean or null` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - Setting value immediately before this change + - `FederatedActorAwsProvider object` - - `CodeExecutionNetworkEgressEnabled object` + Asserting party: the AWS account the organization is bound to. - The code execution network egress setting was changed for the organization. + - `type: optional "aws"` - - `type: optional "code_execution_network_egress_enabled"` + default: aws - default: code_execution_network_egress_enabled + - `account_id: string` - - `current_value: optional boolean or null` + - `signed_principal: string` - Setting value immediately after this change + The AWS-signed ARN of the IAM principal that requested the token. - - `previous_value: optional boolean or null` + - `FederatedActorAzureProvider object` - Setting value immediately before this change + Asserting party: the Azure subscription the organization is bound to. - - `CodeExecutionDomainAllowlistChanged object` + - `type: optional "azure"` - The code execution domain allowlist setting was changed for the organization. + default: azure - - `type: optional "code_execution_domain_allowlist_changed"` + - `subscription_id: string` - default: code_execution_domain_allowlist_changed + - `FederatedActorGcpProvider object` - - `current_value: optional array of string or null` + Asserting party: the GCP project the organization is bound to. - Setting value immediately after this change + - `type: optional "gcp"` - - `previous_value: optional array of string or null` + default: gcp - Setting value immediately before this change + - `project_number: string` - - `CodeExecutionDomainAllowlistTemplateChanged object` + - `FederatedActorOidcProvider object` - The code execution domain allowlist template setting was changed for the organization. + Asserting party: a customer-registered OIDC federation issuer. - - `type: optional "code_execution_domain_allowlist_template_changed"` + - `type: optional "oidc"` - default: code_execution_domain_allowlist_template_changed + default: oidc - - `current_value: optional "custom" or "full_egress" or "package_managers" or "unspecified" or null` + - `issuer: optional string or null` - Setting value immediately after this change + The federation issuer's URL. Null when the presented credential failed verification. - - `"custom"` + - `ip_address: optional string or null` - - `"full_egress"` + - `subject: optional string or null` - - `"package_managers"` + The provider's verified identifier for the caller; its form depends on the provider. - - `"unspecified"` + - `user_agent: optional string or null` - - `previous_value: optional "custom" or "full_egress" or "package_managers" or "unspecified" or null` + - `AttestedDeviceActor object` - Setting value immediately before this change + An attested mobile device authenticated via Apple App Attest. - - `"custom"` + - `type: optional "attested_device_actor"` - - `"full_egress"` + default: attested_device_actor - - `"package_managers"` + - `external_client_id: string` - - `"unspecified"` + - `kid_hash: string` - - `ChatEnabled object` + - `ip_address: optional string or null` - The chat setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "chat_enabled"` + - `agent_id: string` - default: chat_enabled + The agent that was deleted, e.g. "agent_01HX...". - - `current_value: optional boolean or null` + - `id: optional string` - Setting value immediately after this change + Unique identifier for the activity e.g. 'activity_abcd1234' - - `previous_value: optional boolean or null` + - `created_at: optional string` - Setting value immediately before this change + When this activity occurred. - - `ClaudeCodeQuickWebSetupEnabled object` + format: date-time - The Claude Code quick web setup setting was changed for the organization. + - `organization_id: optional string or null` - - `type: optional "claude_code_quick_web_setup_enabled"` + Organization ID this activity is associated with - default: claude_code_quick_web_setup_enabled + - `organization_uuid: optional string or null` - - `current_value: optional boolean or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - Setting value immediately after this change + - `workspace_id: optional string or null` - - `previous_value: optional boolean or null` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - Setting value immediately before this change + - `PlatformAgentDeploymentArchived object` - - `ClaudeCodeTeamMemoryMode object` + An agent deployment was archived on the API platform. - The Claude Code team memory mode setting was changed for the organization. + - `type: optional "platform_agent_deployment_archived"` - - `type: optional "claude_code_team_memory_mode"` + default: platform_agent_deployment_archived - default: claude_code_team_memory_mode + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `current_value: optional "all_org_members" or "github_repo" or "off" or 2 more or null` + - `APIActor object` - Setting value immediately after this change + - `type: optional "api_actor"` - - `"all_org_members"` + default: api_actor - - `"github_repo"` + - `api_key_id: string` - - `"off"` + - `ip_address: string` - - `"specific_groups"` + - `user_agent: string` - - `"unspecified"` + - `UserActor object` - - `previous_value: optional "all_org_members" or "github_repo" or "off" or 2 more or null` + - `type: optional "user_actor"` - Setting value immediately before this change + default: user_actor - - `"all_org_members"` + - `email_address: string` - - `"github_repo"` + format: email - - `"off"` + - `ip_address: string` - - `"specific_groups"` + - `user_agent: string` - - `"unspecified"` + - `user_id: string` - - `BrowserExtensionSettings object` + - `UnauthenticatedUserActor object` - The browser extension setting was changed for the organization. + - `type: optional "unauthenticated_user_actor"` - - `type: optional "browser_extension_settings"` + default: unauthenticated_user_actor - default: browser_extension_settings + - `ip_address: string` - - `current_value: optional map[unknown] or null` + - `user_agent: string` - Setting value immediately after this change + - `unauthenticated_email_address: optional string or null` - - `previous_value: optional map[unknown] or null` + format: email - Setting value immediately before this change + - `AnthropicActor object` - - `IsDesktopExtensionAllowlistEnabled object` + - `type: optional "anthropic_actor"` - The desktop extension allowlist setting was changed for the organization. + default: anthropic_actor - - `type: optional "is_desktop_extension_allowlist_enabled"` + - `email_address: optional string or null` - default: is_desktop_extension_allowlist_enabled + format: email - - `current_value: optional boolean or null` + - `SystemActor object` - Setting value immediately after this change + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `previous_value: optional boolean or null` + - `type: optional "system_actor"` - Setting value immediately before this change + default: system_actor - - `AllowMemberDataExport object` + - `service: optional string or null` - The per-member self-serve data export setting was changed for the organization. + Name of the automated process that performed the action, when known. - - `type: optional "allow_member_data_export"` + - `AdminAPIKeyActor object` - default: allow_member_data_export + - `type: optional "admin_api_key_actor"` - - `current_value: optional boolean or null` + default: admin_api_key_actor - Setting value immediately after this change + - `admin_api_key_id: string` - - `previous_value: optional boolean or null` + - `ip_address: string` - Setting value immediately before this change + - `user_agent: string` - - `ClaudeAIDesignEnabled object` + - `ServiceAccountActor object` - The Claude Design setting was changed for the organization. + - `type: optional "service_account_actor"` - - `type: optional "claude_ai_design_enabled"` + default: service_account_actor - default: claude_ai_design_enabled + - `ip_address: string` - - `current_value: optional boolean or null` + - `service_account_id: string` - Setting value immediately after this change + - `user_agent: string` - - `previous_value: optional boolean or null` + - `ScimDirectorySyncActor object` - Setting value immediately before this change + - `type: optional "scim_directory_sync_actor"` - - `ClaudeScienceEnabled object` + default: scim_directory_sync_actor - The setting that turns Claude Science on or off for the organization was changed. + - `directory_id: string` - - `type: optional "claude_science_enabled"` + - `workos_event_id: string` - default: claude_science_enabled + - `idp_connection_type: optional string or null` - - `current_value: optional boolean or null` + - `FederatedIdentityActor object` - Setting value immediately after this change + A federated external workload authenticated via a verified OIDC token. - - `previous_value: optional boolean or null` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - Setting value immediately before this change + - `type: optional "federated_identity_actor"` - - `ClaudeScienceMemoryEnabled object` + default: federated_identity_actor - The Claude Science memory setting was changed for the organization. + - `issuer: string` - - `type: optional "claude_science_memory_enabled"` + - `subject: string` - default: claude_science_memory_enabled + - `audience: optional array of string` - - `current_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately after this change + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc - - `previous_value: optional boolean or null` + - `issuer: optional string or null` - Setting value immediately before this change + The federation issuer's URL. Null when the presented credential failed verification. - - `ClaudeScienceCustomConnectorsEnabled object` + - `ip_address: optional string or null` - The Claude Science custom connectors setting was changed for the organization. + - `subject: optional string or null` - - `type: optional "claude_science_custom_connectors_enabled"` + The provider's verified identifier for the caller; its form depends on the provider. - default: claude_science_custom_connectors_enabled + - `user_agent: optional string or null` - - `current_value: optional boolean or null` + - `AttestedDeviceActor object` - Setting value immediately after this change + An attested mobile device authenticated via Apple App Attest. - - `previous_value: optional boolean or null` + - `type: optional "attested_device_actor"` - Setting value immediately before this change + default: attested_device_actor - - `ClaudeScienceCustomSkillsEnabled object` + - `external_client_id: string` - The Claude Science custom skills setting was changed for the organization. + - `kid_hash: string` - - `type: optional "claude_science_custom_skills_enabled"` + - `ip_address: optional string or null` - default: claude_science_custom_skills_enabled + - `user_agent: optional string or null` - - `current_value: optional boolean or null` + - `deployment_id: string` - Setting value immediately after this change + The agent deployment that was archived, e.g. "depl_01HX...". - - `previous_value: optional boolean or null` + - `id: optional string` - Setting value immediately before this change + Unique identifier for the activity e.g. 'activity_abcd1234' - - `ClaudeScienceManagedNetworkAllowlistEnabled object` + - `created_at: optional string` - The Claude Science setting that puts the network allowlist under the organization's management, instead of each member managing their own, was changed for the organization. + When this activity occurred. - - `type: optional "claude_science_managed_network_allowlist_enabled"` + format: date-time - default: claude_science_managed_network_allowlist_enabled + - `organization_id: optional string or null` - - `current_value: optional boolean or null` + Organization ID this activity is associated with - Setting value immediately after this change + - `organization_uuid: optional string or null` - - `previous_value: optional boolean or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - Setting value immediately before this change + - `workspace_id: optional string or null` - - `ClaudeScienceSSHHostsEnabled object` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - The Claude Science SSH hosts setting was changed for the organization. + - `PlatformAgentDeploymentCreated object` - - `type: optional "claude_science_ssh_hosts_enabled"` + An agent deployment was created on the API platform. - default: claude_science_ssh_hosts_enabled + - `type: optional "platform_agent_deployment_created"` - - `current_value: optional boolean or null` + default: platform_agent_deployment_created - Setting value immediately after this change + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `previous_value: optional boolean or null` + - `APIActor object` - Setting value immediately before this change + - `type: optional "api_actor"` - - `ClaudeScienceModalEnabled object` + default: api_actor - The Claude Science setting that lets members connect Modal cloud compute was changed for the organization. + - `api_key_id: string` - - `type: optional "claude_science_modal_enabled"` + - `ip_address: string` - default: claude_science_modal_enabled + - `user_agent: string` - - `current_value: optional boolean or null` + - `UserActor object` - Setting value immediately after this change + - `type: optional "user_actor"` - - `previous_value: optional boolean or null` + default: user_actor - Setting value immediately before this change + - `email_address: string` - - `ClaudeScienceScientificModelEndpointsEnabled object` + format: email - The Claude Science scientific model endpoints setting was changed for the organization. + - `ip_address: string` - - `type: optional "claude_science_scientific_model_endpoints_enabled"` + - `user_agent: string` - default: claude_science_scientific_model_endpoints_enabled + - `user_id: string` - - `current_value: optional boolean or null` + - `UnauthenticatedUserActor object` - Setting value immediately after this change + - `type: optional "unauthenticated_user_actor"` - - `previous_value: optional boolean or null` + default: unauthenticated_user_actor - Setting value immediately before this change + - `ip_address: string` - - `ClaudeScienceNetworkAllowlistChanged object` + - `user_agent: string` - The hostnames on the organization's Claude Science network allowlist, which applies to members while the organization manages the allowlist, were changed. + - `unauthenticated_email_address: optional string or null` - - `type: optional "claude_science_network_allowlist_changed"` + format: email - default: claude_science_network_allowlist_changed + - `AnthropicActor object` - - `current_value: optional array of string or null` + - `type: optional "anthropic_actor"` - Setting value immediately after this change: the organization's complete saved allowlist (built-in and custom domains alike) as lowercase hostnames, each optionally prefixed with '*.'. Null means no list is saved (this change reset it), so Claude Science's built-in allowlist applies; an empty list means a list with no domains on it is saved. + default: anthropic_actor - - `previous_value: optional array of string or null` + - `email_address: optional string or null` - Setting value immediately before this change: the organization's complete saved allowlist (built-in and custom domains alike) as lowercase hostnames, each optionally prefixed with '*.'. Null means no list was saved at that point (never saved, or since reset), so Claude Science's built-in allowlist applied; an empty list means a list with no domains on it had been saved. + format: email - - `ClaudeScienceModalWorkspaceAllowlistChanged object` + - `SystemActor object` - The Claude Science Modal cloud compute workspace allowlist setting was changed for the organization. + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `type: optional "claude_science_modal_workspace_allowlist_changed"` + - `type: optional "system_actor"` - default: claude_science_modal_workspace_allowlist_changed + default: system_actor - - `current_value: optional array of string or null` + - `service: optional string or null` - Setting value immediately after this change: the Modal workspace names members can connect to. Null or an empty list means any workspace is allowed. + Name of the automated process that performed the action, when known. - - `previous_value: optional array of string or null` + - `AdminAPIKeyActor object` - Setting value immediately before this change: the Modal workspace names members could connect to. Null or an empty list means any workspace was allowed. + - `type: optional "admin_api_key_actor"` - - `ClaudeSciencePackageMirrorCondaChannelChanged object` + default: admin_api_key_actor - The Claude Science package mirror setting for the conda channel was changed for the organization. + - `admin_api_key_id: string` - - `type: optional "claude_science_package_mirror_conda_channel_changed"` + - `ip_address: string` - default: claude_science_package_mirror_conda_channel_changed + - `user_agent: string` - - `current_value: optional string or null` + - `ServiceAccountActor object` - Setting value immediately after this change: the HTTPS URL of the organization's conda channel mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none is set. + - `type: optional "service_account_actor"` - - `previous_value: optional string or null` + default: service_account_actor - Setting value immediately before this change: the HTTPS URL of the organization's conda channel mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none was set. + - `ip_address: string` - - `ClaudeSciencePackageMirrorPipIndexChanged object` + - `service_account_id: string` - The Claude Science package mirror setting for the Python package index was changed for the organization. + - `user_agent: string` - - `type: optional "claude_science_package_mirror_pip_index_changed"` + - `ScimDirectorySyncActor object` - default: claude_science_package_mirror_pip_index_changed + - `type: optional "scim_directory_sync_actor"` - - `current_value: optional string or null` + default: scim_directory_sync_actor - Setting value immediately after this change: the HTTPS URL of the organization's Python (pip) package index mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none is set. + - `directory_id: string` - - `previous_value: optional string or null` + - `workos_event_id: string` - Setting value immediately before this change: the HTTPS URL of the organization's Python (pip) package index mirror, as saved (scheme, host, any non-default port, and path; the setting does not accept a username or password, a query string or a fragment in the URL). Null means none was set. + - `idp_connection_type: optional string or null` - - `ClaudeAISkillPluginsScanningEnabled object` + - `FederatedIdentityActor object` - The skill and plugin security scanning setting was changed for the organization. + A federated external workload authenticated via a verified OIDC token. - - `type: optional "claude_ai_skill_plugins_scanning_enabled"` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - default: claude_ai_skill_plugins_scanning_enabled + - `type: optional "federated_identity_actor"` - - `current_value: optional boolean or null` + default: federated_identity_actor - Setting value immediately after this change + - `issuer: string` - - `previous_value: optional boolean or null` + - `subject: string` - Setting value immediately before this change + - `audience: optional array of string` - - `ArtifactPublishingEnabled object` + - `ip_address: optional string or null` - The Artifact publishing setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "artifact_publishing_enabled"` + - `FederatedActor object` - default: artifact_publishing_enabled + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `current_value: optional boolean or null` + - `type: optional "federated_actor"` - Setting value immediately after this change + default: federated_actor - - `previous_value: optional boolean or null` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - Setting value immediately before this change + - `FederatedActorAwsProvider object` - - `ArtifactExternalSharingEnabled object` + Asserting party: the AWS account the organization is bound to. - The Artifact external sharing setting was changed for the organization. + - `type: optional "aws"` - - `type: optional "artifact_external_sharing_enabled"` + default: aws - default: artifact_external_sharing_enabled + - `account_id: string` - - `current_value: optional boolean or null` + - `signed_principal: string` - Setting value immediately after this change + The AWS-signed ARN of the IAM principal that requested the token. - - `previous_value: optional boolean or null` + - `FederatedActorAzureProvider object` - Setting value immediately before this change + Asserting party: the Azure subscription the organization is bound to. - - `ArtifactPresenceEnabled object` + - `type: optional "azure"` - The Artifact presence setting was changed for the organization. + default: azure - - `type: optional "artifact_presence_enabled"` + - `subscription_id: string` - default: artifact_presence_enabled + - `FederatedActorGcpProvider object` - - `current_value: optional boolean or null` + Asserting party: the GCP project the organization is bound to. - Setting value immediately after this change + - `type: optional "gcp"` - - `previous_value: optional boolean or null` + default: gcp - Setting value immediately before this change + - `project_number: string` - - `ClaudeAISkillSharingEnabled object` + - `FederatedActorOidcProvider object` - The Claude.ai skill sharing setting was changed for the organization. + Asserting party: a customer-registered OIDC federation issuer. - - `type: optional "claude_ai_skill_sharing_enabled"` + - `type: optional "oidc"` - default: claude_ai_skill_sharing_enabled + default: oidc - - `current_value: optional boolean or null` + - `issuer: optional string or null` - Setting value immediately after this change + The federation issuer's URL. Null when the presented credential failed verification. - - `previous_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately before this change + - `subject: optional string or null` - - `ClaudeAISkillSharingOrgEnabled object` + The provider's verified identifier for the caller; its form depends on the provider. - The Claude.ai organization-wide skill sharing setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "claude_ai_skill_sharing_org_enabled"` + - `AttestedDeviceActor object` - default: claude_ai_skill_sharing_org_enabled + An attested mobile device authenticated via Apple App Attest. - - `current_value: optional boolean or null` + - `type: optional "attested_device_actor"` - Setting value immediately after this change + default: attested_device_actor - - `previous_value: optional boolean or null` + - `external_client_id: string` - Setting value immediately before this change + - `kid_hash: string` - - `ClaudeAISkillSharingGroupEnabled object` + - `ip_address: optional string or null` - The Claude.ai group-based skill sharing setting was changed for the organization. + - `user_agent: optional string or null` - - `type: optional "claude_ai_skill_sharing_group_enabled"` + - `deployment_id: string` - default: claude_ai_skill_sharing_group_enabled + The agent deployment that was created, e.g. "depl_01HX...". - - `current_value: optional boolean or null` + - `id: optional string` - Setting value immediately after this change + Unique identifier for the activity e.g. 'activity_abcd1234' - - `previous_value: optional boolean or null` + - `created_at: optional string` - Setting value immediately before this change + When this activity occurred. - - `ClaudeAISkillPublishPolicy object` + format: date-time - The Claude.ai organization skill publish policy was changed for the organization. + - `organization_id: optional string or null` - - `type: optional "claude_ai_skill_publish_policy"` + Organization ID this activity is associated with - default: claude_ai_skill_publish_policy + - `organization_uuid: optional string or null` - - `current_value: optional "off" or "open" or "review" or "unspecified" or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - Setting value immediately after this change + - `workspace_id: optional string or null` - - `"off"` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `"open"` + - `PlatformAgentDeploymentDeleted object` - - `"review"` + An agent deployment was deleted from the API platform. - - `"unspecified"` + - `type: optional "platform_agent_deployment_deleted"` - - `previous_value: optional "off" or "open" or "review" or "unspecified" or null` + default: platform_agent_deployment_deleted - Setting value immediately before this change + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `"off"` + - `APIActor object` - - `"open"` + - `type: optional "api_actor"` - - `"review"` + default: api_actor - - `"unspecified"` + - `api_key_id: string` - - `ClaudeCodeRemoteControlEnabled object` + - `ip_address: string` - The Claude Code remote control setting was changed for the organization. + - `user_agent: string` - - `type: optional "claude_code_remote_control_enabled"` + - `UserActor object` - default: claude_code_remote_control_enabled + - `type: optional "user_actor"` - - `current_value: optional boolean or null` + default: user_actor - Setting value immediately after this change + - `email_address: string` - - `previous_value: optional boolean or null` + format: email - Setting value immediately before this change + - `ip_address: string` - - `ClaudeCodeRemoteControlDefaultEnabled object` + - `user_agent: string` - The Claude Code remote control auto-enable default was changed for the organization. + - `user_id: string` - - `type: optional "claude_code_remote_control_default_enabled"` + - `UnauthenticatedUserActor object` - default: claude_code_remote_control_default_enabled + - `type: optional "unauthenticated_user_actor"` - - `current_value: optional boolean or null` + default: unauthenticated_user_actor - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `user_agent: string` - Setting value immediately before this change + - `unauthenticated_email_address: optional string or null` - - `ClaudeCodeRoutinesEnabled object` + format: email - The Claude Code routines setting was changed for the organization. + - `AnthropicActor object` - - `type: optional "claude_code_routines_enabled"` + - `type: optional "anthropic_actor"` - default: claude_code_routines_enabled + default: anthropic_actor - - `current_value: optional boolean or null` + - `email_address: optional string or null` - Setting value immediately after this change + format: email - - `previous_value: optional boolean or null` + - `SystemActor object` - Setting value immediately before this change + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `ClaudeCodeWorkflowsEnabled object` + - `type: optional "system_actor"` - The Claude Code Workflows setting was changed for the organization. + default: system_actor - - `type: optional "claude_code_workflows_enabled"` + - `service: optional string or null` - default: claude_code_workflows_enabled + Name of the automated process that performed the action, when known. - - `current_value: optional boolean or null` + - `AdminAPIKeyActor object` - Setting value immediately after this change + - `type: optional "admin_api_key_actor"` - - `previous_value: optional boolean or null` + default: admin_api_key_actor - Setting value immediately before this change + - `admin_api_key_id: string` - - `FrontierServicesDataUseEnabled object` + - `ip_address: string` - The frontier services data use setting was changed for the organization. + - `user_agent: string` - - `type: optional "frontier_services_data_use_enabled"` + - `ServiceAccountActor object` - default: frontier_services_data_use_enabled + - `type: optional "service_account_actor"` - - `current_value: optional boolean or null` + default: service_account_actor - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `service_account_id: string` - Setting value immediately before this change + - `user_agent: string` - - `LtiCourseProjectsEnabled object` + - `ScimDirectorySyncActor object` - The LTI course projects setting was changed for the organization. + - `type: optional "scim_directory_sync_actor"` - - `type: optional "lti_course_projects_enabled"` + default: scim_directory_sync_actor - default: lti_course_projects_enabled + - `directory_id: string` - - `current_value: optional boolean or null` + - `workos_event_id: string` - Setting value immediately after this change + - `idp_connection_type: optional string or null` - - `previous_value: optional boolean or null` + - `FederatedIdentityActor object` - Setting value immediately before this change + A federated external workload authenticated via a verified OIDC token. - - `ClaudeAISkillCreationEnabled object` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - The Claude.ai skill creation setting was changed for the organization. + - `type: optional "federated_identity_actor"` - - `type: optional "claude_ai_skill_creation_enabled"` + default: federated_identity_actor - default: claude_ai_skill_creation_enabled + - `issuer: string` - - `current_value: optional boolean or null` + - `subject: string` - Setting value immediately after this change + - `audience: optional array of string` - - `previous_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately before this change + - `user_agent: optional string or null` - - `ClaudeCodeGitHubAnalyticsEnabled object` + - `FederatedActor object` - The Claude Code GitHub analytics setting was changed for the organization. + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `type: optional "claude_code_github_analytics_enabled"` + - `type: optional "federated_actor"` - default: claude_code_github_analytics_enabled + default: federated_actor - - `current_value: optional boolean or null` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - Setting value immediately after this change + - `FederatedActorAwsProvider object` - - `previous_value: optional boolean or null` + Asserting party: the AWS account the organization is bound to. - Setting value immediately before this change + - `type: optional "aws"` - - `ClaudeCodeHideManagedEnvironments object` + default: aws - The Claude Code hide managed environments setting was changed for the organization. + - `account_id: string` - - `type: optional "claude_code_hide_managed_environments"` + - `signed_principal: string` - default: claude_code_hide_managed_environments + The AWS-signed ARN of the IAM principal that requested the token. - - `current_value: optional boolean or null` + - `FederatedActorAzureProvider object` - Setting value immediately after this change + Asserting party: the Azure subscription the organization is bound to. - - `previous_value: optional boolean or null` + - `type: optional "azure"` - Setting value immediately before this change + default: azure - - `ClaudeCodeAllowSessionPoolMoves object` + - `subscription_id: string` - The Claude Code allow session pool moves setting was changed for the organization. + - `FederatedActorGcpProvider object` - - `type: optional "claude_code_allow_session_pool_moves"` + Asserting party: the GCP project the organization is bound to. - default: claude_code_allow_session_pool_moves + - `type: optional "gcp"` - - `current_value: optional boolean or null` + default: gcp - Setting value immediately after this change + - `project_number: string` - - `previous_value: optional boolean or null` + - `FederatedActorOidcProvider object` - Setting value immediately before this change + Asserting party: a customer-registered OIDC federation issuer. - - `ClaudeCodeDisableAnthropicCompute object` + - `type: optional "oidc"` - The Claude Code disable Anthropic compute setting was changed for the organization. + default: oidc - - `type: optional "claude_code_disable_anthropic_compute"` + - `issuer: optional string or null` - default: claude_code_disable_anthropic_compute + The federation issuer's URL. Null when the presented credential failed verification. - - `current_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately after this change + - `subject: optional string or null` - - `previous_value: optional boolean or null` + The provider's verified identifier for the caller; its form depends on the provider. - Setting value immediately before this change + - `user_agent: optional string or null` - - `ClaudeCodeMetricsLoggingEnabled object` + - `AttestedDeviceActor object` - The Claude Code metrics logging setting was changed for the organization. + An attested mobile device authenticated via Apple App Attest. - - `type: optional "claude_code_metrics_logging_enabled"` + - `type: optional "attested_device_actor"` - default: claude_code_metrics_logging_enabled + default: attested_device_actor - - `current_value: optional boolean or null` + - `external_client_id: string` - Setting value immediately after this change + - `kid_hash: string` - - `previous_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately before this change + - `user_agent: optional string or null` - - `ClaudeCodeFastModeEnabled object` + - `deployment_id: string` - The Claude Code fast mode setting was changed for the organization. + The agent deployment that was deleted, e.g. "depl_01HX...". - - `type: optional "claude_code_fast_mode_enabled"` + - `id: optional string` - default: claude_code_fast_mode_enabled + Unique identifier for the activity e.g. 'activity_abcd1234' - - `current_value: optional boolean or null` + - `created_at: optional string` - Setting value immediately after this change + When this activity occurred. - - `previous_value: optional boolean or null` + format: date-time - Setting value immediately before this change + - `organization_id: optional string or null` - - `ClaudeCodeTrustedDevicesRequired object` + Organization ID this activity is associated with - The Claude Code trusted devices setting was changed for the organization. + - `organization_uuid: optional string or null` - - `type: optional "claude_code_trusted_devices_required"` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - default: claude_code_trusted_devices_required + - `workspace_id: optional string or null` - - `current_value: optional boolean or null` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - Setting value immediately after this change + - `PlatformAgentDeploymentPaused object` - - `previous_value: optional boolean or null` + An agent deployment was paused on the API platform. - Setting value immediately before this change + - `type: optional "platform_agent_deployment_paused"` - - `CoworkTrustedDevicesRequired object` + default: platform_agent_deployment_paused - The Cowork trusted devices enforcement setting was changed for the organization. + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `type: optional "cowork_trusted_devices_required"` + - `APIActor object` - default: cowork_trusted_devices_required + - `type: optional "api_actor"` - - `current_value: optional boolean or null` + default: api_actor - Setting value immediately after this change + - `api_key_id: string` - - `previous_value: optional boolean or null` + - `ip_address: string` - Setting value immediately before this change + - `user_agent: string` - - `InlineVisualizationsEnabled object` + - `UserActor object` - The inline visualizations setting was changed for the organization. + - `type: optional "user_actor"` - - `type: optional "inline_visualizations_enabled"` + default: user_actor - default: inline_visualizations_enabled + - `email_address: string` - - `current_value: optional boolean or null` + format: email - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `user_agent: string` - Setting value immediately before this change + - `user_id: string` - - `OrganizationBannerSettings object` + - `UnauthenticatedUserActor object` - The organization banner setting was changed. + - `type: optional "unauthenticated_user_actor"` - - `type: optional "organization_banner_settings"` + default: unauthenticated_user_actor - default: organization_banner_settings + - `ip_address: string` - - `current_value: optional map[unknown] or null` + - `user_agent: string` - Setting value immediately after this change + - `unauthenticated_email_address: optional string or null` - - `previous_value: optional map[unknown] or null` + format: email - Setting value immediately before this change + - `AnthropicActor object` - - `ClaudeInSlackSettings object` + - `type: optional "anthropic_actor"` - The Claude in Slack setting was changed for the organization. + default: anthropic_actor - - `type: optional "claude_in_slack_settings"` + - `email_address: optional string or null` - default: claude_in_slack_settings + format: email - - `current_value: optional map[unknown] or null` + - `SystemActor object` - Setting value immediately after this change + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `previous_value: optional map[unknown] or null` + - `type: optional "system_actor"` - Setting value immediately before this change + default: system_actor - - `ClaudeCodeDefaultWorkerEnvironmentID object` + - `service: optional string or null` - The Claude Code default worker environment setting was changed for the organization. + Name of the automated process that performed the action, when known. - - `type: optional "claude_code_default_worker_environment_id"` + - `AdminAPIKeyActor object` - default: claude_code_default_worker_environment_id + - `type: optional "admin_api_key_actor"` - - `current_value: optional string or null` + default: admin_api_key_actor - Setting value immediately after this change + - `admin_api_key_id: string` - - `previous_value: optional string or null` + - `ip_address: string` - Setting value immediately before this change + - `user_agent: string` - - `ClaudeCodeDefaultWorkerPoolID object` + - `ServiceAccountActor object` - The Claude Code default worker pool setting was changed for the organization. + - `type: optional "service_account_actor"` - - `type: optional "claude_code_default_worker_pool_id"` + default: service_account_actor - default: claude_code_default_worker_pool_id + - `ip_address: string` - - `current_value: optional string or null` + - `service_account_id: string` - Setting value immediately after this change + - `user_agent: string` - - `previous_value: optional string or null` + - `ScimDirectorySyncActor object` - Setting value immediately before this change + - `type: optional "scim_directory_sync_actor"` - - `ManagedAgentsEnabled object` + default: scim_directory_sync_actor - The managed agents setting was changed for the organization. + - `directory_id: string` - - `type: optional "managed_agents_enabled"` + - `workos_event_id: string` - default: managed_agents_enabled + - `idp_connection_type: optional string or null` - - `current_value: optional boolean or null` + - `FederatedIdentityActor object` - Setting value immediately after this change + A federated external workload authenticated via a verified OIDC token. - - `previous_value: optional boolean or null` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - Setting value immediately before this change + - `type: optional "federated_identity_actor"` - - `ClaudeScienceFeaturedConnectorsDefaultChanged object` + default: federated_identity_actor - The organization-wide default for Claude Science featured connectors was changed for the organization. + - `issuer: string` - - `type: optional "claude_science_featured_connectors_default_changed"` + - `subject: string` - default: claude_science_featured_connectors_default_changed + - `audience: optional array of string` - - `current_value: optional boolean or null` + - `ip_address: optional string or null` - Setting value immediately after this change: whether featured connectors not set individually are on for members. Null means no organization-wide default is set (this change removed it), so the plan default applies. + - `user_agent: optional string or null` - - `previous_value: optional boolean or null` + - `FederatedActor object` - Setting value immediately before this change: whether featured connectors not set individually were on for members. Null means no organization-wide default was set, so the plan default applied. + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `ClaudeScienceFeaturedConnectorsEnabledListChanged object` + - `type: optional "federated_actor"` - The list of Claude Science featured connectors individually turned on for members was changed for the organization. + default: federated_actor - - `type: optional "claude_science_featured_connectors_enabled_list_changed"` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - default: claude_science_featured_connectors_enabled_list_changed + - `FederatedActorAwsProvider object` - - `current_value: optional array of string or null` + Asserting party: the AWS account the organization is bound to. - Setting value immediately after this change: the ids of the featured connectors individually turned on. Null or an empty list means none. + - `type: optional "aws"` - - `previous_value: optional array of string or null` + default: aws - Setting value immediately before this change: the ids of the featured connectors individually turned on. Null or an empty list means none. + - `account_id: string` - - `ClaudeScienceFeaturedConnectorsDisabledListChanged object` + - `signed_principal: string` - The list of Claude Science featured connectors individually turned off for members was changed for the organization. + The AWS-signed ARN of the IAM principal that requested the token. - - `type: optional "claude_science_featured_connectors_disabled_list_changed"` + - `FederatedActorAzureProvider object` - default: claude_science_featured_connectors_disabled_list_changed + Asserting party: the Azure subscription the organization is bound to. - - `current_value: optional array of string or null` + - `type: optional "azure"` - Setting value immediately after this change: the ids of the featured connectors individually turned off. Null or an empty list means none. + default: azure - - `previous_value: optional array of string or null` + - `subscription_id: string` - Setting value immediately before this change: the ids of the featured connectors individually turned off. Null or an empty list means none. + - `FederatedActorGcpProvider object` - - `ClaudeScienceFeaturedSkillsDefaultChanged object` + Asserting party: the GCP project the organization is bound to. - The organization-wide default for Claude Science featured skills was changed for the organization. + - `type: optional "gcp"` - - `type: optional "claude_science_featured_skills_default_changed"` + default: gcp - default: claude_science_featured_skills_default_changed + - `project_number: string` - - `current_value: optional boolean or null` + - `FederatedActorOidcProvider object` - Setting value immediately after this change: whether featured skills not set individually are on for members. Null means no organization-wide default is set (this change removed it), so the plan default applies. + Asserting party: a customer-registered OIDC federation issuer. - - `previous_value: optional boolean or null` + - `type: optional "oidc"` - Setting value immediately before this change: whether featured skills not set individually were on for members. Null means no organization-wide default was set, so the plan default applied. + default: oidc - - `ClaudeScienceFeaturedSkillsEnabledListChanged object` + - `issuer: optional string or null` - The list of Claude Science featured skills individually turned on for members was changed for the organization. + The federation issuer's URL. Null when the presented credential failed verification. - - `type: optional "claude_science_featured_skills_enabled_list_changed"` + - `ip_address: optional string or null` - default: claude_science_featured_skills_enabled_list_changed + - `subject: optional string or null` - - `current_value: optional array of string or null` + The provider's verified identifier for the caller; its form depends on the provider. - Setting value immediately after this change: the ids of the featured skills individually turned on. Null or an empty list means none. + - `user_agent: optional string or null` - - `previous_value: optional array of string or null` + - `AttestedDeviceActor object` - Setting value immediately before this change: the ids of the featured skills individually turned on. Null or an empty list means none. + An attested mobile device authenticated via Apple App Attest. - - `ClaudeScienceFeaturedSkillsDisabledListChanged object` + - `type: optional "attested_device_actor"` - The list of Claude Science featured skills individually turned off for members was changed for the organization. + default: attested_device_actor - - `type: optional "claude_science_featured_skills_disabled_list_changed"` + - `external_client_id: string` - default: claude_science_featured_skills_disabled_list_changed + - `kid_hash: string` - - `current_value: optional array of string or null` + - `ip_address: optional string or null` - Setting value immediately after this change: the ids of the featured skills individually turned off. Null or an empty list means none. + - `user_agent: optional string or null` - - `previous_value: optional array of string or null` + - `deployment_id: string` - Setting value immediately before this change: the ids of the featured skills individually turned off. Null or an empty list means none. + The agent deployment that was paused, e.g. "depl_01HX...". - - `FilesAPIEnabled object` + - `id: optional string` - The Files API was turned on or off for the organization. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `type: optional "files_api_enabled"` + - `created_at: optional string` - default: files_api_enabled + When this activity occurred. - - `current_value: optional boolean or null` + format: date-time - Setting value immediately after this change + - `organization_id: optional string or null` - - `previous_value: optional boolean or null` + Organization ID this activity is associated with - Setting value immediately before this change + - `organization_uuid: optional string or null` - - `SkillsAPIEnabled object` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - The Skills API was turned on or off for the organization. + - `workspace_id: optional string or null` - - `type: optional "skills_api_enabled"` + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - default: skills_api_enabled + - `PlatformAgentDeploymentRunTriggered object` - - `current_value: optional boolean or null` + An agent deployment was run on demand on the API platform. - Setting value immediately after this change + - `type: optional "platform_agent_deployment_run_triggered"` - - `previous_value: optional boolean or null` + default: platform_agent_deployment_run_triggered - Setting value immediately before this change + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `PasswordManagerIntegrationEnabled object` + - `APIActor object` - The password manager integration setting was changed for the organization. + - `type: optional "api_actor"` - - `type: optional "password_manager_integration_enabled"` + default: api_actor - default: password_manager_integration_enabled + - `api_key_id: string` - - `current_value: optional boolean or null` + - `ip_address: string` - Setting value immediately after this change + - `user_agent: string` - - `previous_value: optional boolean or null` + - `UserActor object` - Setting value immediately before this change + - `type: optional "user_actor"` - - `APIKeyCreationEnabled object` + default: user_actor - The setting that allows members to create new API keys was changed for the organization. + - `email_address: string` - - `type: optional "api_key_creation_enabled"` + format: email - default: api_key_creation_enabled + - `ip_address: string` - - `current_value: optional boolean or null` + - `user_agent: string` - Setting value immediately after this change + - `user_id: string` - - `previous_value: optional boolean or null` + - `UnauthenticatedUserActor object` - Setting value immediately before this change + - `type: optional "unauthenticated_user_actor"` - - `ClaudeAcademyInferenceEnabled object` + default: unauthenticated_user_actor - The setting that lets members use Claude in Claude Academy was changed for the organization. + - `ip_address: string` - - `type: optional "claude_academy_inference_enabled"` + - `user_agent: string` - default: claude_academy_inference_enabled + - `unauthenticated_email_address: optional string or null` - - `current_value: optional boolean or null` + format: email - Setting value immediately after this change + - `AnthropicActor object` - - `previous_value: optional boolean or null` + - `type: optional "anthropic_actor"` - Setting value immediately before this change + default: anthropic_actor - - `ClaudeScienceLocalWorkImportEnabled object` + - `email_address: optional string or null` - The Claude Science setting that lets members access projects, sessions, and artifacts previously saved on their computer under other sign-ins, and add them to their account in the organization, was changed for the organization. + format: email - - `type: optional "claude_science_local_work_import_enabled"` + - `SystemActor object` - default: claude_science_local_work_import_enabled + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `current_value: optional boolean or null` + - `type: optional "system_actor"` - Setting value immediately after this change + default: system_actor - - `previous_value: optional boolean or null` + - `service: optional string or null` - Setting value immediately before this change + Name of the automated process that performed the action, when known. - - `ClaudeAIProjectSharingEnabled object` + - `AdminAPIKeyActor object` - The Claude.ai project sharing setting (whether members can share projects with new recipients: people, groups, or the whole organization) was changed for the organization. + - `type: optional "admin_api_key_actor"` - - `type: optional "claude_ai_project_sharing_enabled"` + default: admin_api_key_actor - default: claude_ai_project_sharing_enabled + - `admin_api_key_id: string` - - `current_value: optional boolean or null` + - `ip_address: string` - Setting value immediately after this change + - `user_agent: string` - - `previous_value: optional boolean or null` + - `ServiceAccountActor object` - Setting value immediately before this change + - `type: optional "service_account_actor"` - - `ArtifactTypeSlidesEnabled object` + default: service_account_actor - The setting that lets members create Slides, one of Anthropic's built-in Artifact types, was changed for the organization. + - `ip_address: string` - - `type: optional "artifact_type_slides_enabled"` + - `service_account_id: string` - default: artifact_type_slides_enabled + - `user_agent: string` - - `current_value: optional boolean or null` + - `ScimDirectorySyncActor object` - Setting value immediately after this change + - `type: optional "scim_directory_sync_actor"` - - `previous_value: optional boolean or null` + default: scim_directory_sync_actor - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + - `directory_id: string` - - `ArtifactTypeDesignEnabled object` + - `workos_event_id: string` - The setting that lets members create Design, one of Anthropic's built-in Artifact types and separate from the Claude Design setting, was changed for the organization. + - `idp_connection_type: optional string or null` - - `type: optional "artifact_type_design_enabled"` + - `FederatedIdentityActor object` - default: artifact_type_design_enabled + A federated external workload authenticated via a verified OIDC token. - - `current_value: optional boolean or null` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - Setting value immediately after this change + - `type: optional "federated_identity_actor"` - - `previous_value: optional boolean or null` + default: federated_identity_actor - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + - `issuer: string` - - `ArtifactTypeDesignSystemsEnabled object` + - `subject: string` - The setting that lets members create Design systems, one of Anthropic's built-in Artifact types, was changed for the organization. + - `audience: optional array of string` - - `type: optional "artifact_type_design_systems_enabled"` + - `ip_address: optional string or null` - default: artifact_type_design_systems_enabled + - `user_agent: optional string or null` - - `current_value: optional boolean or null` + - `FederatedActor object` - Setting value immediately after this change + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `previous_value: optional boolean or null` + - `type: optional "federated_actor"` - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + default: federated_actor - - `ArtifactTypeDocsEnabled object` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - The setting that lets members create Claude Docs, one of Anthropic's built-in Artifact types, was changed for the organization. + - `FederatedActorAwsProvider object` - - `type: optional "artifact_type_docs_enabled"` + Asserting party: the AWS account the organization is bound to. - default: artifact_type_docs_enabled + - `type: optional "aws"` - - `current_value: optional boolean or null` + default: aws - Setting value immediately after this change + - `account_id: string` - - `previous_value: optional boolean or null` + - `signed_principal: string` - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + The AWS-signed ARN of the IAM principal that requested the token. - - `ArtifactTypeMotionEnabled object` + - `FederatedActorAzureProvider object` - The setting that lets members create Motion, one of Anthropic's built-in Artifact types, was changed for the organization. + Asserting party: the Azure subscription the organization is bound to. - - `type: optional "artifact_type_motion_enabled"` + - `type: optional "azure"` - default: artifact_type_motion_enabled + default: azure - - `current_value: optional boolean or null` + - `subscription_id: string` - Setting value immediately after this change + - `FederatedActorGcpProvider object` - - `previous_value: optional boolean or null` + Asserting party: the GCP project the organization is bound to. - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + - `type: optional "gcp"` - - `ArtifactTypeDashboardsEnabled object` + default: gcp - The setting that lets members create Dashboards, one of Anthropic's built-in Artifact types, was changed for the organization. + - `project_number: string` - - `type: optional "artifact_type_dashboards_enabled"` + - `FederatedActorOidcProvider object` - default: artifact_type_dashboards_enabled + Asserting party: a customer-registered OIDC federation issuer. - - `current_value: optional boolean or null` + - `type: optional "oidc"` - Setting value immediately after this change + default: oidc - - `previous_value: optional boolean or null` + - `issuer: optional string or null` - Setting value immediately before this change. Null means the setting had not been set for the organization, so the plan default applied. + The federation issuer's URL. Null when the presented credential failed verification. - - `BuiltInBrowserDataImportEnabled object` + - `ip_address: optional string or null` - The setting that lets members import cookies and site data from other browsers into the Claude desktop app's built-in browser was changed for the organization. + - `subject: optional string or null` - - `type: optional "built_in_browser_data_import_enabled"` + The provider's verified identifier for the caller; its form depends on the provider. - default: built_in_browser_data_import_enabled + - `user_agent: optional string or null` - - `current_value: optional boolean or null` + - `AttestedDeviceActor object` - Setting value immediately after this change + An attested mobile device authenticated via Apple App Attest. - - `previous_value: optional boolean or null` + - `type: optional "attested_device_actor"` - Setting value immediately before this change. Null means the setting was not set, so its default applied. + default: attested_device_actor - - `id: optional string` + - `external_client_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `kid_hash: string` - - `attestations: optional array of object` + - `ip_address: optional string or null` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + - `user_agent: optional string or null` - - `type: string` + - `deployment_id: string` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + The agent deployment that was run, e.g. "depl_01HX...". - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -90242,13 +96388,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `OwnedProjectsAccessRestored object` + - `workspace_id: optional string or null` - Access to owned projects was restored. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "owned_projects_access_restored"` + - `PlatformAgentDeploymentUnpaused object` - default: owned_projects_access_restored + An agent deployment was resumed on the API platform. + + - `type: optional "platform_agent_deployment_unpaused"` + + default: platform_agent_deployment_unpaused - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -90456,6 +96606,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `deployment_id: string` + + The agent deployment that was resumed, e.g. "depl_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -90474,17 +96628,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `user_id: optional string or null` + - `workspace_id: optional string or null` - Tagged ID of the member whose access to their owned projects was restored, when known. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PaymentMethodUpdated object` + - `PlatformAgentDeploymentUpdated object` - The organization's default payment method was updated. + An agent deployment was updated on the API platform. - - `type: optional "payment_method_updated"` + - `type: optional "platform_agent_deployment_updated"` - default: payment_method_updated + default: platform_agent_deployment_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -90692,6 +96846,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `deployment_id: string` + + The agent deployment that was updated, e.g. "depl_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -90710,13 +96868,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PendingShareCreated object` + - `workspace_id: optional string or null` - A pending share of a project or skill was created for an email address that is not yet an organization member. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "pending_share_created"` + - `PlatformAgentSessionArchived object` - default: pending_share_created + An agent session was archived on the API platform. + + - `type: optional "platform_agent_session_archived"` + + default: platform_agent_session_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -90924,21 +97086,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invitee_email: string` - - Email address the share was created for. - - - `resource_id: string` - - Tagged ID of the resource being shared. - - - `resource_type: string` - - The type of resource being shared. - - - `role: string` + - `session_id: string` - The role that will be granted when the invitee joins the organization. + The agent session that was archived, e.g. "session_01HX...". - `id: optional string` @@ -90958,13 +97108,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PendingShareRevoked object` + - `workspace_id: optional string or null` - A pending share of a project or skill was revoked before the invitee joined the organization. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "pending_share_revoked"` + - `PlatformAgentSessionCreated object` - default: pending_share_revoked + An agent session was created on the API platform. + + - `type: optional "platform_agent_session_created"` + + default: platform_agent_session_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -91172,17 +97326,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `invitee_email: string` - - Email address the share had been created for. - - - `resource_id: string` - - Tagged ID of the resource that was shared. - - - `resource_type: string` + - `session_id: string` - The type of resource that was shared. + The agent session that was created, e.g. "session_01HX...". - `id: optional string` @@ -91202,13 +97348,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PhoneCodeSent object` + - `workspace_id: optional string or null` - User requested a phone verification code. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "phone_code_sent"` + - `PlatformAgentSessionDeleted object` - default: phone_code_sent + An agent session was deleted from the API platform. + + - `type: optional "platform_agent_session_deleted"` + + default: platform_agent_session_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -91416,6 +97566,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `session_id: string` + + The agent session that was deleted, e.g. "session_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -91434,13 +97588,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PhoneCodeVerified object` + - `workspace_id: optional string or null` - User successfully verified their phone code. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "phone_code_verified"` + - `PlatformAgentSessionResourceAdded object` - default: phone_code_verified + A resource was attached to an agent session. + + - `type: optional "platform_agent_session_resource_added"` + + default: platform_agent_session_resource_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -91648,6 +97806,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `resource_id: string` + + The resource that was attached, e.g. "resource_01HX...". + + - `session_id: string` + + The agent session the resource was attached to, e.g. "session_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -91666,13 +97832,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformAgentArchived object` + - `workspace_id: optional string or null` - An agent was archived on the API platform. + Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `type: optional "platform_agent_archived"` + - `PlatformAgentSessionResourceDeleted object` - default: platform_agent_archived + A resource attached to an agent session was removed. + + - `type: optional "platform_agent_session_resource_deleted"` + + default: platform_agent_session_resource_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -91880,9 +98050,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` + - `resource_id: string` - The agent that was archived, e.g. "agent_01HX...". + The resource that was removed, e.g. "resource_01HX...". + + - `session_id: string` + + The agent session the resource belonged to, e.g. "session_01HX...". - `id: optional string` @@ -91906,13 +98080,13 @@ compliance activities that can be filtered by various criteria. Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PlatformAgentCreated object` + - `PlatformAgentSessionResourceUpdated object` - An agent was created on the API platform. + A resource attached to an agent session was updated. - - `type: optional "platform_agent_created"` + - `type: optional "platform_agent_session_resource_updated"` - default: platform_agent_created + default: platform_agent_session_resource_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -92120,9 +98294,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` + - `resource_id: string` - The agent that was created, e.g. "agent_01HX...". + The resource that was updated, e.g. "resource_01HX...". + + - `session_id: string` + + The agent session the resource belongs to, e.g. "session_01HX...". - `id: optional string` @@ -92146,13 +98324,13 @@ compliance activities that can be filtered by various criteria. Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PlatformAgentDeleted object` + - `PlatformAgentSessionThreadArchived object` - An agent was deleted from the API platform. + A thread within an agent session was archived. - - `type: optional "platform_agent_deleted"` + - `type: optional "platform_agent_session_thread_archived"` - default: platform_agent_deleted + default: platform_agent_session_thread_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -92360,9 +98538,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` + - `session_id: string` - The agent that was deleted, e.g. "agent_01HX...". + The agent session the thread belongs to, e.g. "session_01HX...". + + - `thread_id: string` + + The thread that was archived, e.g. "thread_01HX...". - `id: optional string` @@ -92386,13 +98568,13 @@ compliance activities that can be filtered by various criteria. Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PlatformAgentDeploymentArchived object` + - `PlatformAgentSessionUpdated object` - An agent deployment was archived on the API platform. + An agent session was updated on the API platform. - - `type: optional "platform_agent_deployment_archived"` + - `type: optional "platform_agent_session_updated"` - default: platform_agent_deployment_archived + default: platform_agent_session_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -92600,9 +98782,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `session_id: string` - The agent deployment that was archived, e.g. "depl_01HX...". + The agent session that was updated, e.g. "session_01HX...". - `id: optional string` @@ -92626,13 +98808,13 @@ compliance activities that can be filtered by various criteria. Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PlatformAgentDeploymentCreated object` + - `PlatformAgentUpdated object` - An agent deployment was created on the API platform. + An agent was updated on the API platform. - - `type: optional "platform_agent_deployment_created"` + - `type: optional "platform_agent_updated"` - default: platform_agent_deployment_created + default: platform_agent_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -92840,9 +99022,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `agent_id: string` - The agent deployment that was created, e.g. "depl_01HX...". + The agent that was updated, e.g. "agent_01HX...". - `id: optional string` @@ -92866,13 +99048,13 @@ compliance activities that can be filtered by various criteria. Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - `PlatformAgentDeploymentDeleted object` + - `PlatformAPIKeyCreated object` - An agent deployment was deleted from the API platform. + An API key was created. - - `type: optional "platform_agent_deployment_deleted"` + - `type: optional "platform_api_key_created"` - default: platform_agent_deployment_deleted + default: platform_api_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -93080,9 +99262,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `api_key_id: string` - The agent deployment that was deleted, e.g. "depl_01HX...". + Tagged ID of the created API key - `id: optional string` @@ -93102,17 +99284,51 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `principal_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + For an identity-linked API key, the tagged ID of the user (e.g. "user_01HX...") or service account (e.g. "svac_01HX...") the key acts as. Absent for keys not linked to an identity. - - `PlatformAgentDeploymentPaused object` + - `principal_type: optional "service_account" or "unspecified" or "user" or null` - An agent deployment was paused on the API platform. + For an identity-linked API key, the kind of identity the key acts as: "user" or "service_account". Absent for keys not linked to an identity. - - `type: optional "platform_agent_deployment_paused"` + - `"service_account"` - default: platform_agent_deployment_paused + - `"unspecified"` + + - `"user"` + + - `scope: optional Organization or Workspace or null` + + Where the API key belongs: one workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the workspace's ID even when it is the organization's default workspace), or the whole organization (`{"type": "organization"}`) for an identity-linked API key that has no workspace. May be absent on activities recorded before this field was introduced. + + - `Organization object` + + The API key belongs to the whole organization and has no workspace. + + - `type: optional "organization"` + + default: organization + + - `Workspace object` + + The API key belongs to one workspace. + + - `type: optional "workspace"` + + default: workspace + + - `workspace_id: string` + + Tagged ID of the workspace the API key belongs to, including when that is the organization's default workspace. + + - `PlatformAPIKeyUpdated object` + + An API key was updated. + + - `type: optional "platform_api_key_updated"` + + default: platform_api_key_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -93320,9 +99536,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `api_key_id: string` - The agent deployment that was paused, e.g. "depl_01HX...". + Tagged ID of the updated API key - `id: optional string` @@ -93342,17 +99558,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `updates: optional array of object` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + The field-level changes applied in this update - - `PlatformAgentDeploymentRunTriggered object` + - `type: "name" or "status" or "unspecified" or "workspace"` - An agent deployment was run on demand on the API platform. + The API key field that changed - - `type: optional "platform_agent_deployment_run_triggered"` + - `"name"` - default: platform_agent_deployment_run_triggered + - `"status"` + + - `"unspecified"` + + - `"workspace"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformAppAttestAuthentication object` + + An attested mobile device attempted to exchange an Apple App Attest assertion for Anthropic API credentials. + + - `type: optional "platform_app_attest_authentication"` + + default: platform_app_attest_authentication - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -93560,10 +99796,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` - - The agent deployment that was run, e.g. "depl_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -93574,6 +99806,22 @@ compliance activities that can be filtered by various criteria. format: date-time + - `event_data: optional object or null` + + Details of the authentication attempt. + + - `external_client_id: optional string or null` + + The registered external client the device presented, e.g. "clid_01HXZ4J2N8K5P7R9T3V6W1Y4M0". + + - `kid_hash: optional string or null` + + A truncated hash of the device's attested key identifier. + + - `workspace_id: optional string or null` + + The tagged ID of the workspace the minted token is bound to. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -93582,17 +99830,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `request_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + The Anthropic API request identifier for correlation. - - `PlatformAgentDeploymentUnpaused object` + - `status: optional object or null` - An agent deployment was resumed on the API platform. + The outcome of the token exchange. - - `type: optional "platform_agent_deployment_unpaused"` + - `outcome: string` - default: platform_agent_deployment_unpaused + Whether the token exchange succeeded or was denied. + + - `reason: optional string or null` + + A short reason code when the exchange did not succeed. + + - `PlatformBillingUpgradedToPrepaid object` + + The organization's API billing was upgraded to the prepaid plan. + + - `type: optional "platform_billing_upgraded_to_prepaid"` + + default: platform_billing_upgraded_to_prepaid - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -93800,9 +100060,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `previous_billing_type: string` - The agent deployment that was resumed, e.g. "depl_01HX...". + The organization's billing type before this upgrade, for example "api_evaluation". - `id: optional string` @@ -93822,17 +100082,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentDeploymentUpdated object` + - `PlatformClearanceWorkspaceProgramRequestCleared object` - An agent deployment was updated on the API platform. + A workspace's clearance program assignment was removed. - - `type: optional "platform_agent_deployment_updated"` + - `type: optional "platform_clearance_workspace_program_request_cleared"` - default: platform_agent_deployment_updated + default: platform_clearance_workspace_program_request_cleared - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -94040,9 +100296,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deployment_id: string` + - `program_slug: string` - The agent deployment that was updated, e.g. "depl_01HX...". + The clearance program's identifier + + - `workspace_id: string` + + Tagged ID of the workspace - `id: optional string` @@ -94062,17 +100322,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentSessionArchived object` + - `PlatformClearanceWorkspaceProgramRequestSet object` - An agent session was archived on the API platform. + A workspace's clearance program assignment was created or updated. - - `type: optional "platform_agent_session_archived"` + - `type: optional "platform_clearance_workspace_program_request_set"` - default: platform_agent_session_archived + default: platform_clearance_workspace_program_request_set - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -94280,9 +100536,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `opt_decision: "opt_in" or "opt_out" or "unspecified"` - The agent session that was archived, e.g. "session_01HX...". + Whether the workspace is opted in or out of the program + + - `"opt_in"` + + - `"opt_out"` + + - `"unspecified"` + + - `program_slug: string` + + The clearance program's identifier + + - `workspace_id: string` + + Tagged ID of the workspace - `id: optional string` @@ -94302,17 +100572,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentSessionCreated object` + - `PlatformCostReportViewed object` - An agent session was created on the API platform. + The cost report was viewed. - - `type: optional "platform_agent_session_created"` + - `type: optional "platform_cost_report_viewed"` - default: platform_agent_session_created + default: platform_cost_report_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -94520,10 +100786,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` - - The agent session that was created, e.g. "session_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -94542,17 +100804,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentSessionDeleted object` + - `PlatformDreamArchived object` - An agent session was deleted from the API platform. + A Dream (asynchronous memory-consolidation job) was archived. - - `type: optional "platform_agent_session_deleted"` + - `type: optional "platform_dream_archived"` - default: platform_agent_session_deleted + default: platform_dream_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -94760,9 +101018,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `dream_id: string` - The agent session that was deleted, e.g. "session_01HX...". + Tagged dream ID, e.g. "drm_01HX...". - `id: optional string` @@ -94784,15 +101042,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. - - `PlatformAgentSessionResourceAdded object` + - `PlatformDreamCancelled object` - A resource was attached to an agent session. + A Dream (asynchronous memory-consolidation job) was cancelled before it completed. - - `type: optional "platform_agent_session_resource_added"` + - `type: optional "platform_dream_cancelled"` - default: platform_agent_session_resource_added + default: platform_dream_cancelled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -95000,13 +101258,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_id: string` - - The resource that was attached, e.g. "resource_01HX...". - - - `session_id: string` + - `dream_id: string` - The agent session the resource was attached to, e.g. "session_01HX...". + Tagged dream ID, e.g. "drm_01HX...". - `id: optional string` @@ -95028,15 +101282,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. - - `PlatformAgentSessionResourceDeleted object` + - `PlatformDreamCreated object` - A resource attached to an agent session was removed. + A Dream (asynchronous memory-consolidation job) was created. - - `type: optional "platform_agent_session_resource_deleted"` + - `type: optional "platform_dream_created"` - default: platform_agent_session_resource_deleted + default: platform_dream_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -95244,13 +101498,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_id: string` - - The resource that was removed, e.g. "resource_01HX...". - - - `session_id: string` + - `dream_id: string` - The agent session the resource belonged to, e.g. "session_01HX...". + Tagged dream ID, e.g. "drm_01HX...". - `id: optional string` @@ -95272,15 +101522,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. - - `PlatformAgentSessionResourceUpdated object` + - `PlatformFederatedAuthentication object` - A resource attached to an agent session was updated. + A federated workload identity attempted to exchange an OIDC token for Anthropic API credentials. - - `type: optional "platform_agent_session_resource_updated"` + - `type: optional "platform_federated_authentication"` - default: platform_agent_session_resource_updated + default: platform_federated_authentication - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -95488,14 +101738,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_id: string` - - The resource that was updated, e.g. "resource_01HX...". - - - `session_id: string` - - The agent session the resource belongs to, e.g. "session_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -95506,6 +101748,34 @@ compliance activities that can be filtered by various criteria. format: date-time + - `event_data: optional object or null` + + Details of the authentication attempt. + + - `federation_rule_id: optional string or null` + + The federation rule that matched the request, e.g. "fdrl_01HXZ4J2N8K5P7R9T3V6W1Y4M0". + + - `issuer_id: optional string or null` + + The registered identity issuer for the request, e.g. "fdis_01HXZ4H5M3K8P1R7T9V2W6Y4N0". + + - `oidc_token: optional object or null` + + Details of the presented OIDC token. + + - `claims: optional map[unknown] or null` + + The verified claims from the presented OIDC token. + + - `jti: optional string or null` + + The presented token's unique identifier (its `jti` claim). + + - `requested_service_account_id: optional string or null` + + The service account the caller requested to authenticate as, e.g. "svac_01HXZ4...". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -95514,17 +101784,45 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `request_id: optional string or null` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + The Anthropic API request identifier for correlation, e.g. "req_01HXZ4K7M9P2QR5T8V6W3Y1N0B". - - `PlatformAgentSessionThreadArchived object` + - `resources: optional array of object` - A thread within an agent session was archived. + The resources involved in the exchange. - - `type: optional "platform_agent_session_thread_archived"` + - `type: string` - default: platform_agent_session_thread_archived + The kind of resource involved in the exchange. + + - `id: string` + + The identifier of the resource involved in the exchange. + + - `status: optional object or null` + + The outcome of the token exchange. + + - `outcome: string` + + Whether the token exchange succeeded or was denied. + + - `detail: optional string or null` + + A human-readable explanation when the exchange did not succeed. May contain values copied verbatim from the presented token's header (e.g. kid, alg) and error text; treat as caller-supplied free text. + + - `reason: optional string or null` + + A short reason code when the exchange did not succeed. + + - `PlatformFederationIssuerArchived object` + + An OIDC federation issuer was archived. + + - `type: optional "platform_federation_issuer_archived"` + + default: platform_federation_issuer_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -95732,13 +102030,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` - - The agent session the thread belongs to, e.g. "session_01HX...". - - - `thread_id: string` + - `federation_issuer_id: string` - The thread that was archived, e.g. "thread_01HX...". + Tagged ID of the archived issuer - `id: optional string` @@ -95758,17 +102052,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentSessionUpdated object` + - `PlatformFederationIssuerCreated object` - An agent session was updated on the API platform. + An OIDC federation issuer was created, registering an external identity provider that federation rules can trust for workload authentication. - - `type: optional "platform_agent_session_updated"` + - `type: optional "platform_federation_issuer_created"` - default: platform_agent_session_updated + default: platform_federation_issuer_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -95976,9 +102266,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `federation_issuer_id: string` - The agent session that was updated, e.g. "session_01HX...". + Tagged ID of the created issuer, e.g. "fdis_..." + + - `issuer_url: string` + + URL of the external OIDC identity provider that was registered + + - `jwks_source: string` + + How the issuer's token-signing keys are obtained — typically "discovery" (the issuer's OIDC discovery document), "explicit_url" (a fixed JWKS URL), or "inline" (keys supplied directly at registration). An unrecognized source is recorded verbatim. - `id: optional string` @@ -95990,6 +102288,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `discovery_base: optional string or null` + + Base URL for the OIDC discovery document, if a custom base was registered. Only present when jwks_source is "discovery". + + - `jwks_url: optional string or null` + + The fixed URL where the issuer publishes its token-signing keys. Only present when jwks_source is "explicit_url". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -95998,17 +102304,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. - - - `PlatformAgentUpdated object` + - `PlatformFederationIssuerUpdated object` - An agent was updated on the API platform. + An OIDC federation issuer was updated. - - `type: optional "platform_agent_updated"` + - `type: optional "platform_federation_issuer_updated"` - default: platform_agent_updated + default: platform_federation_issuer_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -96216,9 +102518,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` + - `federation_issuer_id: string` - The agent that was updated, e.g. "agent_01HX...". + Tagged ID of the updated issuer - `id: optional string` @@ -96238,17 +102540,51 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `updates: optional array of object` - Tagged workspace ID, e.g. "wrkspc_01HX...". Optional because org-scoped credentials may not resolve a workspace at request time. + The field-level changes applied in this update - - `PlatformAPIKeyCreated object` + - `type: "ca_cert_pem_sha256" or "check_jti" or "discovery_base" or 8 more` - An API key was created. + The OIDC federation issuer field that changed - - `type: optional "platform_api_key_created"` + - `"ca_cert_pem_sha256"` - default: platform_api_key_created + - `"check_jti"` + + - `"discovery_base"` + + - `"issuer_url"` + + - `"jwks_keys_sha256"` + + - `"jwks_polling_disabled_at"` + + - `"jwks_source"` + + - `"jwks_url"` + + - `"max_jwt_lifetime_seconds"` + + - `"name"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformFederationRuleArchived object` + + An OIDC federation rule was archived. + + - `type: optional "platform_federation_rule_archived"` + + default: platform_federation_rule_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -96456,9 +102792,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `api_key_id: string` + - `federation_rule_id: string` - Tagged ID of the created API key + Tagged ID of the archived rule - `id: optional string` @@ -96478,51 +102814,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `principal_id: optional string or null` - - For an identity-linked API key, the tagged ID of the user (e.g. "user_01HX...") or service account (e.g. "svac_01HX...") the key acts as. Absent for keys not linked to an identity. - - - `principal_type: optional "service_account" or "unspecified" or "user" or null` - - For an identity-linked API key, the kind of identity the key acts as: "user" or "service_account". Absent for keys not linked to an identity. - - - `"service_account"` - - - `"unspecified"` - - - `"user"` - - - `scope: optional Organization or Workspace or null` - - Where the API key belongs: one workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the workspace's ID even when it is the organization's default workspace), or the whole organization (`{"type": "organization"}`) for an identity-linked API key that has no workspace. May be absent on activities recorded before this field was introduced. - - - `Organization object` - - The API key belongs to the whole organization and has no workspace. - - - `type: optional "organization"` - - default: organization - - - `Workspace object` - - The API key belongs to one workspace. - - - `type: optional "workspace"` - - default: workspace - - - `workspace_id: string` - - Tagged ID of the workspace the API key belongs to, including when that is the organization's default workspace. - - - `PlatformAPIKeyUpdated object` + - `PlatformFederationRuleCreated object` - An API key was updated. + An OIDC federation rule was created, allowing tokens from a federation issuer to authenticate as a service account or user. Rules may additionally match on token claims or a condition expression, which are not included in this event. - - `type: optional "platform_api_key_updated"` + - `type: optional "platform_federation_rule_created"` - default: platform_api_key_updated + default: platform_federation_rule_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -96730,9 +103028,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `api_key_id: string` + - `applies_to_all_workspaces: boolean` - Tagged ID of the updated API key + Whether the rule applies to all workspaces in the organization. + + - `federation_issuer_id: string` + + Tagged ID of the federation issuer the rule trusts + + - `federation_rule_id: string` + + Tagged ID of the created rule, e.g. "fdrl_..." + + - `oauth_scope: string` + + Space-separated OAuth scopes that tokens minted through the rule carry, e.g. "workspace:inference" or "org:admin". + + - `target_type: string` + + What the rule authenticates as — typically "service_account" or "user". An unrecognized kind is recorded verbatim. - `id: optional string` @@ -96744,45 +103058,41 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` + - `match_audience: optional string or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Token audience the rule matches, if one was set. - - `updates: optional array of object` + - `match_subject_prefix: optional string or null` - The field-level changes applied in this update + Matcher for the token's `sub` claim, if one was set: exact match unless the value ends with `*`, which makes it a prefix match. An empty value matches any subject. Example: "repo:acme/*". - - `type: "name" or "status" or "unspecified" or "workspace"` + - `organization_id: optional string or null` - The API key field that changed + Organization ID this activity is associated with - - `"name"` + - `organization_uuid: optional string or null` - - `"status"` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `"unspecified"` + - `target_id: optional string or null` - - `"workspace"` + Tagged ID of the service account the rule authenticates as, e.g. "svac_...". Absent when target_type is "user": user rules identify the target by token-claim lookup rather than a fixed ID. - - `current_value: string` + - `target_lookup_attr: optional string or null` - Field value immediately after this change + Name of the rule attribute whose value resolves the target user. Only present when target_type is "user". - - `previous_value: string` + - `workspace_id: optional string or null` - Field value immediately before this change + Tagged ID of the workspace the rule references, if one was set. May be set alongside applies_to_all_workspaces, which takes precedence: the rule then covers every workspace in the organization. - - `PlatformAppAttestAuthentication object` + - `PlatformFederationRuleUpdated object` - An attested mobile device attempted to exchange an Apple App Attest assertion for Anthropic API credentials. + An OIDC federation rule was updated. - - `type: optional "platform_app_attest_authentication"` + - `type: optional "platform_federation_rule_updated"` - default: platform_app_attest_authentication + default: platform_federation_rule_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -96990,6 +103300,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `federation_rule_id: string` + + Tagged ID of the updated rule + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -97000,53 +103314,67 @@ compliance activities that can be filtered by various criteria. format: date-time - - `event_data: optional object or null` + - `organization_id: optional string or null` - Details of the authentication attempt. + Organization ID this activity is associated with - - `external_client_id: optional string or null` + - `organization_uuid: optional string or null` - The registered external client the device presented, e.g. "clid_01HXZ4J2N8K5P7R9T3V6W1Y4M0". + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `kid_hash: optional string or null` + - `updates: optional array of object` - A truncated hash of the device's attested key identifier. + The field-level changes applied in this update - - `workspace_id: optional string or null` + - `type: "applies_to_all_workspaces" or "attributes" or "description" or 12 more` - The tagged ID of the workspace the minted token is bound to. + The OIDC federation rule field that changed - - `organization_id: optional string or null` + - `"applies_to_all_workspaces"` - Organization ID this activity is associated with + - `"attributes"` - - `organization_uuid: optional string or null` + - `"description"` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + - `"match_audience"` - - `request_id: optional string or null` + - `"match_claims"` - The Anthropic API request identifier for correlation. + - `"match_condition"` - - `status: optional object or null` + - `"match_subject_prefix"` - The outcome of the token exchange. + - `"name"` - - `outcome: string` + - `"oauth_scope"` - Whether the token exchange succeeded or was denied. + - `"target_id"` - - `reason: optional string or null` + - `"target_lookup_attr"` - A short reason code when the exchange did not succeed. + - `"target_type"` - - `PlatformBillingUpgradedToPrepaid object` + - `"token_lifetime_seconds"` - The organization's API billing was upgraded to the prepaid plan. + - `"unspecified"` - - `type: optional "platform_billing_upgraded_to_prepaid"` + - `"workspace_id"` - default: platform_billing_upgraded_to_prepaid + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformFederationRuleWorkspaceAdded object` + + A federation rule was enabled for a workspace. + + - `type: optional "platform_federation_rule_workspace_added"` + + default: platform_federation_rule_workspace_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -97254,9 +103582,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `previous_billing_type: string` + - `federation_rule_id: string` - The organization's billing type before this upgrade, for example "api_evaluation". + Tagged ID of the federation rule + + - `workspace_id: string` + + Tagged ID of the workspace the rule was enabled for - `id: optional string` @@ -97276,13 +103608,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformClearanceWorkspaceProgramRequestCleared object` + - `PlatformFederationRuleWorkspaceRemoved object` - A workspace's clearance program assignment was removed. + A federation rule was disabled for a workspace. - - `type: optional "platform_clearance_workspace_program_request_cleared"` + - `type: optional "platform_federation_rule_workspace_removed"` - default: platform_clearance_workspace_program_request_cleared + default: platform_federation_rule_workspace_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -97490,13 +103822,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `program_slug: string` + - `federation_rule_id: string` - The clearance program's identifier + Tagged ID of the federation rule - `workspace_id: string` - Tagged ID of the workspace + Tagged ID of the workspace the rule was disabled for - `id: optional string` @@ -97516,13 +103848,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformClearanceWorkspaceProgramRequestSet object` + - `PlatformFileContentDownloaded object` - A workspace's clearance program assignment was created or updated. + Activity logged when file content is downloaded via GET /v1/files/{file_id}/content. - - `type: optional "platform_clearance_workspace_program_request_set"` + - `type: optional "platform_file_content_downloaded"` - default: platform_clearance_workspace_program_request_set + default: platform_file_content_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -97730,23 +104062,245 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `opt_decision: "opt_in" or "opt_out" or "unspecified"` + - `file_id: string` - Whether the workspace is opted in or out of the program + The tagged ID of the downloaded file - - `"opt_in"` + - `id: optional string` - - `"opt_out"` + Unique identifier for the activity e.g. 'activity_abcd1234' - - `"unspecified"` + - `created_at: optional string` - - `program_slug: string` + When this activity occurred. - The clearance program's identifier + format: date-time - - `workspace_id: string` + - `organization_id: optional string or null` - Tagged ID of the workspace + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `PlatformFileDeleted object` + + Activity logged when a file is deleted via DELETE /v1/files/{file_id}. + + - `type: optional "platform_file_deleted"` + + default: platform_file_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `file_id: string` + + The tagged ID of the deleted file - `id: optional string` @@ -97766,13 +104320,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformCostReportViewed object` + - `PlatformFileUploaded object` - The cost report was viewed. + Activity logged when a file is uploaded via POST /v1/files. - - `type: optional "platform_cost_report_viewed"` + - `type: optional "platform_file_uploaded"` - default: platform_cost_report_viewed + default: platform_file_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -97980,6 +104534,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `file_id: string` + + The tagged ID of the uploaded file + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -97998,13 +104556,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformDreamArchived object` + - `session_id: optional string or null` - A Dream (asynchronous memory-consolidation job) was archived. + The tagged session ID (agent-api only) - - `type: optional "platform_dream_archived"` + - `PlatformMemoryCreated object` - default: platform_dream_archived + An agent memory document was created. + + - `type: optional "platform_memory_created"` + + default: platform_memory_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -98212,9 +104774,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `dream_id: string` + - `memory_id: string` - Tagged dream ID, e.g. "drm_01HX...". + Tagged memory ID, e.g. "mem_01HX...". + + - `memory_store_id: string` + + Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". - `id: optional string` @@ -98226,6 +104792,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `memory_version_id: optional string or null` + + Tagged ID of the memory version produced by this change, e.g. "memver_01HX...". Links this event to the version history. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -98236,15 +104806,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `PlatformDreamCancelled object` + - `PlatformMemoryDeleted object` - A Dream (asynchronous memory-consolidation job) was cancelled before it completed. + An agent memory document was deleted. - - `type: optional "platform_dream_cancelled"` + - `type: optional "platform_memory_deleted"` - default: platform_dream_cancelled + default: platform_memory_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -98452,9 +105022,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `dream_id: string` + - `memory_id: string` - Tagged dream ID, e.g. "drm_01HX...". + Tagged memory ID, e.g. "mem_01HX...". + + - `memory_store_id: string` + + Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". - `id: optional string` @@ -98466,6 +105040,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `memory_version_id: optional string or null` + + Tagged ID of the memory version produced by this change — the deletion tombstone, e.g. "memver_01HX...". Links this event to the version history. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -98476,15 +105054,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `PlatformDreamCreated object` + - `PlatformMemoryStoreArchived object` - A Dream (asynchronous memory-consolidation job) was created. + An agent memory store was archived. Archived stores reject new memory writes and cannot be attached to new sessions; deletion and redaction remain permitted for privacy scrubbing. - - `type: optional "platform_dream_created"` + - `type: optional "platform_memory_store_archived"` - default: platform_dream_created + default: platform_memory_store_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -98692,9 +105270,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `dream_id: string` + - `memory_store_id: string` - Tagged dream ID, e.g. "drm_01HX...". + Tagged memory store ID, e.g. "memstore_01HX...". - `id: optional string` @@ -98716,15 +105294,15 @@ compliance activities that can be filtered by various criteria. - `workspace_id: optional string or null` - Tagged ID of the workspace the dream belongs to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `PlatformFederatedAuthentication object` + - `PlatformMemoryStoreCreated object` - A federated workload identity attempted to exchange an OIDC token for Anthropic API credentials. + An agent memory store was created. - - `type: optional "platform_federated_authentication"` + - `type: optional "platform_memory_store_created"` - default: platform_federated_authentication + default: platform_memory_store_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -98932,6 +105510,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `memory_store_id: string` + + Tagged memory store ID, e.g. "memstore_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -98942,34 +105524,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `event_data: optional object or null` - - Details of the authentication attempt. - - - `federation_rule_id: optional string or null` - - The federation rule that matched the request, e.g. "fdrl_01HXZ4J2N8K5P7R9T3V6W1Y4M0". - - - `issuer_id: optional string or null` - - The registered identity issuer for the request, e.g. "fdis_01HXZ4H5M3K8P1R7T9V2W6Y4N0". - - - `oidc_token: optional object or null` - - Details of the presented OIDC token. - - - `claims: optional map[unknown] or null` - - The verified claims from the presented OIDC token. - - - `jti: optional string or null` - - The presented token's unique identifier (its `jti` claim). - - - `requested_service_account_id: optional string or null` - - The service account the caller requested to authenticate as, e.g. "svac_01HXZ4...". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -98978,45 +105532,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `request_id: optional string or null` - - The Anthropic API request identifier for correlation, e.g. "req_01HXZ4K7M9P2QR5T8V6W3Y1N0B". - - - `resources: optional array of object` - - The resources involved in the exchange. - - - `type: string` - - The kind of resource involved in the exchange. - - - `id: string` - - The identifier of the resource involved in the exchange. - - - `status: optional object or null` - - The outcome of the token exchange. - - - `outcome: string` - - Whether the token exchange succeeded or was denied. - - - `detail: optional string or null` - - A human-readable explanation when the exchange did not succeed. May contain values copied verbatim from the presented token's header (e.g. kid, alg) and error text; treat as caller-supplied free text. - - - `reason: optional string or null` + - `workspace_id: optional string or null` - A short reason code when the exchange did not succeed. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `PlatformFederationIssuerArchived object` + - `PlatformMemoryStoreDeleted object` - An OIDC federation issuer was archived. + An agent memory store was deleted. Memory content removal may complete asynchronously for very large stores. - - `type: optional "platform_federation_issuer_archived"` + - `type: optional "platform_memory_store_deleted"` - default: platform_federation_issuer_archived + default: platform_memory_store_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -99224,9 +105750,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_issuer_id: string` + - `memory_store_id: string` - Tagged ID of the archived issuer + Tagged memory store ID, e.g. "memstore_01HX...". - `id: optional string` @@ -99246,13 +105772,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFederationIssuerCreated object` + - `workspace_id: optional string or null` - An OIDC federation issuer was created, registering an external identity provider that federation rules can trust for workload authentication. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `type: optional "platform_federation_issuer_created"` + - `PlatformMemoryStoreUpdated object` - default: platform_federation_issuer_created + An agent memory store's name, description, or metadata was updated. + + - `type: optional "platform_memory_store_updated"` + + default: platform_memory_store_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -99460,17 +105990,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_issuer_id: string` - - Tagged ID of the created issuer, e.g. "fdis_..." - - - `issuer_url: string` - - URL of the external OIDC identity provider that was registered - - - `jwks_source: string` + - `memory_store_id: string` - How the issuer's token-signing keys are obtained — typically "discovery" (the issuer's OIDC discovery document), "explicit_url" (a fixed JWKS URL), or "inline" (keys supplied directly at registration). An unrecognized source is recorded verbatim. + Tagged memory store ID, e.g. "memstore_01HX...". - `id: optional string` @@ -99482,14 +106004,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `discovery_base: optional string or null` - - Base URL for the OIDC discovery document, if a custom base was registered. Only present when jwks_source is "discovery". - - - `jwks_url: optional string or null` - - The fixed URL where the issuer publishes its token-signing keys. Only present when jwks_source is "explicit_url". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -99498,13 +106012,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFederationIssuerUpdated object` + - `workspace_id: optional string or null` - An OIDC federation issuer was updated. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `type: optional "platform_federation_issuer_updated"` + - `PlatformMemoryUpdated object` - default: platform_federation_issuer_updated + An agent memory document's content or path was updated. + + - `type: optional "platform_memory_updated"` + + default: platform_memory_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -99712,9 +106230,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_issuer_id: string` + - `memory_id: string` - Tagged ID of the updated issuer + Tagged memory ID, e.g. "mem_01HX...". + + - `memory_store_id: string` + + Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". - `id: optional string` @@ -99726,6 +106248,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `memory_version_id: optional string or null` + + Tagged ID of the memory version produced by this change, e.g. "memver_01HX...". Links this event to the version history. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -99734,51 +106260,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "ca_cert_pem_sha256" or "check_jti" or "discovery_base" or 8 more` - - The OIDC federation issuer field that changed - - - `"ca_cert_pem_sha256"` - - - `"check_jti"` - - - `"discovery_base"` - - - `"issuer_url"` - - - `"jwks_keys_sha256"` - - - `"jwks_polling_disabled_at"` - - - `"jwks_source"` - - - `"jwks_url"` - - - `"max_jwt_lifetime_seconds"` - - - `"name"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` + - `workspace_id: optional string or null` - Field value immediately before this change + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `PlatformFederationRuleArchived object` + - `PlatformMemoryVersionRedacted object` - An OIDC federation rule was archived. + A historical version of an agent memory document was redacted. Redaction scrubs the stored content of a specific version while preserving the version's existence in the history. - - `type: optional "platform_federation_rule_archived"` + - `type: optional "platform_memory_version_redacted"` - default: platform_federation_rule_archived + default: platform_memory_version_redacted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -99986,9 +106478,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_rule_id: string` + - `memory_id: string` - Tagged ID of the archived rule + Tagged ID of the memory the version belongs to, e.g. "mem_01HX...". + + - `memory_store_id: string` + + Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". + + - `memory_version_id: string` + + Tagged memory version ID, e.g. "memver_01HX...". - `id: optional string` @@ -100008,13 +106508,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFederationRuleCreated object` + - `workspace_id: optional string or null` - An OIDC federation rule was created, allowing tokens from a federation issuer to authenticate as a service account or user. Rules may additionally match on token claims or a condition expression, which are not included in this event. + Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - `type: optional "platform_federation_rule_created"` + - `PlatformOAuthAppCreated object` - default: platform_federation_rule_created + An OAuth app was created. + + - `type: optional "platform_oauth_app_created"` + + default: platform_oauth_app_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -100222,25 +106726,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `applies_to_all_workspaces: boolean` - - Whether the rule applies to all workspaces in the organization. - - - `federation_issuer_id: string` - - Tagged ID of the federation issuer the rule trusts - - - `federation_rule_id: string` - - Tagged ID of the created rule, e.g. "fdrl_..." - - - `oauth_scope: string` - - Space-separated OAuth scopes that tokens minted through the rule carry, e.g. "workspace:inference" or "org:admin". - - - `target_type: string` + - `oauth_app_id: string` - What the rule authenticates as — typically "service_account" or "user". An unrecognized kind is recorded verbatim. + Tagged ID of the created app - `id: optional string` @@ -100252,14 +106740,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `match_audience: optional string or null` - - Token audience the rule matches, if one was set. - - - `match_subject_prefix: optional string or null` - - Matcher for the token's `sub` claim, if one was set: exact match unless the value ends with `*`, which makes it a prefix match. An empty value matches any subject. Example: "repo:acme/*". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -100268,25 +106748,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `target_id: optional string or null` - - Tagged ID of the service account the rule authenticates as, e.g. "svac_...". Absent when target_type is "user": user rules identify the target by token-claim lookup rather than a fixed ID. - - - `target_lookup_attr: optional string or null` - - Name of the rule attribute whose value resolves the target user. Only present when target_type is "user". - - `workspace_id: optional string or null` - Tagged ID of the workspace the rule references, if one was set. May be set alongside applies_to_all_workspaces, which takes precedence: the rule then covers every workspace in the organization. + Tagged ID of the workspace the app is scoped to. Null or absent if the app is not scoped to a workspace. - - `PlatformFederationRuleUpdated object` + - `PlatformOAuthAppRevoked object` - An OIDC federation rule was updated. + An OAuth app was revoked. - - `type: optional "platform_federation_rule_updated"` + - `type: optional "platform_oauth_app_revoked"` - default: platform_federation_rule_updated + default: platform_oauth_app_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -100494,9 +106966,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_rule_id: string` + - `oauth_app_id: string` - Tagged ID of the updated rule + Tagged ID of the revoked app - `id: optional string` @@ -100516,59 +106988,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "applies_to_all_workspaces" or "attributes" or "description" or 12 more` - - The OIDC federation rule field that changed - - - `"applies_to_all_workspaces"` - - - `"attributes"` - - - `"description"` - - - `"match_audience"` - - - `"match_claims"` - - - `"match_condition"` - - - `"match_subject_prefix"` - - - `"name"` - - - `"oauth_scope"` - - - `"target_id"` - - - `"target_lookup_attr"` - - - `"target_type"` - - - `"token_lifetime_seconds"` - - - `"unspecified"` - - - `"workspace_id"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `PlatformFederationRuleWorkspaceAdded object` + - `PlatformOAuthAppUpdated object` - A federation rule was enabled for a workspace. + An OAuth app was updated. - - `type: optional "platform_federation_rule_workspace_added"` + - `type: optional "platform_oauth_app_updated"` - default: platform_federation_rule_workspace_added + default: platform_oauth_app_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -100776,13 +107202,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_rule_id: string` - - Tagged ID of the federation rule - - - `workspace_id: string` + - `oauth_app_id: string` - Tagged ID of the workspace the rule was enabled for + Tagged ID of the updated app - `id: optional string` @@ -100802,13 +107224,39 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFederationRuleWorkspaceRemoved object` + - `updates: optional array of object` - A federation rule was disabled for a workspace. + The field-level changes applied in this update - - `type: optional "platform_federation_rule_workspace_removed"` + - `type: "apple_ios_attestation_environment" or "apple_ios_bundles" or "name" or 2 more` - default: platform_federation_rule_workspace_removed + The OAuth app field that changed + + - `"apple_ios_attestation_environment"` + + - `"apple_ios_bundles"` + + - `"name"` + + - `"status"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformOrganizationCreated object` + + An owner of the organization created a Claude Console organization under the same parent organization. + + - `type: optional "platform_organization_created"` + + default: platform_organization_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -101016,13 +107464,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `federation_rule_id: string` + - `admin_email: string` - Tagged ID of the federation rule + The email address of the new organization's initial administrator. - - `workspace_id: string` + - `created_organization_id: string` - Tagged ID of the workspace the rule was disabled for + The Claude Console organization that was created, e.g. "org_01HX...". + + - `parent_organization_id: string` + + The parent organization both organizations belong to, e.g. "parent_org_01HX...". - `id: optional string` @@ -101042,13 +107494,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFileContentDownloaded object` + - `PlatformPluginDirectorySubmissionCreated object` - Activity logged when file content is downloaded via GET /v1/files/{file_id}/content. + A plugin directory submission was created on the API platform. A plugin directory submission is a request to list a plugin in the public plugin directory. - - `type: optional "platform_file_content_downloaded"` + - `type: optional "platform_plugin_directory_submission_created"` - default: platform_file_content_downloaded + default: platform_plugin_directory_submission_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -101256,9 +107708,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `file_id: string` + - `plugin_name: string` - The tagged ID of the downloaded file + The name of the plugin being submitted. + + - `submission_id: string` + + The submission that was created, e.g. "psub_01HX...". - `id: optional string` @@ -101278,13 +107734,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFileDeleted object` + - `PlatformPluginDirectorySubmissionDeleted object` - Activity logged when a file is deleted via DELETE /v1/files/{file_id}. + A plugin directory submission was deleted on the API platform. - - `type: optional "platform_file_deleted"` + - `type: optional "platform_plugin_directory_submission_deleted"` - default: platform_file_deleted + default: platform_plugin_directory_submission_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -101492,9 +107948,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `file_id: string` + - `submission_id: string` - The tagged ID of the deleted file + The submission that was deleted, e.g. "psub_01HX...". - `id: optional string` @@ -101514,13 +107970,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformFileUploaded object` + - `PlatformPluginDirectorySubmissionUpdated object` - Activity logged when a file is uploaded via POST /v1/files. + A plugin directory submission was updated on the API platform. - - `type: optional "platform_file_uploaded"` + - `type: optional "platform_plugin_directory_submission_updated"` - default: platform_file_uploaded + default: platform_plugin_directory_submission_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -101728,9 +108184,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `file_id: string` + - `status: string` - The tagged ID of the uploaded file + The submission's status after the update. + + - `submission_id: string` + + The submission that was updated, e.g. "psub_01HX...". - `id: optional string` @@ -101750,17 +108210,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `session_id: optional string or null` - - The tagged session ID (agent-api only) - - - `PlatformMemoryCreated object` + - `PlatformServiceAccountArchived object` - An agent memory document was created. + A service account was archived. - - `type: optional "platform_memory_created"` + - `type: optional "platform_service_account_archived"` - default: platform_memory_created + default: platform_service_account_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -101968,13 +108424,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_id: string` - - Tagged memory ID, e.g. "mem_01HX...". - - - `memory_store_id: string` + - `service_account_id: string` - Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". + Tagged ID of the archived service account - `id: optional string` @@ -101986,10 +108438,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `memory_version_id: optional string or null` - - Tagged ID of the memory version produced by this change, e.g. "memver_01HX...". Links this event to the version history. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -101998,17 +108446,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - - `PlatformMemoryDeleted object` + - `PlatformServiceAccountCreated object` - An agent memory document was deleted. + A service account was created. - - `type: optional "platform_memory_deleted"` + - `type: optional "platform_service_account_created"` - default: platform_memory_deleted + default: platform_service_account_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -102216,13 +108660,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_id: string` + - `organization_role: string` - Tagged memory ID, e.g. "mem_01HX...". + Organization role the service account was created with — typically "admin" or "developer". A role this service does not recognize is recorded verbatim. - - `memory_store_id: string` + - `service_account_id: string` - Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". + Tagged ID of the created service account, e.g. "svac_..." - `id: optional string` @@ -102234,10 +108678,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `memory_version_id: optional string or null` - - Tagged ID of the memory version produced by this change — the deletion tombstone, e.g. "memver_01HX...". Links this event to the version history. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -102246,17 +108686,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - - `PlatformMemoryStoreArchived object` + - `PlatformServiceAccountUpdated object` - An agent memory store was archived. Archived stores reject new memory writes and cannot be attached to new sessions; deletion and redaction remain permitted for privacy scrubbing. + A service account was updated. - - `type: optional "platform_memory_store_archived"` + - `type: optional "platform_service_account_updated"` - default: platform_memory_store_archived + default: platform_service_account_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -102464,9 +108900,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_store_id: string` + - `service_account_id: string` - Tagged memory store ID, e.g. "memstore_01HX...". + Tagged ID of the updated service account - `id: optional string` @@ -102486,257 +108922,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - - `PlatformMemoryStoreCreated object` - - An agent memory store was created. - - - `type: optional "platform_memory_store_created"` - - default: platform_memory_store_created - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `memory_store_id: string` - - Tagged memory store ID, e.g. "memstore_01HX...". - - - `id: optional string` + - `updates: optional array of object` - Unique identifier for the activity e.g. 'activity_abcd1234' + The field-level changes applied in this update - - `created_at: optional string` + - `type: "description" or "organization_role" or "unspecified"` - When this activity occurred. + The service account field that changed - format: date-time + - `"description"` - - `organization_id: optional string or null` + - `"organization_role"` - Organization ID this activity is associated with + - `"unspecified"` - - `organization_uuid: optional string or null` + - `current_value: string` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Field value immediately after this change - - `workspace_id: optional string or null` + - `previous_value: string` - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. + Field value immediately before this change - - `PlatformMemoryStoreDeleted object` + - `PlatformServiceAccountWorkspaceMemberAdded object` - An agent memory store was deleted. Memory content removal may complete asynchronously for very large stores. + A service account was added as a member of a workspace. - - `type: optional "platform_memory_store_deleted"` + - `type: optional "platform_service_account_workspace_member_added"` - default: platform_memory_store_deleted + default: platform_service_account_workspace_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -102944,9 +109158,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_store_id: string` + - `service_account_id: string` - Tagged memory store ID, e.g. "memstore_01HX...". + Tagged ID of the service account + + - `workspace_id: string` + + Tagged ID of the workspace - `id: optional string` @@ -102966,17 +109184,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `workspace_role: optional string or null` - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. + Role the service account was given in the workspace, for example workspace_developer. - - `PlatformMemoryStoreUpdated object` + - `PlatformServiceAccountWorkspaceMemberRemoved object` - An agent memory store's name, description, or metadata was updated. + A service account was removed from a workspace. - - `type: optional "platform_memory_store_updated"` + - `type: optional "platform_service_account_workspace_member_removed"` - default: platform_memory_store_updated + default: platform_service_account_workspace_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -103184,9 +109402,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_store_id: string` + - `service_account_id: string` - Tagged memory store ID, e.g. "memstore_01HX...". + Tagged ID of the service account + + - `workspace_id: string` + + Tagged ID of the workspace - `id: optional string` @@ -103206,17 +109428,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - - `PlatformMemoryUpdated object` + - `PlatformServiceAccountWorkspaceMemberUpdated object` - An agent memory document's content or path was updated. + A service account's workspace membership role was updated. - - `type: optional "platform_memory_updated"` + - `type: optional "platform_service_account_workspace_member_updated"` - default: platform_memory_updated + default: platform_service_account_workspace_member_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -103424,13 +109642,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_id: string` + - `service_account_id: string` - Tagged memory ID, e.g. "mem_01HX...". + Tagged ID of the service account - - `memory_store_id: string` + - `workspace_id: string` - Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". + Tagged ID of the workspace - `id: optional string` @@ -103442,10 +109660,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `memory_version_id: optional string or null` - - Tagged ID of the memory version produced by this change, e.g. "memver_01HX...". Links this event to the version history. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -103454,17 +109668,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` + - `updates: optional array of object` - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. + The field-level changes applied in this update - - `PlatformMemoryVersionRedacted object` + - `type: "unspecified" or "workspace_role"` - A historical version of an agent memory document was redacted. Redaction scrubs the stored content of a specific version while preserving the version's existence in the history. + The service account's workspace membership field that changed - - `type: optional "platform_memory_version_redacted"` + - `"unspecified"` - default: platform_memory_version_redacted + - `"workspace_role"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformSigningKeyCreated object` + + Activity logged when a new request-signing key is registered for the org. + + - `type: optional "platform_signing_key_created"` + + default: platform_signing_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -103672,17 +109902,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `memory_id: string` + - `algorithm: string` - Tagged ID of the memory the version belongs to, e.g. "mem_01HX...". + The signing algorithm (e.g. ecdsa-p256-sha256) - - `memory_store_id: string` + - `key_backing_type: string` - Tagged ID of the memory store the memory belongs to, e.g. "memstore_01HX...". + The backing type of the key (IN_MEMORY or CLOUD_KMS) - - `memory_version_id: string` + - `signing_key_id: string` - Tagged memory version ID, e.g. "memver_01HX...". + The tagged ID of the created signing key + + - `status: string` + + The initial status of the key (ACTIVE or PENDING) - `id: optional string` @@ -103702,17 +109936,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the request was scoped to, e.g. "wrkspc_01HX...". For organization-scoped credentials this is the organization's default workspace. May differ from the workspace the store was created in when the store is account-scoped. - - - `PlatformOAuthAppCreated object` + - `PlatformSigningKeyDeleted object` - An OAuth app was created. + Activity logged when a signing key is permanently deleted. - - `type: optional "platform_oauth_app_created"` + - `type: optional "platform_signing_key_deleted"` - default: platform_oauth_app_created + default: platform_signing_key_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -103920,9 +110150,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `oauth_app_id: string` + - `algorithm: string` - Tagged ID of the created app + The algorithm of the deleted key + + - `key_backing_type: string` + + The backing type of the deleted key (IN_MEMORY or CLOUD_KMS) + + - `key_name: string` + + The name of the deleted key + + - `signing_key_id: string` + + The tagged ID of the deleted signing key - `id: optional string` @@ -103942,17 +110184,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace the app is scoped to. Null or absent if the app is not scoped to a workspace. - - - `PlatformOAuthAppRevoked object` + - `PlatformSigningKeyRotated object` - An OAuth app was revoked. + Activity logged when an in-memory signing key is rotated. - - `type: optional "platform_oauth_app_revoked"` + - `type: optional "platform_signing_key_rotated"` - default: platform_oauth_app_revoked + default: platform_signing_key_rotated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -104160,9 +110398,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `oauth_app_id: string` + - `algorithm: string` - Tagged ID of the revoked app + The algorithm of the new key + + - `key_group_identifier: string` + + The key group identifier linking old and new keys + + - `new_signing_key_id: string` + + The tagged ID of the newly created key + + - `old_signing_key_id: string` + + The tagged ID of the expired old key - `id: optional string` @@ -104182,13 +110432,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformOAuthAppUpdated object` + - `PlatformSkillVersionContentDownloaded object` - An OAuth app was updated. + The content of a skill version was downloaded through the Skills API. - - `type: optional "platform_oauth_app_updated"` + - `type: optional "platform_skill_version_content_downloaded"` - default: platform_oauth_app_updated + default: platform_skill_version_content_downloaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -104396,9 +110646,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `oauth_app_id: string` + - `skill_id: string` - Tagged ID of the updated app + The tagged ID of the skill + + - `version: string` + + The version of the skill whose content was downloaded - `id: optional string` @@ -104418,39 +110672,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "apple_ios_attestation_environment" or "apple_ios_bundles" or "name" or 2 more` - - The OAuth app field that changed - - - `"apple_ios_attestation_environment"` - - - `"apple_ios_bundles"` - - - `"name"` - - - `"status"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `PlatformOrganizationCreated object` + - `PlatformSkillVersionCreated object` - An owner of the organization created a Claude Console organization under the same parent organization. + Activity logged when a skill version is created via POST /v1/skills/{skill_id}/versions. - - `type: optional "platform_organization_created"` + - `type: optional "platform_skill_version_created"` - default: platform_organization_created + default: platform_skill_version_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -104658,17 +110886,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `admin_email: string` - - The email address of the new organization's initial administrator. - - - `created_organization_id: string` + - `skill_id: string` - The Claude Console organization that was created, e.g. "org_01HX...". + The tagged ID of the skill - - `parent_organization_id: string` + - `version: string` - The parent organization both organizations belong to, e.g. "parent_org_01HX...". + The version number of the created version - `id: optional string` @@ -104688,13 +110912,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformPluginDirectorySubmissionCreated object` + - `PlatformSkillVersionDeleted object` - A plugin directory submission was created on the API platform. A plugin directory submission is a request to list a plugin in the public plugin directory. + Activity logged when a skill version is deleted via DELETE /v1/skills/{skill_id}/versions/{version}. - - `type: optional "platform_plugin_directory_submission_created"` + - `type: optional "platform_skill_version_deleted"` - default: platform_plugin_directory_submission_created + default: platform_skill_version_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -104902,13 +111126,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `plugin_name: string` + - `skill_id: string` - The name of the plugin being submitted. + The tagged ID of the skill - - `submission_id: string` + - `version: string` - The submission that was created, e.g. "psub_01HX...". + The version number of the deleted version - `id: optional string` @@ -104928,13 +111152,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformPluginDirectorySubmissionDeleted object` + - `PlatformSpendLimitAlertEmailsUpdated object` - A plugin directory submission was deleted on the API platform. + Spend limit alert email addresses and role targets were updated for an org. - - `type: optional "platform_plugin_directory_submission_deleted"` + - `type: optional "platform_spend_limit_alert_emails_updated"` - default: platform_plugin_directory_submission_deleted + default: platform_spend_limit_alert_emails_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -105142,14 +111366,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `submission_id: string` - - The submission that was deleted, e.g. "psub_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `alert_emails: optional array of string or null` + + Updated list of alert email addresses. + + - `alerted_roles: optional array of string or null` + + Updated list of alerted roles. + - `created_at: optional string` When this activity occurred. @@ -105164,13 +111392,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformPluginDirectorySubmissionUpdated object` + - `PlatformSpendLimitCreated object` - A plugin directory submission was updated on the API platform. + An org-level fixed-dollar spend limit was created. - - `type: optional "platform_plugin_directory_submission_updated"` + - `type: optional "platform_spend_limit_created"` - default: platform_plugin_directory_submission_updated + default: platform_spend_limit_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -105378,14 +111606,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `status: string` - - The submission's status after the update. - - - `submission_id: string` - - The submission that was updated, e.g. "psub_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -105396,6 +111616,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `limit_action: optional string or null` + + The action taken when the limit is reached (notify_only or notify_and_pause). + + - `limit_usd: optional number or null` + + The spend limit threshold in USD cents. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -105404,13 +111632,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformServiceAccountArchived object` + - `PlatformSpendLimitDeleted object` - A service account was archived. + An org-level spend limit was removed. - - `type: optional "platform_service_account_archived"` + - `type: optional "platform_spend_limit_deleted"` - default: platform_service_account_archived + default: platform_spend_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -105618,10 +111846,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_account_id: string` - - Tagged ID of the archived service account - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -105640,13 +111864,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformServiceAccountCreated object` + - `spend_limit_id: optional string or null` - A service account was created. + UUID of the deleted spend limit. - - `type: optional "platform_service_account_created"` + - `PlatformSpendLimitUpdated object` - default: platform_service_account_created + An org-level spend limit snooze/ignore state was changed. + + - `type: optional "platform_spend_limit_updated"` + + default: platform_spend_limit_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -105854,14 +112082,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `organization_role: string` - - Organization role the service account was created with — typically "admin" or "developer". A role this service does not recognize is recorded verbatim. - - - `service_account_id: string` - - Tagged ID of the created service account, e.g. "svac_..." - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -105872,6 +112092,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `ignore: optional boolean or null` + + Whether the limit is being snoozed (ignored). + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -105880,13 +112104,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformServiceAccountUpdated object` + - `spend_limit_id: optional string or null` - A service account was updated. + UUID of the spend limit. - - `type: optional "platform_service_account_updated"` + - `PlatformUsageReportClaudeCodeViewed object` - default: platform_service_account_updated + The Claude Code usage report was viewed. + + - `type: optional "platform_usage_report_claude_code_viewed"` + + default: platform_usage_report_claude_code_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -106094,10 +112322,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_account_id: string` - - Tagged ID of the updated service account - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -106116,35 +112340,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "description" or "organization_role" or "unspecified"` - - The service account field that changed - - - `"description"` - - - `"organization_role"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `PlatformServiceAccountWorkspaceMemberAdded object` + - `PlatformUsageReportMessagesViewed object` - A service account was added as a member of a workspace. + The messages usage report was viewed. - - `type: optional "platform_service_account_workspace_member_added"` + - `type: optional "platform_usage_report_messages_viewed"` - default: platform_service_account_workspace_member_added + default: platform_usage_report_messages_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -106352,14 +112554,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_account_id: string` - - Tagged ID of the service account - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -106378,17 +112572,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_role: optional string or null` - - Role the service account was given in the workspace, for example workspace_developer. - - - `PlatformServiceAccountWorkspaceMemberRemoved object` + - `PlatformWorkspaceArchived object` - A service account was removed from a workspace. + A workspace was archived. - - `type: optional "platform_service_account_workspace_member_removed"` + - `type: optional "platform_workspace_archived"` - default: platform_service_account_workspace_member_removed + default: platform_workspace_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -106596,13 +112786,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_account_id: string` - - Tagged ID of the service account - - `workspace_id: string` - Tagged ID of the workspace + Tagged ID of the archived workspace - `id: optional string` @@ -106622,13 +112808,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformServiceAccountWorkspaceMemberUpdated object` + - `PlatformWorkspaceCreated object` - A service account's workspace membership role was updated. + A workspace was created. - - `type: optional "platform_service_account_workspace_member_updated"` + - `type: optional "platform_workspace_created"` - default: platform_service_account_workspace_member_updated + default: platform_workspace_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -106836,59 +113022,59 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_account_id: string` - - Tagged ID of the service account - - `workspace_id: string` - Tagged ID of the workspace + Tagged ID of the created workspace - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `allowed_inference_geos: optional string or null` + + Inference geos the workspace allows, as a comma-separated list such as "global,us", or "unrestricted" when every geo is allowed + - `created_at: optional string` When this activity occurred. format: date-time - - `organization_id: optional string or null` + - `default_inference_geo: optional string or null` - Organization ID this activity is associated with + Inference geo the workspace uses when a request does not specify one - - `organization_uuid: optional string or null` + - `display_color: optional string or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Display color of the workspace, as a hex code such as "#ACA1CC" - - `updates: optional array of object` + - `external_key_id: optional string or null` - The field-level changes applied in this update + Tagged ID of the customer-managed encryption key the workspace uses; absent when it has none - - `type: "unspecified" or "workspace_role"` + - `name: optional string or null` - The service account's workspace membership field that changed + Name of the workspace - - `"unspecified"` + - `organization_id: optional string or null` - - `"workspace_role"` + Organization ID this activity is associated with - - `current_value: string` + - `organization_uuid: optional string or null` - Field value immediately after this change + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: string` + - `tag_count: optional number or null` - Field value immediately before this change + Number of tags the workspace was created with; tag keys and values are never recorded - - `PlatformSigningKeyCreated object` + - `PlatformWorkspaceInferenceDataRetentionDisabled object` - Activity logged when a new request-signing key is registered for the org. + The zero data retention override was disabled for a workspace. - - `type: optional "platform_signing_key_created"` + - `type: optional "platform_workspace_inference_data_retention_disabled"` - default: platform_signing_key_created + default: platform_workspace_inference_data_retention_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -107096,21 +113282,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `algorithm: string` - - The signing algorithm (e.g. ecdsa-p256-sha256) - - - `key_backing_type: string` - - The backing type of the key (IN_MEMORY or CLOUD_KMS) - - - `signing_key_id: string` - - The tagged ID of the created signing key - - - `status: string` + - `workspace_id: string` - The initial status of the key (ACTIVE or PENDING) + Tagged ID of the workspace - `id: optional string` @@ -107130,13 +113304,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSigningKeyDeleted object` + - `previous_value: optional boolean or null` - Activity logged when a signing key is permanently deleted. + Override state immediately before this change - - `type: optional "platform_signing_key_deleted"` + - `PlatformWorkspaceInferenceDataRetentionEnabled object` - default: platform_signing_key_deleted + The zero data retention override was enabled for a workspace. + + - `type: optional "platform_workspace_inference_data_retention_enabled"` + + default: platform_workspace_inference_data_retention_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -107344,21 +113522,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `algorithm: string` - - The algorithm of the deleted key - - - `key_backing_type: string` - - The backing type of the deleted key (IN_MEMORY or CLOUD_KMS) - - - `key_name: string` - - The name of the deleted key - - - `signing_key_id: string` + - `workspace_id: string` - The tagged ID of the deleted signing key + Tagged ID of the workspace - `id: optional string` @@ -107378,13 +113544,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSigningKeyRotated object` + - `previous_value: optional boolean or null` - Activity logged when an in-memory signing key is rotated. + Override state immediately before this change - - `type: optional "platform_signing_key_rotated"` + - `PlatformWorkspaceMemberAdded object` - default: platform_signing_key_rotated + A member was added to a workspace. + + - `type: optional "platform_workspace_member_added"` + + default: platform_workspace_member_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -107592,21 +113762,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `algorithm: string` - - The algorithm of the new key - - - `key_group_identifier: string` - - The key group identifier linking old and new keys - - - `new_signing_key_id: string` + - `user_id: string` - The tagged ID of the newly created key + Tagged ID of the added member - - `old_signing_key_id: string` + - `workspace_id: string` - The tagged ID of the expired old key + Tagged ID of the workspace - `id: optional string` @@ -107626,13 +113788,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSkillVersionContentDownloaded object` + - `PlatformWorkspaceMemberRemoved object` - The content of a skill version was downloaded through the Skills API. + A member was removed from a workspace. - - `type: optional "platform_skill_version_content_downloaded"` + - `type: optional "platform_workspace_member_removed"` - default: platform_skill_version_content_downloaded + default: platform_workspace_member_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -107840,13 +114002,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `skill_id: string` + - `user_id: string` - The tagged ID of the skill + Tagged ID of the removed member - - `version: string` + - `workspace_id: string` - The version of the skill whose content was downloaded + Tagged ID of the workspace - `id: optional string` @@ -107866,13 +114028,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSkillVersionCreated object` + - `PlatformWorkspaceMemberUpdated object` - Activity logged when a skill version is created via POST /v1/skills/{skill_id}/versions. + A workspace member was updated. - - `type: optional "platform_skill_version_created"` + - `type: optional "platform_workspace_member_updated"` - default: platform_skill_version_created + default: platform_workspace_member_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -108080,13 +114242,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `skill_id: string` + - `user_id: string` - The tagged ID of the skill + Tagged ID of the updated member - - `version: string` + - `workspace_id: string` - The version number of the created version + Tagged ID of the workspace - `id: optional string` @@ -108106,13 +114268,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSkillVersionDeleted object` + - `updates: optional array of object` - Activity logged when a skill version is deleted via DELETE /v1/skills/{skill_id}/versions/{version}. + The field-level changes applied in this update - - `type: optional "platform_skill_version_deleted"` + - `type: "unspecified" or "workspace_role"` - default: platform_skill_version_deleted + The workspace member field that changed + + - `"unspecified"` + + - `"workspace_role"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `PlatformWorkspaceMemberViewed object` + + A workspace member was viewed. + + - `type: optional "platform_workspace_member_viewed"` + + default: platform_workspace_member_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -108320,13 +114502,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `skill_id: string` + - `user_id: string` - The tagged ID of the skill + Tagged ID of the viewed member - - `version: string` + - `workspace_id: string` - The version number of the deleted version + Tagged ID of the workspace - `id: optional string` @@ -108346,13 +114528,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSpendLimitAlertEmailsUpdated object` + - `PlatformWorkspaceMembersListed object` - Spend limit alert email addresses and role targets were updated for an org. + Workspace members were listed. - - `type: optional "platform_spend_limit_alert_emails_updated"` + - `type: optional "platform_workspace_members_listed"` - default: platform_spend_limit_alert_emails_updated + default: platform_workspace_members_listed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -108560,17 +114742,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `alert_emails: optional array of string or null` + - `workspace_id: string` - Updated list of alert email addresses. + Tagged ID of the workspace - - `alerted_roles: optional array of string or null` + - `id: optional string` - Updated list of alerted roles. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -108586,13 +114764,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSpendLimitCreated object` + - `PlatformWorkspaceRateLimitDeleted object` - An org-level fixed-dollar spend limit was created. + A workspace rate limit was deleted. - - `type: optional "platform_spend_limit_created"` + - `type: optional "platform_workspace_rate_limit_deleted"` - default: platform_spend_limit_created + default: platform_workspace_rate_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -108800,6 +114978,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `limiter_type: string` + + Type of rate limiter + + - `model_group: string` + + Model group the rate limit applied to + + - `workspace_id: string` + + Tagged ID of the workspace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -108810,14 +115000,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `limit_action: optional string or null` - - The action taken when the limit is reached (notify_only or notify_and_pause). - - - `limit_usd: optional number or null` - - The spend limit threshold in USD cents. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -108826,13 +115008,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformSpendLimitDeleted object` + - `PlatformWorkspaceRateLimitUpdated object` - An org-level spend limit was removed. + A workspace rate limit was created or updated. - - `type: optional "platform_spend_limit_deleted"` + - `type: optional "platform_workspace_rate_limit_updated"` - default: platform_spend_limit_deleted + default: platform_workspace_rate_limit_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -109040,6 +115222,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `limiter_type: string` + + Type of rate limiter + + - `model_group: string` + + Model group the rate limit applies to + + - `value: number` + + New rate limit value + + - `workspace_id: string` + + Tagged ID of the workspace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -109058,17 +115256,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - UUID of the deleted spend limit. - - - `PlatformSpendLimitUpdated object` + - `PlatformWorkspaceUpdated object` - An org-level spend limit snooze/ignore state was changed. + A workspace was updated. - - `type: optional "platform_spend_limit_updated"` + - `type: optional "platform_workspace_updated"` - default: platform_spend_limit_updated + default: platform_workspace_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -109276,6 +115470,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `workspace_id: string` + + Tagged ID of the updated workspace + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -109286,10 +115484,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `ignore: optional boolean or null` - - Whether the limit is being snoozed (ignored). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -109298,17 +115492,45 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` + - `updates: optional array of object` - UUID of the spend limit. + The field-level changes applied in this update - - `PlatformUsageReportClaudeCodeViewed object` + - `type: "allowed_inference_geos" or "default_inference_geo" or "display_color" or 5 more` - The Claude Code usage report was viewed. + The workspace field that changed - - `type: optional "platform_usage_report_claude_code_viewed"` + - `"allowed_inference_geos"` - default: platform_usage_report_claude_code_viewed + - `"default_inference_geo"` + + - `"display_color"` + + - `"external_key_config_id"` + + - `"inference_data_retention"` + + - `"name"` + + - `"tag_count"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change. For tag_count, the number of tags as a decimal string; tag keys and values are never recorded. + + - `previous_value: string` + + Field value immediately before this change. For tag_count, the number of tags as a decimal string; tag keys and values are never recorded. + + - `ClaudePluginCreated object` + + Plugin was created. + + - `type: optional "claude_plugin_created"` + + default: claude_plugin_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -109534,13 +115756,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformUsageReportMessagesViewed object` + - `plugin_id: optional string or null` - The messages usage report was viewed. + - `plugin_name: optional string or null` - - `type: optional "platform_usage_report_messages_viewed"` + - `ClaudePluginDeleted object` - default: platform_usage_report_messages_viewed + Plugin was deleted. + + - `type: optional "claude_plugin_deleted"` + + default: claude_plugin_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -109766,13 +115992,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceArchived object` + - `plugin_id: optional string or null` - A workspace was archived. + - `plugin_name: optional string or null` - - `type: optional "platform_workspace_archived"` + - `ClaudePluginDisabled object` - default: platform_workspace_archived + User disabled a plugin for their account. + + - `type: optional "claude_plugin_disabled"` + + default: claude_plugin_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -109980,10 +116210,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` - - Tagged ID of the archived workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -109994,6 +116220,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `marketplace_id: optional string or null` + + Identifier of the marketplace the plugin was installed from. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -110002,13 +116232,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceCreated object` + - `plugin_id: optional string or null` - A workspace was created. + Identifier of the plugin that was disabled. - - `type: optional "platform_workspace_created"` + - `plugin_name: optional string or null` - default: platform_workspace_created + Name of the plugin that was disabled. + + - `ClaudePluginEnabled object` + + User enabled a plugin for their account. + + - `type: optional "claude_plugin_enabled"` + + default: claude_plugin_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -110216,39 +116454,19 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` - - Tagged ID of the created workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `allowed_inference_geos: optional string or null` - - Inference geos the workspace allows, as a comma-separated list such as "global,us", or "unrestricted" when every geo is allowed - - `created_at: optional string` When this activity occurred. format: date-time - - `default_inference_geo: optional string or null` - - Inference geo the workspace uses when a request does not specify one - - - `display_color: optional string or null` - - Display color of the workspace, as a hex code such as "#ACA1CC" - - - `external_key_id: optional string or null` - - Tagged ID of the customer-managed encryption key the workspace uses; absent when it has none - - - `name: optional string or null` + - `marketplace_id: optional string or null` - Name of the workspace + Identifier of the marketplace the plugin was installed from. - `organization_id: optional string or null` @@ -110258,17 +116476,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `tag_count: optional number or null` + - `plugin_id: optional string or null` - Number of tags the workspace was created with; tag keys and values are never recorded + Identifier of the plugin that was enabled. - - `PlatformWorkspaceInferenceDataRetentionDisabled object` + - `plugin_name: optional string or null` - The zero data retention override was disabled for a workspace. + Name of the plugin that was enabled. - - `type: optional "platform_workspace_inference_data_retention_disabled"` + - `PluginInstallationPreferenceUpdated object` - default: platform_workspace_inference_data_retention_disabled + An org admin changed the installation preference for a plugin. + + - `type: optional "plugin_installation_preference_updated"` + + default: plugin_installation_preference_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -110476,20 +116698,52 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` + - `marketplace_id: string` - Tagged ID of the workspace + Marketplace ID + + - `plugin_name: string` + + Plugin name - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `action: optional string or null` + + Action taken (e.g. 'deleted' for clearing an override) + + - `attestations: optional array of object` + + Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + + - `type: string` + + Attestation type, such as "safe_for_phi" (may be used with protected health information). + + - `content_hash: string` + + Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + - `created_at: optional string` When this activity occurred. format: date-time + - `group_id: optional string or null` + + Tagged group ID for group-level overrides (null for org-level) + + - `group_name: optional string or null` + + Group name for group-level overrides + + - `installation_preference: optional string or null` + + New installation preference value (set only when action is an update; null for delete actions) + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -110498,17 +116752,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `previous_installation_preference: optional string or null` - Override state immediately before this change + Installation preference value before this change, at the same level (organization or group); absent when none was set before - - `PlatformWorkspaceInferenceDataRetentionEnabled object` + - `ClaudePluginReplaced object` - The zero data retention override was enabled for a workspace. + Plugin was replaced. - - `type: optional "platform_workspace_inference_data_retention_enabled"` + - `type: optional "claude_plugin_replaced"` - default: platform_workspace_inference_data_retention_enabled + default: claude_plugin_replaced - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -110716,10 +116970,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -110738,17 +116988,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional boolean or null` + - `plugin_id: optional string or null` - Override state immediately before this change + - `plugin_name: optional string or null` - - `PlatformWorkspaceMemberAdded object` + - `ClaudePluginSecurityScanCompleted object` - A member was added to a workspace. + A security scan of a plugin completed and produced a verdict. - - `type: optional "platform_workspace_member_added"` + - `type: optional "claude_plugin_security_scan_completed"` - default: platform_workspace_member_added + default: claude_plugin_security_scan_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -110956,13 +117206,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` + - `scan_id: string` - Tagged ID of the added member + Identifier of the security scan. - - `workspace_id: string` + - `verdict: "fail" or "pass" or "unknown" or 2 more` - Tagged ID of the workspace + Verdict the scan produced. + + - `"fail"` + + - `"pass"` + + - `"unknown"` + + - `"unspecified"` + + - `"warn"` - `id: optional string` @@ -110982,13 +117242,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceMemberRemoved object` + - `plugin_id: optional string or null` - A member was removed from a workspace. + Identifier of the plugin that was scanned. - - `type: optional "platform_workspace_member_removed"` + - `plugin_name: optional string or null` - default: platform_workspace_member_removed + Name of the plugin that was scanned. + + - `plugin_version: optional string or null` + + Version of the plugin that was scanned. + + - `ClaudePluginUpdated object` + + Plugin was updated. + + - `type: optional "claude_plugin_updated"` + + default: claude_plugin_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -111196,14 +117468,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - Tagged ID of the removed member - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -111222,13 +117486,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceMemberUpdated object` + - `plugin_id: optional string or null` - A workspace member was updated. + - `plugin_name: optional string or null` - - `type: optional "platform_workspace_member_updated"` + - `PrepaidAutoRechargeDisabled object` - default: platform_workspace_member_updated + Auto-recharge was disabled for API prepaid org. + + - `type: optional "prepaid_auto_recharge_disabled"` + + default: prepaid_auto_recharge_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -111436,14 +117704,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - Tagged ID of the updated member - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -111462,33 +117722,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "unspecified" or "workspace_role"` - - The workspace member field that changed - - - `"unspecified"` - - - `"workspace_role"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `PlatformWorkspaceMemberViewed object` + - `PrepaidAutoRechargeUpdated object` - A workspace member was viewed. + Auto-recharge settings were updated for API prepaid org. - - `type: optional "platform_workspace_member_viewed"` + - `type: optional "prepaid_auto_recharge_updated"` - default: platform_workspace_member_viewed + default: prepaid_auto_recharge_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -111696,14 +117936,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - Tagged ID of the viewed member - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -111722,13 +117954,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceMembersListed object` + - `target_amount: optional number or null` - Workspace members were listed. + Target recharge amount in minor units. - - `type: optional "platform_workspace_members_listed"` + - `threshold_amount: optional number or null` - default: platform_workspace_members_listed + Threshold amount to trigger recharge in minor units. + + - `PrepaidExtraUsageAutoReloadDisabled object` + + Prepaid usage credit auto-reload was disabled. + + - `type: optional "prepaid_extra_usage_auto_reload_disabled"` + + default: prepaid_extra_usage_auto_reload_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -111936,10 +118176,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -111958,13 +118194,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceRateLimitDeleted object` + - `PrepaidExtraUsageAutoReloadEnabled object` - A workspace rate limit was deleted. + Prepaid usage credit auto-reload was enabled. - - `type: optional "platform_workspace_rate_limit_deleted"` + - `type: optional "prepaid_extra_usage_auto_reload_enabled"` - default: platform_workspace_rate_limit_deleted + default: prepaid_extra_usage_auto_reload_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -112172,18 +118408,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `limiter_type: string` - - Type of rate limiter - - - `model_group: string` - - Model group the rate limit applied to - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -112202,13 +118426,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceRateLimitUpdated object` + - `PrepaidExtraUsageAutoReloadSettingsUpdated object` - A workspace rate limit was created or updated. + Prepaid usage credit auto-reload settings were updated. - - `type: optional "platform_workspace_rate_limit_updated"` + - `type: optional "prepaid_extra_usage_auto_reload_settings_updated"` - default: platform_workspace_rate_limit_updated + default: prepaid_extra_usage_auto_reload_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -112416,22 +118640,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `limiter_type: string` - - Type of rate limiter - - - `model_group: string` - - Model group the rate limit applies to - - - `value: number` - - New rate limit value - - - `workspace_id: string` - - Tagged ID of the workspace - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -112450,13 +118658,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PlatformWorkspaceUpdated object` + - `PrimaryOwnerTransferred object` - A workspace was updated. + Primary owner role was transferred to another org member. - - `type: optional "platform_workspace_updated"` + - `type: optional "primary_owner_transferred"` - default: platform_workspace_updated + default: primary_owner_transferred - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -112664,9 +118872,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `workspace_id: string` + - `new_owner_id: string` - Tagged ID of the updated workspace + Tagged ID of the member who became the primary owner. + + - `previous_owner_id: string` + + Tagged ID of the member who was the primary owner before the transfer. - `id: optional string` @@ -112686,45 +118898,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "allowed_inference_geos" or "default_inference_geo" or "display_color" or 5 more` - - The workspace field that changed - - - `"allowed_inference_geos"` - - - `"default_inference_geo"` - - - `"display_color"` - - - `"external_key_config_id"` - - - `"inference_data_retention"` - - - `"name"` - - - `"tag_count"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change. For tag_count, the number of tags as a decimal string; tag keys and values are never recorded. - - - `previous_value: string` - - Field value immediately before this change. For tag_count, the number of tags as a decimal string; tag keys and values are never recorded. - - - `ClaudePluginCreated object` + - `ClaudeProjectArchived object` - Plugin was created. + A Claude project was archived. - - `type: optional "claude_plugin_created"` + - `type: optional "claude_project_archived"` - default: claude_plugin_created + default: claude_project_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -112932,6 +119112,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project that was archived, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -112950,17 +119134,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` - - - `plugin_name: optional string or null` - - - `ClaudePluginDeleted object` + - `ClaudeProjectCreated object` - Plugin was deleted. + A Claude project was created. - - `type: optional "claude_plugin_deleted"` + - `type: optional "claude_project_created"` - default: claude_plugin_deleted + default: claude_project_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -113168,6 +119348,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project that was created, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -113186,17 +119370,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` - - - `plugin_name: optional string or null` - - - `ClaudePluginDisabled object` + - `ClaudeProjectDeleted object` - User disabled a plugin for their account. + A Claude project was deleted. - - `type: optional "claude_plugin_disabled"` + - `type: optional "claude_project_deleted"` - default: claude_plugin_disabled + default: claude_project_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -113404,6 +119584,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project that was deleted, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -113414,10 +119598,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `marketplace_id: optional string or null` - - Identifier of the marketplace the plugin was installed from. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -113426,21 +119606,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` - - Identifier of the plugin that was disabled. - - - `plugin_name: optional string or null` - - Name of the plugin that was disabled. - - - `ClaudePluginEnabled object` + - `ClaudeProjectDocumentAccessFailed object` - User enabled a plugin for their account. + An attempt to access a document in a Claude project failed. - - `type: optional "claude_plugin_enabled"` + - `type: optional "claude_project_document_access_failed"` - default: claude_plugin_enabled + default: claude_project_document_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -113648,20 +119820,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_id: string` + + Tagged ID of the project the request targeted, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_document_id: optional string or null` + + Tagged ID of the document the request tried to access, e.g. "claude_proj_doc_01HX...". Absent when the request did not carry a well-formed document identifier. + - `created_at: optional string` When this activity occurred. format: date-time - - `marketplace_id: optional string or null` - - Identifier of the marketplace the plugin was installed from. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -113670,21 +119846,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` - - Identifier of the plugin that was enabled. + - `filename: optional string or null` - - `plugin_name: optional string or null` + **Deprecated** - Name of the plugin that was enabled. + No longer populated. Where `claude_project_document_id` is present, resolve the name via the Compliance API project documents endpoint. - - `PluginInstallationPreferenceUpdated object` + - `ClaudeProjectDocumentBulkDeletionAuditTruncated object` - An org admin changed the installation preference for a plugin. + A bulk request to delete documents from a Claude project failed with more documents requested than were individually recorded in the audit log. - - `type: optional "plugin_installation_preference_updated"` + - `type: optional "claude_project_document_bulk_deletion_audit_truncated"` - default: plugin_installation_preference_updated + default: claude_project_document_bulk_deletion_audit_truncated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -113892,33 +120066,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `marketplace_id: string` - - Marketplace ID - - - `plugin_name: string` - - Plugin name - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `action: optional string or null` + - `audited_count: number` - Action taken (e.g. 'deleted' for clearing an override) + Number of documents that received an individual audit record. - - `attestations: optional array of object` + - `claude_project_id: string` - Legal attestations given with this change, such as "safe_for_phi"; empty when the request carried none. + Tagged ID of the project the bulk deletion targeted, e.g. "claude_proj_01HX...". - - `type: string` + - `requested_count: number` - Attestation type, such as "safe_for_phi" (may be used with protected health information). + Total number of documents the request asked to delete. - - `content_hash: string` + - `id: optional string` - Digest of the legal text that was accepted, identifying its version, as the actor's client reported it (not verified against a known document). + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -113926,18 +120088,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `group_id: optional string or null` - - Tagged group ID for group-level overrides (null for org-level) - - - `group_name: optional string or null` - - Group name for group-level overrides - - - `installation_preference: optional string or null` - - New installation preference value (set only when action is an update; null for delete actions) - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -113946,17 +120096,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_installation_preference: optional string or null` - - Installation preference value before this change, at the same level (organization or group); absent when none was set before - - - `ClaudePluginReplaced object` + - `ClaudeProjectDocumentDeleted object` - Plugin was replaced. + A document was deleted from a Claude project. - - `type: optional "claude_plugin_replaced"` + - `type: optional "claude_project_document_deleted"` - default: claude_plugin_replaced + default: claude_project_document_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -114164,6 +120310,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_document_id: string` + + Tagged ID of the document that was deleted, e.g. "claude_proj_doc_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project the document was deleted from, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -114182,17 +120336,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` + - `filename: optional string or null` - - `plugin_name: optional string or null` + **Deprecated** - - `ClaudePluginSecurityScanCompleted object` + No longer populated. The name can't be looked up once the document is deleted. - A security scan of a plugin completed and produced a verdict. + - `ClaudeProjectDocumentDeletionFailed object` - - `type: optional "claude_plugin_security_scan_completed"` + A request to delete a document from a Claude project failed. - default: claude_plugin_security_scan_completed + - `type: optional "claude_project_document_deletion_failed"` + + default: claude_project_document_deletion_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -114400,34 +120556,28 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` - - Identifier of the security scan. - - - `verdict: "fail" or "pass" or "unknown" or 2 more` - - Verdict the scan produced. - - - `"fail"` - - - `"pass"` - - - `"unknown"` - - - `"unspecified"` + - `claude_project_id: string` - - `"warn"` + Tagged ID of the project the deletion targeted, e.g. "claude_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_document_id: optional string or null` + + Tagged ID of the document the deletion targeted, e.g. "claude_proj_doc_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time + - `filename: optional string or null` + + Name of the document, when known. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -114436,25 +120586,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` - - Identifier of the plugin that was scanned. - - - `plugin_name: optional string or null` - - Name of the plugin that was scanned. - - - `plugin_version: optional string or null` - - Version of the plugin that was scanned. - - - `ClaudePluginUpdated object` + - `ClaudeProjectDocumentUpdated object` - Plugin was updated. + The content of a document in a Claude project was replaced in place. - - `type: optional "claude_plugin_updated"` + - `type: optional "claude_project_document_updated"` - default: claude_plugin_updated + default: claude_project_document_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -114662,6 +120800,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_document_id: string` + + Tagged ID of the document whose content was replaced, e.g. "claude_proj_doc_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project containing the document, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -114680,17 +120826,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plugin_id: optional string or null` + - `filename: optional string or null` - - `plugin_name: optional string or null` + **Deprecated** - - `PrepaidAutoRechargeDisabled object` + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - Auto-recharge was disabled for API prepaid org. + - `ClaudeProjectDocumentUploaded object` - - `type: optional "prepaid_auto_recharge_disabled"` + A document was uploaded to a Claude project. - default: prepaid_auto_recharge_disabled + - `type: optional "claude_project_document_uploaded"` + + default: claude_project_document_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -114898,6 +121046,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_document_id: string` + + Tagged ID of the document that was uploaded, e.g. "claude_proj_doc_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project the document was uploaded to, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -114916,13 +121072,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PrepaidAutoRechargeUpdated object` + - `filename: optional string or null` - Auto-recharge settings were updated for API prepaid org. + **Deprecated** - - `type: optional "prepaid_auto_recharge_updated"` + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - default: prepaid_auto_recharge_updated + - `ClaudeProjectDocumentViewed object` + + A document in a Claude project was viewed. + + - `type: optional "claude_project_document_viewed"` + + default: claude_project_document_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -115130,6 +121292,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_project_document_id: string` + + Tagged ID of the document that was viewed, e.g. "claude_proj_doc_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project containing the document, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -115148,21 +121318,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `target_amount: optional number or null` - - Target recharge amount in minor units. + - `filename: optional string or null` - - `threshold_amount: optional number or null` + **Deprecated** - Threshold amount to trigger recharge in minor units. + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - - `PrepaidExtraUsageAutoReloadDisabled object` + - `ClaudeProjectFileAccessFailed object` - Prepaid usage credit auto-reload was disabled. + An attempt to access a file in a Claude project failed. - - `type: optional "prepaid_extra_usage_auto_reload_disabled"` + - `type: optional "claude_project_file_access_failed"` - default: prepaid_extra_usage_auto_reload_disabled + default: claude_project_file_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -115370,6 +121538,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_file_id: string` + + Tagged ID of the file the request tried to access, e.g. "claude_file_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project the request targeted, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -115388,13 +121564,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PrepaidExtraUsageAutoReloadEnabled object` + - `ClaudeProjectFileBulkDeletionAuditTruncated object` - Prepaid usage credit auto-reload was enabled. + A bulk request to delete files from a Claude project failed with more files requested than were individually recorded in the audit log. - - `type: optional "prepaid_extra_usage_auto_reload_enabled"` + - `type: optional "claude_project_file_bulk_deletion_audit_truncated"` - default: prepaid_extra_usage_auto_reload_enabled + default: claude_project_file_bulk_deletion_audit_truncated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -115602,6 +121778,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `audited_count: number` + + Number of files that received an individual audit record. + + - `claude_project_id: string` + + Tagged ID of the project the bulk deletion targeted, e.g. "claude_proj_01HX...". + + - `requested_count: number` + + Total number of files the request asked to delete. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -115620,13 +121808,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PrepaidExtraUsageAutoReloadSettingsUpdated object` + - `ClaudeProjectFileDeleted object` - Prepaid usage credit auto-reload settings were updated. + A file was deleted from a Claude project. - - `type: optional "prepaid_extra_usage_auto_reload_settings_updated"` + - `type: optional "claude_project_file_deleted"` - default: prepaid_extra_usage_auto_reload_settings_updated + default: claude_project_file_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -115834,6 +122022,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_file_id: string` + + Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". + + - `claude_project_id: string` + + Tagged ID of the project the file was deleted from, e.g. "claude_proj_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -115852,13 +122048,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `PrimaryOwnerTransferred object` + - `ClaudeProjectFileDeletionFailed object` - Primary owner role was transferred to another org member. + A request to delete a file from a Claude project failed. - - `type: optional "primary_owner_transferred"` + - `type: optional "claude_project_file_deletion_failed"` - default: primary_owner_transferred + default: claude_project_file_deletion_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -116066,18 +122262,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `new_owner_id: string` - - Tagged ID of the member who became the primary owner. - - - `previous_owner_id: string` + - `claude_project_id: string` - Tagged ID of the member who was the primary owner before the transfer. + Tagged ID of the project the deletion targeted, e.g. "claude_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_file_id: optional string or null` + + Tagged ID of the file that was not deleted, e.g. "claude_file_01HX...". + - `created_at: optional string` When this activity occurred. @@ -116092,13 +122288,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectArchived object` + - `ClaudeProjectFileUploaded object` - A Claude project was archived. + A file was uploaded to a Claude project. - - `type: optional "claude_project_archived"` + - `type: optional "claude_project_file_uploaded"` - default: claude_project_archived + default: claude_project_file_uploaded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -116306,9 +122502,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_file_id: string` + + Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". + - `claude_project_id: string` - Tagged ID of the project that was archived, e.g. "claude_proj_01HX...". + Tagged ID of the project the file was uploaded to, e.g. "claude_proj_01HX...". - `id: optional string` @@ -116328,13 +122528,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectCreated object` + - `filename: optional string or null` - A Claude project was created. + **Deprecated** - - `type: optional "claude_project_created"` + No longer populated: the feed carries the object id; resolve the name via the Compliance API. - default: claude_project_created + - `ClaudeProjectReported object` + + A Claude project was reported. + + - `type: optional "claude_project_reported"` + + default: claude_project_reported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -116544,7 +122750,7 @@ compliance activities that can be filtered by various criteria. - `claude_project_id: string` - Tagged ID of the project that was created, e.g. "claude_proj_01HX...". + Tagged ID of the project that was reported, e.g. "claude_proj_01HX...". - `id: optional string` @@ -116564,13 +122770,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectDeleted object` + - `ClaudeProjectSharingUpdated object` - A Claude project was deleted. + A Claude project's sharing settings were updated. - - `type: optional "claude_project_deleted"` + - `type: optional "claude_project_sharing_updated"` - default: claude_project_deleted + default: claude_project_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -116778,9 +122984,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `audience: array of Public or Organization` + + Sharing audience for the project. If empty, it's only visible to the creating user. + + - `Public object` + + Sharing audience: public. + + - `type: optional "public"` + + default: public + + - `Organization object` + + Sharing audience: the project is visible to members of the owning organization. + + - `type: optional "organization"` + + default: organization + - `claude_project_id: string` - Tagged ID of the project that was deleted, e.g. "claude_proj_01HX...". + The project's identifier, e.g. "claude_proj_01Ab...". - `id: optional string` @@ -116800,13 +123026,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectDocumentAccessFailed object` + - `ClaudeProjectViewed object` - An attempt to access a document in a Claude project failed. + A Claude project was viewed. - - `type: optional "claude_project_document_access_failed"` + - `type: optional "claude_project_viewed"` - default: claude_project_document_access_failed + default: claude_project_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -117016,16 +123242,12 @@ compliance activities that can be filtered by various criteria. - `claude_project_id: string` - Tagged ID of the project the request targeted, e.g. "claude_proj_01HX...". + Tagged ID of the project that was viewed, e.g. "claude_proj_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_document_id: optional string or null` - - Tagged ID of the document the request tried to access, e.g. "claude_proj_doc_01HX...". Absent when the request did not carry a well-formed document identifier. - - `created_at: optional string` When this activity occurred. @@ -117040,19 +123262,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** + - `preview_only: optional boolean or null` - No longer populated. Where `claude_project_document_id` is present, resolve the name via the Compliance API project documents endpoint. + Whether only the project's summary metadata was viewed rather than the full project. - - `ClaudeProjectDocumentBulkDeletionAuditTruncated object` + - `ClaudePubsecIdentityConfigured object` - A bulk request to delete documents from a Claude project failed with more documents requested than were individually recorded in the audit log. + SAML IdP configuration updated for a public sector organization. - - `type: optional "claude_project_document_bulk_deletion_audit_truncated"` + - `type: optional "claude_pubsec_identity_configured"` - default: claude_project_document_bulk_deletion_audit_truncated + default: claude_pubsec_identity_configured - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -117260,17 +123480,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `audited_count: number` - - Number of documents that received an individual audit record. - - - `claude_project_id: string` - - Tagged ID of the project the bulk deletion targeted, e.g. "claude_proj_01HX...". - - - `requested_count: number` + - `idp_saml_config_updated: boolean` - Total number of documents the request asked to delete. + - `magic_link_toggled: boolean` - `id: optional string` @@ -117282,6 +123494,8 @@ compliance activities that can be filtered by various criteria. format: date-time + - `magic_link_enabled: optional boolean or null` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -117290,13 +123504,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectDocumentDeleted object` + - `RbacRoleAssigned object` - A document was deleted from a Claude project. + Admin assigned an RBAC custom role to a principal. - - `type: optional "claude_project_document_deleted"` + - `type: optional "rbac_role_assigned"` - default: claude_project_document_deleted + default: rbac_role_assigned - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -117504,13 +123718,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_document_id: string` + - `principal_id: string` - Tagged ID of the document that was deleted, e.g. "claude_proj_doc_01HX...". + Tagged ID of the principal - - `claude_project_id: string` + - `principal_type: string` - Tagged ID of the project the document was deleted from, e.g. "claude_proj_01HX...". + Type of principal: account, group, or service_account + + - `role_id: string` + + Tagged ID of the role - `id: optional string` @@ -117530,19 +123748,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** - - No longer populated. The name can't be looked up once the document is deleted. - - - `ClaudeProjectDocumentDeletionFailed object` + - `RbacRoleCreated object` - A request to delete a document from a Claude project failed. + Admin created an RBAC custom role. - - `type: optional "claude_project_document_deletion_failed"` + - `type: optional "rbac_role_created"` - default: claude_project_document_deletion_failed + default: rbac_role_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -117750,17 +123962,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` + - `role_id: string` - Tagged ID of the project the deletion targeted, e.g. "claude_proj_01HX...". + Tagged ID of the created role - - `id: optional string` + - `role_name: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Name of the created role - - `claude_project_document_id: optional string or null` + - `id: optional string` - Tagged ID of the document the deletion targeted, e.g. "claude_proj_doc_01HX...". + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -117768,10 +123980,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `filename: optional string or null` - - Name of the document, when known. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -117780,13 +123988,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectDocumentUpdated object` + - `RbacRoleDeleted object` - The content of a document in a Claude project was replaced in place. + Admin deleted an RBAC custom role. - - `type: optional "claude_project_document_updated"` + - `type: optional "rbac_role_deleted"` - default: claude_project_document_updated + default: rbac_role_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -117994,13 +124202,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_document_id: string` - - Tagged ID of the document whose content was replaced, e.g. "claude_proj_doc_01HX...". - - - `claude_project_id: string` + - `role_id: string` - Tagged ID of the project containing the document, e.g. "claude_proj_01HX...". + Tagged ID of the deleted role - `id: optional string` @@ -118020,19 +124224,26 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `RbacRoleGrantUpdated object` - **Deprecated** + Admin requested a capability grant for an RBAC custom role, or removed it. - No longer populated: the feed carries the object id; resolve the name via the Compliance API. + Records the admin's change to the role. Whether the grant is currently in + effect on the role is reported separately. - - `ClaudeProjectDocumentUploaded object` + - `type: optional "rbac_role_grant_updated"` - A document was uploaded to a Claude project. + default: rbac_role_grant_updated - - `type: optional "claude_project_document_uploaded"` + - `action: "removed" or "requested" or "unspecified"` - default: claude_project_document_uploaded + Whether the grant was requested for the role or removed from it + + - `"removed"` + + - `"requested"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -118240,13 +124451,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_document_id: string` + - `grant_type: string` - Tagged ID of the document that was uploaded, e.g. "claude_proj_doc_01HX...". + The type of capability grant - - `claude_project_id: string` + - `role_id: string` - Tagged ID of the project the document was uploaded to, e.g. "claude_proj_01HX...". + Tagged ID of the role - `id: optional string` @@ -118266,19 +124477,20 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `RbacRolePermissionAdded object` - **Deprecated** + Admin added a permission to an RBAC custom role. - No longer populated: the feed carries the object id; resolve the name via the Compliance API. + Emitted once per requested permission, including permissions the role + already had, so a retried request still produces a complete audit record. - - `ClaudeProjectDocumentViewed object` + - `type: optional "rbac_role_permission_added"` - A document in a Claude project was viewed. + default: rbac_role_permission_added - - `type: optional "claude_project_document_viewed"` + - `action: string` - default: claude_project_document_viewed + Action permitted on the resource - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -118486,13 +124698,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_document_id: string` + - `resource_id: string` - Tagged ID of the document that was viewed, e.g. "claude_proj_doc_01HX...". + ID of the resource - - `claude_project_id: string` + - `resource_type: string` - Tagged ID of the project containing the document, e.g. "claude_proj_01HX...". + Type of resource the permission applies to + + - `role_id: string` + + Tagged ID of the role - `id: optional string` @@ -118512,19 +124728,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `RbacRolePermissionRemoved object` - **Deprecated** + Admin removed a permission from an RBAC custom role. - No longer populated: the feed carries the object id; resolve the name via the Compliance API. + Emitted once per requested permission, including permissions the role + already lacked, so a retried request still produces a complete audit + record. - - `ClaudeProjectFileAccessFailed object` + - `type: optional "rbac_role_permission_removed"` - An attempt to access a file in a Claude project failed. + default: rbac_role_permission_removed - - `type: optional "claude_project_file_access_failed"` + - `action: string` - default: claude_project_file_access_failed + Action that was permitted on the resource - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -118732,13 +124950,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `resource_id: string` - Tagged ID of the file the request tried to access, e.g. "claude_file_01HX...". + ID of the resource - - `claude_project_id: string` + - `resource_type: string` - Tagged ID of the project the request targeted, e.g. "claude_proj_01HX...". + Type of resource the permission applied to + + - `role_id: string` + + Tagged ID of the role - `id: optional string` @@ -118758,13 +124980,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectFileBulkDeletionAuditTruncated object` + - `RbacRoleUnassigned object` - A bulk request to delete files from a Claude project failed with more files requested than were individually recorded in the audit log. + Admin unassigned an RBAC custom role from a principal. - - `type: optional "claude_project_file_bulk_deletion_audit_truncated"` + - `type: optional "rbac_role_unassigned"` - default: claude_project_file_bulk_deletion_audit_truncated + default: rbac_role_unassigned - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -118972,17 +125194,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `audited_count: number` + - `principal_id: string` - Number of files that received an individual audit record. + Tagged ID of the principal - - `claude_project_id: string` + - `principal_type: string` - Tagged ID of the project the bulk deletion targeted, e.g. "claude_proj_01HX...". + Type of principal: account, group, or service_account - - `requested_count: number` + - `role_id: string` - Total number of files the request asked to delete. + Tagged ID of the role - `id: optional string` @@ -119002,13 +125224,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectFileDeleted object` + - `RbacRoleUpdated object` - A file was deleted from a Claude project. + Admin updated an RBAC custom role. - - `type: optional "claude_project_file_deleted"` + - `type: optional "rbac_role_updated"` - default: claude_project_file_deleted + default: rbac_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -119216,13 +125438,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` - - Tagged ID of the file that was deleted, e.g. "claude_file_01HX...". - - - `claude_project_id: string` + - `role_id: string` - Tagged ID of the project the file was deleted from, e.g. "claude_proj_01HX...". + Tagged ID of the updated role - `id: optional string` @@ -119242,13 +125460,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectFileDeletionFailed object` + - `RoleAssignmentGranted object` - A request to delete a file from a Claude project failed. + Role assignment was granted. - - `type: optional "claude_project_file_deletion_failed"` + - `type: optional "role_assignment_granted"` - default: claude_project_file_deletion_failed + default: role_assignment_granted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -119456,18 +125674,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project the deletion targeted, e.g. "claude_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_file_id: optional string or null` - - Tagged ID of the file that was not deleted, e.g. "claude_file_01HX...". - - `created_at: optional string` When this activity occurred. @@ -119482,13 +125692,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectFileUploaded object` + - `resource_id: optional string or null` - A file was uploaded to a Claude project. + ID of the resource the role is on. - - `type: optional "claude_project_file_uploaded"` + - `resource_type: optional string or null` - default: claude_project_file_uploaded + What kind of resource the role is on, for example "chat_project", "skill", or "plugin". + + - `role: optional string or null` + + The role that was granted, for example "skill:viewer" or "plugin:viewer". + + - `target_email: optional string or null` + + Email address of the person who received the role when they are an invitee identified by email address or an account outside the organization; absent or null for members and groups. + + - `target_id: optional string or null` + + ID of the grantee: a user ID for a member or for an account outside the organization, a group ID for a group, the organization ID for an organization-wide grant, or an opaque "email:" key for an invitee identified only by email address. + + - `target_type: optional string or null` + + What kind of grantee received the role, for example "organization_member", "group", "organization", "account" (an account outside the organization), or "email" (an invitee identified by email address). + + - `RoleAssignmentRevoked object` + + Role assignment was revoked. + + - `type: optional "role_assignment_revoked"` + + default: role_assignment_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -119696,14 +125930,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` - - Tagged ID of the file that was uploaded, e.g. "claude_file_01HX...". - - - `claude_project_id: string` - - Tagged ID of the project the file was uploaded to, e.g. "claude_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -119722,19 +125948,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `resource_id: optional string or null` - **Deprecated** + ID of the resource the role was on. - No longer populated: the feed carries the object id; resolve the name via the Compliance API. + - `resource_type: optional string or null` - - `ClaudeProjectReported object` + What kind of resource the role was on, for example "chat_project", "skill", or "plugin". - A Claude project was reported. + - `role: optional string or null` - - `type: optional "claude_project_reported"` + The role that was revoked, for example "skill:viewer" or "plugin:viewer". - default: claude_project_reported + - `target_email: optional string or null` + + Email address of the person who held the role when they are an invitee identified by email address or an account outside the organization; absent or null for members and groups. + + - `target_id: optional string or null` + + ID of the grantee that held the role: a user ID for a member or for an account outside the organization, a group ID for a group, the organization ID for an organization-wide grant, or an opaque "email:" key for an invitee identified only by email address. + + - `target_type: optional string or null` + + What kind of grantee held the role, for example "organization_member", "group", "organization", "account" (an account outside the organization), or "email" (an invitee identified by email address). + + - `SSOLoginFailed object` + + An SSO sign-in attempt failed. + + - `type: optional "sso_login_failed"` + + default: sso_login_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -119942,10 +126186,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project that was reported, e.g. "claude_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -119964,13 +126204,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectSharingUpdated object` + - `SSOLoginInitiated object` - A Claude project's sharing settings were updated. + A user started an SSO sign-in flow. - - `type: optional "claude_project_sharing_updated"` + - `type: optional "sso_login_initiated"` - default: claude_project_sharing_updated + default: sso_login_initiated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -120178,30 +126418,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `audience: array of Public or Organization` - - Sharing audience for the project. If empty, it's only visible to the creating user. - - - `Public object` - - Sharing audience: public. - - - `type: optional "public"` - - default: public - - - `Organization object` - - Sharing audience: the project is visible to members of the owning organization. - - - `type: optional "organization"` - - default: organization - - - `claude_project_id: string` - - The project's identifier, e.g. "claude_proj_01Ab...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -120220,13 +126436,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeProjectViewed object` + - `SSOLoginSucceeded object` - A Claude project was viewed. + A user successfully signed in with SSO. - - `type: optional "claude_project_viewed"` + - `type: optional "sso_login_succeeded"` - default: claude_project_viewed + default: sso_login_succeeded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -120434,20 +126650,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_project_id: string` - - Tagged ID of the project that was viewed, e.g. "claude_proj_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `auth_method: optional "sso" or "unspecified" or null` + + The method the user used to authenticate. May be absent on activities recorded before this field was introduced. + + - `"sso"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. format: date-time + - `mfa_method: optional "not_used" or "unspecified" or null` + + The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. + + - `"not_used"` + + - `"unspecified"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -120456,17 +126684,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `preview_only: optional boolean or null` - - Whether only the project's summary metadata was viewed rather than the full project. - - - `ClaudePubsecIdentityConfigured object` + - `SSOSecondFactorMagicLink object` - SAML IdP configuration updated for a public sector organization. + SSO second factor magic link was used. - - `type: optional "claude_pubsec_identity_configured"` + - `type: optional "sso_second_factor_magic_link"` - default: claude_pubsec_identity_configured + default: sso_second_factor_magic_link - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -120674,10 +126898,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `idp_saml_config_updated: boolean` - - - `magic_link_toggled: boolean` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -120688,8 +126908,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `magic_link_enabled: optional boolean or null` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -120698,13 +126916,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleAssigned object` + - `ScimUserCreated object` - Admin assigned an RBAC custom role to a principal. + A SCIM user was provisioned. - - `type: optional "rbac_role_assigned"` + - `type: optional "scim_user_created"` - default: rbac_role_assigned + default: scim_user_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -120912,17 +127130,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `principal_id: string` - - Tagged ID of the principal - - - `principal_type: string` - - Type of principal: account, group, or service_account - - - `role_id: string` - - Tagged ID of the role + - `user_id: string` - `id: optional string` @@ -120942,13 +127150,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleCreated object` + - `ScimUserDeleted object` - Admin created an RBAC custom role. + A SCIM user was deleted. - - `type: optional "rbac_role_created"` + - `type: optional "scim_user_deleted"` - default: rbac_role_created + default: scim_user_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -121156,13 +127364,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `role_id: string` - - Tagged ID of the created role - - - `role_name: string` - - Name of the created role + - `user_id: string` - `id: optional string` @@ -121182,13 +127384,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleDeleted object` + - `ScimUserUpdated object` - Admin deleted an RBAC custom role. + A SCIM user was updated. - - `type: optional "rbac_role_deleted"` + - `type: optional "scim_user_updated"` - default: rbac_role_deleted + default: scim_user_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -121396,9 +127598,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `role_id: string` - - Tagged ID of the deleted role + - `user_id: string` - `id: optional string` @@ -121418,26 +127618,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleGrantUpdated object` - - Admin requested a capability grant for an RBAC custom role, or removed it. - - Records the admin's change to the role. Whether the grant is currently in - effect on the role is reported separately. - - - `type: optional "rbac_role_grant_updated"` - - default: rbac_role_grant_updated - - - `action: "removed" or "requested" or "unspecified"` - - Whether the grant was requested for the role or removed from it + - `ScopedAPIKeyDeleted object` - - `"removed"` + A scoped API key was deleted. - - `"requested"` + - `type: optional "scoped_api_key_deleted"` - - `"unspecified"` + default: scoped_api_key_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -121645,13 +127832,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `grant_type: string` + - `api_key_id: string` - The type of capability grant + Tagged ID of the deleted scoped API key - - `role_id: string` + - `api_key_name: string` - Tagged ID of the role + Name of the deleted scoped API key - `id: optional string` @@ -121671,20 +127858,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRolePermissionAdded object` - - Admin added a permission to an RBAC custom role. + - `scopes: optional array of string` - Emitted once per requested permission, including permissions the role - already had, so a retried request still produces a complete audit record. + Scopes the deleted key had - - `type: optional "rbac_role_permission_added"` + - `ScopedAPIKeyUpdated object` - default: rbac_role_permission_added + A scoped API key was renamed or its activation state changed. - - `action: string` + - `type: optional "scoped_api_key_updated"` - Action permitted on the resource + default: scoped_api_key_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -121892,17 +128076,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_id: string` - - ID of the resource - - - `resource_type: string` - - Type of resource the permission applies to - - - `role_id: string` + - `api_key_id: string` - Tagged ID of the role + Tagged ID of the updated scoped API key - `id: optional string` @@ -121922,21 +128098,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRolePermissionRemoved object` + - `updates: optional array of object` - Admin removed a permission from an RBAC custom role. + The field-level changes applied in this update - Emitted once per requested permission, including permissions the role - already lacked, so a retried request still produces a complete audit - record. + - `type: "activation_state" or "name" or "unspecified"` - - `type: optional "rbac_role_permission_removed"` + The scoped API key field that changed - default: rbac_role_permission_removed + - `"activation_state"` - - `action: string` + - `"name"` - Action that was permitted on the resource + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `SeatTierChangesCancelled object` + + Scheduled seat tier downgrades were cancelled. + + - `type: optional "seat_tier_changes_cancelled"` + + default: seat_tier_changes_cancelled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -122144,18 +128334,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `resource_id: string` - - ID of the resource - - - `resource_type: string` - - Type of resource the permission applied to - - - `role_id: string` - - Tagged ID of the role - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -122174,13 +128352,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleUnassigned object` + - `SeatTiersPurchased object` - Admin unassigned an RBAC custom role from a principal. + Seat tiers were purchased or upgraded on a subscription. - - `type: optional "rbac_role_unassigned"` + - `type: optional "seat_tiers_purchased"` - default: rbac_role_unassigned + default: seat_tiers_purchased - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -122388,18 +128566,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `principal_id: string` - - Tagged ID of the principal - - - `principal_type: string` - - Type of principal: account, group, or service_account - - - `role_id: string` - - Tagged ID of the role - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -122410,6 +128576,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `item_allocations: optional map[number] or null` + + Desired seat tier allocations (item type to quantity). + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -122418,13 +128588,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RbacRoleUpdated object` + - `ServiceCreated object` - Admin updated an RBAC custom role. + Activity logged when an org service is explicitly created. - - `type: optional "rbac_role_updated"` + - `type: optional "service_created"` - default: rbac_role_updated + default: service_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -122632,9 +128802,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `role_id: string` + - `service_name: string` - Tagged ID of the updated role + The org service name (e.g., 'external:my-service') - `id: optional string` @@ -122654,13 +128824,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `RoleAssignmentGranted object` + - `ServiceDeleted object` - Role assignment was granted. + Activity logged when an org service is deleted. - - `type: optional "role_assignment_granted"` + - `type: optional "service_deleted"` - default: role_assignment_granted + default: service_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -122868,6 +129038,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `service_name: string` + + The org service name (e.g., 'external:my-service') + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -122886,37 +129060,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_id: optional string or null` - - ID of the resource the role is on. - - - `resource_type: optional string or null` - - What kind of resource the role is on, for example "chat_project", "skill", or "plugin". - - - `role: optional string or null` - - The role that was granted, for example "skill:viewer" or "plugin:viewer". - - - `target_email: optional string or null` - - Email address of the person who received the role when they are an invitee identified by email address or an account outside the organization; absent or null for members and groups. - - - `target_id: optional string or null` - - ID of the grantee: a user ID for a member or for an account outside the organization, a group ID for a group, the organization ID for an organization-wide grant, or an opaque "email:" key for an invitee identified only by email address. - - - `target_type: optional string or null` - - What kind of grantee received the role, for example "organization_member", "group", "organization", "account" (an account outside the organization), or "email" (an invitee identified by email address). - - - `RoleAssignmentRevoked object` + - `ServiceKeyCreated object` - Role assignment was revoked. + Activity logged when a new org service key is created. - - `type: optional "role_assignment_revoked"` + - `type: optional "service_key_created"` - default: role_assignment_revoked + default: service_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -123124,6 +129274,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `is_service_created: boolean` + + Whether the org service was implicitly created in this request + + - `key_name: string` + + The human-readable name of the key + + - `service_name: string` + + The service name this key belongs to + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -123142,37 +129304,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_id: optional string or null` - - ID of the resource the role was on. - - - `resource_type: optional string or null` - - What kind of resource the role was on, for example "chat_project", "skill", or "plugin". - - - `role: optional string or null` - - The role that was revoked, for example "skill:viewer" or "plugin:viewer". - - - `target_email: optional string or null` - - Email address of the person who held the role when they are an invitee identified by email address or an account outside the organization; absent or null for members and groups. - - - `target_id: optional string or null` + - `scopes: optional array of string` - ID of the grantee that held the role: a user ID for a member or for an account outside the organization, a group ID for a group, the organization ID for an organization-wide grant, or an opaque "email:" key for an invitee identified only by email address. + The scopes granted to this service key - - `target_type: optional string or null` + - `service_key_id: optional string or null` - What kind of grantee held the role, for example "organization_member", "group", "organization", "account" (an account outside the organization), or "email" (an invitee identified by email address). + The ID of the created service key - - `SSOLoginFailed object` + - `ServiceKeyRevoked object` - An SSO sign-in attempt failed. + Activity logged when an org service key is revoked. - - `type: optional "sso_login_failed"` + - `type: optional "service_key_revoked"` - default: sso_login_failed + default: service_key_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -123380,6 +129526,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `service_key_id: string` + + The tagged ID of the revoked service key + + - `service_name: string` + + The service name this key belongs to + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -123398,13 +129552,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SSOLoginInitiated object` + - `SessionRevoked object` - A user started an SSO sign-in flow. + User revoked a specific session. - - `type: optional "sso_login_initiated"` + - `type: optional "session_revoked"` - default: sso_login_initiated + default: session_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -123630,13 +129784,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SSOLoginSucceeded object` + - `SessionShareAccessed object` - A user successfully signed in with SSO. + Session share was accessed. - - `type: optional "sso_login_succeeded"` + - `type: optional "session_share_accessed"` - default: sso_login_succeeded + default: session_share_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -123848,28 +130002,12 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `auth_method: optional "sso" or "unspecified" or null` - - The method the user used to authenticate. May be absent on activities recorded before this field was introduced. - - - `"sso"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. format: date-time - - `mfa_method: optional "not_used" or "unspecified" or null` - - The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. - - - `"not_used"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -123878,13 +130016,15 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SSOSecondFactorMagicLink object` + - `share_id: optional string or null` - SSO second factor magic link was used. + - `SessionShareCreated object` - - `type: optional "sso_second_factor_magic_link"` + Session share was created. - default: sso_second_factor_magic_link + - `type: optional "session_share_created"` + + default: session_share_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -124096,6 +130236,10 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_level: optional string or null` + + Access level granted for the share. + - `created_at: optional string` When this activity occurred. @@ -124110,13 +130254,15 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ScimUserCreated object` + - `share_id: optional string or null` - A SCIM user was provisioned. + - `SessionShareRevoked object` - - `type: optional "scim_user_created"` + Session share was revoked. - default: scim_user_created + - `type: optional "session_share_revoked"` + + default: session_share_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -124324,8 +130470,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -124344,13 +130488,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ScimUserDeleted object` + - `reason: optional string or null` - A SCIM user was deleted. + Why the share was revoked. - - `type: optional "scim_user_deleted"` + - `share_id: optional string or null` - default: scim_user_deleted + - `ClaudeSkillCreated object` + + Skill was created. + + - `type: optional "claude_skill_created"` + + default: claude_skill_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -124558,8 +130708,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -124578,247 +130726,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ScimUserUpdated object` - - A SCIM user was updated. - - - `type: optional "scim_user_updated"` - - default: scim_user_updated - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` + - `owner_user_id: optional string or null` - - `user_id: string` + The member who owns the skill; unset for an organization-owned skill. - - `id: optional string` + - `scope: optional "organization" or "personal" or "unspecified" or null` - Unique identifier for the activity e.g. 'activity_abcd1234' + Whether the skill is the member's own or the organization's. - - `created_at: optional string` + - `"organization"` - When this activity occurred. + - `"personal"` - format: date-time + - `"unspecified"` - - `organization_id: optional string or null` + - `skill_id: optional string or null` - Organization ID this activity is associated with + - `skill_name: optional string or null` - - `organization_uuid: optional string or null` + - `skill_version: optional string or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Version of the skill that was created. - - `ScopedAPIKeyDeleted object` + - `ClaudeSkillDeleted object` - A scoped API key was deleted. + Skill was deleted. - - `type: optional "scoped_api_key_deleted"` + - `type: optional "claude_skill_deleted"` - default: scoped_api_key_deleted + default: claude_skill_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -125026,14 +130962,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `api_key_id: string` - - Tagged ID of the deleted scoped API key - - - `api_key_name: string` - - Name of the deleted scoped API key - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -125044,6 +130972,8 @@ compliance activities that can be filtered by various criteria. format: date-time + - `deleted_version_ids: optional array of string` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -125052,17 +130982,39 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scopes: optional array of string` + - `owner_user_id: optional string or null` - Scopes the deleted key had + The member who owns the skill; unset for an organization-owned skill. - - `ScopedAPIKeyUpdated object` + - `scope: optional "organization" or "personal" or "unspecified" or null` - A scoped API key was renamed or its activation state changed. + Whether the skill is the member's own or the organization's. - - `type: optional "scoped_api_key_updated"` + - `"organization"` - default: scoped_api_key_updated + - `"personal"` + + - `"unspecified"` + + - `skill_id: optional string or null` + + - `skill_name: optional string or null` + + - `skill_version: optional string or null` + + Latest version of the skill when it was deleted. + + - `versions_deleted: optional number or null` + + Set when the deletion removed the skill's versions in the same request (the public API's cascading skill delete): one consolidated record of what went with the skill, reconcilable against earlier version-created records, rather than one version-deleted activity per row. versions_deleted is the exact count; deleted_version_ids lists at most the newest 1000 (truncated when versions_deleted exceeds its length). + + - `ClaudeSkillDisabled object` + + User disabled a skill for their account. + + - `type: optional "claude_skill_disabled"` + + default: claude_skill_disabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -125270,10 +131222,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `api_key_id: string` - - Tagged ID of the updated scoped API key - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -125292,35 +131240,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "activation_state" or "name" or "unspecified"` - - The scoped API key field that changed - - - `"activation_state"` - - - `"name"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` + - `skill_id: optional string or null` - Field value immediately before this change + - `skill_name: optional string or null` - - `SeatTierChangesCancelled object` + - `ClaudeSkillEnabled object` - Scheduled seat tier downgrades were cancelled. + User enabled a skill for their account. - - `type: optional "seat_tier_changes_cancelled"` + - `type: optional "claude_skill_enabled"` - default: seat_tier_changes_cancelled + default: claude_skill_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -125546,13 +131476,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SeatTiersPurchased object` + - `skill_id: optional string or null` - Seat tiers were purchased or upgraded on a subscription. + - `skill_name: optional string or null` - - `type: optional "seat_tiers_purchased"` + - `ClaudeSkillReplaced object` - default: seat_tiers_purchased + Skill was replaced. + + - `type: optional "claude_skill_replaced"` + + default: claude_skill_replaced - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -125770,10 +131704,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `item_allocations: optional map[number] or null` - - Desired seat tier allocations (item type to quantity). - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -125782,13 +131712,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ServiceCreated object` + - `owner_user_id: optional string or null` - Activity logged when an org service is explicitly created. + The member who owns the skill; unset for an organization-owned skill. - - `type: optional "service_created"` + - `scope: optional "organization" or "personal" or "unspecified" or null` - default: service_created + Whether the skill is the member's own or the organization's. + + - `"organization"` + + - `"personal"` + + - `"unspecified"` + + - `skill_id: optional string or null` + + - `skill_name: optional string or null` + + - `skill_version: optional string or null` + + Version of the skill after it was replaced. + + - `ClaudeSkillSecurityScanCompleted object` + + A security scan of a skill completed and produced a verdict. + + - `type: optional "claude_skill_security_scan_completed"` + + default: claude_skill_security_scan_completed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -125996,9 +131948,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_name: string` + - `scan_id: string` - The org service name (e.g., 'external:my-service') + Identifier of the security scan. + + - `verdict: "fail" or "pass" or "unknown" or 2 more` + + Verdict the scan produced. + + - `"fail"` + + - `"pass"` + + - `"unknown"` + + - `"unspecified"` + + - `"warn"` - `id: optional string` @@ -126018,13 +131984,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ServiceDeleted object` + - `skill_id: optional string or null` - Activity logged when an org service is deleted. + Identifier of the skill that was scanned. - - `type: optional "service_deleted"` + - `skill_name: optional string or null` - default: service_deleted + Name of the skill that was scanned. + + - `skill_version: optional string or null` + + Version of the skill that was scanned. + + - `SlackWorkspaceClaimRevoked object` + + A Slack workspace or Enterprise Grid organization was disconnected from the organization for Claude in Slack. + + - `type: optional "slack_workspace_claim_revoked"` + + default: slack_workspace_claim_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -126232,9 +132210,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_name: string` + - `slack_team_id: string` - The org service name (e.g., 'external:my-service') + Claim subject: a Slack team id for scope 'workspace', or an Enterprise Grid org id for scope 'enterprise_grid'. Use the scope field to tell which — never the value's prefix (legacy workspaces exist with E-prefixed team ids) - `id: optional string` @@ -126254,13 +132232,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ServiceKeyCreated object` + - `scope: optional string or null` - Activity logged when a new org service key is created. + Blast radius of the revocation: 'workspace' for one Slack workspace, 'enterprise_grid' for every workspace in a Slack Enterprise Grid organization - - `type: optional "service_key_created"` + - `SlackWorkspaceClaimed object` - default: service_key_created + A Slack workspace or Enterprise Grid organization was connected to the organization for Claude in Slack. + + - `type: optional "slack_workspace_claimed"` + + default: slack_workspace_claimed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -126468,17 +132450,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `is_service_created: boolean` - - Whether the org service was implicitly created in this request - - - `key_name: string` - - The human-readable name of the key - - - `service_name: string` + - `slack_team_id: string` - The service name this key belongs to + Claim subject: a Slack team id for scope 'workspace', or an Enterprise Grid org id for scope 'enterprise_grid'. Use the scope field to tell which — never the value's prefix (legacy workspaces exist with E-prefixed team ids) - `id: optional string` @@ -126498,21 +132472,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scopes: optional array of string` - - The scopes granted to this service key - - - `service_key_id: optional string or null` + - `scope: optional string or null` - The ID of the created service key + Blast radius of the claim: 'workspace' for one Slack workspace, 'enterprise_grid' for every workspace in a Slack Enterprise Grid organization - - `ServiceKeyRevoked object` + - `SocialLoginSucceeded object` - Activity logged when an org service key is revoked. + A user successfully signed in with a social identity provider (Google, Apple, or Microsoft). - - `type: optional "service_key_revoked"` + - `type: optional "social_login_succeeded"` - default: service_key_revoked + default: social_login_succeeded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -126720,24 +132690,44 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `service_key_id: string` + - `provider: "apple" or "google" or "microsoft" or "unspecified"` - The tagged ID of the revoked service key + The social identity provider the user signed in with: "google", "apple", or "microsoft". - - `service_name: string` + - `"apple"` - The service name this key belongs to + - `"google"` + + - `"microsoft"` + + - `"unspecified"` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `auth_method: optional "social" or "unspecified" or null` + + The method the user used to authenticate. May be absent on activities recorded before this field was introduced. + + - `"social"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. format: date-time + - `mfa_method: optional "not_used" or "unspecified" or null` + + The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. + + - `"not_used"` + + - `"unspecified"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -126746,13 +132736,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SessionRevoked object` + - `StepUpAuthenticationFailed object` - User revoked a specific session. + An additional identity check failed. - - `type: optional "session_revoked"` + - `type: optional "step_up_authentication_failed"` - default: session_revoked + default: step_up_authentication_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -126960,6 +132950,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `method: "device_key" or "unspecified" or "webauthn"` + + The verification method the user attempted. + + - `"device_key"` + + - `"unspecified"` + + - `"webauthn"` + + - `reason: "challenge_rejected" or "unspecified" or "verification_failed"` + + Why the attempt failed. + + - `"challenge_rejected"` + + - `"unspecified"` + + - `"verification_failed"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -126978,13 +132988,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SessionShareAccessed object` + - `trusted_device_id: optional string or null` - Session share was accessed. + Identifier of the trusted device the attempt referenced, e.g. "tdev_...". Present only for the device key method. - - `type: optional "session_share_accessed"` + - `StepUpAuthenticationSucceeded object` - default: session_share_accessed + The user completed an additional identity check to confirm a sensitive action. + + - `type: optional "step_up_authentication_succeeded"` + + default: step_up_authentication_succeeded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -127192,6 +133206,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `method: "device_key" or "unspecified" or "webauthn"` + + The verification method the user completed. + + - `"device_key"` + + - `"unspecified"` + + - `"webauthn"` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -127210,15 +133234,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `share_id: optional string or null` + - `trusted_device_id: optional string or null` - - `SessionShareCreated object` + Identifier of the trusted device used, e.g. "tdev_...". Present only for the device key method. - Session share was created. + - `StepUpCredentialEnrolled object` - - `type: optional "session_share_created"` + A user enrolled a passkey for confirming sensitive actions on their account. - default: session_share_created + - `type: optional "step_up_credential_enrolled"` + + default: step_up_credential_enrolled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -127426,13 +133452,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `credential_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Identifier of the enrolled credential, e.g. "sucr_...". - - `access_level: optional string or null` + - `id: optional string` - Access level granted for the share. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -127448,15 +133474,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `share_id: optional string or null` - - - `SessionShareRevoked object` + - `SubscriptionCancellationScheduled object` - Session share was revoked. + Subscription cancellation was scheduled at end of billing period. - - `type: optional "session_share_revoked"` + - `type: optional "subscription_cancellation_scheduled"` - default: session_share_revoked + default: subscription_cancellation_scheduled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -127682,19 +133706,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` - - Why the share was revoked. - - - `share_id: optional string or null` - - - `ClaudeSkillCreated object` + - `SubscriptionQuantityUpdated object` - Skill was created. + Contracted subscription seat quantity was updated. - - `type: optional "claude_skill_created"` + - `type: optional "subscription_quantity_updated"` - default: claude_skill_created + default: subscription_quantity_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -127902,6 +133920,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `added_seats: number` + + The number of seats added by this change. + + - `new_quantity: number` + + The contracted seat quantity after this change. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -127920,35 +133946,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `owner_user_id: optional string or null` - - The member who owns the skill; unset for an organization-owned skill. - - - `scope: optional "organization" or "personal" or "unspecified" or null` - - Whether the skill is the member's own or the organization's. - - - `"organization"` - - - `"personal"` - - - `"unspecified"` - - - `skill_id: optional string or null` - - - `skill_name: optional string or null` - - - `skill_version: optional string or null` + - `previous_quantity: optional number or null` - Version of the skill that was created. + The contracted seat quantity before this change. - - `ClaudeSkillDeleted object` + - `SubscriptionRenewed object` - Skill was deleted. + A cancelled subscription was renewed. - - `type: optional "claude_skill_deleted"` + - `type: optional "subscription_renewed"` - default: claude_skill_deleted + default: subscription_renewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -128160,14 +134168,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `billing_interval: optional string or null` + + Billing interval (e.g. monthly, annual). + - `created_at: optional string` When this activity occurred. format: date-time - - `deleted_version_ids: optional array of string` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -128176,39 +134186,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `owner_user_id: optional string or null` - - The member who owns the skill; unset for an organization-owned skill. - - - `scope: optional "organization" or "personal" or "unspecified" or null` - - Whether the skill is the member's own or the organization's. - - - `"organization"` - - - `"personal"` - - - `"unspecified"` - - - `skill_id: optional string or null` - - - `skill_name: optional string or null` - - - `skill_version: optional string or null` - - Latest version of the skill when it was deleted. - - - `versions_deleted: optional number or null` + - `plan_type: optional string or null` - Set when the deletion removed the skill's versions in the same request (the public API's cascading skill delete): one consolidated record of what went with the skill, reconcilable against earlier version-created records, rather than one version-deleted activity per row. versions_deleted is the exact count; deleted_version_ids lists at most the newest 1000 (truncated when versions_deleted exceeds its length). + Plan type being renewed into (e.g. team). - - `ClaudeSkillDisabled object` + - `SubscriptionResumed object` - User disabled a skill for their account. + A scheduled subscription cancellation was reversed. - - `type: optional "claude_skill_disabled"` + - `type: optional "subscription_resumed"` - default: claude_skill_disabled + default: subscription_resumed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -128434,17 +134422,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `skill_id: optional string or null` - - - `skill_name: optional string or null` - - - `ClaudeSkillEnabled object` + - `SubscriptionStarted object` - User enabled a skill for their account. + A new subscription was created (Team or Enterprise). - - `type: optional "claude_skill_enabled"` + - `type: optional "subscription_started"` - default: claude_skill_enabled + default: subscription_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -128656,6 +134640,10 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `billing_interval: optional string or null` + + Billing interval (e.g. monthly, annual). + - `created_at: optional string` When this activity occurred. @@ -128670,17 +134658,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `skill_id: optional string or null` + - `plan_type: optional string or null` - - `skill_name: optional string or null` + Type of subscription started (e.g. team, enterprise). - - `ClaudeSkillReplaced object` + - `seat_count: optional number or null` - Skill was replaced. + Number of seats purchased. - - `type: optional "claude_skill_replaced"` + - `SubscriptionUpgraded object` - default: claude_skill_replaced + Subscription plan was upgraded (e.g. Team to Enterprise). + + - `type: optional "subscription_upgraded"` + + default: subscription_upgraded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -128898,43 +134890,29 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `owner_user_id: optional string or null` - - The member who owns the skill; unset for an organization-owned skill. - - - `scope: optional "organization" or "personal" or "unspecified" or null` - - Whether the skill is the member's own or the organization's. + - `new_plan: optional string or null` - - `"organization"` + New plan type after upgrade. - - `"personal"` + - `old_plan: optional string or null` - - `"unspecified"` + Previous plan type. - - `skill_id: optional string or null` + - `organization_id: optional string or null` - - `skill_name: optional string or null` + Organization ID this activity is associated with - - `skill_version: optional string or null` + - `organization_uuid: optional string or null` - Version of the skill after it was replaced. + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeSkillSecurityScanCompleted object` + - `TrustedDeviceCredentialRotated object` - A security scan of a skill completed and produced a verdict. + The identity-verification credential of a trusted device was rotated to a new key. - - `type: optional "claude_skill_security_scan_completed"` + - `type: optional "trusted_device_credential_rotated"` - default: claude_skill_security_scan_completed + default: trusted_device_credential_rotated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -129142,23 +135120,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` - - Identifier of the security scan. - - - `verdict: "fail" or "pass" or "unknown" or 2 more` - - Verdict the scan produced. - - - `"fail"` - - - `"pass"` - - - `"unknown"` - - - `"unspecified"` + - `trusted_device_id: string` - - `"warn"` + Identifier of the device whose credential was rotated, e.g. "tdev_...". - `id: optional string` @@ -129178,25 +135142,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `skill_id: optional string or null` - - Identifier of the skill that was scanned. - - - `skill_name: optional string or null` - - Name of the skill that was scanned. - - - `skill_version: optional string or null` - - Version of the skill that was scanned. - - - `SlackWorkspaceClaimRevoked object` + - `TrustedDeviceEnrolled object` - A Slack workspace or Enterprise Grid organization was disconnected from the organization for Claude in Slack. + A device was enrolled as a trusted device for the user's account. Trusted devices can be used to confirm the user's identity for sensitive actions. - - `type: optional "slack_workspace_claim_revoked"` + - `type: optional "trusted_device_enrolled"` - default: slack_workspace_claim_revoked + default: trusted_device_enrolled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -129404,9 +135356,37 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `slack_team_id: string` + - `enrollment_method: "oauth" or "session" or "unspecified"` - Claim subject: a Slack team id for scope 'workspace', or an Enterprise Grid org id for scope 'enterprise_grid'. Use the scope field to tell which — never the value's prefix (legacy workspaces exist with E-prefixed team ids) + How the user confirmed their identity when enrolling the device. + + - `"oauth"` + + - `"session"` + + - `"unspecified"` + + - `platform: "android" or "claude_in_slack" or "desktop_app" or 4 more` + + The kind of client the enrollment request came from. + + - `"android"` + + - `"claude_in_slack"` + + - `"desktop_app"` + + - `"ios"` + + - `"unspecified"` + + - `"web_claude_ai"` + + - `"web_console"` + + - `trusted_device_id: string` + + Identifier of the device that was enrolled, e.g. "tdev_...". - `id: optional string` @@ -129426,17 +135406,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scope: optional string or null` - - Blast radius of the revocation: 'workspace' for one Slack workspace, 'enterprise_grid' for every workspace in a Slack Enterprise Grid organization - - - `SlackWorkspaceClaimed object` + - `TrustedDeviceRevoked object` - A Slack workspace or Enterprise Grid organization was connected to the organization for Claude in Slack. + A trusted device was removed from the user's account. - - `type: optional "slack_workspace_claimed"` + - `type: optional "trusted_device_revoked"` - default: slack_workspace_claimed + default: trusted_device_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -129644,9 +135620,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `slack_team_id: string` + - `reason: "org_member_removed" or "superseded" or "unspecified" or "user_revoked"` - Claim subject: a Slack team id for scope 'workspace', or an Enterprise Grid org id for scope 'enterprise_grid'. Use the scope field to tell which — never the value's prefix (legacy workspaces exist with E-prefixed team ids) + Why the device trust was removed. + + - `"org_member_removed"` + + - `"superseded"` + + - `"unspecified"` + + - `"user_revoked"` - `id: optional string` @@ -129666,17 +135650,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scope: optional string or null` + - `revoked_count: optional number or null` - Blast radius of the claim: 'workspace' for one Slack workspace, 'enterprise_grid' for every workspace in a Slack Enterprise Grid organization + Number of devices removed. Set when a security action removed all of the user's trusted devices at once; absent when a single device was removed (see trusted_device_id). - - `SocialLoginSucceeded object` + - `trusted_device_id: optional string or null` - A user successfully signed in with a social identity provider (Google, Apple, or Microsoft). + Identifier of the device that was removed, e.g. "tdev_...". Set when a single device was removed; absent when several devices were removed at once (see revoked_count). - - `type: optional "social_login_succeeded"` + - `TunnelArchived object` - default: social_login_succeeded + An MCP tunnel was archived. + + - `type: optional "tunnel_archived"` + + default: tunnel_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -129884,44 +135872,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `provider: "apple" or "google" or "microsoft" or "unspecified"` - - The social identity provider the user signed in with: "google", "apple", or "microsoft". - - - `"apple"` - - - `"google"` - - - `"microsoft"` - - - `"unspecified"` + - `tunnel_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `auth_method: optional "social" or "unspecified" or null` - - The method the user used to authenticate. May be absent on activities recorded before this field was introduced. - - - `"social"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. format: date-time - - `mfa_method: optional "not_used" or "unspecified" or null` - - The second authentication factor performed during this login, if any. `null` when the second-factor status is not recorded on this event — for example, when authentication was delegated to an external identity provider and any second factor is not visible to Anthropic, or when this event is one step of a multistep login whose MFA is reported on another activity. May be absent on activities recorded before this field was introduced. - - - `"not_used"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -129930,13 +135892,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `StepUpAuthenticationFailed object` + - `TunnelCertificateAdded object` - An additional identity check failed. + An inner-TLS CA certificate was added to a tunnel. - - `type: optional "step_up_authentication_failed"` + - `type: optional "tunnel_certificate_added"` - default: step_up_authentication_failed + default: tunnel_certificate_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -130144,30 +136106,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `method: "device_key" or "unspecified" or "webauthn"` - - The verification method the user attempted. - - - `"device_key"` - - - `"unspecified"` - - - `"webauthn"` - - - `reason: "challenge_rejected" or "unspecified" or "verification_failed"` - - Why the attempt failed. - - - `"challenge_rejected"` - - - `"unspecified"` + - `certificate_id: string` - - `"verification_failed"` + - `tunnel_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `certificate_fingerprint: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -130182,17 +136130,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `trusted_device_id: optional string or null` - - Identifier of the trusted device the attempt referenced, e.g. "tdev_...". Present only for the device key method. - - - `StepUpAuthenticationSucceeded object` + - `TunnelCertificateRevoked object` - The user completed an additional identity check to confirm a sensitive action. + An inner-TLS CA certificate was revoked from a tunnel. - - `type: optional "step_up_authentication_succeeded"` + - `type: optional "tunnel_certificate_revoked"` - default: step_up_authentication_succeeded + default: tunnel_certificate_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -130400,20 +136344,16 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `method: "device_key" or "unspecified" or "webauthn"` - - The verification method the user completed. - - - `"device_key"` - - - `"unspecified"` + - `certificate_id: string` - - `"webauthn"` + - `tunnel_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `certificate_fingerprint: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -130428,17 +136368,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `trusted_device_id: optional string or null` - - Identifier of the trusted device used, e.g. "tdev_...". Present only for the device key method. - - - `StepUpCredentialEnrolled object` + - `TunnelCreated object` - A user enrolled a passkey for confirming sensitive actions on their account. + An MCP tunnel was created. - - `type: optional "step_up_credential_enrolled"` + - `type: optional "tunnel_created"` - default: step_up_credential_enrolled + default: tunnel_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -130646,9 +136582,7 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` - - Identifier of the enrolled credential, e.g. "sucr_...". + - `tunnel_id: string` - `id: optional string` @@ -130668,13 +136602,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SubscriptionCancellationScheduled object` + - `tunnel_token_id: optional string or null` - Subscription cancellation was scheduled at end of billing period. + Id of the tunnel token issued with the tunnel and returned once in the create response; set only when creating the tunnel also issued its token, and absent for a tunnel whose token is revealed separately - - `type: optional "subscription_cancellation_scheduled"` + - `TunnelTokenMinted object` - default: subscription_cancellation_scheduled + An OAuth bearer token for the tunnel management API was minted. + + - `type: optional "tunnel_token_minted"` + + default: tunnel_token_minted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -130882,6 +136820,8 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `token_id: string` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -130900,13 +136840,15 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SubscriptionQuantityUpdated object` + - `token_name: optional string or null` - Contracted subscription seat quantity was updated. + - `TunnelTokenRevealed object` - - `type: optional "subscription_quantity_updated"` + The Cloudflare connector secret for a tunnel was revealed to the caller. - default: subscription_quantity_updated + - `type: optional "tunnel_token_revealed"` + + default: tunnel_token_revealed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -131114,13 +137056,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `added_seats: number` - - The number of seats added by this change. - - - `new_quantity: number` + - `tunnel_id: string` - The contracted seat quantity after this change. + - `tunnel_token_id: string` - `id: optional string` @@ -131140,17 +137078,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_quantity: optional number or null` - - The contracted seat quantity before this change. - - - `SubscriptionRenewed object` + - `TunnelTokenRevoked object` - A cancelled subscription was renewed. + An OAuth bearer token for the tunnel management API was revoked. - - `type: optional "subscription_renewed"` + - `type: optional "tunnel_token_revoked"` - default: subscription_renewed + default: tunnel_token_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -131358,14 +137292,12 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `token_id: string` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `billing_interval: optional string or null` - - Billing interval (e.g. monthly, annual). - - `created_at: optional string` When this activity occurred. @@ -131380,17 +137312,20 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plan_type: optional string or null` + - `token_name: optional string or null` - Plan type being renewed into (e.g. team). + Name the administrator gave the token when it was created, if any - - `SubscriptionResumed object` + - `TunnelTokenRotated object` - A scheduled subscription cancellation was reversed. + The Cloudflare connector secret for a tunnel was rotated. - - `type: optional "subscription_resumed"` + `tunnel_token_id` is the id of the *newly-issued* token. The previous + token is invalidated by the rotation and its id is not recorded here. - default: subscription_resumed + - `type: optional "tunnel_token_rotated"` + + default: tunnel_token_rotated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -131598,6 +137533,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `tunnel_id: string` + + - `tunnel_token_id: string` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -131616,13 +137555,15 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `SubscriptionStarted object` + - `reason: optional string or null` - A new subscription was created (Team or Enterprise). + - `UserConsentRecorded object` - - `type: optional "subscription_started"` + User granted a consent for a specific entity (e.g. consumer health consent for an MCP server). - default: subscription_started + - `type: optional "user_consent_recorded"` + + default: user_consent_recorded - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -131830,13 +137771,15 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `consent_type: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `entity_id: string` - - `billing_interval: optional string or null` + - `entity_type: string` - Billing interval (e.g. monthly, annual). + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -131852,21 +137795,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `plan_type: optional string or null` - - Type of subscription started (e.g. team, enterprise). - - - `seat_count: optional number or null` - - Number of seats purchased. - - - `SubscriptionUpgraded object` + - `UserConsentRevoked object` - Subscription plan was upgraded (e.g. Team to Enterprise). + User revoked a previously granted consent for a specific entity. - - `type: optional "subscription_upgraded"` + - `type: optional "user_consent_revoked"` - default: subscription_upgraded + default: user_consent_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -132078,19 +138013,19 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' + - `consent_id: optional string or null` + + - `consent_type: optional string or null` + - `created_at: optional string` When this activity occurred. format: date-time - - `new_plan: optional string or null` - - New plan type after upgrade. - - - `old_plan: optional string or null` + - `entity_id: optional string or null` - Previous plan type. + - `entity_type: optional string or null` - `organization_id: optional string or null` @@ -132100,13 +138035,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `TrustedDeviceCredentialRotated object` + - `ClaudeUserRoleUpdated object` - The identity-verification credential of a trusted device was rotated to a new key. + A user's role within the organization was changed, or the user was added to or removed from the organization. - - `type: optional "trusted_device_credential_rotated"` + - `type: optional "claude_user_role_updated"` - default: trusted_device_credential_rotated + default: claude_user_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -132314,9 +138249,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `trusted_device_id: string` + - `user_email: string` - Identifier of the device whose credential was rotated, e.g. "tdev_...". + Email of the user whose role was changed + + - `user_id: string` + + ID of the user whose role was changed - `id: optional string` @@ -132328,6 +138267,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `current_role: optional string or null` + + If null, then user was removed from the Organization + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -132336,13 +138279,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `TrustedDeviceEnrolled object` + - `previous_role: optional string or null` - A device was enrolled as a trusted device for the user's account. Trusted devices can be used to confirm the user's identity for sensitive actions. + If null, then user was added to the Organization - - `type: optional "trusted_device_enrolled"` + - `ClaudeUserSettingsUpdated object` - default: trusted_device_enrolled + User updated their personal settings. + + - `type: optional "claude_user_settings_updated"` + + default: claude_user_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -132550,281 +138497,359 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enrollment_method: "oauth" or "session" or "unspecified"` + - `updates: array of FullName or DisplayName or ArtifactsEnabled or 19 more` - How the user confirmed their identity when enrolling the device. + - `FullName object` - - `"oauth"` + The full name setting was changed. - - `"session"` + - `type: optional "full_name"` - - `"unspecified"` + default: full_name - - `platform: "android" or "claude_in_slack" or "desktop_app" or 4 more` + - `current_value: optional string or null` - The kind of client the enrollment request came from. + Setting value immediately after this change - - `"android"` + - `previous_value: optional string or null` - - `"claude_in_slack"` + Setting value immediately before this change - - `"desktop_app"` + - `DisplayName object` - - `"ios"` + The display name setting was changed. - - `"unspecified"` + - `type: optional "display_name"` - - `"web_claude_ai"` + default: display_name - - `"web_console"` + - `current_value: optional string or null` - - `trusted_device_id: string` + Setting value immediately after this change - Identifier of the device that was enrolled, e.g. "tdev_...". + - `previous_value: optional string or null` - - `id: optional string` + Setting value immediately before this change - Unique identifier for the activity e.g. 'activity_abcd1234' + - `ArtifactsEnabled object` - - `created_at: optional string` + The artifacts setting was changed. - When this activity occurred. + - `type: optional "artifacts_enabled"` - format: date-time + default: artifacts_enabled - - `organization_id: optional string or null` + - `current_value: optional boolean or null` - Organization ID this activity is associated with + Setting value immediately after this change - - `organization_uuid: optional string or null` + - `previous_value: optional boolean or null` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Setting value immediately before this change - - `TrustedDeviceRevoked object` + - `LatexEnabled object` - A trusted device was removed from the user's account. + The LaTeX setting was changed. - - `type: optional "trusted_device_revoked"` + - `type: optional "latex_enabled"` - default: trusted_device_revoked + default: latex_enabled - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + - `current_value: optional boolean or null` - - `APIActor object` + Setting value immediately after this change - - `type: optional "api_actor"` + - `previous_value: optional boolean or null` - default: api_actor + Setting value immediately before this change - - `api_key_id: string` + - `AnalysisToolEnabled object` - - `ip_address: string` + The analysis tool setting was changed. - - `user_agent: string` + - `type: optional "analysis_tool_enabled"` - - `UserActor object` + default: analysis_tool_enabled - - `type: optional "user_actor"` + - `current_value: optional boolean or null` - default: user_actor + Setting value immediately after this change - - `email_address: string` + - `previous_value: optional boolean or null` - format: email + Setting value immediately before this change - - `ip_address: string` + - `ChatSuggestionsEnabled object` - - `user_agent: string` + The chat suggestions setting was changed. - - `user_id: string` + - `type: optional "chat_suggestions_enabled"` - - `UnauthenticatedUserActor object` + default: chat_suggestions_enabled - - `type: optional "unauthenticated_user_actor"` + - `current_value: optional boolean or null` - default: unauthenticated_user_actor + Setting value immediately after this change - - `ip_address: string` + - `previous_value: optional boolean or null` - - `user_agent: string` + Setting value immediately before this change - - `unauthenticated_email_address: optional string or null` + - `MultimodalPdfsEnabled object` - format: email + The multimodal PDFs setting was changed. - - `AnthropicActor object` + - `type: optional "multimodal_pdfs_enabled"` - - `type: optional "anthropic_actor"` + default: multimodal_pdfs_enabled - default: anthropic_actor + - `current_value: optional boolean or null` - - `email_address: optional string or null` + Setting value immediately after this change - format: email + - `previous_value: optional boolean or null` - - `SystemActor object` + Setting value immediately before this change - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. + - `GdriveEnabled object` - - `type: optional "system_actor"` + The Google Drive setting was changed. - default: system_actor + - `type: optional "gdrive_enabled"` - - `service: optional string or null` + default: gdrive_enabled - Name of the automated process that performed the action, when known. + - `current_value: optional boolean or null` - - `AdminAPIKeyActor object` + Setting value immediately after this change - - `type: optional "admin_api_key_actor"` + - `previous_value: optional boolean or null` - default: admin_api_key_actor + Setting value immediately before this change - - `admin_api_key_id: string` + - `WebSearchEnabled object` - - `ip_address: string` + The web search setting was changed. - - `user_agent: string` + - `type: optional "web_search_enabled"` - - `ServiceAccountActor object` + default: web_search_enabled - - `type: optional "service_account_actor"` + - `current_value: optional boolean or null` - default: service_account_actor + Setting value immediately after this change - - `ip_address: string` + - `previous_value: optional boolean or null` - - `service_account_id: string` + Setting value immediately before this change - - `user_agent: string` + - `GeolocationEnabled object` - - `ScimDirectorySyncActor object` + The geolocation setting was changed. - - `type: optional "scim_directory_sync_actor"` + - `type: optional "geolocation_enabled"` - default: scim_directory_sync_actor + default: geolocation_enabled - - `directory_id: string` + - `current_value: optional boolean or null` - - `workos_event_id: string` + Setting value immediately after this change - - `idp_connection_type: optional string or null` + - `previous_value: optional boolean or null` - - `FederatedIdentityActor object` + Setting value immediately before this change - A federated external workload authenticated via a verified OIDC token. + - `EnabledSaffron object` - Carries the verified issuer, subject, and audience claims from the - presented JWT. + The memory setting was changed for the user. - - `type: optional "federated_identity_actor"` + - `type: optional "enabled_saffron"` - default: federated_identity_actor + default: enabled_saffron - - `issuer: string` + - `current_value: optional boolean or null` - - `subject: string` + Setting value immediately after this change - - `audience: optional array of string` + - `previous_value: optional boolean or null` - - `ip_address: optional string or null` + Setting value immediately before this change - - `user_agent: optional string or null` + - `McpToolsEnabled object` - - `FederatedActor object` + The MCP tools setting was changed. - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. + - `type: optional "mcp_tools_enabled"` - - `type: optional "federated_actor"` + default: mcp_tools_enabled - default: federated_actor + - `current_value: optional map[boolean] or null` - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + Setting value immediately after this change - - `FederatedActorAwsProvider object` + - `previous_value: optional map[boolean] or null` - Asserting party: the AWS account the organization is bound to. + Setting value immediately before this change - - `type: optional "aws"` + - `CliOpPermissionsEnabled object` - default: aws + The CLI operation permissions setting was changed. - - `account_id: string` + - `type: optional "cli_op_permissions_enabled"` - - `signed_principal: string` + default: cli_op_permissions_enabled - The AWS-signed ARN of the IAM principal that requested the token. + - `current_value: optional map[string] or null` - - `FederatedActorAzureProvider object` + Setting value immediately after this change - Asserting party: the Azure subscription the organization is bound to. + - `previous_value: optional map[string] or null` - - `type: optional "azure"` + Setting value immediately before this change - default: azure + - `GoogleDriveSearchEnabled object` - - `subscription_id: string` + The Google Drive search setting was changed. - - `FederatedActorGcpProvider object` + - `type: optional "google_drive_search_enabled"` - Asserting party: the GCP project the organization is bound to. + default: google_drive_search_enabled - - `type: optional "gcp"` + - `current_value: optional boolean or null` - default: gcp + Setting value immediately after this change - - `project_number: string` + - `previous_value: optional boolean or null` - - `FederatedActorOidcProvider object` + Setting value immediately before this change - Asserting party: a customer-registered OIDC federation issuer. + - `GmailIntegrationEnabled object` - - `type: optional "oidc"` + The Gmail integration setting was changed. - default: oidc + - `type: optional "gmail_integration_enabled"` - - `issuer: optional string or null` + default: gmail_integration_enabled - The federation issuer's URL. Null when the presented credential failed verification. + - `current_value: optional boolean or null` - - `ip_address: optional string or null` + Setting value immediately after this change - - `subject: optional string or null` + - `previous_value: optional boolean or null` - The provider's verified identifier for the caller; its form depends on the provider. + Setting value immediately before this change - - `user_agent: optional string or null` + - `GoogleCalendarIntegrationEnabled object` - - `AttestedDeviceActor object` + The Google Calendar integration setting was changed. - An attested mobile device authenticated via Apple App Attest. + - `type: optional "google_calendar_integration_enabled"` - - `type: optional "attested_device_actor"` + default: google_calendar_integration_enabled - default: attested_device_actor + - `current_value: optional boolean or null` - - `external_client_id: string` + Setting value immediately after this change - - `kid_hash: string` + - `previous_value: optional boolean or null` - - `ip_address: optional string or null` + Setting value immediately before this change - - `user_agent: optional string or null` + - `ThinkingModeEnabled object` - - `reason: "org_member_removed" or "superseded" or "unspecified" or "user_revoked"` + The thinking mode setting was changed. - Why the device trust was removed. + - `type: optional "thinking_mode_enabled"` - - `"org_member_removed"` + default: thinking_mode_enabled - - `"superseded"` + - `current_value: optional "adaptive" or "extended" or "off" or "unspecified" or null` - - `"unspecified"` + Setting value immediately after this change - - `"user_revoked"` + - `"adaptive"` + + - `"extended"` + + - `"off"` + + - `"unspecified"` + + - `previous_value: optional "adaptive" or "extended" or "off" or "unspecified" or null` + + Setting value immediately before this change + + - `"adaptive"` + + - `"extended"` + + - `"off"` + + - `"unspecified"` + + - `ResearchModeEnabled object` + + The research mode setting was changed. + + - `type: optional "research_mode_enabled"` + + default: research_mode_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ComputerUseEnabled object` + + The computer use setting was changed. + + - `type: optional "computer_use_enabled"` + + default: computer_use_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ClaudeAPIInArtifactsEnabled object` + + The Claude API in Artifacts setting was changed. + + - `type: optional "claude_api_in_artifacts_enabled"` + + default: claude_api_in_artifacts_enabled + + - `current_value: optional boolean or null` + + Setting value immediately after this change + + - `previous_value: optional boolean or null` + + Setting value immediately before this change + + - `ConversationPreferences object` + + The 'conversation_preferences' for the user were updated. Values omitted. + + - `type: optional "conversation_preferences"` + + default: conversation_preferences + + - `CoworkGlobalInstructions object` + + The Cowork global instructions were updated. Values omitted. + + - `type: optional "cowork_global_instructions"` + + default: cowork_global_instructions - `id: optional string` @@ -132844,21 +138869,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `revoked_count: optional number or null` - - Number of devices removed. Set when a security action removed all of the user's trusted devices at once; absent when a single device was removed (see trusted_device_id). - - - `trusted_device_id: optional string or null` - - Identifier of the device that was removed, e.g. "tdev_...". Set when a single device was removed; absent when several devices were removed at once (see revoked_count). - - - `TunnelArchived object` + - `VerificationEvidenceSubmitted object` - An MCP tunnel was archived. + Verification evidence was submitted for an organization's verification. - - `type: optional "tunnel_archived"` + - `type: optional "verification_evidence_submitted"` - default: tunnel_archived + default: verification_evidence_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -133066,7 +139083,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `tunnel_id: string` + - `verification_id: string` + + Tagged ID of the verification the evidence was submitted for. + + - `verification_type: string` + + The type of verification the evidence was submitted for. - `id: optional string` @@ -133086,13 +139109,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `TunnelCertificateAdded object` + - `VerificationProgramApplicationCreated object` - An inner-TLS CA certificate was added to a tunnel. + An organization applied to a verification program. - - `type: optional "tunnel_certificate_added"` + - `type: optional "verification_program_application_created"` - default: tunnel_certificate_added + default: verification_program_application_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -133300,16 +139323,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `certificate_id: string` + - `program_slug: string` - - `tunnel_id: string` + The verification program the organization applied to. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `certificate_fingerprint: optional string or null` - - `created_at: optional string` When this activity occurred. @@ -133324,13 +139345,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `TunnelCertificateRevoked object` + - `WorkspaceMemberSpendLimitCreated object` - An inner-TLS CA certificate was revoked from a tunnel. + A per-member or workspace-default Claude Code spend limit was created. - - `type: optional "tunnel_certificate_revoked"` + - `type: optional "workspace_member_spend_limit_created"` - default: tunnel_certificate_revoked + default: workspace_member_spend_limit_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -133538,15 +139559,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `certificate_id: string` - - - `tunnel_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `certificate_fingerprint: optional string or null` + - `account_id: optional string or null` + + Tagged ID of the user (null for workspace-wide default). - `created_at: optional string` @@ -133554,239 +139573,13 @@ compliance activities that can be filtered by various criteria. format: date-time - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `TunnelCreated object` - - An MCP tunnel was created. - - - `type: optional "tunnel_created"` - - default: tunnel_created - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `tunnel_id: string` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' + - `limit_action: optional string or null` - - `created_at: optional string` + The action taken when the limit is reached. - When this activity occurred. + - `limit_usd: optional number or null` - format: date-time + The spend limit threshold in USD cents. - `organization_id: optional string or null` @@ -133796,17 +139589,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `tunnel_token_id: optional string or null` + - `workspace_id: optional string or null` - Id of the tunnel token issued with the tunnel and returned once in the create response; set only when creating the tunnel also issued its token, and absent for a tunnel whose token is revealed separately + Tagged ID of the workspace. - - `TunnelTokenMinted object` + - `WorkspaceMemberSpendLimitDeleted object` - An OAuth bearer token for the tunnel management API was minted. + A per-member or workspace-default Claude Code spend limit was deleted. - - `type: optional "tunnel_token_minted"` + - `type: optional "workspace_member_spend_limit_deleted"` - default: tunnel_token_minted + default: workspace_member_spend_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -134014,12 +139807,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `token_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `account_id: optional string or null` + + Tagged ID of the user (null for workspace-wide default). + - `created_at: optional string` When this activity occurred. @@ -134034,15 +139829,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_name: optional string or null` + - `spend_limit_id: optional string or null` - - `TunnelTokenRevealed object` + UUID of the deleted spend limit. - The Cloudflare connector secret for a tunnel was revealed to the caller. + - `workspace_id: optional string or null` - - `type: optional "tunnel_token_revealed"` + Tagged ID of the workspace. - default: tunnel_token_revealed + - `WorkspaceMemberSpendLimitUpdated object` + + A per-member Claude Code spend limit amount was updated. + + - `type: optional "workspace_member_spend_limit_updated"` + + default: workspace_member_spend_limit_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -134250,20 +140051,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `tunnel_id: string` - - - `tunnel_token_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `account_id: optional string or null` + + Tagged ID of the user (null for workspace-wide default). + - `created_at: optional string` When this activity occurred. format: date-time + - `new_limit_usd: optional number or null` + + The new spend limit threshold in USD cents. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -134272,13 +140077,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `TunnelTokenRevoked object` + - `spend_limit_id: optional string or null` - An OAuth bearer token for the tunnel management API was revoked. + UUID of the spend limit. - - `type: optional "tunnel_token_revoked"` + - `workspace_id: optional string or null` - default: tunnel_token_revoked + Tagged ID of the workspace. + + - `WorkspaceSpendLimitAlertEmailsUpdated object` + + Spend limit alert email recipients were updated for a workspace. + + - `type: optional "workspace_spend_limit_alert_emails_updated"` + + default: workspace_spend_limit_alert_emails_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -134486,12 +140299,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `token_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `alert_emails: optional array of string or null` + + Updated list of alert email addresses. + - `created_at: optional string` When this activity occurred. @@ -134506,20 +140321,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `token_name: optional string or null` - - Name the administrator gave the token when it was created, if any + - `workspace_id: optional string or null` - - `TunnelTokenRotated object` + Tagged ID of the workspace. - The Cloudflare connector secret for a tunnel was rotated. + - `WorkspaceSpendLimitCreated object` - `tunnel_token_id` is the id of the *newly-issued* token. The previous - token is invalidated by the rotation and its id is not recorded here. + A workspace-level API spend limit was created. - - `type: optional "tunnel_token_rotated"` + - `type: optional "workspace_spend_limit_created"` - default: tunnel_token_rotated + default: workspace_spend_limit_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -134727,10 +140539,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `tunnel_id: string` - - - `tunnel_token_id: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -134741,6 +140549,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `limit_action: optional string or null` + + The action taken when the limit is reached (notify_only or notify_and_pause). + + - `limit_usd: optional number or null` + + The spend limit threshold in USD cents. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -134749,15 +140565,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` + - `workspace_id: optional string or null` - - `UserConsentRecorded object` + Tagged ID of the workspace. - User granted a consent for a specific entity (e.g. consumer health consent for an MCP server). + - `WorkspaceSpendLimitDeleted object` - - `type: optional "user_consent_recorded"` + A workspace-level API spend limit was deleted. - default: user_consent_recorded + - `type: optional "workspace_spend_limit_deleted"` + + default: workspace_spend_limit_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -134965,12 +140783,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `consent_type: string` - - - `entity_id: string` - - - `entity_type: string` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -134989,253 +140801,70 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `UserConsentRevoked object` - - User revoked a previously granted consent for a specific entity. - - - `type: optional "user_consent_revoked"` - - default: user_consent_revoked - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` + - `spend_limit_id: optional string or null` - - `user_agent: optional string or null` + UUID of the deleted spend limit. - - `id: optional string` + - `workspace_id: optional string or null` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the workspace. - - `consent_id: optional string or null` +- `first_id: optional string or null` - - `consent_type: optional string or null` +- `has_more: optional boolean` - - `created_at: optional string` + default: false - When this activity occurred. +- `last_id: optional string or null` - format: date-time +### Example - - `entity_id: optional string or null` +```bash +curl https://api.anthropic.com/v1/compliance/activities \ + -H 'anthropic-version: 2023-06-01' \ + -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY" +``` - - `entity_type: optional string or null` +#### Response (200) - - `organization_id: optional string or null` +```json +{ + "data": [ + { + "actor": { + "api_key_id": "api_key_id", + "ip_address": "ip_address", + "user_agent": "user_agent", + "type": "api_actor" + }, + "decision": "blocked", + "id": "id", + "abuse_session_id": "abuse_session_id", + "created_at": "2019-12-27T18:11:19.117Z", + "organization_id": "organization_id", + "organization_uuid": "organization_uuid", + "type": "abuse_decision_received" + } + ], + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" +} +``` - Organization ID this activity is associated with +## Domain types - - `organization_uuid: optional string or null` +### Activity List Response - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). +- `ActivityListResponse = AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 544 more` - - `ClaudeUserRoleUpdated object` + - `AbuseDecisionReceived object` - A user's role within the organization was changed, or the user was added to or removed from the organization. + An external anti-abuse service reported a consequential decision about a sign-in or sign-up attempt. - - `type: optional "claude_user_role_updated"` + - `type: optional "abuse_decision_received"` - default: claude_user_role_updated + default: abuse_decision_received - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -135443,28 +141072,28 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `user_email: string` + - `decision: "blocked" or "unspecified"` - Email of the user whose role was changed + The decision applied to the session. - - `user_id: string` + - `"blocked"` - ID of the user whose role was changed + - `"unspecified"` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `abuse_session_id: optional string or null` + + The anti-abuse service's opaque session identifier for correlation. + - `created_at: optional string` When this activity occurred. format: date-time - - `current_role: optional string or null` - - If null, then user was removed from the Organization - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -135473,17 +141102,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` - - If null, then user was added to the Organization - - - `ClaudeUserSettingsUpdated object` + - `AccountDeleted object` - User updated their personal settings. + User-initiated self-service account deletion. - - `type: optional "claude_user_settings_updated"` + - `type: optional "account_deleted"` - default: claude_user_settings_updated + default: account_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -135691,359 +141316,241 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `updates: array of FullName or DisplayName or ArtifactsEnabled or 19 more` - - - `FullName object` - - The full name setting was changed. - - - `type: optional "full_name"` - - default: full_name - - - `current_value: optional string or null` - - Setting value immediately after this change - - - `previous_value: optional string or null` - - Setting value immediately before this change - - - `DisplayName object` - - The display name setting was changed. - - - `type: optional "display_name"` - - default: display_name - - - `current_value: optional string or null` - - Setting value immediately after this change - - - `previous_value: optional string or null` - - Setting value immediately before this change - - - `ArtifactsEnabled object` - - The artifacts setting was changed. - - - `type: optional "artifacts_enabled"` - - default: artifacts_enabled - - - `current_value: optional boolean or null` - - Setting value immediately after this change - - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `LatexEnabled object` - - The LaTeX setting was changed. - - - `type: optional "latex_enabled"` - - default: latex_enabled - - - `current_value: optional boolean or null` - - Setting value immediately after this change - - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `AnalysisToolEnabled object` - - The analysis tool setting was changed. - - - `type: optional "analysis_tool_enabled"` - - default: analysis_tool_enabled - - - `current_value: optional boolean or null` - - Setting value immediately after this change - - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `ChatSuggestionsEnabled object` - - The chat suggestions setting was changed. - - - `type: optional "chat_suggestions_enabled"` - - default: chat_suggestions_enabled - - - `current_value: optional boolean or null` - - Setting value immediately after this change - - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `MultimodalPdfsEnabled object` - - The multimodal PDFs setting was changed. - - - `type: optional "multimodal_pdfs_enabled"` - - default: multimodal_pdfs_enabled - - - `current_value: optional boolean or null` - - Setting value immediately after this change - - - `previous_value: optional boolean or null` - - Setting value immediately before this change - - - `GdriveEnabled object` - - The Google Drive setting was changed. - - - `type: optional "gdrive_enabled"` - - default: gdrive_enabled - - - `current_value: optional boolean or null` + - `id: optional string` - Setting value immediately after this change + Unique identifier for the activity e.g. 'activity_abcd1234' - - `previous_value: optional boolean or null` + - `created_at: optional string` - Setting value immediately before this change + When this activity occurred. - - `WebSearchEnabled object` + format: date-time - The web search setting was changed. + - `organization_id: optional string or null` - - `type: optional "web_search_enabled"` + Organization ID this activity is associated with - default: web_search_enabled + - `organization_uuid: optional string or null` - - `current_value: optional boolean or null` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - Setting value immediately after this change + - `AdminAPIKeyCreated object` - - `previous_value: optional boolean or null` + An admin API key was created. - Setting value immediately before this change + - `type: optional "admin_api_key_created"` - - `GeolocationEnabled object` + default: admin_api_key_created - The geolocation setting was changed. + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - `type: optional "geolocation_enabled"` + - `APIActor object` - default: geolocation_enabled + - `type: optional "api_actor"` - - `current_value: optional boolean or null` + default: api_actor - Setting value immediately after this change + - `api_key_id: string` - - `previous_value: optional boolean or null` + - `ip_address: string` - Setting value immediately before this change + - `user_agent: string` - - `EnabledSaffron object` + - `UserActor object` - The memory setting was changed for the user. + - `type: optional "user_actor"` - - `type: optional "enabled_saffron"` + default: user_actor - default: enabled_saffron + - `email_address: string` - - `current_value: optional boolean or null` + format: email - Setting value immediately after this change + - `ip_address: string` - - `previous_value: optional boolean or null` + - `user_agent: string` - Setting value immediately before this change + - `user_id: string` - - `McpToolsEnabled object` + - `UnauthenticatedUserActor object` - The MCP tools setting was changed. + - `type: optional "unauthenticated_user_actor"` - - `type: optional "mcp_tools_enabled"` + default: unauthenticated_user_actor - default: mcp_tools_enabled + - `ip_address: string` - - `current_value: optional map[boolean] or null` + - `user_agent: string` - Setting value immediately after this change + - `unauthenticated_email_address: optional string or null` - - `previous_value: optional map[boolean] or null` + format: email - Setting value immediately before this change + - `AnthropicActor object` - - `CliOpPermissionsEnabled object` + - `type: optional "anthropic_actor"` - The CLI operation permissions setting was changed. + default: anthropic_actor - - `type: optional "cli_op_permissions_enabled"` + - `email_address: optional string or null` - default: cli_op_permissions_enabled + format: email - - `current_value: optional map[string] or null` + - `SystemActor object` - Setting value immediately after this change + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. - - `previous_value: optional map[string] or null` + - `type: optional "system_actor"` - Setting value immediately before this change + default: system_actor - - `GoogleDriveSearchEnabled object` + - `service: optional string or null` - The Google Drive search setting was changed. + Name of the automated process that performed the action, when known. - - `type: optional "google_drive_search_enabled"` + - `AdminAPIKeyActor object` - default: google_drive_search_enabled + - `type: optional "admin_api_key_actor"` - - `current_value: optional boolean or null` + default: admin_api_key_actor - Setting value immediately after this change + - `admin_api_key_id: string` - - `previous_value: optional boolean or null` + - `ip_address: string` - Setting value immediately before this change + - `user_agent: string` - - `GmailIntegrationEnabled object` + - `ServiceAccountActor object` - The Gmail integration setting was changed. + - `type: optional "service_account_actor"` - - `type: optional "gmail_integration_enabled"` + default: service_account_actor - default: gmail_integration_enabled + - `ip_address: string` - - `current_value: optional boolean or null` + - `service_account_id: string` - Setting value immediately after this change + - `user_agent: string` - - `previous_value: optional boolean or null` + - `ScimDirectorySyncActor object` - Setting value immediately before this change + - `type: optional "scim_directory_sync_actor"` - - `GoogleCalendarIntegrationEnabled object` + default: scim_directory_sync_actor - The Google Calendar integration setting was changed. + - `directory_id: string` - - `type: optional "google_calendar_integration_enabled"` + - `workos_event_id: string` - default: google_calendar_integration_enabled + - `idp_connection_type: optional string or null` - - `current_value: optional boolean or null` + - `FederatedIdentityActor object` - Setting value immediately after this change + A federated external workload authenticated via a verified OIDC token. - - `previous_value: optional boolean or null` + Carries the verified issuer, subject, and audience claims from the + presented JWT. - Setting value immediately before this change + - `type: optional "federated_identity_actor"` - - `ThinkingModeEnabled object` + default: federated_identity_actor - The thinking mode setting was changed. + - `issuer: string` - - `type: optional "thinking_mode_enabled"` + - `subject: string` - default: thinking_mode_enabled + - `audience: optional array of string` - - `current_value: optional "adaptive" or "extended" or "off" or "unspecified" or null` + - `ip_address: optional string or null` - Setting value immediately after this change + - `user_agent: optional string or null` - - `"adaptive"` + - `FederatedActor object` - - `"extended"` + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. - - `"off"` + - `type: optional "federated_actor"` - - `"unspecified"` + default: federated_actor - - `previous_value: optional "adaptive" or "extended" or "off" or "unspecified" or null` + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - Setting value immediately before this change + - `FederatedActorAwsProvider object` - - `"adaptive"` + Asserting party: the AWS account the organization is bound to. - - `"extended"` + - `type: optional "aws"` - - `"off"` + default: aws - - `"unspecified"` + - `account_id: string` - - `ResearchModeEnabled object` + - `signed_principal: string` - The research mode setting was changed. + The AWS-signed ARN of the IAM principal that requested the token. - - `type: optional "research_mode_enabled"` + - `FederatedActorAzureProvider object` - default: research_mode_enabled + Asserting party: the Azure subscription the organization is bound to. - - `current_value: optional boolean or null` + - `type: optional "azure"` - Setting value immediately after this change + default: azure - - `previous_value: optional boolean or null` + - `subscription_id: string` - Setting value immediately before this change + - `FederatedActorGcpProvider object` - - `ComputerUseEnabled object` + Asserting party: the GCP project the organization is bound to. - The computer use setting was changed. + - `type: optional "gcp"` - - `type: optional "computer_use_enabled"` + default: gcp - default: computer_use_enabled + - `project_number: string` - - `current_value: optional boolean or null` + - `FederatedActorOidcProvider object` - Setting value immediately after this change + Asserting party: a customer-registered OIDC federation issuer. - - `previous_value: optional boolean or null` + - `type: optional "oidc"` - Setting value immediately before this change + default: oidc - - `ClaudeAPIInArtifactsEnabled object` + - `issuer: optional string or null` - The Claude API in Artifacts setting was changed. + The federation issuer's URL. Null when the presented credential failed verification. - - `type: optional "claude_api_in_artifacts_enabled"` + - `ip_address: optional string or null` - default: claude_api_in_artifacts_enabled + - `subject: optional string or null` - - `current_value: optional boolean or null` + The provider's verified identifier for the caller; its form depends on the provider. - Setting value immediately after this change + - `user_agent: optional string or null` - - `previous_value: optional boolean or null` + - `AttestedDeviceActor object` - Setting value immediately before this change + An attested mobile device authenticated via Apple App Attest. - - `ConversationPreferences object` + - `type: optional "attested_device_actor"` - The 'conversation_preferences' for the user were updated. Values omitted. + default: attested_device_actor - - `type: optional "conversation_preferences"` + - `external_client_id: string` - default: conversation_preferences + - `kid_hash: string` - - `CoworkGlobalInstructions object` + - `ip_address: optional string or null` - The Cowork global instructions were updated. Values omitted. + - `user_agent: optional string or null` - - `type: optional "cowork_global_instructions"` + - `admin_api_key_id: string` - default: cowork_global_instructions + Tagged ID of the created admin API key - `id: optional string` @@ -136063,13 +141570,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `VerificationEvidenceSubmitted object` + - `scopes: optional array of string` - Verification evidence was submitted for an organization's verification. + Scopes granted to the key (empty for legacy non-scoped admin keys) - - `type: optional "verification_evidence_submitted"` + - `AdminAPIKeyDeleted object` - default: verification_evidence_submitted + An admin API key was deleted. + + - `type: optional "admin_api_key_deleted"` + + default: admin_api_key_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -136277,13 +141788,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `verification_id: string` - - Tagged ID of the verification the evidence was submitted for. - - - `verification_type: string` + - `admin_api_key_id: string` - The type of verification the evidence was submitted for. + Tagged ID of the deleted admin API key - `id: optional string` @@ -136303,13 +141810,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `VerificationProgramApplicationCreated object` + - `AdminAPIKeyUpdated object` - An organization applied to a verification program. + An admin API key was updated (renamed or activated/deactivated). - - `type: optional "verification_program_application_created"` + - `type: optional "admin_api_key_updated"` - default: verification_program_application_created + default: admin_api_key_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -136517,9 +142024,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `program_slug: string` + - `admin_api_key_id: string` - The verification program the organization applied to. + Tagged ID of the updated admin API key - `id: optional string` @@ -136539,261 +142046,35 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `WorkspaceMemberSpendLimitCreated object` - - A per-member or workspace-default Claude Code spend limit was created. - - - `type: optional "workspace_member_spend_limit_created"` - - default: workspace_member_spend_limit_created - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `account_id: optional string or null` - - Tagged ID of the user (null for workspace-wide default). - - - `created_at: optional string` - - When this activity occurred. - - format: date-time + - `updates: optional array of object` - - `limit_action: optional string or null` + The field-level changes applied in this update - The action taken when the limit is reached. + - `type: "name" or "status" or "unspecified"` - - `limit_usd: optional number or null` + The admin API key field that changed - The spend limit threshold in USD cents. + - `"name"` - - `organization_id: optional string or null` + - `"status"` - Organization ID this activity is associated with + - `"unspecified"` - - `organization_uuid: optional string or null` + - `current_value: string` - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + Field value immediately after this change - - `workspace_id: optional string or null` + - `previous_value: string` - Tagged ID of the workspace. + Field value immediately before this change - - `WorkspaceMemberSpendLimitDeleted object` + - `AdminConnectorRequestResolved object` - A per-member or workspace-default Claude Code spend limit was deleted. + Admin approved or dismissed pending member requests to enable an MCP connector. - - `type: optional "workspace_member_spend_limit_deleted"` + - `type: optional "admin_connector_request_resolved"` - default: workspace_member_spend_limit_deleted + default: admin_connector_request_resolved - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -137001,13 +142282,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `decision: "approved" or "dismissed" or "unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `"approved"` - - `account_id: optional string or null` + - `"dismissed"` - Tagged ID of the user (null for workspace-wide default). + - `"unspecified"` + + - `mcp_server_id: string` + + - `resolved_count: number` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -137023,21 +142312,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - UUID of the deleted spend limit. - - - `workspace_id: optional string or null` - - Tagged ID of the workspace. - - - `WorkspaceMemberSpendLimitUpdated object` + - `AdminRequestCreated object` - A per-member Claude Code spend limit amount was updated. + Admin request created by an org member (seat upgrade, limit increase, join org, end-user invite). - - `type: optional "workspace_member_spend_limit_updated"` + - `type: optional "admin_request_created"` - default: workspace_member_spend_limit_updated + default: admin_request_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -137245,24 +142526,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `request_type: string` + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `account_id: optional string or null` - - Tagged ID of the user (null for workspace-wide default). - - `created_at: optional string` When this activity occurred. format: date-time - - `new_limit_usd: optional number or null` - - The new spend limit threshold in USD cents. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -137271,21 +142546,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - UUID of the spend limit. - - - `workspace_id: optional string or null` - - Tagged ID of the workspace. - - - `WorkspaceSpendLimitAlertEmailsUpdated object` + - `AdminSetupChecklistStepDelegated object` - Spend limit alert email recipients were updated for a workspace. + A step of the Claude Enterprise admin setup checklist was delegated to a teammate — an organization member, or an email address that has not joined the organization yet — replacing any earlier delegation of that step. - - `type: optional "workspace_spend_limit_alert_emails_updated"` + - `type: optional "admin_setup_checklist_step_delegated"` - default: workspace_spend_limit_alert_emails_updated + default: admin_setup_checklist_step_delegated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -137493,13 +142760,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `id: optional string` + - `step: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The checklist step that was delegated, for example `enable_sso` or `verify_domain`. - - `alert_emails: optional array of string or null` + - `id: optional string` - Updated list of alert email addresses. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -137507,6 +142774,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `delegate_email: optional string or null` + + Email address the step was delegated to; present only when the delegate is not yet an organization member. + + - `delegate_user_id: optional string or null` + + Tagged ID of the organization member the step was delegated to; absent when the step was delegated to an email address that has not joined the organization. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -137515,17 +142790,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace. - - - `WorkspaceSpendLimitCreated object` + - `AdminSetupChecklistStepDelegationCancelled object` - A workspace-level API spend limit was created. + The delegation of a Claude Enterprise admin setup checklist step was cancelled. - - `type: optional "workspace_spend_limit_created"` + - `type: optional "admin_setup_checklist_step_delegation_cancelled"` - default: workspace_spend_limit_created + default: admin_setup_checklist_step_delegation_cancelled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -137733,6 +143004,10 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `step: string` + + The checklist step whose delegation was cancelled. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -137743,14 +143018,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `limit_action: optional string or null` - - The action taken when the limit is reached (notify_only or notify_and_pause). - - - `limit_usd: optional number or null` - - The spend limit threshold in USD cents. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -137759,17 +143026,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `workspace_id: optional string or null` - - Tagged ID of the workspace. - - - `WorkspaceSpendLimitDeleted object` + - `AgeVerified object` - A workspace-level API spend limit was deleted. + User age was verified. - - `type: optional "workspace_spend_limit_deleted"` + - `type: optional "age_verified"` - default: workspace_spend_limit_deleted + default: age_verified - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -137995,70 +143258,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `spend_limit_id: optional string or null` - - UUID of the deleted spend limit. - - - `workspace_id: optional string or null` - - Tagged ID of the workspace. - -- `first_id: optional string or null` - -- `has_more: optional boolean` - - default: false - -- `last_id: optional string or null` - -### Example - -```bash -curl https://api.anthropic.com/v1/compliance/activities \ - -H 'anthropic-version: 2023-06-01' \ - -H "Authorization: Bearer $ANTHROPIC_COMPLIANCE_API_KEY" -``` - -#### Response (200) - -```json -{ - "data": [ - { - "actor": { - "api_key_id": "api_key_id", - "ip_address": "ip_address", - "user_agent": "user_agent", - "type": "api_actor" - }, - "decision": "blocked", - "id": "id", - "abuse_session_id": "abuse_session_id", - "created_at": "2019-12-27T18:11:19.117Z", - "organization_id": "organization_id", - "organization_uuid": "organization_uuid", - "type": "abuse_decision_received" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" -} -``` - -## Domain types - -### Activity List Response - -- `ActivityListResponse = AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 533 more` - - - `AbuseDecisionReceived object` + - `AnonymousMobileLoginAttempted object` - An external anti-abuse service reported a consequential decision about a sign-in or sign-up attempt. + Anonymous mobile login was attempted. - - `type: optional "abuse_decision_received"` + - `type: optional "anonymous_mobile_login_attempted"` - default: abuse_decision_received + default: anonymous_mobile_login_attempted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -138266,22 +143472,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `decision: "blocked" or "unspecified"` - - The decision applied to the session. - - - `"blocked"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `abuse_session_id: optional string or null` - - The anti-abuse service's opaque session identifier for correlation. - - `created_at: optional string` When this activity occurred. @@ -138296,13 +143490,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AccountDeleted object` + - `APIKeyCreated object` - User-initiated self-service account deletion. + Activity logged when a new API key is created. - - `type: optional "account_deleted"` + - `type: optional "api_key_created"` - default: account_deleted + default: api_key_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -138510,6 +143704,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `api_key_id: string` + + The tagged ID of the created API key + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -138528,13 +143726,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminAPIKeyCreated object` + - `restricted_to_organization: optional boolean or null` - An admin API key was created. + Whether the key was restricted to the creating organization, rather than granted access across the whole parent organization - - `type: optional "admin_api_key_created"` + - `scopes: optional array of string` - default: admin_api_key_created + The scopes for this API key + + - `ClaudeArtifactAccessFailed object` + + An attempt to access an artifact failed. + + - `type: optional "claude_artifact_access_failed"` + + default: claude_artifact_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -138742,14 +143948,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `admin_api_key_id: string` - - Tagged ID of the created admin API key - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_id: optional string or null` + + The artifact's identifier, when known. + + - `claude_artifact_version_id: optional string or null` + + The version of the artifact the user attempted to access, when known. + - `created_at: optional string` When this activity occurred. @@ -138764,17 +143974,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scopes: optional array of string` + - `reason: optional string or null` - Scopes granted to the key (empty for legacy non-scoped admin keys) + The reason access was denied, when recorded. - - `AdminAPIKeyDeleted object` + - `ClaudeArtifactCommented object` - An admin API key was deleted. + Comment activity on a published artifact: a comment was added, a thread's resolved state was changed, or a thread was deleted. The actor is the user who performed the action; the comment text itself is stored with the artifact and is not part of this record. - - `type: optional "admin_api_key_deleted"` + - `type: optional "claude_artifact_commented"` - default: admin_api_key_deleted + default: claude_artifact_commented - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -138982,14 +144192,60 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `admin_api_key_id: string` + - `claude_artifact_id: string` - Tagged ID of the deleted admin API key + The artifact's identifier. + + - `comment_action: "activate_thread" or "create_thread" or "deactivate_thread" or 10 more` + + The action recorded: for example a new comment thread, a reply to an existing thread, a thread resolved, reopened, or deleted, a thread's Claude activation granted or revoked, a comment's text rewritten by its author, an existing comment sent to Claude or withdrawn from Claude, or a thread resolved by a Claude session. + + - `"activate_thread"` + + - `"create_thread"` + + - `"deactivate_thread"` + + - `"delete_thread"` + + - `"edit_comment"` + + - `"move_thread"` + + - `"reopen"` + + - `"reply"` + + - `"resolve"` + + - `"send_to_claude"` + + - `"session_resolve"` + + - `"unsend_to_claude"` + + - `"unspecified"` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `actor_outside_organization: optional boolean or null` + + True when the person who acted belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted commenter or editor access. Absent on older events; treat absence as false. + + - `claude_artifact_comment_id: optional string or null` + + The comment's identifier. Present when the activity relates to a specific comment, for example a new comment, an author's edit of one, or an existing comment sent to Claude or withdrawn from Claude; absent for thread-level actions performed without a comment, such as resolve, reopen, deletion, an activation change, or a resolve by a Claude session. + + - `claude_artifact_comment_thread_id: optional string or null` + + The comment thread's identifier. + + - `claude_artifact_version_id: optional string or null` + + The artifact version the comment activity applied to, when known. + - `created_at: optional string` When this activity occurred. @@ -139004,13 +144260,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminAPIKeyUpdated object` + - `ClaudeArtifactCommentsViewed object` - An admin API key was updated (renamed or activated/deactivated). + An artifact's comments were viewed. - - `type: optional "admin_api_key_updated"` + - `type: optional "claude_artifact_comments_viewed"` - default: admin_api_key_updated + default: claude_artifact_comments_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -139218,14 +144474,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `admin_api_key_id: string` + - `claude_artifact_id: string` - Tagged ID of the updated admin API key + The artifact's identifier. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_version_id: optional string or null` + + The version of the artifact whose comments were served, when known. + - `created_at: optional string` When this activity occurred. @@ -139240,35 +144500,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "name" or "status" or "unspecified"` - - The admin API key field that changed - - - `"name"` - - - `"status"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `AdminConnectorRequestResolved object` + - `ClaudeArtifactCreated object` - Admin approved or dismissed pending member requests to enable an MCP connector. + An artifact was created. - - `type: optional "admin_connector_request_resolved"` + - `type: optional "claude_artifact_created"` - default: admin_connector_request_resolved + default: claude_artifact_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -139476,17 +144714,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `decision: "approved" or "dismissed" or "unspecified"` - - - `"approved"` - - - `"dismissed"` - - - `"unspecified"` - - - `mcp_server_id: string` + - `claude_artifact_id: string` - - `resolved_count: number` + Tagged ID of the artifact that was created, e.g. "claude_artifact_01HX...". - `id: optional string` @@ -139506,13 +144736,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminRequestCreated object` + - `ClaudePublishedArtifactDeleted object` - Admin request created by an org member (seat upgrade, limit increase, join org, end-user invite). + A published artifact was deleted or unpublished — by its creator, by an organization admin, or by Anthropic (for example, when it was removed for a policy violation). - - `type: optional "admin_request_created"` + - `type: optional "claude_published_artifact_deleted"` - default: admin_request_created + default: claude_published_artifact_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -139720,7 +144950,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `request_type: string` + - `claude_published_artifact_id: string` + + The published artifact's identifier. - `id: optional string` @@ -139740,13 +144972,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminSetupChecklistStepDelegated object` + - `ClaudeArtifactPublished object` - A step of the Claude Enterprise admin setup checklist was delegated to a teammate — an organization member, or an email address that has not joined the organization yet — replacing any earlier delegation of that step. + A new version of an artifact was published — for an artifact created in a chat this is the action that made it publicly viewable; for an artifact created outside a chat it is recorded when the artifact is saved, including saves of private artifacts, except that automatic saves made while a person keeps editing may be recorded periodically for that person rather than once per save; changes to who can access the artifact are recorded separately as claude_artifact_sharing_updated. - - `type: optional "admin_setup_checklist_step_delegated"` + - `type: optional "claude_artifact_published"` - default: admin_setup_checklist_step_delegated + default: claude_artifact_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -139954,27 +145186,39 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `step: string` + - `artifact_type: string` - The checklist step that was delegated, for example `enable_sso` or `verify_domain`. + Artifact type (code, html, react, etc.) + + - `claude_published_artifact_id: string` + + The published artifact's identifier. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `actor_outside_organization: optional boolean or null` + + True when the person who published belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted editor access. Absent on older events; treat absence as false. + + - `claude_artifact_version_id: optional string or null` + + The version identifier recorded as live by this publish. + - `created_at: optional string` When this activity occurred. format: date-time - - `delegate_email: optional string or null` + - `description: optional string or null` - Email address the step was delegated to; present only when the delegate is not yet an organization member. + No longer populated: the gallery-card description supplied at publish time is intentionally omitted from this feed. - - `delegate_user_id: optional string or null` + - `is_redeploy: optional boolean or null` - Tagged ID of the organization member the step was delegated to; absent when the step was delegated to an email address that has not joined the organization. + True when the publish updated an existing artifact; false when the publish created the artifact. - `organization_id: optional string or null` @@ -139984,249 +145228,19 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminSetupChecklistStepDelegationCancelled object` - - The delegation of a Claude Enterprise admin setup checklist step was cancelled. - - - `type: optional "admin_setup_checklist_step_delegation_cancelled"` - - default: admin_setup_checklist_step_delegation_cancelled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `step: string` - - The checklist step whose delegation was cancelled. - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `organization_id: optional string or null` - - Organization ID this activity is associated with + - `title: string` - - `organization_uuid: optional string or null` + **Deprecated** - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + No longer populated. For Code Artifacts (`claude_published_artifact_id` starts with `cart_`), find that artifact in List Code Artifacts: the title is the `name` of its `versions` entry whose `id` equals `claude_artifact_version_id`, while that version is still retained (a `name` equal to the version id means the title is no longer kept). For other artifacts, look up `claude_artifact_version_id` with Get artifact metadata. That id is absent when the publish isn't linked to an artifact version, and neither lookup works once the artifact is deleted. - - `AgeVerified object` + - `ClaudeArtifactSharingUpdated object` - User age was verified. + An artifact's sharing settings were updated. - - `type: optional "age_verified"` + - `type: optional "claude_artifact_sharing_updated"` - default: age_verified + default: claude_artifact_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -140434,6 +145448,42 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `audience: array of Organization or Users or AnyoneWithLink` + + The artifact's sharing audience after the change. If empty, the artifact is visible only to its owner. + + - `Organization object` + + Sharing audience: visible to the owning organization. + + - `type: optional "organization"` + + default: organization + + - `Users object` + + Sharing audience: visible to an explicit allowlist of users. + + - `type: optional "users"` + + default: users + + - `AnyoneWithLink object` + + Sharing audience: anyone with the link, including anonymous viewers (an artifact shared to the open internet). + + - `type: optional "anyone_with_link"` + + default: anyone_with_link + + - `claude_artifact_id: string` + + The artifact's identifier. + + - `claude_artifact_version_id: string` + + The artifact version's identifier. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -140444,6 +145494,22 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `new_mode: optional string or null` + + The read-axis sharing mode after the change: `owner`, `users`, `org`, or `public` (anyone on the internet). + + - `new_user_count: optional number or null` + + The number of accounts on the explicit read allowlist after the change. Only meaningful when `new_mode` is `users`. + + - `new_write_mode: optional string or null` + + The write-axis sharing mode after the change: `owner`, `users`, or `org`. + + - `new_write_user_count: optional number or null` + + The number of accounts on the explicit write allowlist after the change. Only meaningful when `new_write_mode` is `users`. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -140452,13 +145518,61 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AnonymousMobileLoginAttempted object` + - `previous_mode: optional string or null` - Anonymous mobile login was attempted. + The read-axis sharing mode before the change: `owner`, `users`, `org`, or `public` (anyone on the internet). - - `type: optional "anonymous_mobile_login_attempted"` + - `previous_read_agent_ids: optional array of string` - default: anonymous_mobile_login_attempted + The Claude agents (`cagt_…` identifiers) whose channel held view access to the artifact before the change. Empty when none. + + - `previous_read_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members held view access to the artifact before the change. Edit access implies view access, so every `previous_write_group_ids` entry also appears here. Empty when none. + + - `previous_user_count: optional number or null` + + The number of accounts on the explicit read allowlist before the change. Only meaningful when `previous_mode` is `users`. + + - `previous_write_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel held edit access to the artifact before the change. Empty when none. + + - `previous_write_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members held edit access to the artifact before the change. Empty when none. + + - `previous_write_mode: optional string or null` + + The write-axis sharing mode before the change: `owner`, `users`, or `org`. + + - `previous_write_user_count: optional number or null` + + The number of accounts on the explicit write allowlist before the change. Only meaningful when `previous_write_mode` is `users`. + + - `read_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel holds view access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + + - `read_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members hold view access to the artifact after the change (including every `write_group_ids` entry). Reflects the standing grants, so it is populated on every sharing update for an artifact shared with groups, not only when a group grant changed. Empty when none. + + - `write_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel holds edit access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + + - `write_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members hold edit access to the artifact after the change. Reflects the standing grants, like `read_group_ids`. Empty when none. + + - `ClaudeArtifactViewed object` + + An artifact was viewed. + + - `type: optional "claude_artifact_viewed"` + + default: claude_artifact_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -140666,10 +145780,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `claude_artifact_id: string` + + The artifact's identifier. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_version_id: optional string or null` + + The version of the artifact the user was served, when known. + - `created_at: optional string` When this activity occurred. @@ -140684,13 +145806,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `APIKeyCreated object` + - `AuditLogExportAccessed object` - Activity logged when a new API key is created. + Audit log export file was accessed/downloaded via signed URL. - - `type: optional "api_key_created"` + - `type: optional "audit_log_export_accessed"` - default: api_key_created + default: audit_log_export_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -140898,10 +146020,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `api_key_id: string` - - The tagged ID of the created API key - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -140920,21 +146038,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `restricted_to_organization: optional boolean or null` - - Whether the key was restricted to the creating organization, rather than granted access across the whole parent organization - - - `scopes: optional array of string` - - The scopes for this API key - - - `ClaudeArtifactAccessFailed object` + - `AuditLogExportStarted object` - An attempt to access an artifact failed. + Audit log export was initiated. - - `type: optional "claude_artifact_access_failed"` + - `type: optional "audit_log_export_started"` - default: claude_artifact_access_failed + default: audit_log_export_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -141146,20 +146256,16 @@ curl https://api.anthropic.com/v1/compliance/activities \ Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` - - The artifact's identifier, when known. - - - `claude_artifact_version_id: optional string or null` - - The version of the artifact the user attempted to access, when known. - - `created_at: optional string` When this activity occurred. format: date-time + - `from_date: optional string or null` + + Start date of the export range + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -141168,17 +146274,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` + - `to_date: optional string or null` - The reason access was denied, when recorded. + End date of the export range - - `ClaudeArtifactCommented object` + - `BillingEmailsUpdated object` - Comment activity on a published artifact: a comment was added, a thread's resolved state was changed, or a thread was deleted. The actor is the user who performed the action; the comment text itself is stored with the artifact and is not part of this record. + The organization's billing email recipients were updated. - - `type: optional "claude_artifact_commented"` + - `type: optional "billing_emails_updated"` - default: claude_artifact_commented + default: billing_emails_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -141386,59 +146492,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - The artifact's identifier. - - - `comment_action: "activate_thread" or "create_thread" or "deactivate_thread" or 10 more` - - The action recorded: for example a new comment thread, a reply to an existing thread, a thread resolved, reopened, or deleted, a thread's Claude activation granted or revoked, a comment's text rewritten by its author, an existing comment sent to Claude or withdrawn from Claude, or a thread resolved by a Claude session. - - - `"activate_thread"` - - - `"create_thread"` - - - `"deactivate_thread"` - - - `"delete_thread"` - - - `"edit_comment"` - - - `"move_thread"` - - - `"reopen"` - - - `"reply"` - - - `"resolve"` - - - `"send_to_claude"` - - - `"session_resolve"` - - - `"unsend_to_claude"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `actor_outside_organization: optional boolean or null` - - True when the person who acted belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted commenter or editor access. Absent on older events; treat absence as false. - - - `claude_artifact_comment_id: optional string or null` - - The comment's identifier. Present when the activity relates to a specific comment, for example a new comment, an author's edit of one, or an existing comment sent to Claude or withdrawn from Claude; absent for thread-level actions performed without a comment, such as resolve, reopen, deletion, an activation change, or a resolve by a Claude session. - - - `claude_artifact_comment_thread_id: optional string or null` - - The comment thread's identifier. - - - `claude_artifact_version_id: optional string or null` + - `cc_email_count: optional number or null` - The artifact version the comment activity applied to, when known. + Number of 'cc' email recipients. - `created_at: optional string` @@ -141454,13 +146514,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactCommentsViewed object` + - `primary_email_set: optional boolean or null` - An artifact's comments were viewed. + Whether a primary billing email is configured. - - `type: optional "claude_artifact_comments_viewed"` + - `to_email_count: optional number or null` - default: claude_artifact_comments_viewed + Number of 'to' email recipients. + + - `CcrAgentCreated object` + + A Claude Code agent was created. + + - `type: optional "ccr_agent_created"` + + default: ccr_agent_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -141668,17 +146736,29 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `agent_id: string` - The artifact's identifier. + The agent that was created, e.g. "cagt_01HX...". - - `id: optional string` + - `default_source_urls_truncated: boolean` - Unique identifier for the activity e.g. 'activity_abcd1234' + Whether default_source_urls was capped and omits some of the granted repositories. - - `claude_artifact_version_id: optional string or null` + - `display_name: string` - The version of the artifact whose comments were served, when known. + The agent's display name at creation time. + + - `omitted_source_url_count: number` + + Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. + + - `slug: string` + + The agent's URL-safe identifier, unique within the organization. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -141686,6 +146766,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `default_source_urls: optional array of string` + + The repository URLs the agent works on by default, reduced to scheme, host, and path — credentials and query parameters are never included. Empty with a zero omitted_source_url_count means the agent was created without any default repositories; empty with a non-zero count means repositories were granted but could not be safely rendered. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + + - `guest_policy: optional string or null` + + Whether the agent responds in Slack channels that include guest users, and in Slack Connect channels shared with other organizations: "allow", "restrict", or "channel" (the agent responds, using only that channel's own content and configuration). In Slack Connect channels "allow" gives at most "channel" access. Omitted when the agent inherits the default policy. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -141694,13 +146782,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactCreated object` + - `slack_alias: optional string or null` - An artifact was created. + The Slack trigger word that routes mentions to this agent. An empty value means the agent responds to bare "@Claude" mentions. Omitted when the agent is not addressable from Slack. - - `type: optional "claude_artifact_created"` + - `CcrAgentDeleted object` - default: claude_artifact_created + A Claude Code agent was deleted. + + - `type: optional "ccr_agent_deleted"` + + default: ccr_agent_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -141908,14 +147000,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `agent_id: string` - Tagged ID of the artifact that was created, e.g. "claude_artifact_01HX...". + The agent that was deleted, e.g. "cagt_01HX...". + + - `cascaded_agent_ids_truncated: boolean` + + True when more agents were deleted in this cascade than are individually recorded. On a cascade parent event (cascaded_from_agent_id unset), cascaded_agent_ids is capped at 100. On a cascade child event (cascaded_from_agent_id set, emitted when the parent deletion failed after committing child deletions), one event is emitted per deleted child up to 100, and this field indicates additional children were deleted in the same cascade. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `cascaded_agent_ids: optional array of string` + + Agents assigned to individual Slack channels that were also deleted because agent_id was the agent assigned to their entire Slack workspace. Empty when no such agents were deleted, and always empty on a cascade child event (cascaded_from_agent_id set) — the child's siblings are recorded as their own events, not listed here. Capped at 100 entries; cascaded_agent_ids_truncated is set when the actual count exceeded the cap. + + - `cascaded_from_agent_id: optional string or null` + + When set, the Slack workspace's dedicated agent whose deletion attempt caused this agent to be deleted. The parent's own deletion may have failed after the cascade committed — check for a separate event with agent_id = cascaded_from_agent_id to confirm. Unset on a direct deletion. + - `created_at: optional string` When this activity occurred. @@ -141930,13 +147034,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePublishedArtifactDeleted object` + - `CcrAgentProxyAnthropicOidcTokenExchanged object` - A published artifact was deleted or unpublished — by its creator, by an organization admin, or by Anthropic (for example, when it was removed for a policy violation). + The Claude Code agent proxy exchanged a minted identity token for short-lived credentials in the organization's own cloud. Recorded for exchange targets only (such as "aws" and "gcp"; the "direct" target has no exchange step). One event is recorded per exchange call; a request served from the proxy's exchanged-credential cache does not exchange again and is not recorded here. Per-request detail for traffic the credentials were injected into is available in the agent proxy network events. - - `type: optional "claude_published_artifact_deleted"` + - `type: optional "ccr_agent_proxy_anthropic_oidc_token_exchanged"` - default: claude_published_artifact_deleted + default: ccr_agent_proxy_anthropic_oidc_token_exchanged - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -142144,9 +147248,37 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_published_artifact_id: string` + - `agent_id: string` - The published artifact's identifier. + The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. + + - `credential_id: string` + + The credential row the exchange ran for, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + + - `role_arn: string` + + The IAM role the token was exchanged for ("aws" target), e.g. "arn:aws:iam::123456789012:role/example-role". Empty for other targets. + + - `role_session_name: string` + + The role session name the temporary credentials were issued under ("aws" target), matching the session name recorded in the organization's own AWS CloudTrail log. Empty for other targets. + + - `service_account: string` + + The Google Cloud service account the federated token was exchanged into ("gcp" target), e.g. "example@example-project.iam.gserviceaccount.com". Empty when the federated token was used directly, and for other targets. + + - `session_id: string` + + The Claude Code session whose request triggered the exchange, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + + - `target: string` + + The credential's configured target, e.g. "aws" or "gcp". - `id: optional string` @@ -142158,6 +147290,12 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `credentials_expire_at: optional string or null` + + When the exchanged cloud credentials expire. Unset when the cloud provider did not return a lifetime; such credentials were used for the single triggering request and not cached. + + format: date-time + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -142166,13 +147304,33 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactPublished object` + - `slack_threads: optional array of object` - A new version of an artifact was published — for an artifact created in a chat this is the action that made it publicly viewable; for an artifact created outside a chat it is recorded when the artifact is saved, including saves of private artifacts, except that automatic saves made while a person keeps editing may be recorded periodically for that person rather than once per save; changes to who can access the artifact are recorded separately as claude_artifact_sharing_updated. + The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - - `type: optional "claude_artifact_published"` + - `channel_id: string` - default: claude_artifact_published + The Slack channel ID, e.g. "C0123ABCDE". + + - `enterprise_id: string` + + The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. + + - `team_id: string` + + The Slack workspace (team) ID, e.g. "T0123ABCDE". + + - `thread_ts: string` + + The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + + - `CcrAgentProxyAnthropicOidcTokenMinted object` + + The Claude Code agent proxy minted a short-lived identity token for an anthropic_oidc credential. One event is recorded per fresh token issuance; a request served from the proxy's short-lived token cache does not mint a new token and is not recorded here. Per-request detail for traffic the credential was injected into is available in the agent proxy network events. + + - `type: optional "ccr_agent_proxy_anthropic_oidc_token_minted"` + + default: ccr_agent_proxy_anthropic_oidc_token_minted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -142380,39 +147538,63 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `artifact_type: string` + - `agent_id: string` - Artifact type (code, html, react, etc.) + The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - `claude_published_artifact_id: string` + - `audience: string` - The published artifact's identifier. + The minted token's audience: the fixed token-exchange audience for the "aws" target, the credential row's Google workload identity pool provider URL for the "gcp" target, or the row's configured audience for the "direct" target. - - `id: optional string` + - `credential_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The credential row the token was minted for, e.g. "apc_01HX...". - - `actor_outside_organization: optional boolean or null` + - `issuance_path: "broker_report" or "direct" or "proxy_record" or "unspecified"` - True when the person who published belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted editor access. Absent on older events; treat absence as false. + Which record of the issuance this event is. Unspecified on events published before this field existed. - - `claude_artifact_version_id: optional string or null` + - `"broker_report"` - The version identifier recorded as live by this publish. + - `"direct"` - - `created_at: optional string` + - `"proxy_record"` - When this activity occurred. + - `"unspecified"` - format: date-time + - `mint_jti: string` - - `description: optional string or null` + The identifier of the mint attempt, a bare UUID. One mint through the Claude Tag mint broker produces two minted events that carry the same value, the broker's own report and the agent proxy's record. A reader counts issuances from the broker's reports by distinct report_id. Each non-empty value belongs to at most one issued token. Empty on events for mints that did not travel through the broker. - No longer populated: the gallery-card description supplied at publish time is intentionally omitted from this feed. + - `profile_id: string` - - `is_redeploy: optional boolean or null` + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - True when the publish updated an existing artifact; false when the publish created the artifact. + - `report_id: string` + + The identity of the mint broker's report itself, a bare UUID. The broker mints it once per report and delivery retries repeat it, so several events carrying one report_id are duplicates of one report and collapse to one issuance. Present on broker_report events only. + + - `session_id: string` + + The Claude Code session whose request triggered the mint, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + + - `target: string` + + The credential's configured target, e.g. "aws", "gcp", or "direct". + + - `test_mint: string` + + Set when the token was minted by the gateway verification test that runs while an admin registers a custom-gateway audience: "wrong_subject" for the probe token the gateway must reject, "right_subject" for the control token it must accept. Empty for tokens minted for live sessions. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time - `organization_id: optional string or null` @@ -142422,19 +147604,43 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `title: string` + - `slack_threads: optional array of object` - **Deprecated** + The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - No longer populated. For Code Artifacts (`claude_published_artifact_id` starts with `cart_`), find that artifact in List Code Artifacts: the title is the `name` of its `versions` entry whose `id` equals `claude_artifact_version_id`, while that version is still retained (a `name` equal to the version id means the title is no longer kept). For other artifacts, look up `claude_artifact_version_id` with Get artifact metadata. That id is absent when the publish isn't linked to an artifact version, and neither lookup works once the artifact is deleted. + - `channel_id: string` - - `ClaudeArtifactSharingUpdated object` + The Slack channel ID, e.g. "C0123ABCDE". - An artifact's sharing settings were updated. + - `enterprise_id: string` - - `type: optional "claude_artifact_sharing_updated"` + The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. - default: claude_artifact_sharing_updated + - `team_id: string` + + The Slack workspace (team) ID, e.g. "T0123ABCDE". + + - `thread_ts: string` + + The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + + - `token_expires_at: optional string or null` + + When the minted token expires. + + format: date-time + + - `token_jti: optional string or null` + + The issued token's unique identifier (its `jti` claim), for matching this event to the token a gateway or cloud provider received; not the same value as mint_jti. Set only when issuance_path is `proxy_record` or `direct`, for live sessions, and only when the identifier could be read. + + - `CcrAgentProxyCredentialCreated object` + + A Claude Code agent proxy credential was created. Credentials hold the secrets the agent proxy injects into requests Claude Code sessions send to approved external services; each credential belongs to an agent proxy profile. Audit events carry only credential names and settings, never the secret material itself. + + - `type: optional "ccr_agent_proxy_credential_created"` + + default: ccr_agent_proxy_credential_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -142642,131 +147848,87 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `audience: array of Organization or Users or AnyoneWithLink` - - The artifact's sharing audience after the change. If empty, the artifact is visible only to its owner. - - - `Organization object` - - Sharing audience: visible to the owning organization. - - - `type: optional "organization"` - - default: organization - - - `Users object` - - Sharing audience: visible to an explicit allowlist of users. - - - `type: optional "users"` + - `credential_id: string` - default: users + The credential that was created, e.g. "apc_01HX...". - - `AnyoneWithLink object` + - `credential_type: string` - Sharing audience: anyone with the link, including anonymous viewers (an artifact shared to the open internet). + The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - `type: optional "anyone_with_link"` + - `display_name: string` - default: anyone_with_link + The credential's display name. - - `claude_artifact_id: string` + - `host_constraint_truncated: boolean` - The artifact's identifier. + Whether host_constraint was capped and omits some of the configured host name patterns. - - `claude_artifact_version_id: string` + - `profile_id: string` - The artifact version's identifier. + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `new_mode: optional string or null` - - The read-axis sharing mode after the change: `owner`, `users`, `org`, or `public` (anyone on the internet). - - - `new_user_count: optional number or null` - - The number of accounts on the explicit read allowlist after the change. Only meaningful when `new_mode` is `users`. - - - `new_write_mode: optional string or null` - - The write-axis sharing mode after the change: `owner`, `users`, or `org`. - - - `new_write_user_count: optional number or null` - - The number of accounts on the explicit write allowlist after the change. Only meaningful when `new_write_mode` is `users`. - - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + - `authorization_basis: optional object or null` - - `previous_mode: optional string or null` + How the actor was authorized to create this credential. Absent on system-initiated operations and on credentials created via a provisioning link. - The read-axis sharing mode before the change: `owner`, `users`, `org`, or `public` (anyone on the internet). + - `slack_channel_id: string` - - `previous_read_agent_ids: optional array of string` + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - The Claude agents (`cagt_…` identifiers) whose channel held view access to the artifact before the change. Empty when none. + - `slack_enterprise_id: string` - - `previous_read_group_ids: optional array of string` + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - The admin-managed groups (`rbac_group_…` identifiers) whose members held view access to the artifact before the change. Edit access implies view access, so every `previous_write_group_ids` entry also appears here. Empty when none. + - `slack_team_id: string` - - `previous_user_count: optional number or null` + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - The number of accounts on the explicit read allowlist before the change. Only meaningful when `previous_mode` is `users`. + - `via_entitlement_leg: boolean` - - `previous_write_agent_ids: optional array of string` + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - The Claude agents (`cagt_…` identifiers) whose channel held edit access to the artifact before the change. Empty when none. + - `via_full_manage: boolean` - - `previous_write_group_ids: optional array of string` + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - The admin-managed groups (`rbac_group_…` identifiers) whose members held edit access to the artifact before the change. Empty when none. + - `granting_role_ids: optional array of string` - - `previous_write_mode: optional string or null` + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - The write-axis sharing mode before the change: `owner`, `users`, or `org`. + - `via_account_assignment: optional boolean or null` - - `previous_write_user_count: optional number or null` + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - The number of accounts on the explicit write allowlist before the change. Only meaningful when `previous_write_mode` is `users`. + - `created_at: optional string` - - `read_agent_ids: optional array of string` + When this activity occurred. - The Claude agents (`cagt_…` identifiers) whose channel holds view access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + format: date-time - - `read_group_ids: optional array of string` + - `host_constraint: optional array of string` - The admin-managed groups (`rbac_group_…` identifiers) whose members hold view access to the artifact after the change (including every `write_group_ids` entry). Reflects the standing grants, so it is populated on every sharing update for an artifact shared with groups, not only when a group grant changed. Empty when none. + The host name patterns the credential may be sent to, e.g. "api.example.com" or "*.example.com". At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `write_agent_ids: optional array of string` + - `organization_id: optional string or null` - The Claude agents (`cagt_…` identifiers) whose channel holds edit access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + Organization ID this activity is associated with - - `write_group_ids: optional array of string` + - `organization_uuid: optional string or null` - The admin-managed groups (`rbac_group_…` identifiers) whose members hold edit access to the artifact after the change. Reflects the standing grants, like `read_group_ids`. Empty when none. + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactViewed object` + - `CcrAgentProxyCredentialDeleted object` - An artifact was viewed. + A Claude Code agent proxy credential was deleted. Its secret material was removed and can no longer be sent to any host. - - `type: optional "claude_artifact_viewed"` + - `type: optional "ccr_agent_proxy_credential_deleted"` - default: claude_artifact_viewed + default: ccr_agent_proxy_credential_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -142974,17 +148136,49 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `credential_id: string` - The artifact's identifier. + The credential that was deleted, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belonged to, e.g. "capp_01HX...". Carried so the deletion can be correlated with the profile's other audit events after the credential row no longer exists. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_version_id: optional string or null` + - `authorization_basis: optional object or null` - The version of the artifact the user was served, when known. + How the actor was authorized to delete this credential. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - `created_at: optional string` @@ -143000,13 +148194,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AuditLogExportAccessed object` + - `CcrAgentProxyCredentialRotated object` - Audit log export file was accessed/downloaded via signed URL. + A Claude Code agent proxy credential's secret material was replaced. The replacement keeps the same name, profile, and allowed hosts under a new credential identifier, and everything that referenced the old credential now uses the replacement. - - `type: optional "audit_log_export_accessed"` + - `type: optional "ccr_agent_proxy_credential_rotated"` - default: audit_log_export_accessed + default: ccr_agent_proxy_credential_rotated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -143214,10 +148408,70 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `credential_id: string` + + The replacement credential, e.g. "apc_01HX...". + + - `credential_type: string` + + The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". + + - `destinations_repointed: number` + + The number of agent proxy destinations that referenced the old credential and now reference the replacement. + + - `display_name: string` + + The credential's display name. + + - `previous_credential_id: string` + + The credential that was replaced, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + + - `rules_repointed: number` + + The number of agent proxy rules that referenced the old credential and now reference the replacement. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `authorization_basis: optional object or null` + + How the actor was authorized to rotate this credential. Absent on automatic rotations initiated by the system rather than by a user. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `created_at: optional string` When this activity occurred. @@ -143232,13 +148486,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AuditLogExportStarted object` + - `CcrAgentProxyCredentialUpdated object` - Audit log export was initiated. + A Claude Code agent proxy credential's settings were updated. Only the display name and the allowed host patterns can be updated; the secret material can only be replaced through a rotation. - - `type: optional "audit_log_export_started"` + - `type: optional "ccr_agent_proxy_credential_updated"` - default: audit_log_export_started + default: ccr_agent_proxy_credential_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -143446,19 +148700,67 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `credential_id: string` + + The credential that was updated, e.g. "apc_01HX...". + + - `display_name: string` + + The credential's display name after the update. + + - `host_constraint_truncated: boolean` + + Whether host_constraint was capped and omits some of the configured host name patterns. + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `authorization_basis: optional object or null` + + How the actor was authorized to update this credential. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `created_at: optional string` When this activity occurred. format: date-time - - `from_date: optional string or null` + - `host_constraint: optional array of string` - Start date of the export range + The host name patterns the credential may be sent to after the update, e.g. "api.example.com" or "*.example.com". Populated only when the update changed them. At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - `organization_id: optional string or null` @@ -143468,17 +148770,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `to_date: optional string or null` + - `updated_fields: optional array of string` - End date of the export range + Names of the settings included in the update: "display_name", "host_constraint". - - `BillingEmailsUpdated object` + - `CcrAgentProxyDestinationDeleted object` - The organization's billing email recipients were updated. + An agent proxy destination was deleted. - - `type: optional "billing_emails_updated"` + - `type: optional "ccr_agent_proxy_destination_deleted"` - default: billing_emails_updated + default: ccr_agent_proxy_destination_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -143686,13 +148988,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `deleted_with_profile: boolean` + + True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyDestination call. + + - `destination_id: string` + + The destination that was deleted, e.g. "apd_01HX...". + + - `profile_id: string` + + The agent proxy profile the destination belonged to, e.g. "capp_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cc_email_count: optional number or null` + - `cascade_trigger_credential_id: optional string or null` - Number of 'cc' email recipients. + Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the destination's client_tls_credential was the deleted credential). Unset for a direct DeleteAgentProxyDestination call and for the profile-delete cascade (see deleted_with_profile). - `created_at: optional string` @@ -143708,21 +149022,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `primary_email_set: optional boolean or null` - - Whether a primary billing email is configured. - - - `to_email_count: optional number or null` - - Number of 'to' email recipients. - - - `CcrAgentCreated object` + - `CcrAgentProxyNetworkEventsListed object` - A Claude Code agent was created. + A Claude Code network activity export was accessed for the given hour. - - `type: optional "ccr_agent_created"` + - `type: optional "ccr_agent_proxy_network_events_listed"` - default: ccr_agent_created + default: ccr_agent_proxy_network_events_listed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -143930,25 +149236,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was created, e.g. "cagt_01HX...". - - - `default_source_urls_truncated: boolean` - - Whether default_source_urls was capped and omits some of the granted repositories. - - - `display_name: string` - - The agent's display name at creation time. - - - `omitted_source_url_count: number` - - Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. - - - `slug: string` + - `failed: boolean` - The agent's URL-safe identifier, unique within the organization. + True when the export request did not complete successfully. - `id: optional string` @@ -143960,13 +149250,11 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `default_source_urls: optional array of string` - - The repository URLs the agent works on by default, reduced to scheme, host, and path — credentials and query parameters are never included. Empty with a zero omitted_source_url_count means the agent was created without any default repositories; empty with a non-zero count means repositories were granted but could not be safely rendered. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + - `hour: optional string or null` - - `guest_policy: optional string or null` + The UTC hour that was exported. - Whether the agent responds in Slack channels that include guest users, and in Slack Connect channels shared with other organizations: "allow", "restrict", or "channel" (the agent responds, using only that channel's own content and configuration). In Slack Connect channels "allow" gives at most "channel" access. Omitted when the agent inherits the default policy. + format: date-time - `organization_id: optional string or null` @@ -143976,17 +149264,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_alias: optional string or null` - - The Slack trigger word that routes mentions to this agent. An empty value means the agent responds to bare "@Claude" mentions. Omitted when the agent is not addressable from Slack. - - - `CcrAgentDeleted object` + - `CcrAgentProxyProfileBound object` - A Claude Code agent was deleted. + A Claude Code agent proxy profile was bound to a scope, applying its policy to Claude Code sessions in that scope. - - `type: optional "ccr_agent_deleted"` + - `type: optional "ccr_agent_proxy_profile_bound"` - default: ccr_agent_deleted + default: ccr_agent_proxy_profile_bound - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -144194,25 +149478,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was deleted, e.g. "cagt_01HX...". - - - `cascaded_agent_ids_truncated: boolean` + - `profile_id: string` - True when more agents were deleted in this cascade than are individually recorded. On a cascade parent event (cascaded_from_agent_id unset), cascaded_agent_ids is capped at 100. On a cascade child event (cascaded_from_agent_id set, emitted when the parent deletion failed after committing child deletions), one event is emitted per deleted child up to 100, and this field indicates additional children were deleted in the same cascade. + The profile that was bound, e.g. "capp_01HX...". - - `id: optional string` + - `scope_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The identifier of the scope the profile was bound to. - - `cascaded_agent_ids: optional array of string` + - `scope_kind: string` - Agents assigned to individual Slack channels that were also deleted because agent_id was the agent assigned to their entire Slack workspace. Empty when no such agents were deleted, and always empty on a cascade child event (cascaded_from_agent_id set) — the child's siblings are recorded as their own events, not listed here. Capped at 100 entries; cascaded_agent_ids_truncated is set when the actual count exceeded the cap. + The kind of scope the profile was bound to: "organization", "environment", "account", or "agent". - - `cascaded_from_agent_id: optional string or null` + - `id: optional string` - When set, the Slack workspace's dedicated agent whose deletion attempt caused this agent to be deleted. The parent's own deletion may have failed after the cascade committed — check for a separate event with agent_id = cascaded_from_agent_id to confirm. Unset on a direct deletion. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -144228,13 +149508,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyAnthropicOidcTokenExchanged object` + - `CcrAgentProxyProfileCreated object` - The Claude Code agent proxy exchanged a minted identity token for short-lived credentials in the organization's own cloud. Recorded for exchange targets only (such as "aws" and "gcp"; the "direct" target has no exchange step). One event is recorded per exchange call; a request served from the proxy's exchanged-credential cache does not exchange again and is not recorded here. Per-request detail for traffic the credentials were injected into is available in the agent proxy network events. + A Claude Code agent proxy profile was created. Agent proxy profiles are named, reusable bundles of access policy that administrators bind to parts of the organization. - - `type: optional "ccr_agent_proxy_anthropic_oidc_token_exchanged"` + - `type: optional "ccr_agent_proxy_profile_created"` - default: ccr_agent_proxy_anthropic_oidc_token_exchanged + default: ccr_agent_proxy_profile_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -144442,37 +149722,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - - `credential_id: string` + - `display_name: string` - The credential row the exchange ran for, e.g. "apc_01HX...". + The profile's display name at creation time. - `profile_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - - - `role_arn: string` - - The IAM role the token was exchanged for ("aws" target), e.g. "arn:aws:iam::123456789012:role/example-role". Empty for other targets. - - - `role_session_name: string` - - The role session name the temporary credentials were issued under ("aws" target), matching the session name recorded in the organization's own AWS CloudTrail log. Empty for other targets. - - - `service_account: string` - - The Google Cloud service account the federated token was exchanged into ("gcp" target), e.g. "example@example-project.iam.gserviceaccount.com". Empty when the federated token was used directly, and for other targets. - - - `session_id: string` - - The Claude Code session whose request triggered the exchange, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + The profile that was created, e.g. "capp_01HX...". - - `target: string` + - `slug: string` - The credential's configured target, e.g. "aws" or "gcp". + The profile's URL-safe identifier, unique within the organization. - `id: optional string` @@ -144484,47 +149744,53 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `credentials_expire_at: optional string or null` + - `github_access: optional array of object` - When the exchanged cloud credentials expire. Unset when the cloud provider did not return a lifetime; such credentials were used for the single triggering request and not cached. + The GitHub repository access the profile grants, one entry per GitHub App installation. Empty when the profile grants no GitHub access. - format: date-time + - `access_mode: string` - - `organization_id: optional string or null` + How repository access is granted: "none" (no access), "list" (exactly the repositories in repos), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - Organization ID this activity is associated with + - `github_installation_id: number` - - `organization_uuid: optional string or null` + The GitHub App installation the access applies to. - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + - `repo_count: number` - - `slack_threads: optional array of object` + The total number of repositories granted, including any omitted from repos. - The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. + - `repos_truncated: boolean` - - `channel_id: string` + Whether repos was capped and omits some of the granted repositories. - The Slack channel ID, e.g. "C0123ABCDE". + - `ghe_configuration_id: optional number or null` - - `enterprise_id: string` + The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. - The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. + - `repo_ids: optional array of number` - - `team_id: string` + The numeric GitHub repository IDs the profile grants access to, in the same order as repos (and subject to the same 100-entry cap). These IDs are the authoritative identity of the granted repositories — access is enforced against them, not against the display names in repos. - The Slack workspace (team) ID, e.g. "T0123ABCDE". + - `repos: optional array of string` - - `thread_ts: string` + Repository names (owner/name) the profile grants access to, populated when access_mode is "list". Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids are the authoritative identity of the granted repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when the granted set is larger. - The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + - `organization_id: optional string or null` - - `CcrAgentProxyAnthropicOidcTokenMinted object` + Organization ID this activity is associated with - The Claude Code agent proxy minted a short-lived identity token for an anthropic_oidc credential. One event is recorded per fresh token issuance; a request served from the proxy's short-lived token cache does not mint a new token and is not recorded here. Per-request detail for traffic the credential was injected into is available in the agent proxy network events. + - `organization_uuid: optional string or null` - - `type: optional "ccr_agent_proxy_anthropic_oidc_token_minted"` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - default: ccr_agent_proxy_anthropic_oidc_token_minted + - `CcrAgentProxyProfileDeleted object` + + A Claude Code agent proxy profile was deleted, removing its policy from everything it was bound to. + + - `type: optional "ccr_agent_proxy_profile_deleted"` + + default: ccr_agent_proxy_profile_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -144732,53 +149998,33 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - - `audience: string` + - `deleted_credential_count: number` - The minted token's audience: the fixed token-exchange audience for the "aws" target, the credential row's Google workload identity pool provider URL for the "gcp" target, or the row's configured audience for the "direct" target. + Number of credentials deleted together with the profile — deleting a profile also deletes the credentials attached to it. Each deleted credential additionally emits its own ccr_agent_proxy_credential_deleted activity, at most 100 per profile deletion. Best-effort: when deleted_credentials_unknown is true the count could not be determined and 0 here does not mean the profile had no credentials. - - `credential_id: string` + - `deleted_credentials_unknown: boolean` - The credential row the token was minted for, e.g. "apc_01HX...". + Whether the number of credentials deleted with the profile could not be determined. When true, deleted_credential_count is 0 and no per-credential deletion activities were emitted, even though the deletion may have destroyed credentials. - - `issuance_path: "broker_report" or "direct" or "proxy_record" or "unspecified"` + - `deleted_destination_count: number` - Which record of the issuance this event is. Unspecified on events published before this field existed. + Number of destinations deleted together with the profile. Each deleted destination additionally emits its own ccr_agent_proxy_destination_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_destinations_unknown is true the count could not be determined and 0 here does not mean the profile had no destinations. - - `"broker_report"` + - `deleted_destinations_unknown: boolean` - - `"direct"` + Whether the number of destinations deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - - `"proxy_record"` + - `deleted_rule_count: number` - - `"unspecified"` + Number of rules deleted together with the profile. Each deleted rule additionally emits its own ccr_agent_proxy_rule_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_rules_unknown is true the count could not be determined and 0 here does not mean the profile had no rules. - - `mint_jti: string` + - `deleted_rules_unknown: boolean` - The identifier of the mint attempt, a bare UUID. One mint through the Claude Tag mint broker produces two minted events that carry the same value, the broker's own report and the agent proxy's record. A reader counts issuances from the broker's reports by distinct report_id. Each non-empty value belongs to at most one issued token. Empty on events for mints that did not travel through the broker. + Whether the number of rules deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - `profile_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - - - `report_id: string` - - The identity of the mint broker's report itself, a bare UUID. The broker mints it once per report and delivery retries repeat it, so several events carrying one report_id are duplicates of one report and collapse to one issuance. Present on broker_report events only. - - - `session_id: string` - - The Claude Code session whose request triggered the mint, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). - - - `target: string` - - The credential's configured target, e.g. "aws", "gcp", or "direct". - - - `test_mint: string` - - Set when the token was minted by the gateway verification test that runs while an admin registers a custom-gateway audience: "wrong_subject" for the probe token the gateway must reject, "right_subject" for the control token it must accept. Empty for tokens minted for live sessions. + The profile that was deleted, e.g. "capp_01HX...". - `id: optional string` @@ -144798,43 +150044,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_threads: optional array of object` - - The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - - - `channel_id: string` - - The Slack channel ID, e.g. "C0123ABCDE". - - - `enterprise_id: string` - - The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. - - - `team_id: string` - - The Slack workspace (team) ID, e.g. "T0123ABCDE". - - - `thread_ts: string` - - The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. - - - `token_expires_at: optional string or null` - - When the minted token expires. - - format: date-time - - - `token_jti: optional string or null` - - The issued token's unique identifier (its `jti` claim), for matching this event to the token a gateway or cloud provider received; not the same value as mint_jti. Set only when issuance_path is `proxy_record` or `direct`, for live sessions, and only when the identifier could be read. - - - `CcrAgentProxyCredentialCreated object` + - `CcrAgentProxyProfileUnbound object` - A Claude Code agent proxy credential was created. Credentials hold the secrets the agent proxy injects into requests Claude Code sessions send to approved external services; each credential belongs to an agent proxy profile. Audit events carry only credential names and settings, never the secret material itself. + A Claude Code agent proxy profile was unbound from a scope, removing its policy from Claude Code sessions in that scope. - - `type: optional "ccr_agent_proxy_credential_created"` + - `type: optional "ccr_agent_proxy_profile_unbound"` - default: ccr_agent_proxy_credential_created + default: ccr_agent_proxy_profile_unbound - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -145042,72 +150258,28 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_id: string` - - The credential that was created, e.g. "apc_01HX...". - - - `credential_type: string` - - The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - - `display_name: string` + - `profile_id: string` - The credential's display name. + The profile that was unbound, e.g. "capp_01HX...". - - `host_constraint_truncated: boolean` + - `scope_id: string` - Whether host_constraint was capped and omits some of the configured host name patterns. + The identifier of the scope the profile was unbound from. - - `profile_id: string` + - `scope_kind: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The kind of scope the profile was unbound from: "organization", "environment", "account", or "agent". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to create this credential. Absent on system-initiated operations and on credentials created via a provisioning link. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to, e.g. "api.example.com" or "*.example.com". At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -145116,13 +150288,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialDeleted object` + - `CcrAgentProxyProfileUpdated object` - A Claude Code agent proxy credential was deleted. Its secret material was removed and can no longer be sent to any host. + A Claude Code agent proxy profile's configuration was updated. - - `type: optional "ccr_agent_proxy_credential_deleted"` + - `type: optional "ccr_agent_proxy_profile_updated"` - default: ccr_agent_proxy_credential_deleted + default: ccr_agent_proxy_profile_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -145330,55 +150502,63 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_id: string` - - The credential that was deleted, e.g. "apc_01HX...". - - `profile_id: string` - The agent proxy profile the credential belonged to, e.g. "capp_01HX...". Carried so the deletion can be correlated with the profile's other audit events after the credential row no longer exists. + The profile that was updated, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` + - `created_at: optional string` - How the actor was authorized to delete this credential. + When this activity occurred. - - `slack_channel_id: string` + format: date-time - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + - `github_access_changes: optional array of object` - - `slack_enterprise_id: string` + How the profile's GitHub repository access changed, one entry per GitHub App installation whose access changed. Empty when the update did not change GitHub access. - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + - `access_mode: string` - - `slack_team_id: string` + How repository access is granted after the change: "none" (no access), "list" (access is restricted to an explicit repository list — repos_added/repos_removed carry this change's delta and repo_count the post-change total), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + - `github_installation_id: number` - - `via_entitlement_leg: boolean` + The GitHub App installation the change applies to. - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + - `repo_count: number` - - `via_full_manage: boolean` + The total number of repositories granted after the change. - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + - `repos_truncated: boolean` - - `granting_role_ids: optional array of string` + Whether repos_added or repos_removed was capped and omits some of the changed repositories. - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + - `ghe_configuration_id: optional number or null` - - `via_account_assignment: optional boolean or null` + The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `previous_access_mode: optional string or null` - - `created_at: optional string` + How repository access was granted before the change. Present only when the access mode changed. - When this activity occurred. + - `repo_ids_added: optional array of number` - format: date-time + The numeric GitHub repository IDs added to the granted set, in the same order as repos_added (and subject to the same 100-entry cap). These IDs are the authoritative identity of the added repositories — access is enforced against them, not against the display names in repos_added. + + - `repo_ids_removed: optional array of number` + + The numeric GitHub repository IDs removed from the granted set, in the same order as repos_removed (and subject to the same 100-entry cap). These IDs are the authoritative identity of the removed repositories. + + - `repos_added: optional array of string` + + Repository names (owner/name) added to the granted set. Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids_added are the authoritative identity of the added repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when more were added. Empty when the change involves "all" access, which grants every repository regardless of any explicit list. + + - `repos_removed: optional array of string` + + Repository names (owner/name) removed from the granted set. Same rendering, cap, and "all" handling as repos_added; repo_ids_removed carries the authoritative identity of the removed repositories. - `organization_id: optional string or null` @@ -145388,13 +150568,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialRotated object` + - `updated_fields: optional array of string` - A Claude Code agent proxy credential's secret material was replaced. The replacement keeps the same name, profile, and allowed hosts under a new credential identifier, and everything that referenced the old credential now uses the replacement. + Names of the configuration fields included in the update, e.g. "display_name", "github_installation_permissions". - - `type: optional "ccr_agent_proxy_credential_rotated"` + - `CcrAgentProxyProvisioningCredentialRejected object` - default: ccr_agent_proxy_credential_rotated + An organization owner rejected a credential that a teammate submitted via an agent proxy provisioning link: the credential and its disabled rule were deleted and the link was revoked. The actor is the owner; the submitter is recorded for attribution. + + - `type: optional "ccr_agent_proxy_provisioning_credential_rejected"` + + default: ccr_agent_proxy_provisioning_credential_rejected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -145604,68 +150788,28 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `credential_id: string` - The replacement credential, e.g. "apc_01HX...". - - - `credential_type: string` - - The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - - `destinations_repointed: number` - - The number of agent proxy destinations that referenced the old credential and now reference the replacement. + The credential the member submitted, e.g. "apc_01HX...". - - `display_name: string` + - `link_id: string` - The credential's display name. + The provisioning link's identifier. - - `previous_credential_id: string` + - `profile_id: string` - The credential that was replaced, e.g. "apc_01HX...". + The agent proxy profile the credential lived in, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The disabled rule that was deleted alongside the credential, e.g. "apr_01HX...". - - `rules_repointed: number` + - `submitted_by_user_id: string` - The number of agent proxy rules that referenced the old credential and now reference the replacement. + The tagged account ID of the user who originally submitted the credential, e.g. "user_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to rotate this credential. Absent on automatic rotations initiated by the system rather than by a user. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. @@ -145680,13 +150824,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialUpdated object` + - `CcrAgentProxyProvisioningLinkEnabled object` - A Claude Code agent proxy credential's settings were updated. Only the display name and the allowed host patterns can be updated; the secret material can only be replaced through a rotation. + An organization owner enabled a credential that a teammate submitted via an agent proxy provisioning link: the disabled rule created at submission was switched to enforce, so the credential now takes traffic. The actor is the owner; the submitter is the actor on the prior ccr_agent_proxy_provisioning_link_submitted event. - - `type: optional "ccr_agent_proxy_credential_updated"` + - `type: optional "ccr_agent_proxy_provisioning_link_enabled"` - default: ccr_agent_proxy_credential_updated + default: ccr_agent_proxy_provisioning_link_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -145896,66 +151040,30 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `credential_id: string` - The credential that was updated, e.g. "apc_01HX...". + The credential the member submitted, e.g. "apc_01HX...". - - `display_name: string` + - `link_id: string` - The credential's display name after the update. + The provisioning link's identifier. - - `host_constraint_truncated: boolean` + - `profile_id: string` - Whether host_constraint was capped and omits some of the configured host name patterns. + The agent proxy profile the credential lives in, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The rule that was flipped to enforce, e.g. "apr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to update this credential. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to after the update, e.g. "api.example.com" or "*.example.com". Populated only when the update changed them. At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -145964,17 +151072,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` - - Names of the settings included in the update: "display_name", "host_constraint". - - - `CcrAgentProxyDestinationDeleted object` + - `CcrAgentProxyProvisioningLinkGenerated object` - An agent proxy destination was deleted. + An organization owner generated a one-time agent proxy credential provisioning link so a teammate can submit a credential into the target agent proxy profile without holding the owner role. - - `type: optional "ccr_agent_proxy_destination_deleted"` + - `type: optional "ccr_agent_proxy_provisioning_link_generated"` - default: ccr_agent_proxy_destination_deleted + default: ccr_agent_proxy_provisioning_link_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -146182,26 +151286,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_with_profile: boolean` - - True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyDestination call. - - - `destination_id: string` + - `link_id: string` - The destination that was deleted, e.g. "apd_01HX...". + The provisioning link's identifier. Correlation only; redemption requires an org-member session, so this is not a bearer credential. - `profile_id: string` - The agent proxy profile the destination belonged to, e.g. "capp_01HX...". + The agent proxy profile the submitted credential will be created in, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cascade_trigger_credential_id: optional string or null` - - Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the destination's client_tls_credential was the deleted credential). Unset for a direct DeleteAgentProxyDestination call and for the profile-delete cascade (see deleted_with_profile). - - `created_at: optional string` When this activity occurred. @@ -146216,13 +151312,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyNetworkEventsListed object` + - `CcrAgentProxyProvisioningLinkRevoked object` - A Claude Code network activity export was accessed for the given hour. + An organization owner revoked an unfilled agent proxy provisioning link. - - `type: optional "ccr_agent_proxy_network_events_listed"` + - `type: optional "ccr_agent_proxy_provisioning_link_revoked"` - default: ccr_agent_proxy_network_events_listed + default: ccr_agent_proxy_provisioning_link_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -146430,9 +151526,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `failed: boolean` + - `link_id: string` - True when the export request did not complete successfully. + The provisioning link's identifier. + + - `profile_id: string` + + The agent proxy profile the link targeted, e.g. "capp_01HX...". - `id: optional string` @@ -146444,12 +151544,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `hour: optional string or null` - - The UTC hour that was exported. - - format: date-time - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -146458,13 +151552,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileBound object` + - `CcrAgentProxyProvisioningLinkSubmitted object` - A Claude Code agent proxy profile was bound to a scope, applying its policy to Claude Code sessions in that scope. + A teammate submitted a credential via an agent proxy provisioning link. The credential and a disabled rule are created; the credential takes traffic only after an organization owner enables the submitted credential. This event records the link-mediated lifecycle; the credential itself additionally emits ccr_agent_proxy_credential_created. - - `type: optional "ccr_agent_proxy_profile_bound"` + - `type: optional "ccr_agent_proxy_provisioning_link_submitted"` - default: ccr_agent_proxy_profile_bound + default: ccr_agent_proxy_provisioning_link_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -146672,17 +151766,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `profile_id: string` + - `credential_id: string` - The profile that was bound, e.g. "capp_01HX...". + The credential that was created, e.g. "apc_01HX...". - - `scope_id: string` + - `credential_type: string` - The identifier of the scope the profile was bound to. + The kind of credential, e.g. "bearer" or "basic". - - `scope_kind: string` + - `link_id: string` - The kind of scope the profile was bound to: "organization", "environment", "account", or "agent". + The provisioning link's identifier. + + - `profile_id: string` + + The agent proxy profile the credential was created in, e.g. "capp_01HX...". - `id: optional string` @@ -146694,6 +151792,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `host_constraint: optional array of string` + + The host name patterns the credential may be sent to. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -146702,13 +151804,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileCreated object` + - `CcrAgentProxyRuleCreated object` - A Claude Code agent proxy profile was created. Agent proxy profiles are named, reusable bundles of access policy that administrators bind to parts of the organization. + An agent proxy rule was created. A rule decides what happens to a session's outbound requests that match it. - - `type: optional "ccr_agent_proxy_profile_created"` + - `type: optional "ccr_agent_proxy_rule_created"` - default: ccr_agent_proxy_profile_created + default: ccr_agent_proxy_rule_created + + - `action: "allow" or "deny" or "require_approval" or "unspecified"` + + What the rule does with a matching request. + + - `"allow"` + + - `"deny"` + + - `"require_approval"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -146916,17 +152030,65 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `display_name: string` + - `has_condition: boolean` - The profile's display name at creation time. + Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. + + - `hosts_truncated: boolean` + + Whether hosts was capped and omits some of the configured host name patterns. + + - `injects_credential: boolean` + + Whether the rule adds a managed credential to the requests it allows. + + - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` + + Whether the rule is enforced, only observed, or switched off. + + - `"disabled"` + + - `"enforce"` + + - `"shadow"` + + - `"unspecified"` + + - `path_pattern_count: number` + + How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches; 0 when the rule matches every path. + + - `ports_truncated: boolean` + + Whether ports was capped and omits some of the configured ports. + + - `priority: number` + + Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - `profile_id: string` - The profile that was created, e.g. "capp_01HX...". + The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - `slug: string` + - `protocol: "http" or "mysql" or "postgres" or 3 more` - The profile's URL-safe identifier, unique within the organization. + The kind of connection the rule applies to. + + - `"http"` + + - `"mysql"` + + - `"postgres"` + + - `"ssh"` + + - `"tcp"` + + - `"unspecified"` + + - `rule_id: string` + + The rule that was created, e.g. "apr_01HX...". - `id: optional string` @@ -146938,37 +152100,31 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `github_access: optional array of object` - - The GitHub repository access the profile grants, one entry per GitHub App installation. Empty when the profile grants no GitHub access. - - - `access_mode: string` - - How repository access is granted: "none" (no access), "list" (exactly the repositories in repos), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. + - `hosts: optional array of string` - - `github_installation_id: number` + The host name patterns the rule matches, in canonical form (lowercase, internationalized names in their ASCII encoding), e.g. "api.example.com" or "*.example.com". At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - The GitHub App installation the access applies to. + - `injected_credential_id: optional string or null` - - `repo_count: number` + The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - The total number of repositories granted, including any omitted from repos. + - `methods: optional array of string` - - `repos_truncated: boolean` + The HTTP methods the rule matches, e.g. `GET`. Empty when the rule matches every method. - Whether repos was capped and omits some of the granted repositories. + - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - `ghe_configuration_id: optional number or null` + The kinds of change the rule makes to the requests it allows, each listed once. - The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. + - `"inject_credential"` - - `repo_ids: optional array of number` + - `"route_to"` - The numeric GitHub repository IDs the profile grants access to, in the same order as repos (and subject to the same 100-entry cap). These IDs are the authoritative identity of the granted repositories — access is enforced against them, not against the display names in repos. + - `"set_header"` - - `repos: optional array of string` + - `"strip_header"` - Repository names (owner/name) the profile grants access to, populated when access_mode is "list". Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids are the authoritative identity of the granted repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when the granted set is larger. + - `"unspecified"` - `organization_id: optional string or null` @@ -146978,13 +152134,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileDeleted object` + - `ports: optional array of number` - A Claude Code agent proxy profile was deleted, removing its policy from everything it was bound to. + The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - `type: optional "ccr_agent_proxy_profile_deleted"` + - `route_to_destination_id: optional string or null` - default: ccr_agent_proxy_profile_deleted + The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. + + - `CcrAgentProxyRuleDeleted object` + + An agent proxy rule was deleted. + + - `type: optional "ccr_agent_proxy_rule_deleted"` + + default: ccr_agent_proxy_rule_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -147192,38 +152356,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_credential_count: number` - - Number of credentials deleted together with the profile — deleting a profile also deletes the credentials attached to it. Each deleted credential additionally emits its own ccr_agent_proxy_credential_deleted activity, at most 100 per profile deletion. Best-effort: when deleted_credentials_unknown is true the count could not be determined and 0 here does not mean the profile had no credentials. - - - `deleted_credentials_unknown: boolean` - - Whether the number of credentials deleted with the profile could not be determined. When true, deleted_credential_count is 0 and no per-credential deletion activities were emitted, even though the deletion may have destroyed credentials. - - - `deleted_destination_count: number` - - Number of destinations deleted together with the profile. Each deleted destination additionally emits its own ccr_agent_proxy_destination_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_destinations_unknown is true the count could not be determined and 0 here does not mean the profile had no destinations. - - - `deleted_destinations_unknown: boolean` - - Whether the number of destinations deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - - - `deleted_rule_count: number` + - `deleted_with_profile: boolean` - Number of rules deleted together with the profile. Each deleted rule additionally emits its own ccr_agent_proxy_rule_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_rules_unknown is true the count could not be determined and 0 here does not mean the profile had no rules. + True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyRule call or a provisioning-link reject (RejectAgentProxyProvisionedCredential) — the reject case also emits CcrAgentProxyProvisioningCredentialRejected with the same rule_id in the same batch. - - `deleted_rules_unknown: boolean` + - `profile_id: string` - Whether the number of rules deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. + The agent proxy profile the rule belonged to, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The profile that was deleted, e.g. "capp_01HX...". + The rule that was deleted, e.g. "apr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `cascade_trigger_credential_id: optional string or null` + + Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the rule inject_credential-referenced the deleted credential). Unset for a direct DeleteAgentProxyRule call, for the profile-delete cascade (see deleted_with_profile), and for a provisioning-link reject that removed the provisioned rule. + - `created_at: optional string` When this activity occurred. @@ -147238,13 +152390,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileUnbound object` + - `CcrAgentProxyRuleUpdated object` - A Claude Code agent proxy profile was unbound from a scope, removing its policy from Claude Code sessions in that scope. + An agent proxy rule was updated. An update replaces everything the rule matches and does, so the host name patterns here are the rule's complete set after the update. - - `type: optional "ccr_agent_proxy_profile_unbound"` + - `type: optional "ccr_agent_proxy_rule_updated"` - default: ccr_agent_proxy_profile_unbound + default: ccr_agent_proxy_rule_updated + + - `action: "allow" or "deny" or "require_approval" or "unspecified"` + + What the rule does with a matching request. + + - `"allow"` + + - `"deny"` + + - `"require_approval"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -147452,17 +152616,69 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `has_condition: boolean` + + Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. + + - `hosts_truncated: boolean` + + Whether hosts was capped and omits some of the configured host name patterns. + + - `injects_credential: boolean` + + Whether the rule adds a managed credential to the requests it allows. + + - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` + + Whether the rule is enforced, only observed, or switched off. + + - `"disabled"` + + - `"enforce"` + + - `"shadow"` + + - `"unspecified"` + + - `path_pattern_count: number` + + How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches after the update; 0 when the rule matches every path. + + - `ports_truncated: boolean` + + Whether ports was capped and omits some of the configured ports. + + - `priority: number` + + Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. + - `profile_id: string` - The profile that was unbound, e.g. "capp_01HX...". + The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - `scope_id: string` + - `protocol: "http" or "mysql" or "postgres" or 3 more` - The identifier of the scope the profile was unbound from. + The kind of connection the rule applies to. - - `scope_kind: string` + - `"http"` - The kind of scope the profile was unbound from: "organization", "environment", "account", or "agent". + - `"mysql"` + + - `"postgres"` + + - `"ssh"` + + - `"tcp"` + + - `"unspecified"` + + - `rule_id: string` + + The rule that was updated, e.g. "apr_01HX...". + + - `version: number` + + The rule's version after the update; it increases by one on every update. - `id: optional string` @@ -147474,6 +152690,32 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `hosts: optional array of string` + + The host name patterns the rule matches after the update, in canonical form (lowercase, internationalized names in their ASCII encoding). At most 100 entries are included; hosts_truncated indicates when the configured set is larger. + + - `injected_credential_id: optional string or null` + + The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. + + - `methods: optional array of string` + + The HTTP methods the rule matches after the update, e.g. `GET`. Empty when the rule matches every method. + + - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` + + The kinds of change the rule makes to the requests it allows after the update, each listed once. + + - `"inject_credential"` + + - `"route_to"` + + - `"set_header"` + + - `"strip_header"` + + - `"unspecified"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -147482,13 +152724,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileUpdated object` + - `ports: optional array of number` - A Claude Code agent proxy profile's configuration was updated. + The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - `type: optional "ccr_agent_proxy_profile_updated"` + - `route_to_destination_id: optional string or null` - default: ccr_agent_proxy_profile_updated + The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. + + - `CcrAgentSlackAccessScopeCreated object` + + A Claude Code agent was granted access to read or write in an additional Slack channel beyond the one it is assigned to. + + - `type: optional "ccr_agent_slack_access_scope_created"` + + default: ccr_agent_slack_access_scope_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -147696,63 +152946,31 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `profile_id: string` - - The profile that was updated, e.g. "capp_01HX...". - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `github_access_changes: optional array of object` - - How the profile's GitHub repository access changed, one entry per GitHub App installation whose access changed. Empty when the update did not change GitHub access. - - - `access_mode: string` - - How repository access is granted after the change: "none" (no access), "list" (access is restricted to an explicit repository list — repos_added/repos_removed carry this change's delta and repo_count the post-change total), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - - - `github_installation_id: number` - - The GitHub App installation the change applies to. - - - `repo_count: number` - - The total number of repositories granted after the change. - - - `repos_truncated: boolean` - - Whether repos_added or repos_removed was capped and omits some of the changed repositories. + - `agent_id: string` - - `ghe_configuration_id: optional number or null` + The agent that was granted access, e.g. "cagt_01HX...". - The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. + - `can_write: boolean` - - `previous_access_mode: optional string or null` + Whether the grant includes permission to post messages in the channel, in addition to reading it. - How repository access was granted before the change. Present only when the access mode changed. + - `slack_channel_id: string` - - `repo_ids_added: optional array of number` + The Slack channel the agent was granted access to, e.g. "C01ABC...". Empty when the grant covers the entire workspace. - The numeric GitHub repository IDs added to the granted set, in the same order as repos_added (and subject to the same 100-entry cap). These IDs are the authoritative identity of the added repositories — access is enforced against them, not against the display names in repos_added. + - `slack_team_id: string` - - `repo_ids_removed: optional array of number` + The Slack workspace containing the channel, e.g. "T01ABC...". - The numeric GitHub repository IDs removed from the granted set, in the same order as repos_removed (and subject to the same 100-entry cap). These IDs are the authoritative identity of the removed repositories. + - `id: optional string` - - `repos_added: optional array of string` + Unique identifier for the activity e.g. 'activity_abcd1234' - Repository names (owner/name) added to the granted set. Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids_added are the authoritative identity of the added repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when more were added. Empty when the change involves "all" access, which grants every repository regardless of any explicit list. + - `created_at: optional string` - - `repos_removed: optional array of string` + When this activity occurred. - Repository names (owner/name) removed from the granted set. Same rendering, cap, and "all" handling as repos_added; repo_ids_removed carries the authoritative identity of the removed repositories. + format: date-time - `organization_id: optional string or null` @@ -147762,17 +152980,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` - - Names of the configuration fields included in the update, e.g. "display_name", "github_installation_permissions". - - - `CcrAgentProxyProvisioningCredentialRejected object` + - `CcrAgentSlackAccessScopeDeleted object` - An organization owner rejected a credential that a teammate submitted via an agent proxy provisioning link: the credential and its disabled rule were deleted and the link was revoked. The actor is the owner; the submitter is recorded for attribution. + A Claude Code agent's access to an additional Slack channel was revoked. - - `type: optional "ccr_agent_proxy_provisioning_credential_rejected"` + - `type: optional "ccr_agent_slack_access_scope_deleted"` - default: ccr_agent_proxy_provisioning_credential_rejected + default: ccr_agent_slack_access_scope_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -147980,25 +153194,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_id: string` - - The credential the member submitted, e.g. "apc_01HX...". - - - `link_id: string` - - The provisioning link's identifier. - - - `profile_id: string` + - `agent_id: string` - The agent proxy profile the credential lived in, e.g. "capp_01HX...". + The agent whose access was revoked, e.g. "cagt_01HX...". - - `rule_id: string` + - `slack_channel_id: string` - The disabled rule that was deleted alongside the credential, e.g. "apr_01HX...". + The Slack channel the agent's access was revoked from, e.g. "C01ABC...". Empty when the revoked grant covered the entire workspace. - - `submitted_by_user_id: string` + - `slack_team_id: string` - The tagged account ID of the user who originally submitted the credential, e.g. "user_01HX...". + The Slack workspace containing the channel, e.g. "T01ABC...". - `id: optional string` @@ -148018,13 +153224,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkEnabled object` + - `CcrAgentSlackBindingCreated object` - An organization owner enabled a credential that a teammate submitted via an agent proxy provisioning link: the disabled rule created at submission was switched to enforce, so the credential now takes traffic. The actor is the owner; the submitter is the actor on the prior ccr_agent_proxy_provisioning_link_submitted event. + A Claude Code agent was assigned to a Slack channel or workspace as its dedicated agent. - - `type: optional "ccr_agent_proxy_provisioning_link_enabled"` + - `type: optional "ccr_agent_slack_binding_created"` - default: ccr_agent_proxy_provisioning_link_enabled + default: ccr_agent_slack_binding_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -148232,21 +153438,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_id: string` - - The credential the member submitted, e.g. "apc_01HX...". - - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. + The agent the binding was created for, e.g. "cagt_01HX...". - - `profile_id: string` + - `slack_channel_id: string` - The agent proxy profile the credential lives in, e.g. "capp_01HX...". + The Slack channel the agent was assigned to, e.g. "C01ABC...". Empty when the agent was assigned to the entire workspace. - - `rule_id: string` + - `slack_team_id: string` - The rule that was flipped to enforce, e.g. "apr_01HX...". + The Slack workspace the agent was assigned to, e.g. "T01ABC...". - `id: optional string` @@ -148266,13 +153468,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkGenerated object` + - `CcrAgentSlackBindingDeleted object` - An organization owner generated a one-time agent proxy credential provisioning link so a teammate can submit a credential into the target agent proxy profile without holding the owner role. + A Claude Code agent's assignment to a Slack channel or workspace was removed. - - `type: optional "ccr_agent_proxy_provisioning_link_generated"` + - `type: optional "ccr_agent_slack_binding_deleted"` - default: ccr_agent_proxy_provisioning_link_generated + default: ccr_agent_slack_binding_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -148480,13 +153682,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. Correlation only; redemption requires an org-member session, so this is not a bearer credential. + The agent the binding was removed from, e.g. "cagt_01HX...". - - `profile_id: string` + - `slack_channel_id: string` - The agent proxy profile the submitted credential will be created in, e.g. "capp_01HX...". + The Slack channel the agent was unassigned from, e.g. "C01ABC...". Empty when the assignment covered the entire workspace. + + - `slack_team_id: string` + + The Slack workspace the agent was unassigned from, e.g. "T01ABC...". - `id: optional string` @@ -148506,13 +153712,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkRevoked object` + - `CcrAgentUpdated object` - An organization owner revoked an unfilled agent proxy provisioning link. + A Claude Code agent's configuration was updated. Also emitted with updated_fields ["is_virtual"] alone when an auto-provisioned agent is promoted to a configured one, whether by an update request targeting it or by binding an agent proxy profile to it. - - `type: optional "ccr_agent_proxy_provisioning_link_revoked"` + - `type: optional "ccr_agent_updated"` - default: ccr_agent_proxy_provisioning_link_revoked + default: ccr_agent_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -148720,13 +153926,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. + The agent that was updated, e.g. "cagt_01HX...". - - `profile_id: string` + - `default_source_urls_truncated: boolean` - The agent proxy profile the link targeted, e.g. "capp_01HX...". + Whether default_source_urls was capped and omits some of the granted repositories. + + - `omitted_source_url_count: number` + + Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. - `id: optional string` @@ -148738,6 +153948,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `default_source_urls: optional array of string` + + The agent's default repository URLs after the update, reduced to scheme, host, and path — credentials and query parameters are never included. Populated only when the update changed them — "default_source_urls" appears in updated_fields. Empty while listed in updated_fields AND omitted_source_url_count is 0 means all default repositories were removed. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + + - `guest_policy: optional string or null` + + The agent's response policy for Slack channels that include guest users and Slack Connect channels shared with other organizations, after the update: "allow", "restrict", "channel" (the agent responds, using only that channel's own content and configuration), or "default" when the update removed the agent-specific policy so the agent inherits the surrounding default. In Slack Connect channels "allow" gives at most "channel" access. Present only when the update changed it. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -148746,13 +153964,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkSubmitted object` + - `slack_alias: optional string or null` - A teammate submitted a credential via an agent proxy provisioning link. The credential and a disabled rule are created; the credential takes traffic only after an organization owner enables the submitted credential. This event records the link-mediated lifecycle; the credential itself additionally emits ccr_agent_proxy_credential_created. + The agent's Slack trigger word after the update. Present only when the update changed it. An empty value means the agent responds to bare "@Claude" mentions. - - `type: optional "ccr_agent_proxy_provisioning_link_submitted"` + - `updated_fields: optional array of string` - default: ccr_agent_proxy_provisioning_link_submitted + Names of the configuration fields included in the update, e.g. "display_name", "system_prompt_addendum", "guest_policy". Includes "is_virtual" when this update was the first administrator action on an auto-provisioned agent — a durable state change even when no other field was supplied. + + - `CcrChannelManagerAdded object` + + An org owner/admin assigned an organization member to manage the Claude-in-Slack configuration of one Slack channel. + + - `type: optional "ccr_channel_manager_added"` + + default: ccr_channel_manager_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -148960,21 +154186,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_id: string` + - `agent_id: string` - The credential that was created, e.g. "apc_01HX...". + The channel's Claude agent (cagt_...) the assignment is recorded against. - - `credential_type: string` + - `slack_channel_id: string` - The kind of credential, e.g. "bearer" or "basic". + The Slack channel the member may now manage, e.g. "C01ABC...". - - `link_id: string` + - `slack_team_id: string` - The provisioning link's identifier. + The Slack workspace containing the channel, e.g. "T01ABC...". - - `profile_id: string` + - `user_id: string` - The agent proxy profile the credential was created in, e.g. "capp_01HX...". + Tagged ID of the member who was assigned. - `id: optional string` @@ -148986,10 +154212,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -148998,25 +154220,261 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyRuleCreated object` + - `CcrChannelManagerRemoved object` - An agent proxy rule was created. A rule decides what happens to a session's outbound requests that match it. + An org owner/admin removed an organization member's assignment to manage the Claude-in-Slack configuration of one Slack channel. - - `type: optional "ccr_agent_proxy_rule_created"` + - `type: optional "ccr_channel_manager_removed"` - default: ccr_agent_proxy_rule_created + default: ccr_channel_manager_removed - - `action: "allow" or "deny" or "require_approval" or "unspecified"` + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - What the rule does with a matching request. + - `APIActor object` - - `"allow"` + - `type: optional "api_actor"` - - `"deny"` + default: api_actor - - `"require_approval"` + - `api_key_id: string` - - `"unspecified"` + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `agent_id: string` + + The channel's Claude agent (cagt_...) the assignment was recorded against. + + - `slack_channel_id: string` + + The Slack channel the member managed, e.g. "C01ABC...". + + - `slack_team_id: string` + + The Slack workspace containing the channel, e.g. "T01ABC...". + + - `user_id: string` + + Tagged ID of the member whose assignment was removed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `CcrRoleChannelAssignmentDeleted object` + + CcrRoleChannelAssignmentDeleted is emitted when an org owner/admin removes an RBAC role's channel assignment row (the role reverts to granting zero channels). + + - `type: optional "ccr_role_channel_assignment_deleted"` + + default: ccr_role_channel_assignment_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -149224,65 +154682,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `has_condition: boolean` - - Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. - - - `hosts_truncated: boolean` - - Whether hosts was capped and omits some of the configured host name patterns. - - - `injects_credential: boolean` - - Whether the rule adds a managed credential to the requests it allows. - - - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` - - Whether the rule is enforced, only observed, or switched off. - - - `"disabled"` - - - `"enforce"` - - - `"shadow"` - - - `"unspecified"` - - - `path_pattern_count: number` - - How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches; 0 when the rule matches every path. - - - `ports_truncated: boolean` - - Whether ports was capped and omits some of the configured ports. - - - `priority: number` - - Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - - - `profile_id: string` - - The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - - `protocol: "http" or "mysql" or "postgres" or 3 more` - - The kind of connection the rule applies to. - - - `"http"` - - - `"mysql"` - - - `"postgres"` - - - `"ssh"` - - - `"tcp"` + - `previous_channel_count: number` - - `"unspecified"` + Number of (team, channel) pairs the role was assigned before deletion. - - `rule_id: string` + - `role_id: string` - The rule that was created, e.g. "apr_01HX...". + Tagged ID of the role whose channel assignment was removed. - `id: optional string` @@ -149294,32 +154700,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `hosts: optional array of string` - - The host name patterns the rule matches, in canonical form (lowercase, internationalized names in their ASCII encoding), e.g. "api.example.com" or "*.example.com". At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - - - `injected_credential_id: optional string or null` - - The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - - - `methods: optional array of string` - - The HTTP methods the rule matches, e.g. `GET`. Empty when the rule matches every method. - - - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - The kinds of change the rule makes to the requests it allows, each listed once. - - - `"inject_credential"` - - - `"route_to"` - - - `"set_header"` - - - `"strip_header"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -149328,21 +154708,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ports: optional array of number` - - The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - - `route_to_destination_id: optional string or null` - - The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. - - - `CcrAgentProxyRuleDeleted object` + - `CcrRoleChannelAssignmentUpdated object` - An agent proxy rule was deleted. + CcrRoleChannelAssignmentUpdated is emitted when an org owner/admin sets or replaces the list of Slack channels an RBAC role's holders may configure via the delegated Claude-in-Slack channel-manage surface. - - `type: optional "ccr_agent_proxy_rule_deleted"` + - `type: optional "ccr_role_channel_assignment_updated"` - default: ccr_agent_proxy_rule_deleted + default: ccr_role_channel_assignment_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -149550,25 +154922,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_with_profile: boolean` + - `channel_count: number` - True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyRule call or a provisioning-link reject (RejectAgentProxyProvisionedCredential) — the reject case also emits CcrAgentProxyProvisioningCredentialRejected with the same rule_id in the same batch. + Number of channels assigned after the write. - - `profile_id: string` + - `previous_channel_count: number` - The agent proxy profile the rule belonged to, e.g. "capp_01HX...". + Number of channels assigned before the write. - - `rule_id: string` + - `role_id: string` - The rule that was deleted, e.g. "apr_01HX...". + Tagged ID of the role whose channel assignment was written. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cascade_trigger_credential_id: optional string or null` + - `agent_ids: optional array of string` - Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the rule inject_credential-referenced the deleted credential). Unset for a direct DeleteAgentProxyRule call, for the profile-delete cascade (see deleted_with_profile), and for a provisioning-link reject that removed the provisioned rule. + The channel-silo agents (cagt_...) assigned after the write. Capped at 100 entries; channel_count carries the uncapped total. - `created_at: optional string` @@ -149584,25 +154956,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyRuleUpdated object` - - An agent proxy rule was updated. An update replaces everything the rule matches and does, so the host name patterns here are the rule's complete set after the update. - - - `type: optional "ccr_agent_proxy_rule_updated"` - - default: ccr_agent_proxy_rule_updated - - - `action: "allow" or "deny" or "require_approval" or "unspecified"` - - What the rule does with a matching request. - - - `"allow"` + - `CcrSessionCreated object` - - `"deny"` + A Claude Code session was created. A session is one coding interaction with Claude. - - `"require_approval"` + - `type: optional "ccr_session_created"` - - `"unspecified"` + default: ccr_session_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -149810,106 +155170,24 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `has_condition: boolean` - - Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. - - - `hosts_truncated: boolean` - - Whether hosts was capped and omits some of the configured host name patterns. - - - `injects_credential: boolean` - - Whether the rule adds a managed credential to the requests it allows. - - - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` - - Whether the rule is enforced, only observed, or switched off. - - - `"disabled"` - - - `"enforce"` - - - `"shadow"` - - - `"unspecified"` - - - `path_pattern_count: number` - - How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches after the update; 0 when the rule matches every path. - - - `ports_truncated: boolean` - - Whether ports was capped and omits some of the configured ports. - - - `priority: number` - - Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - - - `profile_id: string` - - The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - - `protocol: "http" or "mysql" or "postgres" or 3 more` - - The kind of connection the rule applies to. - - - `"http"` - - - `"mysql"` - - - `"postgres"` - - - `"ssh"` - - - `"tcp"` - - - `"unspecified"` - - - `rule_id: string` - - The rule that was updated, e.g. "apr_01HX...". - - - `version: number` + - `session_id: string` - The rule's version after the update; it increases by one on every update. + The session that was created, e.g. "cse_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `agent_id: optional string or null` + + The Claude Code agent attached to the session, e.g. "cagt_01HX...". Omitted when the session was created without an agent. + - `created_at: optional string` When this activity occurred. format: date-time - - `hosts: optional array of string` - - The host name patterns the rule matches after the update, in canonical form (lowercase, internationalized names in their ASCII encoding). At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - - - `injected_credential_id: optional string or null` - - The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - - - `methods: optional array of string` - - The HTTP methods the rule matches after the update, e.g. `GET`. Empty when the rule matches every method. - - - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - The kinds of change the rule makes to the requests it allows after the update, each listed once. - - - `"inject_credential"` - - - `"route_to"` - - - `"set_header"` - - - `"strip_header"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -149918,21 +155196,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ports: optional array of number` - - The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - - `route_to_destination_id: optional string or null` - - The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. - - - `CcrAgentSlackAccessScopeCreated object` + - `CcrSessionDeleted object` - A Claude Code agent was granted access to read or write in an additional Slack channel beyond the one it is assigned to. + A Claude Code session was deleted. - - `type: optional "ccr_agent_slack_access_scope_created"` + - `type: optional "ccr_session_deleted"` - default: ccr_agent_slack_access_scope_created + default: ccr_session_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -150140,21 +155410,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was granted access, e.g. "cagt_01HX...". - - - `can_write: boolean` - - Whether the grant includes permission to post messages in the channel, in addition to reading it. - - - `slack_channel_id: string` - - The Slack channel the agent was granted access to, e.g. "C01ABC...". Empty when the grant covers the entire workspace. - - - `slack_team_id: string` + - `session_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + The session that was deleted, e.g. "cse_01HX...". - `id: optional string` @@ -150174,13 +155432,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackAccessScopeDeleted object` + - `CcrSessionUpdated object` - A Claude Code agent's access to an additional Slack channel was revoked. + A Claude Code session's settings were updated. - - `type: optional "ccr_agent_slack_access_scope_deleted"` + - `type: optional "ccr_session_updated"` - default: ccr_agent_slack_access_scope_deleted + default: ccr_session_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -150388,17 +155646,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent whose access was revoked, e.g. "cagt_01HX...". - - - `slack_channel_id: string` - - The Slack channel the agent's access was revoked from, e.g. "C01ABC...". Empty when the revoked grant covered the entire workspace. - - - `slack_team_id: string` + - `session_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + The session that was updated, e.g. "cse_01HX...". - `id: optional string` @@ -150418,13 +155668,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackBindingCreated object` + - `updated_fields: optional array of string` - A Claude Code agent was assigned to a Slack channel or workspace as its dedicated agent. + Names of the fields included in the update, e.g. "add_tags", "remove_tags". - - `type: optional "ccr_agent_slack_binding_created"` + - `CcrSlackChannelJoined object` - default: ccr_agent_slack_binding_created + Claude's Slack app joined a public Slack channel at an organization administrator's request. + + - `type: optional "ccr_slack_channel_joined"` + + default: ccr_slack_channel_joined - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -150632,17 +155886,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent the binding was created for, e.g. "cagt_01HX...". - - `slack_channel_id: string` - The Slack channel the agent was assigned to, e.g. "C01ABC...". Empty when the agent was assigned to the entire workspace. + The Slack channel the app joined, e.g. "C01ABC...". - `slack_team_id: string` - The Slack workspace the agent was assigned to, e.g. "T01ABC...". + The Slack workspace containing the channel, e.g. "T01ABC...". - `id: optional string` @@ -150662,13 +155912,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackBindingDeleted object` + - `ClaudeChatSettingsUpdated object` - A Claude Code agent's assignment to a Slack channel or workspace was removed. + User updated the settings for a conversation. - - `type: optional "ccr_agent_slack_binding_deleted"` + - `type: optional "claude_chat_settings_updated"` - default: ccr_agent_slack_binding_deleted + default: claude_chat_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -150876,17 +156126,249 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` + - `claude_chat_id: string` - The agent the binding was removed from, e.g. "cagt_01HX...". + Tagged ID of the conversation whose settings were updated, e.g. "claude_chat_01HX...". - - `slack_channel_id: string` + - `id: optional string` - The Slack channel the agent was unassigned from, e.g. "C01ABC...". Empty when the assignment covered the entire workspace. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `slack_team_id: string` + - `claude_project_id: optional string or null` - The Slack workspace the agent was unassigned from, e.g. "T01ABC...". + Project ID this chat belongs to, if any + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `ClaudeChatSnapshotCreated object` + + User created/shared a chat snapshot. + + - `type: optional "claude_chat_snapshot_created"` + + default: claude_chat_snapshot_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `claude_chat_id: string` + + - `claude_chat_snapshot_id: string` - `id: optional string` @@ -150906,13 +156388,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentUpdated object` + - `ClaudeChatSnapshotDeleted object` - A Claude Code agent's configuration was updated. Also emitted with updated_fields ["is_virtual"] alone when an auto-provisioned agent is promoted to a configured one, whether by an update request targeting it or by binding an agent proxy profile to it. + User deleted/unshared a chat snapshot. - - `type: optional "ccr_agent_updated"` + - `type: optional "claude_chat_snapshot_deleted"` - default: ccr_agent_updated + default: claude_chat_snapshot_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -151120,36 +156602,20 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was updated, e.g. "cagt_01HX...". - - - `default_source_urls_truncated: boolean` - - Whether default_source_urls was capped and omits some of the granted repositories. - - - `omitted_source_url_count: number` - - Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. + - `claude_chat_snapshot_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + - `created_at: optional string` When this activity occurred. format: date-time - - `default_source_urls: optional array of string` - - The agent's default repository URLs after the update, reduced to scheme, host, and path — credentials and query parameters are never included. Populated only when the update changed them — "default_source_urls" appears in updated_fields. Empty while listed in updated_fields AND omitted_source_url_count is 0 means all default repositories were removed. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. - - - `guest_policy: optional string or null` - - The agent's response policy for Slack channels that include guest users and Slack Connect channels shared with other organizations, after the update: "allow", "restrict", "channel" (the agent responds, using only that channel's own content and configuration), or "default" when the update removed the agent-specific policy so the agent inherits the surrounding default. In Slack Connect channels "allow" gives at most "channel" access. Present only when the update changed it. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -151158,21 +156624,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_alias: optional string or null` - - The agent's Slack trigger word after the update. Present only when the update changed it. An empty value means the agent responds to bare "@Claude" mentions. - - - `updated_fields: optional array of string` - - Names of the configuration fields included in the update, e.g. "display_name", "system_prompt_addendum", "guest_policy". Includes "is_virtual" when this update was the first administrator action on an auto-provisioned agent — a durable state change even when no other field was supplied. - - - `CcrChannelManagerAdded object` + - `ClaudeChatSnapshotViewed object` - An org owner/admin assigned an organization member to manage the Claude-in-Slack configuration of one Slack channel. + User viewed a chat snapshot (authenticated or public/unauthenticated). - - `type: optional "ccr_channel_manager_added"` + - `type: optional "claude_chat_snapshot_viewed"` - default: ccr_channel_manager_added + default: claude_chat_snapshot_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -151380,26 +156838,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The channel's Claude agent (cagt_...) the assignment is recorded against. - - - `slack_channel_id: string` - - The Slack channel the member may now manage, e.g. "C01ABC...". - - - `slack_team_id: string` - - The Slack workspace containing the channel, e.g. "T01ABC...". - - - `user_id: string` - - Tagged ID of the member who was assigned. + - `claude_chat_snapshot_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -151414,13 +156860,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrChannelManagerRemoved object` + - `ClaudeArtifactDuplicated object` - An org owner/admin removed an organization member's assignment to manage the Claude-in-Slack configuration of one Slack channel. + A user duplicated an artifact they could view into a new artifact that they own. The actor is the user who created the copy; the source artifact is not modified. - - `type: optional "ccr_channel_manager_removed"` + - `type: optional "claude_artifact_duplicated"` - default: ccr_channel_manager_removed + default: claude_artifact_duplicated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -151628,21 +157074,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `agent_id: string` - - The channel's Claude agent (cagt_...) the assignment was recorded against. - - - `slack_channel_id: string` - - The Slack channel the member managed, e.g. "C01ABC...". - - - `slack_team_id: string` + - `claude_artifact_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + Tagged ID of the new artifact created by the duplication. It is owned by the actor and is independent of the source artifact. - - `user_id: string` + - `source_claude_artifact_id: string` - Tagged ID of the member whose assignment was removed. + Tagged ID of the artifact that was copied. - `id: optional string` @@ -151662,13 +157100,27 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrRoleChannelAssignmentDeleted object` + - `source_claude_artifact_version_id: optional string or null` - CcrRoleChannelAssignmentDeleted is emitted when an org owner/admin removes an RBAC role's channel assignment row (the role reverts to granting zero channels). + The version of the source artifact that was copied into the new artifact. - - `type: optional "ccr_role_channel_assignment_deleted"` + - `ClaudeArtifactExternalSharingPermissionUpdated object` - default: ccr_role_channel_assignment_deleted + An organization admin allowed one artifact to be shared outside the organization by link while the organization-wide external sharing setting was off, or revoked that permission. + + - `type: optional "claude_artifact_external_sharing_permission_updated"` + + default: claude_artifact_external_sharing_permission_updated + + - `action: "allowed" or "revoked" or "unspecified"` + + Whether the permission was allowed or revoked. + + - `"allowed"` + + - `"revoked"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -151876,13 +157328,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `previous_channel_count: number` - - Number of (team, channel) pairs the role was assigned before deletion. - - - `role_id: string` + - `claude_artifact_id: string` - Tagged ID of the role whose channel assignment was removed. + Tagged ID of the artifact. - `id: optional string` @@ -151902,13 +157350,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrRoleChannelAssignmentUpdated object` + - `ClaudeArtifactInviteAccepted object` - CcrRoleChannelAssignmentUpdated is emitted when an org owner/admin sets or replaces the list of Slack channels an RBAC role's holders may configure via the delegated Claude-in-Slack channel-manage surface. + Someone outside the organization signed in with a verified account for the invited address and accepted an invitation to an artifact, and can now open it; recorded in the artifact owner's organization. The person who accepted is identified by `invitee_email` and `invitee_user_id`. - - `type: optional "ccr_role_channel_assignment_updated"` + - `type: optional "claude_artifact_invite_accepted"` - default: ccr_role_channel_assignment_updated + default: claude_artifact_invite_accepted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -152116,25 +157564,29 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `channel_count: number` + - `claude_artifact_id: string` - Number of channels assigned after the write. + Tagged ID of the artifact the invitation is for. - - `previous_channel_count: number` + - `claude_artifact_invite_id: string` - Number of channels assigned before the write. + Tagged ID of the invitation that was accepted. - - `role_id: string` + - `invitee_email: string` - Tagged ID of the role whose channel assignment was written. + Email address the invitation was sent to. - - `id: optional string` + - `invitee_user_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged user ID of the account outside the organization that accepted the invitation. - - `agent_ids: optional array of string` + - `role: string` - The channel-silo agents (cagt_...) assigned after the write. Capped at 100 entries; channel_count carries the uncapped total. + The access level the invitation grants, for example `reader`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -152150,13 +157602,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionCreated object` + - `ClaudeArtifactInviteCreated object` - A Claude Code session was created. A session is one coding interaction with Claude. + A member invited (or re-invited) an email address outside the organization to an artifact; recorded in the artifact owner's organization with the inviting member as the actor. - - `type: optional "ccr_session_created"` + - `type: optional "claude_artifact_invite_created"` - default: ccr_session_created + default: claude_artifact_invite_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -152364,17 +157816,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was created, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation is for. - - `id: optional string` + - `claude_artifact_invite_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the invitation; the same ID appears on the accepted, role-updated and revoked activities for this invitation, including a later re-invitation of the same address. - - `agent_id: optional string or null` + - `invitee_email: string` - The Claude Code agent attached to the session, e.g. "cagt_01HX...". Omitted when the session was created without an agent. + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation grants, for example `reader`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -152390,13 +157850,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionDeleted object` + - `ClaudeArtifactInviteRevoked object` - A Claude Code session was deleted. + A member withdrew an invitation to an artifact for someone outside the organization, removing any access that invitation had granted; recorded in the artifact owner's organization with that member as the actor. - - `type: optional "ccr_session_deleted"` + - `type: optional "claude_artifact_invite_revoked"` - default: ccr_session_deleted + default: claude_artifact_invite_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -152604,9 +158064,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was deleted, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation was for. + + - `claude_artifact_invite_id: string` + + Tagged ID of the invitation that was withdrawn. + + - `invitee_email: string` + + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation granted, for example `reader`. - `id: optional string` @@ -152618,6 +158090,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `invitee_user_id: optional string or null` + + Tagged user ID of the account outside the organization that had accepted the invitation; absent when it was withdrawn before anyone accepted. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -152626,13 +158102,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionUpdated object` + - `ClaudeArtifactInviteRoleUpdated object` - A Claude Code session's settings were updated. + A member changed the access level of an email invitation to an artifact for someone outside the organization, whether the invitation was still pending or had been accepted; recorded in the artifact owner's organization with that member as the actor. - - `type: optional "ccr_session_updated"` + - `type: optional "claude_artifact_invite_role_updated"` - default: ccr_session_updated + default: claude_artifact_invite_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -152840,9 +158316,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was updated, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation is for. + + - `claude_artifact_invite_id: string` + + Tagged ID of the invitation whose access level was changed. + + - `invitee_email: string` + + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation grants after the change, for example `reader`. - `id: optional string` @@ -152854,6 +158342,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `invitee_user_id: optional string or null` + + Tagged user ID of the account outside the organization that had accepted the invitation; absent while the invitation is pending. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -152862,17 +158354,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` + - `previous_role: optional string or null` - Names of the fields included in the update, e.g. "add_tags", "remove_tags". + The access level the invitation granted before the change, for example `commenter`. - - `CcrSlackChannelJoined object` + - `ClaudeArtifactSentToPartner object` - Claude's Slack app joined a public Slack channel at an organization administrator's request. + A member sent an export of an artifact to a partner application ("Send to …" on the artifact; a partner is a third-party application listed in Claude's connector directory): a file exported from the artifact was made available over a temporary link for the chosen partner to fetch. One activity is recorded per send, in the artifact owner's organization with the sending member as actor, whether or not the partner then retrieved the file; the partner's own import of the file is not part of this record. The file's name and contents are not recorded. - - `type: optional "ccr_slack_channel_joined"` + - `type: optional "claude_artifact_sent_to_partner"` - default: ccr_slack_channel_joined + default: claude_artifact_sent_to_partner - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -153080,13 +158572,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `slack_channel_id: string` + - `claude_artifact_id: string` - The Slack channel the app joined, e.g. "C01ABC...". + Tagged ID of the artifact the file was exported from. - - `slack_team_id: string` + - `claude_artifact_send_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + Tagged ID of this send; a new one for every link created, so two sends of the same artifact to the same partner are distinct. + + - `claude_artifact_version_id: string` + + The version of the artifact served to the member when they sent it. + + - `mime_type: string` + + MIME type of the exported file, for example `text/html`. + + - `size_bytes: number` + + Size of the exported file in bytes. - `id: optional string` @@ -153106,13 +158610,27 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSettingsUpdated object` + - `partner_mcp_directory_server_id: optional string or null` - User updated the settings for a conversation. + Tagged ID of the partner's MCP directory listing (the listing's public ID), as reported by the member's Claude app when it sent the file. It is not independently verified, and is absent when the app did not report a valid listing ID. - - `type: optional "claude_chat_settings_updated"` + - `ClaudeArtifactTypeDefaultUpdated object` - default: claude_chat_settings_updated + An organization's default artifact for an artifact type (for example, its default design system) was set or cleared. Neither artifact named is itself modified. + + - `type: optional "claude_artifact_type_default_updated"` + + default: claude_artifact_type_default_updated + + - `action: "cleared" or "set" or "unspecified"` + + Whether the default was set or cleared. + + - `"cleared"` + + - `"set"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -153320,17 +158838,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `claude_artifact_id: string` - Tagged ID of the conversation whose settings were updated, e.g. "claude_chat_01HX...". + Tagged ID of the artifact that was made the default, or of the artifact that was the default until it was cleared. - - `id: optional string` + - `scope: "org" or "unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + Whose default changed. - - `claude_project_id: optional string or null` + - `"org"` - Project ID this chat belongs to, if any + - `"unspecified"` + + - `type_claude_artifact_id: string` + + Tagged ID of the published artifact that defines the template (for example, the design-system template) whose default changed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -153346,13 +158872,23 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotCreated object` + - `ClaudeArtifactTypePinUpdated object` - User created/shared a chat snapshot. + An artifact was pinned or unpinned for an artifact type (for example, a design system was pinned so every member sees it in their picker). Neither artifact named is itself modified, and pinning does not change who can open it. - - `type: optional "claude_chat_snapshot_created"` + - `type: optional "claude_artifact_type_pin_updated"` - default: claude_chat_snapshot_created + default: claude_artifact_type_pin_updated + + - `action: "pinned" or "unpinned" or "unspecified"` + + Whether the artifact was pinned or unpinned. + + - `"pinned"` + + - `"unpinned"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -153560,9 +159096,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `claude_artifact_id: string` - - `claude_chat_snapshot_id: string` + Tagged ID of the artifact that was pinned or unpinned. + + - `type_claude_artifact_id: string` + + Tagged ID of the published artifact that defines the template (for example, the design-system template) the pin belongs to. - `id: optional string` @@ -153582,13 +159122,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotDeleted object` + - `ClaudeChatAccessFailed object` - User deleted/unshared a chat snapshot. + A user was denied access to a Claude.ai chat conversation. - - `type: optional "claude_chat_snapshot_deleted"` + - `type: optional "claude_chat_access_failed"` - default: claude_chat_snapshot_deleted + default: claude_chat_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -153796,14 +159336,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_snapshot_id: string` + - `claude_chat_id: string` + + The chat conversation the user was denied access to, e.g. "claude_chat_01Ab...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` - - `created_at: optional string` When this activity occurred. @@ -153818,13 +159358,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotViewed object` + - `ClaudeChatCreated object` - User viewed a chat snapshot (authenticated or public/unauthenticated). + User created a chat. - - `type: optional "claude_chat_snapshot_viewed"` + - `type: optional "claude_chat_created"` - default: claude_chat_snapshot_viewed + default: claude_chat_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -154032,13 +159572,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_snapshot_id: string` + - `claude_chat_id: string` + + Tagged ID of the created conversation, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` + - `claude_project_id: optional string or null` + + Tagged ID of the project the chat was created in, if any, e.g. "claude_proj_01HX...". - `created_at: optional string` @@ -154054,13 +159598,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactDuplicated object` + - `ClaudeChatDeleted object` - A user duplicated an artifact they could view into a new artifact that they own. The actor is the user who created the copy; the source artifact is not modified. + A user deleted a Claude.ai chat conversation. - - `type: optional "claude_artifact_duplicated"` + - `type: optional "claude_chat_deleted"` - default: claude_artifact_duplicated + default: claude_chat_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -154268,18 +159812,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the new artifact created by the duplication. It is owned by the actor and is independent of the source artifact. - - - `source_claude_artifact_id: string` + - `claude_chat_id: string` - Tagged ID of the artifact that was copied. + The chat conversation that was deleted, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + The project the chat belonged to, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -154294,27 +159838,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `source_claude_artifact_version_id: optional string or null` - - The version of the source artifact that was copied into the new artifact. - - - `ClaudeArtifactExternalSharingPermissionUpdated object` - - An organization admin allowed one artifact to be shared outside the organization by link while the organization-wide external sharing setting was off, or revoked that permission. - - - `type: optional "claude_artifact_external_sharing_permission_updated"` - - default: claude_artifact_external_sharing_permission_updated - - - `action: "allowed" or "revoked" or "unspecified"` - - Whether the permission was allowed or revoked. + - `ClaudeChatDeletionFailed object` - - `"allowed"` + A request to delete a Claude.ai chat conversation failed. - - `"revoked"` + - `type: optional "claude_chat_deletion_failed"` - - `"unspecified"` + default: claude_chat_deletion_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -154522,9 +160052,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `claude_chat_id: string` - Tagged ID of the artifact. + The chat conversation the user attempted to delete, e.g. "claude_chat_01HX...". - `id: optional string` @@ -154544,13 +160074,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteAccepted object` + - `ClaudeChatSyncSourceCreated object` - Someone outside the organization signed in with a verified account for the invited address and accepted an invitation to an artifact, and can now open it; recorded in the artifact owner's organization. The person who accepted is identified by `invitee_email` and `invitee_user_id`. + A sync source was connected for syncing external content into Claude chats. - - `type: optional "claude_artifact_invite_accepted"` + - `type: optional "claude_chat_sync_source_created"` - default: claude_artifact_invite_accepted + default: claude_chat_sync_source_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -154758,25 +160288,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation that was accepted. - - - `invitee_email: string` - - Email address the invitation was sent to. - - - `invitee_user_id: string` + - `claude_chat_sync_source_id: string` - Tagged user ID of the account outside the organization that accepted the invitation. + Tagged ID of the chat-scoped sync source that was created. - - `role: string` + - `provider: string` - The access level the invitation grants, for example `reader`. + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. - `id: optional string` @@ -154796,13 +160314,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteCreated object` + - `resource_descriptor: optional string or null` - A member invited (or re-invited) an email address outside the organization to an artifact; recorded in the artifact owner's organization with the inviting member as the actor. + A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_artifact_invite_created"` + - `ClaudeChatSyncSourceDeleted object` - default: claude_artifact_invite_created + A sync source was disconnected from Claude chats. + + - `type: optional "claude_chat_sync_source_deleted"` + + default: claude_chat_sync_source_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -155010,21 +160532,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation; the same ID appears on the accepted, role-updated and revoked activities for this invitation, including a later re-invitation of the same address. - - - `invitee_email: string` + - `claude_chat_sync_source_id: string` - Email address the invitation was sent to. + Tagged ID of the chat-scoped sync source that was deleted. - - `role: string` + - `provider: string` - The access level the invitation grants, for example `reader`. + The external provider backing the sync source. Always `unspecified` for deletion events. - `id: optional string` @@ -155044,13 +160558,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteRevoked object` + - `ClaudeChatSyncSourceUpdated object` - A member withdrew an invitation to an artifact for someone outside the organization, removing any access that invitation had granted; recorded in the artifact owner's organization with that member as the actor. + A Claude chat sync source's configuration was updated. - - `type: optional "claude_artifact_invite_revoked"` + - `type: optional "claude_chat_sync_source_updated"` - default: claude_artifact_invite_revoked + default: claude_chat_sync_source_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -155258,36 +160772,28 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation was for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation that was withdrawn. - - - `invitee_email: string` + - `claude_chat_sync_source_id: string` - Email address the invitation was sent to. + Tagged ID of the chat-scoped sync source that was updated. - - `role: string` + - `provider: string` - The access level the invitation granted, for example `reader`. + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `config_changed: optional boolean or null` + + Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. + - `created_at: optional string` When this activity occurred. format: date-time - - `invitee_user_id: optional string or null` - - Tagged user ID of the account outside the organization that had accepted the invitation; absent when it was withdrawn before anyone accepted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -155296,13 +160802,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteRoleUpdated object` + - `resource_descriptor: optional string or null` - A member changed the access level of an email invitation to an artifact for someone outside the organization, whether the invitation was still pending or had been accepted; recorded in the artifact owner's organization with that member as the actor. + A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_artifact_invite_role_updated"` + - `ClaudeChatUpdated object` - default: claude_artifact_invite_role_updated + User updated the chat metadata (e.g name, model). + + - `type: optional "claude_chat_updated"` + + default: claude_chat_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -155510,36 +161020,24 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation whose access level was changed. - - - `invitee_email: string` - - Email address the invitation was sent to. - - - `role: string` + - `claude_chat_id: string` - The access level the invitation grants after the change, for example `reader`. + Tagged ID of the updated conversation, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + Tagged ID of the project the chat belongs to, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `invitee_user_id: optional string or null` - - Tagged user ID of the account outside the organization that had accepted the invitation; absent while the invitation is pending. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -155548,17 +161046,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` - - The access level the invitation granted before the change, for example `commenter`. - - - `ClaudeArtifactSentToPartner object` + - `ClaudeChatViewed object` - A member sent an export of an artifact to a partner application ("Send to …" on the artifact; a partner is a third-party application listed in Claude's connector directory): a file exported from the artifact was made available over a temporary link for the chosen partner to fetch. One activity is recorded per send, in the artifact owner's organization with the sending member as actor, whether or not the partner then retrieved the file; the partner's own import of the file is not part of this record. The file's name and contents are not recorded. + A user viewed a Claude.ai chat conversation. - - `type: optional "claude_artifact_sent_to_partner"` + - `type: optional "claude_chat_viewed"` - default: claude_artifact_sent_to_partner + default: claude_chat_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -155766,30 +161260,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the file was exported from. - - - `claude_artifact_send_id: string` - - Tagged ID of this send; a new one for every link created, so two sends of the same artifact to the same partner are distinct. - - - `claude_artifact_version_id: string` - - The version of the artifact served to the member when they sent it. - - - `mime_type: string` - - MIME type of the exported file, for example `text/html`. - - - `size_bytes: number` + - `claude_chat_id: string` - Size of the exported file in bytes. + The chat conversation that was viewed, e.g. "claude_chat_01Ab...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + The project the chat belongs to, if any, e.g. "claude_proj_01Ab...". + - `created_at: optional string` When this activity occurred. @@ -155804,27 +161286,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `partner_mcp_directory_server_id: optional string or null` - - Tagged ID of the partner's MCP directory listing (the listing's public ID), as reported by the member's Claude app when it sent the file. It is not independently verified, and is absent when the app did not report a valid listing ID. - - - `ClaudeArtifactTypeDefaultUpdated object` - - An organization's default artifact for an artifact type (for example, its default design system) was set or cleared. Neither artifact named is itself modified. - - - `type: optional "claude_artifact_type_default_updated"` - - default: claude_artifact_type_default_updated - - - `action: "cleared" or "set" or "unspecified"` - - Whether the default was set or cleared. + - `ClaudeCodeCredentialRevoked object` - - `"cleared"` + A Claude Code credential (runner pool key, runner token, or session token) was revoked. The credential itself is never recorded. - - `"set"` + - `type: optional "claude_code_credential_revoked"` - - `"unspecified"` + default: claude_code_credential_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -156032,32 +161500,40 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `credential_type: "runner_pool_key" or "runner_token" or "session_token" or "unspecified"` - Tagged ID of the artifact that was made the default, or of the artifact that was the default until it was cleared. + The kind of credential the revoked target identifies, when known. Subject-targeted revocations cascade to every credential delegated from the target regardless of kind; this field describes the target itself, not the full set of credentials the cascade reached. For a revocation submitted as a pasted credential the kind is best-effort and may be inaccurate; the recorded jti and the revocation itself are unaffected. - - `scope: "org" or "unspecified"` + - `"runner_pool_key"` - Whose default changed. + - `"runner_token"` - - `"org"` + - `"session_token"` - `"unspecified"` - - `type_claude_artifact_id: string` - - Tagged ID of the published artifact that defines the template (for example, the design-system template) whose default changed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `agent_id: optional string or null` + + The agent identity whose Claude Code credentials were revoked, when revocation targeted every session created by an agent identity, e.g. "cagt_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time + - `delegating_jti: optional string or null` + + The credential identifier whose delegated credentials were revoked (a chain revoke): every credential delegated from this one was revoked, but the credential itself was not. Distinct from `jti`, which records a revocation of the credential itself and its delegates. + + - `jti: optional string or null` + + The unique identifier of the revoked credential, recorded in its canonical form. Revoking a runner pool key also revokes every runner and session token delegated from it. A revocation submitted as a pasted credential is recorded by that credential's identifier. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -156066,23 +161542,29 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactTypePinUpdated object` + - `runner_id: optional string or null` - An artifact was pinned or unpinned for an artifact type (for example, a design system was pinned so every member sees it in their picker). Neither artifact named is itself modified, and pinning does not change who can open it. + The runner whose credentials were revoked, when revocation targeted every credential delegated from the runner, e.g. "ccrunner_01HX...". - - `type: optional "claude_artifact_type_pin_updated"` + - `runner_pool_id: optional string or null` - default: claude_artifact_type_pin_updated + The runner pool whose credentials were revoked, when revocation targeted every credential delegated from the pool, e.g. "ccpool_01HX...". - - `action: "pinned" or "unpinned" or "unspecified"` + - `session_id: optional string or null` - Whether the artifact was pinned or unpinned. + The session whose credentials were revoked, when revocation targeted every credential delegated from the session, e.g. "cse_01HX...". - - `"pinned"` + - `user_id: optional string or null` - - `"unpinned"` + The user whose Claude Code credentials were revoked, when revocation targeted every credential minted for a user. Carries the user's tagged account ID, e.g. "user_01HX..." — the only form the revocation API accepts, so the field joins against other activities' account identifiers and never carries an email. - - `"unspecified"` + - `ClaudeCodeReviewConfigUpdated object` + + Claude Code Review configuration was enabled/disabled for an org. + + - `type: optional "claude_code_review_config_updated"` + + default: claude_code_review_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -156290,13 +161772,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact that was pinned or unpinned. - - - `type_claude_artifact_id: string` + - `enabled: boolean` - Tagged ID of the published artifact that defines the template (for example, the design-system template) the pin belongs to. + Whether code review is now enabled - `id: optional string` @@ -156308,6 +161786,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `environment_id: optional string or null` + + Environment used for code review + + - `model: optional string or null` + + Model configured for code review + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -156316,13 +161802,49 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatAccessFailed object` + - `per_review_limit_usd: optional string or null` - A user was denied access to a Claude.ai chat conversation. + Per-review spend limit in USD - - `type: optional "claude_chat_access_failed"` + - `previous_enabled: optional boolean or null` - default: claude_chat_access_failed + Whether code review was enabled before the change. Absent when no configuration existed before this update. + + - `previous_environment_id: optional string or null` + + Environment used for code review before the change. Absent when no configuration existed before this update or no environment was set. + + - `previous_model: optional string or null` + + Model configured for code review before the change. Absent when no configuration existed before this update or no model was set. + + - `previous_per_review_limit_usd: optional string or null` + + Per-review spend limit in USD before the change. Absent when no configuration existed before this update or no limit was set. + + - `previous_show_tips: optional boolean or null` + + Whether tip-style pull-request comments were enabled before the change. Absent when no configuration existed before this update. + + - `previous_verification_enabled: optional boolean or null` + + Whether the verification stage of code review was enabled for the organization before the change. Absent when no configuration existed before this update or no preference was set. + + - `show_tips: optional boolean or null` + + Whether tip-style pull-request comments are now enabled + + - `verification_enabled: optional boolean or null` + + Whether the verification stage of code review is now enabled for the organization. Absent when the organization has not set a preference and the default applies. + + - `ClaudeCodeReviewRepositoryAdded object` + + A repository was added to org-level Claude Code Review configuration. + + - `type: optional "claude_code_review_repository_added"` + + default: claude_code_review_repository_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -156530,9 +162052,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - The chat conversation the user was denied access to, e.g. "claude_chat_01Ab...". + ID of the repository configuration + + - `repo_name: string` + + Repository name + + - `repo_owner: string` + + Repository owner (GitHub org/user) + + - `trigger_mode: string` + + When code review is triggered - `id: optional string` @@ -156552,13 +162086,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatCreated object` + - `ClaudeCodeReviewRepositoryRemoved object` - User created a chat. + A repository was removed from org-level Claude Code Review configuration. - - `type: optional "claude_chat_created"` + - `type: optional "claude_code_review_repository_removed"` - default: claude_chat_created + default: claude_code_review_repository_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -156766,17 +162300,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - Tagged ID of the created conversation, e.g. "claude_chat_01HX...". + ID of the deleted repository configuration - - `id: optional string` + - `repo_name: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Repository name at deletion time - - `claude_project_id: optional string or null` + - `repo_owner: string` - Tagged ID of the project the chat was created in, if any, e.g. "claude_proj_01HX...". + Repository owner at deletion time + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -156792,13 +162330,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatDeleted object` + - `ClaudeCodeReviewRepositoryUpdated object` - A user deleted a Claude.ai chat conversation. + A Claude Code Review repository configuration was updated. - - `type: optional "claude_chat_deleted"` + - `type: optional "claude_code_review_repository_updated"` - default: claude_chat_deleted + default: claude_code_review_repository_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -157006,17 +162544,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - The chat conversation that was deleted, e.g. "claude_chat_01HX...". + ID of the repository configuration - - `id: optional string` + - `repo_name: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Repository name - - `claude_project_id: optional string or null` + - `repo_owner: string` - The project the chat belonged to, if any, e.g. "claude_proj_01HX...". + Repository owner + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -157032,13 +162574,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatDeletionFailed object` + - `status: optional string or null` - A request to delete a Claude.ai chat conversation failed. + Updated status (ACTIVE/INACTIVE) - - `type: optional "claude_chat_deletion_failed"` + - `trigger_mode: optional string or null` - default: claude_chat_deletion_failed + Updated trigger mode + + - `ClaudeCodeRunnerDeleted object` + + A self-hosted runner was forcibly removed from its pool. Sessions assigned to the runner were returned to the pool queue, unless a session had already been requeued repeatedly, in which case it was marked stuck instead of being requeued again. + + - `type: optional "claude_code_runner_deleted"` + + default: claude_code_runner_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -157246,9 +162796,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `runner_id: string` - The chat conversation the user attempted to delete, e.g. "claude_chat_01HX...". + The runner that was removed, e.g. "ccrunner_01HX...". - `id: optional string` @@ -157268,13 +162818,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSyncSourceCreated object` + - `runner_pool_id: optional string or null` - A sync source was connected for syncing external content into Claude chats. + The pool the runner was removed from, e.g. "ccpool_01HX...". - - `type: optional "claude_chat_sync_source_created"` + - `ClaudeCodeRunnerPoolCreated object` - default: claude_chat_sync_source_created + A self-hosted runner pool for Claude Code was created. + + - `type: optional "claude_code_runner_pool_created"` + + default: claude_code_runner_pool_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -157482,13 +163036,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` + - `display_name: string` - Tagged ID of the chat-scoped sync source that was created. + The display name the pool was created with. - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The runner pool that was created, e.g. "ccpool_01HX...". - `id: optional string` @@ -157508,17 +163062,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` - - A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - - `ClaudeChatSyncSourceDeleted object` + - `ClaudeCodeRunnerPoolDeleted object` - A sync source was disconnected from Claude chats. + A self-hosted runner pool was deleted. - - `type: optional "claude_chat_sync_source_deleted"` + - `type: optional "claude_code_runner_pool_deleted"` - default: claude_chat_sync_source_deleted + default: claude_code_runner_pool_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -157726,13 +163276,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` - - Tagged ID of the chat-scoped sync source that was deleted. - - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source. Always `unspecified` for deletion events. + The runner pool that was deleted, e.g. "ccpool_01HX...". - `id: optional string` @@ -157744,6 +163290,10 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `display_name: optional string or null` + + The pool's display name at deletion time. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -157752,13 +163302,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSyncSourceUpdated object` + - `ClaudeCodeRunnerPoolSecretMinted object` - A Claude chat sync source's configuration was updated. + A registration key for a self-hosted runner pool was minted. Runners present this key to join the pool. The key itself is never recorded. - - `type: optional "claude_chat_sync_source_updated"` + - `type: optional "claude_code_runner_pool_secret_minted"` - default: claude_chat_sync_source_updated + default: claude_code_runner_pool_secret_minted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -157966,28 +163516,34 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` + - `jti: string` - Tagged ID of the chat-scoped sync source that was updated. + The minted key's unique identifier (its JWT `jti` claim), usable to revoke that key later. - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The runner pool the key was minted for, e.g. "ccpool_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `config_changed: optional boolean or null` - - Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. - - `created_at: optional string` When this activity occurred. format: date-time + - `expires_at: optional string or null` + + When the minted key expires. + + format: date-time + + - `label: optional string or null` + + The label the key was minted with. The key minted automatically when a pool is created carries the label "Initial key". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -157996,17 +163552,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` + - `ClaudeCodeRunnerPoolSessionQueueUpdated object` - A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. + An admin changed a session's position in its self-hosted runner pool's queue: requeued it onto a different runner, dismissed it from the queue, or re-admitted it for another runner provisioning attempt. - - `ClaudeChatUpdated object` + - `type: optional "claude_code_runner_pool_session_queue_updated"` - User updated the chat metadata (e.g name, model). + default: claude_code_runner_pool_session_queue_updated - - `type: optional "claude_chat_updated"` + - `action: "dismissed" or "provisioning_retried" or "requeued" or "unspecified"` - default: claude_chat_updated + What changed about the session's queue state. + + - `"dismissed"` + + - `"provisioning_retried"` + + - `"requeued"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -158214,24 +163778,24 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `session_id: string` - Tagged ID of the updated conversation, e.g. "claude_chat_01HX...". + The session whose queue state changed, e.g. "cse_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_id: optional string or null` - - Tagged ID of the project the chat belongs to, if any, e.g. "claude_proj_01HX...". - - `created_at: optional string` When this activity occurred. format: date-time + - `excluded_runner_id: optional string or null` + + The runner the session was moved off, when action is "requeued", e.g. "ccrunner_01HX...". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -158240,13 +163804,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatViewed object` + - `runner_pool_id: optional string or null` - A user viewed a Claude.ai chat conversation. + The runner pool whose queue the session is in, when known, e.g. "ccpool_01HX...". - - `type: optional "claude_chat_viewed"` + - `ClaudeCodeRunnerPoolUpdated object` - default: claude_chat_viewed + A self-hosted runner pool's settings were updated. + + - `type: optional "claude_code_runner_pool_updated"` + + default: claude_code_runner_pool_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -158454,17 +164022,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_chat_id: string` + - `display_name: string` - The chat conversation that was viewed, e.g. "claude_chat_01Ab...". + The pool's display name after the update. - - `id: optional string` + - `runner_pool_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The runner pool that was updated, e.g. "ccpool_01HX...". - - `claude_project_id: optional string or null` + - `id: optional string` - The project the chat belongs to, if any, e.g. "claude_proj_01Ab...". + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -158480,13 +164048,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeCredentialRevoked object` + - `previous_display_name: optional string or null` - A Claude Code credential (runner pool key, runner token, or session token) was revoked. The credential itself is never recorded. + The pool's display name before the update. Absent when the name was unchanged or the previous value was unavailable. - - `type: optional "claude_code_credential_revoked"` + - `ClaudeCodeSecurityCenterConfigUpdated object` - default: claude_code_credential_revoked + Claude Code Security Center scanning was enabled/disabled for an org. + + - `type: optional "claude_code_security_center_config_updated"` + + default: claude_code_security_center_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -158694,39 +164266,23 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `credential_type: "runner_pool_key" or "runner_token" or "session_token" or "unspecified"` - - The kind of credential the revoked target identifies, when known. Subject-targeted revocations cascade to every credential delegated from the target regardless of kind; this field describes the target itself, not the full set of credentials the cascade reached. For a revocation submitted as a pasted credential the kind is best-effort and may be inaccurate; the recorded jti and the revocation itself are unaffected. - - - `"runner_pool_key"` - - - `"runner_token"` - - - `"session_token"` + - `enabled: boolean` - - `"unspecified"` + Whether Security Center is now enabled - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `agent_id: optional string or null` - - The agent identity whose Claude Code credentials were revoked, when revocation targeted every session created by an agent identity, e.g. "cagt_01HX...". - - `created_at: optional string` When this activity occurred. format: date-time - - `delegating_jti: optional string or null` - - The credential identifier whose delegated credentials were revoked (a chain revoke): every credential delegated from this one was revoked, but the credential itself was not. Distinct from `jti`, which records a revocation of the credential itself and its delegates. - - - `jti: optional string or null` + - `environment_id: optional string or null` - The unique identifier of the revoked credential, recorded in its canonical form. Revoking a runner pool key also revokes every runner and session token delegated from it. A revocation submitted as a pasted credential is recorded by that credential's identifier. + Environment used for security scanning - `organization_id: optional string or null` @@ -158736,29 +164292,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_id: optional string or null` - - The runner whose credentials were revoked, when revocation targeted every credential delegated from the runner, e.g. "ccrunner_01HX...". - - - `runner_pool_id: optional string or null` - - The runner pool whose credentials were revoked, when revocation targeted every credential delegated from the pool, e.g. "ccpool_01HX...". - - - `session_id: optional string or null` - - The session whose credentials were revoked, when revocation targeted every credential delegated from the session, e.g. "cse_01HX...". - - - `user_id: optional string or null` - - The user whose Claude Code credentials were revoked, when revocation targeted every credential minted for a user. Carries the user's tagged account ID, e.g. "user_01HX..." — the only form the revocation API accepts, so the field joins against other activities' account identifiers and never carries an email. - - - `ClaudeCodeReviewConfigUpdated object` + - `ClaudeCodeSecurityScanCancelled object` - Claude Code Review configuration was enabled/disabled for an org. + In-flight Claude Code Security scans were cancelled for a project. - - `type: optional "claude_code_review_config_updated"` + - `type: optional "claude_code_security_scan_cancelled"` - default: claude_code_review_config_updated + default: claude_code_security_scan_cancelled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -158966,9 +164506,11 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `enabled: boolean` + - `scan_project_id: string` - Whether code review is now enabled + Tagged ID of the scan project + + - `scans_cancelled: number` - `id: optional string` @@ -158980,14 +164522,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `environment_id: optional string or null` - - Environment used for code review - - - `model: optional string or null` - - Model configured for code review - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -158996,49 +164530,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `per_review_limit_usd: optional string or null` - - Per-review spend limit in USD - - - `previous_enabled: optional boolean or null` - - Whether code review was enabled before the change. Absent when no configuration existed before this update. - - - `previous_environment_id: optional string or null` - - Environment used for code review before the change. Absent when no configuration existed before this update or no environment was set. - - - `previous_model: optional string or null` - - Model configured for code review before the change. Absent when no configuration existed before this update or no model was set. - - - `previous_per_review_limit_usd: optional string or null` - - Per-review spend limit in USD before the change. Absent when no configuration existed before this update or no limit was set. - - - `previous_show_tips: optional boolean or null` - - Whether tip-style pull-request comments were enabled before the change. Absent when no configuration existed before this update. - - - `previous_verification_enabled: optional boolean or null` - - Whether the verification stage of code review was enabled for the organization before the change. Absent when no configuration existed before this update or no preference was set. - - - `show_tips: optional boolean or null` - - Whether tip-style pull-request comments are now enabled - - - `verification_enabled: optional boolean or null` - - Whether the verification stage of code review is now enabled for the organization. Absent when the organization has not set a preference and the default applies. - - - `ClaudeCodeReviewRepositoryAdded object` + - `ClaudeCodeSecurityScanCreated object` - A repository was added to org-level Claude Code Review configuration. + A Claude Code Security scan was started. - - `type: optional "claude_code_review_repository_added"` + - `type: optional "claude_code_security_scan_created"` - default: claude_code_review_repository_added + default: claude_code_security_scan_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -159246,21 +164744,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `config_id: string` - - ID of the repository configuration - - - `repo_name: string` - - Repository name - - - `repo_owner: string` + - `scan_id: string` - Repository owner (GitHub org/user) + Tagged ID of the created scan - - `trigger_mode: string` + - `scan_project_id: string` - When code review is triggered + Tagged ID of the scan project the scan belongs to - `id: optional string` @@ -159280,13 +164770,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeReviewRepositoryRemoved object` + - `ClaudeCodeSecurityScanProjectMemberUpdated object` - A repository was removed from org-level Claude Code Review configuration. + A person's access to a Claude Code Security scan project was granted, changed, or revoked. - - `type: optional "claude_code_review_repository_removed"` + - `type: optional "claude_code_security_scan_project_member_updated"` - default: claude_code_review_repository_removed + default: claude_code_security_scan_project_member_updated + + - `action: "member_added" or "member_removed" or "member_role_changed" or "unspecified"` + + Whether the member was granted access, had their role changed, or was revoked + + - `"member_added"` + + - `"member_removed"` + + - `"member_role_changed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -159494,22 +164996,32 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `config_id: string` - - ID of the deleted repository configuration - - - `repo_name: string` + - `member_id: string` - Repository name at deletion time + Tagged ID of the member whose access changed - - `repo_owner: string` + - `scan_project_id: string` - Repository owner at deletion time + Tagged ID of the scan project - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -159524,13 +165036,33 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeReviewRepositoryUpdated object` + - `role: optional string or null` - A Claude Code Review repository configuration was updated. + Role granted to the member (full, view_triage, or view); omitted for revocations - - `type: optional "claude_code_review_repository_updated"` + - `ClaudeCodeSecurityScanProjectUpdated object` - default: claude_code_review_repository_updated + A Claude Code Security scan project was archived, unarchived, created, or migrated to a new product experience. + + - `type: optional "claude_code_security_scan_project_updated"` + + default: claude_code_security_scan_project_updated + + - `action: "archived" or "created" or "migrated" or 3 more` + + The state change applied to the scan project. + + - `"archived"` + + - `"created"` + + - `"migrated"` + + - `"resumed"` + + - `"unarchived"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -159738,21 +165270,27 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `config_id: string` + - `scan_project_id: string` - ID of the repository configuration + Tagged ID of the scan project - - `repo_name: string` + - `id: optional string` - Repository name + Unique identifier for the activity e.g. 'activity_abcd1234' - - `repo_owner: string` + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - Repository owner + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (the project's creation, or an automated change); events recorded before this field was introduced omit it. - - `id: optional string` + - `"member"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` - `created_at: optional string` @@ -159768,21 +165306,23 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `status: optional string or null` + - `ClaudeCodeSecurityScanProjectVisibilityUpdated object` - Updated status (ACTIVE/INACTIVE) + A Claude Code Security scan project was shared with the organization or made private. - - `trigger_mode: optional string or null` + - `type: optional "claude_code_security_scan_project_visibility_updated"` - Updated trigger mode + default: claude_code_security_scan_project_visibility_updated - - `ClaudeCodeRunnerDeleted object` + - `action: "shared" or "unshared" or "unspecified"` - A self-hosted runner was forcibly removed from its pool. Sessions assigned to the runner were returned to the pool queue, unless a session had already been requeued repeatedly, in which case it was marked stuck instead of being requeued again. + Whether the project was shared with the organization or made private - - `type: optional "claude_code_runner_deleted"` + - `"shared"` - default: claude_code_runner_deleted + - `"unshared"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -159990,14 +165530,32 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `runner_id: string` + - `scan_project_id: string` - The runner that was removed, e.g. "ccrunner_01HX...". + Tagged ID of the scan project - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_level: optional string or null` + + Access level granted to organization members (read_only or full); only set when shared + + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -160012,17 +165570,29 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_pool_id: optional string or null` + - `ClaudeCodeSecurityScanRunUpdated object` - The pool the runner was removed from, e.g. "ccpool_01HX...". + A single Claude Code Security scan run was archived, unarchived, or resumed after a billing pause. - - `ClaudeCodeRunnerPoolCreated object` + - `type: optional "claude_code_security_scan_run_updated"` - A self-hosted runner pool for Claude Code was created. + default: claude_code_security_scan_run_updated - - `type: optional "claude_code_runner_pool_created"` + - `action: "archived" or "created" or "migrated" or 3 more` - default: claude_code_runner_pool_created + The state change applied to the scan run + + - `"archived"` + + - `"created"` + + - `"migrated"` + + - `"resumed"` + + - `"unarchived"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -160230,13 +165800,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `display_name: string` - - The display name the pool was created with. - - - `runner_pool_id: string` + - `scan_id: string` - The runner pool that was created, e.g. "ccpool_01HX...". + Tagged ID of the scan the request named — for archive/unarchive any scan in the run, not necessarily its canonical (run_index=0) scan; for resume, the paused scan - `id: optional string` @@ -160256,13 +165822,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolDeleted object` + - `ClaudeCodeSecurityScanScheduleDeleted object` - A self-hosted runner pool was deleted. + A recurring scan schedule was deleted for a Claude Code Security project. - - `type: optional "claude_code_runner_pool_deleted"` + - `type: optional "claude_code_security_scan_schedule_deleted"` - default: claude_code_runner_pool_deleted + default: claude_code_security_scan_schedule_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -160470,9 +166036,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `runner_pool_id: string` + - `scan_project_id: string` - The runner pool that was deleted, e.g. "ccpool_01HX...". + Tagged ID of the scan project - `id: optional string` @@ -160484,10 +166050,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `display_name: optional string or null` - - The pool's display name at deletion time. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -160496,13 +166058,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolSecretMinted object` + - `ClaudeCodeSecurityScanScheduleUpdated object` - A registration key for a self-hosted runner pool was minted. Runners present this key to join the pool. The key itself is never recorded. + A recurring scan schedule was set or replaced for a Claude Code Security project. - - `type: optional "claude_code_runner_pool_secret_minted"` + - `type: optional "claude_code_security_scan_schedule_updated"` - default: claude_code_runner_pool_secret_minted + default: claude_code_security_scan_schedule_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -160710,13 +166272,11 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `jti: string` - - The minted key's unique identifier (its JWT `jti` claim), usable to revoke that key later. + - `cadence: string` - - `runner_pool_id: string` + - `scan_project_id: string` - The runner pool the key was minted for, e.g. "ccpool_01HX...". + Tagged ID of the scan project - `id: optional string` @@ -160728,16 +166288,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `expires_at: optional string or null` - - When the minted key expires. - - format: date-time - - - `label: optional string or null` - - The label the key was minted with. The key minted automatically when a pool is created carries the label "Initial key". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -160746,25 +166296,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolSessionQueueUpdated object` - - An admin changed a session's position in its self-hosted runner pool's queue: requeued it onto a different runner, dismissed it from the queue, or re-admitted it for another runner provisioning attempt. - - - `type: optional "claude_code_runner_pool_session_queue_updated"` - - default: claude_code_runner_pool_session_queue_updated - - - `action: "dismissed" or "provisioning_retried" or "requeued" or "unspecified"` - - What changed about the session's queue state. - - - `"dismissed"` + - `ClaudeCodeSecurityVulnerabilityDeleted object` - - `"provisioning_retried"` + A Claude Code Security vulnerability finding was permanently deleted. - - `"requeued"` + - `type: optional "claude_code_security_vulnerability_deleted"` - - `"unspecified"` + default: claude_code_security_vulnerability_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -160972,9 +166510,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `session_id: string` + - `scan_id: string` - The session whose queue state changed, e.g. "cse_01HX...". + Tagged ID of the scan the finding belonged to + + - `vulnerability_id: number` + + Numeric ID of the deleted finding, as shown in the product - `id: optional string` @@ -160986,10 +166528,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `excluded_runner_id: optional string or null` - - The runner the session was moved off, when action is "requeued", e.g. "ccrunner_01HX...". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -160998,17 +166536,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_pool_id: optional string or null` - - The runner pool whose queue the session is in, when known, e.g. "ccpool_01HX...". - - - `ClaudeCodeRunnerPoolUpdated object` + - `ClaudeCodeSecurityVulnerabilityFixSessionCreated object` - A self-hosted runner pool's settings were updated. + A Claude Code remediation session was created for a Claude Code Security vulnerability finding. - - `type: optional "claude_code_runner_pool_updated"` + - `type: optional "claude_code_security_vulnerability_fix_session_created"` - default: claude_code_runner_pool_updated + default: claude_code_security_vulnerability_fix_session_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -161216,18 +166750,32 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `display_name: string` + - `scan_id: string` - The pool's display name after the update. + Tagged ID of the scan the finding belongs to - - `runner_pool_id: string` + - `session_id: string` - The runner pool that was updated, e.g. "ccpool_01HX...". + ID of the created remediation session - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved; events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -161242,17 +166790,27 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_display_name: optional string or null` + - `ClaudeCodeSecurityVulnerabilityUpdated object` - The pool's display name before the update. Absent when the name was unchanged or the previous value was unavailable. + A Claude Code Security vulnerability finding was dismissed, restored, marked fixed, or reopened. - - `ClaudeCodeSecurityCenterConfigUpdated object` + - `type: optional "claude_code_security_vulnerability_updated"` - Claude Code Security Center scanning was enabled/disabled for an org. + default: claude_code_security_vulnerability_updated - - `type: optional "claude_code_security_center_config_updated"` + - `action: "dismissed" or "fixed" or "restored" or 2 more` - default: claude_code_security_center_config_updated + The state change applied to the finding + + - `"dismissed"` + + - `"fixed"` + + - `"restored"` + + - `"unfixed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -161460,9 +167018,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `enabled: boolean` + - `scan_id: string` - Whether Security Center is now enabled + Tagged ID of the scan the finding belongs to - `id: optional string` @@ -161474,9 +167032,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `environment_id: optional string or null` + - `dismissal_reason: optional string or null` - Environment used for security scanning + The categorized dismissal reason (only set when the finding was dismissed) - `organization_id: optional string or null` @@ -161486,13 +167044,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanCancelled object` + - `ClaudeCodeSecurityWebhookCreated object` - In-flight Claude Code Security scans were cancelled for a project. + A Claude Code Security outbound webhook was created. - - `type: optional "claude_code_security_scan_cancelled"` + - `type: optional "claude_code_security_webhook_created"` - default: claude_code_security_scan_cancelled + default: claude_code_security_webhook_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -161700,11 +167258,11 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_project_id: string` + - `url: string` - Tagged ID of the scan project + - `webhook_id: string` - - `scans_cancelled: number` + Tagged ID of the webhook - `id: optional string` @@ -161724,13 +167282,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanCreated object` + - `scan_project_id: optional string or null` - A Claude Code Security scan was started. + Tagged ID of the scan project (null for organization-wide webhooks) - - `type: optional "claude_code_security_scan_created"` + - `ClaudeCodeSecurityWebhookDeleted object` - default: claude_code_security_scan_created + A Claude Code Security outbound webhook was deleted. + + - `type: optional "claude_code_security_webhook_deleted"` + + default: claude_code_security_webhook_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -161938,13 +167500,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the created scan - - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project the scan belongs to + Tagged ID of the webhook - `id: optional string` @@ -161964,25 +167522,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanProjectMemberUpdated object` - - A person's access to a Claude Code Security scan project was granted, changed, or revoked. - - - `type: optional "claude_code_security_scan_project_member_updated"` - - default: claude_code_security_scan_project_member_updated - - - `action: "member_added" or "member_removed" or "member_role_changed" or "unspecified"` + - `scan_project_id: optional string or null` - Whether the member was granted access, had their role changed, or was revoked + Tagged ID of the scan project (null for organization-wide webhooks) - - `"member_added"` + - `ClaudeCodeSecurityWebhookSecretUpdated object` - - `"member_removed"` + The HMAC signing secret for a Claude Code Security webhook was rotated. - - `"member_role_changed"` + - `type: optional "claude_code_security_webhook_secret_updated"` - - `"unspecified"` + default: claude_code_security_webhook_secret_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -162190,32 +167740,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `member_id: string` - - Tagged ID of the member whose access changed - - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project + Tagged ID of the webhook - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. @@ -162230,33 +167762,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `role: optional string or null` - - Role granted to the member (full, view_triage, or view); omitted for revocations - - - `ClaudeCodeSecurityScanProjectUpdated object` - - A Claude Code Security scan project was archived, unarchived, created, or migrated to a new product experience. - - - `type: optional "claude_code_security_scan_project_updated"` - - default: claude_code_security_scan_project_updated - - - `action: "archived" or "created" or "migrated" or 3 more` - - The state change applied to the scan project. - - - `"archived"` + - `scan_project_id: optional string or null` - - `"created"` + Tagged ID of the scan project (null for organization-wide webhooks) - - `"migrated"` + - `ClaudeCodeSecurityWebhookUpdated object` - - `"resumed"` + A Claude Code Security outbound webhook was updated. - - `"unarchived"` + - `type: optional "claude_code_security_webhook_updated"` - - `"unspecified"` + default: claude_code_security_webhook_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -162464,28 +167980,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project + Tagged ID of the webhook - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (the project's creation, or an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. @@ -162500,21 +168002,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanProjectVisibilityUpdated object` + - `scan_project_id: optional string or null` - A Claude Code Security scan project was shared with the organization or made private. + Tagged ID of the scan project (null for organization-wide webhooks) - - `type: optional "claude_code_security_scan_project_visibility_updated"` + - `ClaudeCodeTeamMemoryACLUpdated object` - default: claude_code_security_scan_project_visibility_updated + An RBAC group was added to or removed from the Claude Code team-memory ACL. - - `action: "shared" or "unshared" or "unspecified"` + - `type: optional "claude_code_team_memory_acl_updated"` - Whether the project was shared with the organization or made private + default: claude_code_team_memory_acl_updated - - `"shared"` + - `action: "removed" or "set" or "unspecified"` - - `"unshared"` + Whether the group was set (added/updated) or removed + + - `"removed"` + + - `"set"` - `"unspecified"` @@ -162724,9 +168230,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_project_id: string` + - `group_id: string` - Tagged ID of the scan project + Tagged ID of the RBAC group - `id: optional string` @@ -162734,21 +168240,7 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `access_level: optional string or null` - Access level granted to organization members (read_only or full); only set when shared - - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` + Access level granted (when action=set) - `created_at: optional string` @@ -162764,29 +168256,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanRunUpdated object` - - A single Claude Code Security scan run was archived, unarchived, or resumed after a billing pause. - - - `type: optional "claude_code_security_scan_run_updated"` - - default: claude_code_security_scan_run_updated - - - `action: "archived" or "created" or "migrated" or 3 more` - - The state change applied to the scan run - - - `"archived"` + - `previous_access_level: optional string or null` - - `"created"` + Access level the group had before this change; absent when the group was not previously in the access list. For removals this is the access level that was removed. - - `"migrated"` + - `ClaudeCodeTeamMemoryUpdated object` - - `"resumed"` + Claude Code team memory shared with the organization was updated. - - `"unarchived"` + - `type: optional "claude_code_team_memory_updated"` - - `"unspecified"` + default: claude_code_team_memory_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -162994,9 +168474,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_id: string` + - `deleted_all: boolean` - Tagged ID of the scan the request named — for archive/unarchive any scan in the run, not necessarily its canonical (run_index=0) scan; for resume, the paused scan + True when the entire team memory store for this scope was deleted in one request. - `id: optional string` @@ -163008,6 +168488,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of team memory entries removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of team memory entries created or updated. + + - `new_checksum: optional string or null` + + Checksum of the team memory after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -163016,13 +168516,37 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanScheduleDeleted object` + - `previous_checksum: optional string or null` - A recurring scan schedule was deleted for a Claude Code Security project. + Checksum of the team memory before this change; null when it did not exist. - - `type: optional "claude_code_security_scan_schedule_deleted"` + - `repo: optional string or null` - default: claude_code_security_scan_schedule_deleted + Withdrawn — never populated. + + - `version: optional number or null` + + Version number of the team memory store after this change. + + - `ClaudeCodeTeamOnboardingGuideUpdated object` + + A Claude Code team onboarding guide was created, updated, or deleted. + + - `type: optional "claude_code_team_onboarding_guide_updated"` + + default: claude_code_team_onboarding_guide_updated + + - `action: "created" or "deleted" or "unspecified" or "updated"` + + The state change applied to the onboarding guide. + + - `"created"` + + - `"deleted"` + + - `"unspecified"` + + - `"updated"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -163230,9 +168754,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_project_id: string` + - `guide_short_code: string` - Tagged ID of the scan project + Short code identifying the onboarding guide — the public URL handle shown in the share link. - `id: optional string` @@ -163244,6 +168768,18 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `guide_id: optional string or null` + + Tagged ID of the onboarding guide. + + - `guide_name: optional string or null` + + Withdrawn — never populated. + + - `new_checksum: optional string or null` + + Checksum of the guide content after this change; null when the guide was deleted. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -163252,13 +168788,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanScheduleUpdated object` + - `previous_checksum: optional string or null` - A recurring scan schedule was set or replaced for a Claude Code Security project. + Checksum of the guide content before this change; null when the guide did not exist. - - `type: optional "claude_code_security_scan_schedule_updated"` + - `ClaudeCodeUserMarketplacesUpdated object` - default: claude_code_security_scan_schedule_updated + A user's Claude Code plugin marketplace selections were updated on Anthropic servers. + + - `type: optional "claude_code_user_marketplaces_updated"` + + default: claude_code_user_marketplaces_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -163466,11 +169006,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `cadence: string` - - - `scan_project_id: string` + - `deleted_all: boolean` - Tagged ID of the scan project + True when all of the user's marketplace selections were removed in one request. - `id: optional string` @@ -163482,6 +169020,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of marketplace selections removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of marketplace selections added or whose source changed. + + - `new_value: optional string or null` + + Withdrawn — never populated. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -163490,13 +169048,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityDeleted object` + - `previous_value: optional string or null` - A Claude Code Security vulnerability finding was permanently deleted. + Withdrawn — never populated. - - `type: optional "claude_code_security_vulnerability_deleted"` + - `ClaudeCodeUserMemoryUpdated object` - default: claude_code_security_vulnerability_deleted + A user's synced private Claude Code memory was updated or deleted on Anthropic servers. + + - `type: optional "claude_code_user_memory_updated"` + + default: claude_code_user_memory_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -163704,13 +169266,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the scan the finding belonged to - - - `vulnerability_id: number` + - `deleted_all: boolean` - Numeric ID of the deleted finding, as shown in the product + True when the user's entire synced memory for this scope was deleted in one request. - `id: optional string` @@ -163722,6 +169280,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of memory file paths removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of memory file paths created or updated. + + - `new_checksum: optional string or null` + + Checksum of the user's synced memory after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -163730,13 +169308,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityFixSessionCreated object` + - `previous_checksum: optional string or null` - A Claude Code remediation session was created for a Claude Code Security vulnerability finding. + Checksum of the user's synced memory before this change; null when the store did not exist. - - `type: optional "claude_code_security_vulnerability_fix_session_created"` + - `repo: optional string or null` - default: claude_code_security_vulnerability_fix_session_created + Withdrawn — never populated. + + - `ClaudeCodeUserPluginsUpdated object` + + A user's Claude Code plugin selections — which plugins are installed and enabled — were updated on Anthropic servers. + + - `type: optional "claude_code_user_plugins_updated"` + + default: claude_code_user_plugins_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -163944,37 +169530,39 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the scan the finding belongs to - - - `session_id: string` + - `deleted_all: boolean` - ID of the created remediation session + True when all of the user's plugin selections were removed in one request. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + - `created_at: optional string` - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved; events recorded before this field was introduced omit it. + When this activity occurred. - - `"member"` + format: date-time - - `"organization_admin"` + - `keys_deleted: optional array of string` - - `"organization_share"` + Withdrawn — never populated. See `keys_deleted_count`. - - `"owner"` + - `keys_deleted_count: optional number or null` - - `"unspecified"` + Number of plugin selections removed. - - `created_at: optional string` + - `keys_written: optional array of string` - When this activity occurred. + Withdrawn — never populated. See `keys_written_count`. - format: date-time + - `keys_written_count: optional number or null` + + Number of plugin selections added or whose enabled state changed. + + - `new_value: optional string or null` + + The targeted plugin's new enabled state, when a single plugin's state changed. - `organization_id: optional string or null` @@ -163984,27 +169572,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityUpdated object` - - A Claude Code Security vulnerability finding was dismissed, restored, marked fixed, or reopened. - - - `type: optional "claude_code_security_vulnerability_updated"` - - default: claude_code_security_vulnerability_updated - - - `action: "dismissed" or "fixed" or "restored" or 2 more` - - The state change applied to the finding + - `previous_value: optional string or null` - - `"dismissed"` + The targeted plugin's previous enabled state, when a single plugin's state changed; null when the plugin did not previously exist or multiple plugins changed. - - `"fixed"` + - `ClaudeCodeUserSettingsUpdated object` - - `"restored"` + A user's synced Claude Code settings were updated or deleted on Anthropic servers. - - `"unfixed"` + - `type: optional "claude_code_user_settings_updated"` - - `"unspecified"` + default: claude_code_user_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -164212,9 +169790,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `scan_id: string` + - `deleted_all: boolean` - Tagged ID of the scan the finding belongs to + True when the user's entire synced settings store was deleted in one request. - `id: optional string` @@ -164226,9 +169804,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `dismissal_reason: optional string or null` + - `keys_deleted: optional array of string` - The categorized dismissal reason (only set when the finding was dismissed) + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of settings entries removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of settings entries created or updated. + + - `new_checksum: optional string or null` + + Checksum of the user's synced settings after this change. - `organization_id: optional string or null` @@ -164238,13 +169832,27 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityWebhookCreated object` + - `previous_checksum: optional string or null` - A Claude Code Security outbound webhook was created. + Checksum of the user's synced settings before this change; null when the store did not exist. - - `type: optional "claude_code_security_webhook_created"` + - `ClaudeEnterpriseUpgradeCreditUpdated object` - default: claude_code_security_webhook_created + An organization admin cancelled, or turned back on, the monthly usage credit the organization receives for upgrading from the Team plan to the Enterprise plan, together with the recurring monthly charge that accompanies it. + + - `type: optional "claude_enterprise_upgrade_credit_updated"` + + default: claude_enterprise_upgrade_credit_updated + + - `action: "cancelled" or "resumed" or "unspecified"` + + Whether the credit was cancelled or turned back on + + - `"cancelled"` + + - `"resumed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -164452,12 +170060,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `url: string` - - - `webhook_id: string` - - Tagged ID of the webhook - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -164476,17 +170078,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` - - Tagged ID of the scan project (null for organization-wide webhooks) - - - `ClaudeCodeSecurityWebhookDeleted object` + - `ClaudeFileAccessFailed object` - A Claude Code Security outbound webhook was deleted. + A user was denied access to a file in Claude.ai. - - `type: optional "claude_code_security_webhook_deleted"` + - `type: optional "claude_file_access_failed"` - default: claude_code_security_webhook_deleted + default: claude_file_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -164694,14 +170292,22 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `webhook_id: string` + - `claude_file_id: string` - Tagged ID of the webhook + The file the user was denied access to, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_id: optional string or null` + + The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + + - `claude_project_id: optional string or null` + + The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -164716,17 +170322,19 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` + - `filename: optional string or null` - Tagged ID of the scan project (null for organization-wide webhooks) + **Deprecated** - - `ClaudeCodeSecurityWebhookSecretUpdated object` + Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - The HMAC signing secret for a Claude Code Security webhook was rotated. + - `ClaudeFileExported object` - - `type: optional "claude_code_security_webhook_secret_updated"` + A file was exported from Claude to an external storage destination. - default: claude_code_security_webhook_secret_updated + - `type: optional "claude_file_exported"` + + default: claude_file_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -164934,14 +170542,26 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `webhook_id: string` + - `export_destination: "google_drive" or "unspecified"` - Tagged ID of the webhook + The external destination the file was exported to. + + - `"google_drive"` + + - `"unspecified"` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + + The chat conversation the file was exported from, if the export originated in a chat, e.g. "claude_chat_01HX...". + + - `claude_file_id: optional string or null` + + The exported file, e.g. "claude_file_01HX...", if the file has a stored file record; files that exist only inside a session have no file ID. + - `created_at: optional string` When this activity occurred. @@ -164956,17 +170576,19 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` + - `filename: string` - Tagged ID of the scan project (null for organization-wide webhooks) + **Deprecated** - - `ClaudeCodeSecurityWebhookUpdated object` + No longer populated. Where `claude_file_id` is present, resolve the name via the Compliance API files endpoint; sandbox and desktop exports carry no file id. - A Claude Code Security outbound webhook was updated. + - `ClaudeFileViewed object` - - `type: optional "claude_code_security_webhook_updated"` + A user viewed a file in Claude.ai. - default: claude_code_security_webhook_updated + - `type: optional "claude_file_viewed"` + + default: claude_file_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -165174,14 +170796,22 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `webhook_id: string` + - `claude_file_id: string` - Tagged ID of the webhook + The file that was viewed, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_id: optional string or null` + + The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + + - `claude_project_id: optional string or null` + + The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -165196,27 +170826,19 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` - - Tagged ID of the scan project (null for organization-wide webhooks) - - - `ClaudeCodeTeamMemoryACLUpdated object` - - An RBAC group was added to or removed from the Claude Code team-memory ACL. - - - `type: optional "claude_code_team_memory_acl_updated"` + - `filename: optional string or null` - default: claude_code_team_memory_acl_updated + **Deprecated** - - `action: "removed" or "set" or "unspecified"` + Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - Whether the group was set (added/updated) or removed + - `ClaudeInsightsAttributionSettingUpdated object` - - `"removed"` + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. - - `"set"` + - `type: optional "claude_insights_attribution_setting_updated"` - - `"unspecified"` + default: claude_insights_attribution_setting_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -165424,24 +171046,20 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the RBAC group - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_level: optional string or null` - - Access level granted (when action=set) - - `created_at: optional string` When this activity occurred. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this write + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -165450,17 +171068,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_access_level: optional string or null` + - `previous_value: optional boolean or null` - Access level the group had before this change; absent when the group was not previously in the access list. For removals this is the access level that was removed. + Setting value immediately before this write - - `ClaudeCodeTeamMemoryUpdated object` + - `ClaudeInsightsReportArchived object` - Claude Code team memory shared with the organization was updated. + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_code_team_memory_updated"` + - `type: optional "claude_insights_report_archived"` - default: claude_code_team_memory_updated + default: claude_insights_report_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -165668,9 +171286,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when the entire team memory store for this scope was deleted in one request. + The report that was archived, e.g. "insr_01HX...". - `id: optional string` @@ -165682,26 +171300,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of team memory entries removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of team memory entries created or updated. - - - `new_checksum: optional string or null` - - Checksum of the team memory after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -165710,37 +171308,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the team memory before this change; null when it did not exist. - - - `repo: optional string or null` - - Withdrawn — never populated. - - - `version: optional number or null` - - Version number of the team memory store after this change. - - - `ClaudeCodeTeamOnboardingGuideUpdated object` + - `ClaudeInsightsReportAttributionViewed object` - A Claude Code team onboarding guide was created, updated, or deleted. + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. - - `type: optional "claude_code_team_onboarding_guide_updated"` + - `type: optional "claude_insights_report_attribution_viewed"` - default: claude_code_team_onboarding_guide_updated - - - `action: "created" or "deleted" or "unspecified" or "updated"` - - The state change applied to the onboarding guide. - - - `"created"` - - - `"deleted"` - - - `"unspecified"` - - - `"updated"` + default: claude_insights_report_attribution_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -165948,31 +171522,31 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `guide_short_code: string` + - `report_id: string` - Short code identifying the onboarding guide — the public URL handle shown in the share link. + The report that was viewed with attribution, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - When this activity occurred. + How the member who viewed the attributed rendering was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. Not set on events recorded before this field existed. - format: date-time + - `"admin"` - - `guide_id: optional string or null` + - `"delegate"` - Tagged ID of the onboarding guide. + - `"share_recipient"` - - `guide_name: optional string or null` + - `"unspecified"` - Withdrawn — never populated. + - `created_at: optional string` - - `new_checksum: optional string or null` + When this activity occurred. - Checksum of the guide content after this change; null when the guide was deleted. + format: date-time - `organization_id: optional string or null` @@ -165982,17 +171556,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` + - `ClaudeInsightsReportDeleted object` - Checksum of the guide content before this change; null when the guide did not exist. - - - `ClaudeCodeUserMarketplacesUpdated object` - - A user's Claude Code plugin marketplace selections were updated on Anthropic servers. + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. - - `type: optional "claude_code_user_marketplaces_updated"` + - `type: optional "claude_insights_report_deleted"` - default: claude_code_user_marketplaces_updated + default: claude_insights_report_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -166200,9 +171770,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when all of the user's marketplace selections were removed in one request. + The report that was deleted, e.g. "insr_01HX...". - `id: optional string` @@ -166214,26 +171784,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of marketplace selections removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of marketplace selections added or whose source changed. - - - `new_value: optional string or null` - - Withdrawn — never populated. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -166242,17 +171792,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional string or null` + - `purge_confirmed: optional boolean or null` - Withdrawn — never populated. + Whether the report was also removed from the organization's report list. False means the report document was removed but the report was not removed from the list (for example it was unarchived at the same time), so it may still appear there until a later delete succeeds. Not set on events recorded before this field existed. - - `ClaudeCodeUserMemoryUpdated object` + - `ClaudeInsightsReportFeedbackSubmitted object` - A user's synced private Claude Code memory was updated or deleted on Anthropic servers. + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. - - `type: optional "claude_code_user_memory_updated"` + - `type: optional "claude_insights_report_feedback_submitted"` - default: claude_code_user_memory_updated + default: claude_insights_report_feedback_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -166460,9 +172010,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when the user's entire synced memory for this scope was deleted in one request. + The report the feedback was submitted on, e.g. "insr_01HX...". - `id: optional string` @@ -166474,26 +172024,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of memory file paths removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of memory file paths created or updated. - - - `new_checksum: optional string or null` - - Checksum of the user's synced memory after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -166502,21 +172032,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the user's synced memory before this change; null when the store did not exist. - - - `repo: optional string or null` - - Withdrawn — never populated. - - - `ClaudeCodeUserPluginsUpdated object` + - `ClaudeInsightsReportRenamed object` - A user's Claude Code plugin selections — which plugins are installed and enabled — were updated on Anthropic servers. + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_code_user_plugins_updated"` + - `type: optional "claude_insights_report_renamed"` - default: claude_code_user_plugins_updated + default: claude_insights_report_renamed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -166724,9 +172246,9 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when all of the user's plugin selections were removed in one request. + The report that was renamed, e.g. "insr_01HX...". - `id: optional string` @@ -166738,26 +172260,6 @@ curl https://api.anthropic.com/v1/compliance/activities \ format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of plugin selections removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of plugin selections added or whose enabled state changed. - - - `new_value: optional string or null` - - The targeted plugin's new enabled state, when a single plugin's state changed. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -166766,17 +172268,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional string or null` - - The targeted plugin's previous enabled state, when a single plugin's state changed; null when the plugin did not previously exist or multiple plugins changed. - - - `ClaudeCodeUserSettingsUpdated object` + - `ClaudeInsightsReportSharingUpdated object` - A user's synced Claude Code settings were updated or deleted on Anthropic servers. + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. - - `type: optional "claude_code_user_settings_updated"` + - `type: optional "claude_insights_report_sharing_updated"` - default: claude_code_user_settings_updated + default: claude_insights_report_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -166984,40 +172482,28 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `deleted_all: boolean` + - `attributed_view_allowed: boolean` - True when the user's entire synced settings store was deleted in one request. + Whether, after the change, the members the report is shared with may open the rendering that attributes findings to individual members. + + - `report_id: string` + + The report whose sharing was changed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `added_account_ids: optional array of string` + + The members granted access by this change, e.g. "user_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of settings entries removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of settings entries created or updated. - - - `new_checksum: optional string or null` - - Checksum of the user's synced settings after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -167026,27 +172512,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the user's synced settings before this change; null when the store did not exist. - - - `ClaudeEnterpriseUpgradeCreditUpdated object` - - An organization admin cancelled, or turned back on, the monthly usage credit the organization receives for upgrading from the Team plan to the Enterprise plan, together with the recurring monthly charge that accompanies it. - - - `type: optional "claude_enterprise_upgrade_credit_updated"` - - default: claude_enterprise_upgrade_credit_updated + - `removed_account_ids: optional array of string` - - `action: "cancelled" or "resumed" or "unspecified"` + The members whose access was removed by this change, e.g. "user_01HX...". - Whether the credit was cancelled or turned back on + - `ClaudeInsightsReportTriggered object` - - `"cancelled"` + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. - - `"resumed"` + - `type: optional "claude_insights_report_triggered"` - - `"unspecified"` + default: claude_insights_report_triggered - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -167254,16 +172730,34 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` + - `report_id: string` + + The report that was triggered, e.g. "insr_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `admission_arm: optional "admin" or "delegate" or "unspecified" or null` + + How the member who triggered the report was admitted: an organization admin or a delegate. Not set on events recorded before this field existed. + + - `"admin"` + + - `"delegate"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. format: date-time + - `end_date: optional string or null` + + Last day (ISO 8601 date) of the date range the report covers, when specified. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -167272,13 +172766,53 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeFileAccessFailed object` + - `products: optional array of string` - A user was denied access to a file in Claude.ai. + Product surfaces the report was scoped to, for example "chat", "cc" (Claude Code) or "cowork". Empty when the report covers all products. - - `type: optional "claude_file_access_failed"` + - `requester_account_id: optional string or null` - default: claude_file_access_failed + The member who triggered the report, e.g. "user_01HX...". Not set on events recorded before this field existed. + + - `resolved_population: optional number or null` + + How many accounts the directory listed under the selected groups or attribute values when the report was triggered. Not set for a report covering the whole organization, nor on events recorded before this field existed. + + - `scim_group_ids: optional array of string` + + Directory groups the report was scoped to. Empty when the report covers the whole organization. + + - `scope_attribute: optional string or null` + + Directory attribute ("department" / "cost_center") the report was scoped to. Unset when the report is not attribute-scoped. + + - `scope_attribute_values: optional array of string` + + The selected values of that attribute as the directory carries them (customer directory text). Empty when the report is not attribute-scoped. + + - `scope_kind: optional "attribute" or "groups" or "unspecified" or "whole_organization" or null` + + What the report's population was scoped to. Not set on events recorded before this field existed. + + - `"attribute"` + + - `"groups"` + + - `"unspecified"` + + - `"whole_organization"` + + - `start_date: optional string or null` + + First day (ISO 8601 date) of the date range the report covers, when specified. + + - `ClaudeInsightsReportUnarchived object` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_unarchived"` + + default: claude_insights_report_unarchived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -167486,22 +173020,14 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_file_id: string` + - `report_id: string` - The file the user was denied access to, e.g. "claude_file_01HX...". + The report that was restored, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` - - The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". - - - `claude_project_id: optional string or null` - - The project the file was accessed through, if any, e.g. "claude_proj_01HX...". - - `created_at: optional string` When this activity occurred. @@ -167516,19 +173042,13 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** - - Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - - - `ClaudeFileExported object` + - `ClaudeInsightsReportViewed object` - A file was exported from Claude to an external storage destination. + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). - - `type: optional "claude_file_exported"` + - `type: optional "claude_insights_report_viewed"` - default: claude_file_exported + default: claude_insights_report_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -167736,25 +173256,25 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `export_destination: "google_drive" or "unspecified"` - - The external destination the file was exported to. - - - `"google_drive"` + - `report_id: string` - - `"unspecified"` + The report that was viewed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - The chat conversation the file was exported from, if the export originated in a chat, e.g. "claude_chat_01HX...". + How the member who viewed the report was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. - - `claude_file_id: optional string or null` + - `"admin"` - The exported file, e.g. "claude_file_01HX...", if the file has a stored file record; files that exist only inside a session have no file ID. + - `"delegate"` + + - `"share_recipient"` + + - `"unspecified"` - `created_at: optional string` @@ -167770,19 +173290,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: string` - - **Deprecated** + - `ClaudeInsightsResourceAccessUpdated object` - No longer populated. Where `claude_file_id` is present, resolve the name via the Compliance API files endpoint; sandbox and desktop exports carry no file id. + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. - - `ClaudeFileViewed object` + - `type: optional "claude_insights_resource_access_updated"` - A user viewed a file in Claude.ai. + default: claude_insights_resource_access_updated - - `type: optional "claude_file_viewed"` + - `account_id: string` - default: claude_file_viewed + The member whose delegated scope changed, e.g. "user_01HX...". - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -167990,21 +173508,21 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `user_agent: optional string or null` - - `claude_file_id: string` - - The file that was viewed, e.g. "claude_file_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` + - `added_scim_group_ids: optional array of string` - The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + Directory groups this change added to the member's scope. - - `claude_project_id: optional string or null` + - `added_scope_attribute: optional string or null` - The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + Directory attribute ("department" / "cost_center") of the added values below. Unset when no attribute value was added. + + - `added_scope_attribute_values: optional array of string` + + The values of that attribute this change added, as the directory carries them (customer directory text). - `created_at: optional string` @@ -168020,11 +173538,17 @@ curl https://api.anthropic.com/v1/compliance/activities \ Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `removed_scim_group_ids: optional array of string` - **Deprecated** + Directory groups this change removed from the member's scope. - Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. + - `removed_scope_attribute: optional string or null` + + Directory attribute of the removed values below. Unset when no attribute value was removed. + + - `removed_scope_attribute_values: optional array of string` + + The values of that attribute this change removed. - `ClaudePluginArchiveAccessed object` @@ -201544,7 +207068,7 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `new_otlp_endpoint: optional string or null` - The OpenTelemetry export endpoint after the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint is unset or was not itself modified by this update. + The OpenTelemetry export endpoint after the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint was cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint is unset or was not itself modified by this update. - `new_otlp_protocol: optional string or null` @@ -201578,7 +207102,7 @@ curl https://api.anthropic.com/v1/compliance/activities \ - `previous_otlp_endpoint: optional string or null` - The OpenTelemetry export endpoint before the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint was previously unset or was not itself modified by this update. + The OpenTelemetry export endpoint before the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint had been cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint was previously unset or was not itself modified by this update. - `previous_otlp_protocol: optional string or null` diff --git a/content/en/api/compliance/activities/list.md b/content/en/api/compliance/activities/list.md index 87f0887408..c7d031b2dd 100644 --- a/content/en/api/compliance/activities/list.md +++ b/content/en/api/compliance/activities/list.md @@ -15,7 +15,7 @@ compliance activities that can be filtered by various criteria. ## Query parameters -- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Filter activities by type. See the response `data` schema for the additional fields each type returns. Cannot be combined with `exclude_activity_types[]`. @@ -535,6 +535,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -2218,7 +2262,7 @@ compliance activities that can be filtered by various criteria. format: date-time -- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 533 more` +- `exclude_activity_types: optional array of "abuse_decision_received" or "account_deleted" or "admin_api_key_created" or 544 more` Exclude activities of these types. Cannot be combined with `activity_types[]`. @@ -2738,6 +2782,50 @@ compliance activities that can be filtered by various criteria. A GitHub integration's configuration was updated. + - `"claude_insights_attribution_setting_updated"` + + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. + + - `"claude_insights_report_archived"` + + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_attribution_viewed"` + + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. + + - `"claude_insights_report_deleted"` + + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. + + - `"claude_insights_report_feedback_submitted"` + + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. + + - `"claude_insights_report_renamed"` + + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_sharing_updated"` + + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. + + - `"claude_insights_report_triggered"` + + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. + + - `"claude_insights_report_unarchived"` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `"claude_insights_report_viewed"` + + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). + + - `"claude_insights_resource_access_updated"` + + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. + - `"claude_organization_settings_updated"` Organization settings were updated. @@ -4419,7 +4507,7 @@ compliance activities that can be filtered by various criteria. ## Returns -- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 533 more` +- `data: optional array of AbuseDecisionReceived or AccountDeleted or AdminAPIKeyCreated or 544 more` List of activity records. Each element's `type` field identifies which activity it is and which additional fields are present. @@ -4899,13 +4987,2657 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminAPIKeyCreated object` + - `AdminAPIKeyCreated object` + + An admin API key was created. + + - `type: optional "admin_api_key_created"` + + default: admin_api_key_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `admin_api_key_id: string` + + Tagged ID of the created admin API key + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `scopes: optional array of string` + + Scopes granted to the key (empty for legacy non-scoped admin keys) + + - `AdminAPIKeyDeleted object` + + An admin API key was deleted. + + - `type: optional "admin_api_key_deleted"` + + default: admin_api_key_deleted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `admin_api_key_id: string` + + Tagged ID of the deleted admin API key + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AdminAPIKeyUpdated object` + + An admin API key was updated (renamed or activated/deactivated). + + - `type: optional "admin_api_key_updated"` + + default: admin_api_key_updated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `admin_api_key_id: string` + + Tagged ID of the updated admin API key + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `updates: optional array of object` + + The field-level changes applied in this update + + - `type: "name" or "status" or "unspecified"` + + The admin API key field that changed + + - `"name"` + + - `"status"` + + - `"unspecified"` + + - `current_value: string` + + Field value immediately after this change + + - `previous_value: string` + + Field value immediately before this change + + - `AdminConnectorRequestResolved object` + + Admin approved or dismissed pending member requests to enable an MCP connector. + + - `type: optional "admin_connector_request_resolved"` + + default: admin_connector_request_resolved + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `decision: "approved" or "dismissed" or "unspecified"` + + - `"approved"` + + - `"dismissed"` + + - `"unspecified"` + + - `mcp_server_id: string` + + - `resolved_count: number` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AdminRequestCreated object` + + Admin request created by an org member (seat upgrade, limit increase, join org, end-user invite). + + - `type: optional "admin_request_created"` + + default: admin_request_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `request_type: string` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AdminSetupChecklistStepDelegated object` + + A step of the Claude Enterprise admin setup checklist was delegated to a teammate — an organization member, or an email address that has not joined the organization yet — replacing any earlier delegation of that step. + + - `type: optional "admin_setup_checklist_step_delegated"` + + default: admin_setup_checklist_step_delegated + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `step: string` + + The checklist step that was delegated, for example `enable_sso` or `verify_domain`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `delegate_email: optional string or null` + + Email address the step was delegated to; present only when the delegate is not yet an organization member. + + - `delegate_user_id: optional string or null` + + Tagged ID of the organization member the step was delegated to; absent when the step was delegated to an email address that has not joined the organization. + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AdminSetupChecklistStepDelegationCancelled object` + + The delegation of a Claude Enterprise admin setup checklist step was cancelled. + + - `type: optional "admin_setup_checklist_step_delegation_cancelled"` + + default: admin_setup_checklist_step_delegation_cancelled + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `step: string` + + The checklist step whose delegation was cancelled. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AgeVerified object` + + User age was verified. + + - `type: optional "age_verified"` + + default: age_verified + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `AnonymousMobileLoginAttempted object` + + Anonymous mobile login was attempted. + + - `type: optional "anonymous_mobile_login_attempted"` + + default: anonymous_mobile_login_attempted + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `APIKeyCreated object` + + Activity logged when a new API key is created. + + - `type: optional "api_key_created"` + + default: api_key_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `api_key_id: string` + + The tagged ID of the created API key + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `restricted_to_organization: optional boolean or null` + + Whether the key was restricted to the creating organization, rather than granted access across the whole parent organization + + - `scopes: optional array of string` + + The scopes for this API key + + - `ClaudeArtifactAccessFailed object` + + An attempt to access an artifact failed. + + - `type: optional "claude_artifact_access_failed"` + + default: claude_artifact_access_failed + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `claude_artifact_id: optional string or null` + + The artifact's identifier, when known. + + - `claude_artifact_version_id: optional string or null` + + The version of the artifact the user attempted to access, when known. + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `reason: optional string or null` - An admin API key was created. + The reason access was denied, when recorded. - - `type: optional "admin_api_key_created"` + - `ClaudeArtifactCommented object` - default: admin_api_key_created + Comment activity on a published artifact: a comment was added, a thread's resolved state was changed, or a thread was deleted. The actor is the user who performed the action; the comment text itself is stored with the artifact and is not part of this record. + + - `type: optional "claude_artifact_commented"` + + default: claude_artifact_commented - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -5113,253 +7845,59 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `admin_api_key_id: string` - - Tagged ID of the created admin API key - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - - `scopes: optional array of string` - - Scopes granted to the key (empty for legacy non-scoped admin keys) - - - `AdminAPIKeyDeleted object` - - An admin API key was deleted. - - - `type: optional "admin_api_key_deleted"` - - default: admin_api_key_deleted - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` + - `claude_artifact_id: string` - Asserting party: the GCP project the organization is bound to. + The artifact's identifier. - - `type: optional "gcp"` + - `comment_action: "activate_thread" or "create_thread" or "deactivate_thread" or 10 more` - default: gcp + The action recorded: for example a new comment thread, a reply to an existing thread, a thread resolved, reopened, or deleted, a thread's Claude activation granted or revoked, a comment's text rewritten by its author, an existing comment sent to Claude or withdrawn from Claude, or a thread resolved by a Claude session. - - `project_number: string` + - `"activate_thread"` - - `FederatedActorOidcProvider object` + - `"create_thread"` - Asserting party: a customer-registered OIDC federation issuer. + - `"deactivate_thread"` - - `type: optional "oidc"` + - `"delete_thread"` - default: oidc + - `"edit_comment"` - - `issuer: optional string or null` + - `"move_thread"` - The federation issuer's URL. Null when the presented credential failed verification. + - `"reopen"` - - `ip_address: optional string or null` + - `"reply"` - - `subject: optional string or null` + - `"resolve"` - The provider's verified identifier for the caller; its form depends on the provider. + - `"send_to_claude"` - - `user_agent: optional string or null` + - `"session_resolve"` - - `AttestedDeviceActor object` + - `"unsend_to_claude"` - An attested mobile device authenticated via Apple App Attest. + - `"unspecified"` - - `type: optional "attested_device_actor"` + - `id: optional string` - default: attested_device_actor + Unique identifier for the activity e.g. 'activity_abcd1234' - - `external_client_id: string` + - `actor_outside_organization: optional boolean or null` - - `kid_hash: string` + True when the person who acted belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted commenter or editor access. Absent on older events; treat absence as false. - - `ip_address: optional string or null` + - `claude_artifact_comment_id: optional string or null` - - `user_agent: optional string or null` + The comment's identifier. Present when the activity relates to a specific comment, for example a new comment, an author's edit of one, or an existing comment sent to Claude or withdrawn from Claude; absent for thread-level actions performed without a comment, such as resolve, reopen, deletion, an activation change, or a resolve by a Claude session. - - `admin_api_key_id: string` + - `claude_artifact_comment_thread_id: optional string or null` - Tagged ID of the deleted admin API key + The comment thread's identifier. - - `id: optional string` + - `claude_artifact_version_id: optional string or null` - Unique identifier for the activity e.g. 'activity_abcd1234' + The artifact version the comment activity applied to, when known. - `created_at: optional string` @@ -5375,13 +7913,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminAPIKeyUpdated object` + - `ClaudeArtifactCommentsViewed object` - An admin API key was updated (renamed or activated/deactivated). + An artifact's comments were viewed. - - `type: optional "admin_api_key_updated"` + - `type: optional "claude_artifact_comments_viewed"` - default: admin_api_key_updated + default: claude_artifact_comments_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -5589,14 +8127,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `admin_api_key_id: string` + - `claude_artifact_id: string` - Tagged ID of the updated admin API key + The artifact's identifier. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_version_id: optional string or null` + + The version of the artifact whose comments were served, when known. + - `created_at: optional string` When this activity occurred. @@ -5611,35 +8153,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updates: optional array of object` - - The field-level changes applied in this update - - - `type: "name" or "status" or "unspecified"` - - The admin API key field that changed - - - `"name"` - - - `"status"` - - - `"unspecified"` - - - `current_value: string` - - Field value immediately after this change - - - `previous_value: string` - - Field value immediately before this change - - - `AdminConnectorRequestResolved object` + - `ClaudeArtifactCreated object` - Admin approved or dismissed pending member requests to enable an MCP connector. + An artifact was created. - - `type: optional "admin_connector_request_resolved"` + - `type: optional "claude_artifact_created"` - default: admin_connector_request_resolved + default: claude_artifact_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -5847,17 +8367,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `decision: "approved" or "dismissed" or "unspecified"` - - - `"approved"` - - - `"dismissed"` - - - `"unspecified"` - - - `mcp_server_id: string` + - `claude_artifact_id: string` - - `resolved_count: number` + Tagged ID of the artifact that was created, e.g. "claude_artifact_01HX...". - `id: optional string` @@ -5877,13 +8389,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminRequestCreated object` + - `ClaudePublishedArtifactDeleted object` - Admin request created by an org member (seat upgrade, limit increase, join org, end-user invite). + A published artifact was deleted or unpublished — by its creator, by an organization admin, or by Anthropic (for example, when it was removed for a policy violation). - - `type: optional "admin_request_created"` + - `type: optional "claude_published_artifact_deleted"` - default: admin_request_created + default: claude_published_artifact_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -6091,7 +8603,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `request_type: string` + - `claude_published_artifact_id: string` + + The published artifact's identifier. - `id: optional string` @@ -6111,13 +8625,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminSetupChecklistStepDelegated object` + - `ClaudeArtifactPublished object` - A step of the Claude Enterprise admin setup checklist was delegated to a teammate — an organization member, or an email address that has not joined the organization yet — replacing any earlier delegation of that step. + A new version of an artifact was published — for an artifact created in a chat this is the action that made it publicly viewable; for an artifact created outside a chat it is recorded when the artifact is saved, including saves of private artifacts, except that automatic saves made while a person keeps editing may be recorded periodically for that person rather than once per save; changes to who can access the artifact are recorded separately as claude_artifact_sharing_updated. - - `type: optional "admin_setup_checklist_step_delegated"` + - `type: optional "claude_artifact_published"` - default: admin_setup_checklist_step_delegated + default: claude_artifact_published - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -6325,27 +8839,39 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `step: string` + - `artifact_type: string` - The checklist step that was delegated, for example `enable_sso` or `verify_domain`. + Artifact type (code, html, react, etc.) + + - `claude_published_artifact_id: string` + + The published artifact's identifier. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `actor_outside_organization: optional boolean or null` + + True when the person who published belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted editor access. Absent on older events; treat absence as false. + + - `claude_artifact_version_id: optional string or null` + + The version identifier recorded as live by this publish. + - `created_at: optional string` When this activity occurred. format: date-time - - `delegate_email: optional string or null` + - `description: optional string or null` - Email address the step was delegated to; present only when the delegate is not yet an organization member. + No longer populated: the gallery-card description supplied at publish time is intentionally omitted from this feed. - - `delegate_user_id: optional string or null` + - `is_redeploy: optional boolean or null` - Tagged ID of the organization member the step was delegated to; absent when the step was delegated to an email address that has not joined the organization. + True when the publish updated an existing artifact; false when the publish created the artifact. - `organization_id: optional string or null` @@ -6355,249 +8881,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AdminSetupChecklistStepDelegationCancelled object` - - The delegation of a Claude Enterprise admin setup checklist step was cancelled. - - - `type: optional "admin_setup_checklist_step_delegation_cancelled"` - - default: admin_setup_checklist_step_delegation_cancelled - - - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - - - `APIActor object` - - - `type: optional "api_actor"` - - default: api_actor - - - `api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `UserActor object` - - - `type: optional "user_actor"` - - default: user_actor - - - `email_address: string` - - format: email - - - `ip_address: string` - - - `user_agent: string` - - - `user_id: string` - - - `UnauthenticatedUserActor object` - - - `type: optional "unauthenticated_user_actor"` - - default: unauthenticated_user_actor - - - `ip_address: string` - - - `user_agent: string` - - - `unauthenticated_email_address: optional string or null` - - format: email - - - `AnthropicActor object` - - - `type: optional "anthropic_actor"` - - default: anthropic_actor - - - `email_address: optional string or null` - - format: email - - - `SystemActor object` - - Automated background processing performed by Anthropic systems, acting - without a user or customer credential. - - - `type: optional "system_actor"` - - default: system_actor - - - `service: optional string or null` - - Name of the automated process that performed the action, when known. - - - `AdminAPIKeyActor object` - - - `type: optional "admin_api_key_actor"` - - default: admin_api_key_actor - - - `admin_api_key_id: string` - - - `ip_address: string` - - - `user_agent: string` - - - `ServiceAccountActor object` - - - `type: optional "service_account_actor"` - - default: service_account_actor - - - `ip_address: string` - - - `service_account_id: string` - - - `user_agent: string` - - - `ScimDirectorySyncActor object` - - - `type: optional "scim_directory_sync_actor"` - - default: scim_directory_sync_actor - - - `directory_id: string` - - - `workos_event_id: string` - - - `idp_connection_type: optional string or null` - - - `FederatedIdentityActor object` - - A federated external workload authenticated via a verified OIDC token. - - Carries the verified issuer, subject, and audience claims from the - presented JWT. - - - `type: optional "federated_identity_actor"` - - default: federated_identity_actor - - - `issuer: string` - - - `subject: string` - - - `audience: optional array of string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `FederatedActor object` - - An external identity asserted by a trusted provider — a cloud-provider - gateway or a customer-registered federation issuer — acting without an - Anthropic-provisioned account or service account. - - - `type: optional "federated_actor"` - - default: federated_actor - - - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` - - - `FederatedActorAwsProvider object` - - Asserting party: the AWS account the organization is bound to. - - - `type: optional "aws"` - - default: aws - - - `account_id: string` - - - `signed_principal: string` - - The AWS-signed ARN of the IAM principal that requested the token. - - - `FederatedActorAzureProvider object` - - Asserting party: the Azure subscription the organization is bound to. - - - `type: optional "azure"` - - default: azure - - - `subscription_id: string` - - - `FederatedActorGcpProvider object` - - Asserting party: the GCP project the organization is bound to. - - - `type: optional "gcp"` - - default: gcp - - - `project_number: string` - - - `FederatedActorOidcProvider object` - - Asserting party: a customer-registered OIDC federation issuer. - - - `type: optional "oidc"` - - default: oidc - - - `issuer: optional string or null` - - The federation issuer's URL. Null when the presented credential failed verification. - - - `ip_address: optional string or null` - - - `subject: optional string or null` - - The provider's verified identifier for the caller; its form depends on the provider. - - - `user_agent: optional string or null` - - - `AttestedDeviceActor object` - - An attested mobile device authenticated via Apple App Attest. - - - `type: optional "attested_device_actor"` - - default: attested_device_actor - - - `external_client_id: string` - - - `kid_hash: string` - - - `ip_address: optional string or null` - - - `user_agent: optional string or null` - - - `step: string` - - The checklist step whose delegation was cancelled. - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `organization_id: optional string or null` - - Organization ID this activity is associated with + - `title: string` - - `organization_uuid: optional string or null` + **Deprecated** - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + No longer populated. For Code Artifacts (`claude_published_artifact_id` starts with `cart_`), find that artifact in List Code Artifacts: the title is the `name` of its `versions` entry whose `id` equals `claude_artifact_version_id`, while that version is still retained (a `name` equal to the version id means the title is no longer kept). For other artifacts, look up `claude_artifact_version_id` with Get artifact metadata. That id is absent when the publish isn't linked to an artifact version, and neither lookup works once the artifact is deleted. - - `AgeVerified object` + - `ClaudeArtifactSharingUpdated object` - User age was verified. + An artifact's sharing settings were updated. - - `type: optional "age_verified"` + - `type: optional "claude_artifact_sharing_updated"` - default: age_verified + default: claude_artifact_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -6805,6 +9101,42 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `audience: array of Organization or Users or AnyoneWithLink` + + The artifact's sharing audience after the change. If empty, the artifact is visible only to its owner. + + - `Organization object` + + Sharing audience: visible to the owning organization. + + - `type: optional "organization"` + + default: organization + + - `Users object` + + Sharing audience: visible to an explicit allowlist of users. + + - `type: optional "users"` + + default: users + + - `AnyoneWithLink object` + + Sharing audience: anyone with the link, including anonymous viewers (an artifact shared to the open internet). + + - `type: optional "anyone_with_link"` + + default: anyone_with_link + + - `claude_artifact_id: string` + + The artifact's identifier. + + - `claude_artifact_version_id: string` + + The artifact version's identifier. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -6815,6 +9147,22 @@ compliance activities that can be filtered by various criteria. format: date-time + - `new_mode: optional string or null` + + The read-axis sharing mode after the change: `owner`, `users`, `org`, or `public` (anyone on the internet). + + - `new_user_count: optional number or null` + + The number of accounts on the explicit read allowlist after the change. Only meaningful when `new_mode` is `users`. + + - `new_write_mode: optional string or null` + + The write-axis sharing mode after the change: `owner`, `users`, or `org`. + + - `new_write_user_count: optional number or null` + + The number of accounts on the explicit write allowlist after the change. Only meaningful when `new_write_mode` is `users`. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -6823,13 +9171,61 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AnonymousMobileLoginAttempted object` + - `previous_mode: optional string or null` - Anonymous mobile login was attempted. + The read-axis sharing mode before the change: `owner`, `users`, `org`, or `public` (anyone on the internet). - - `type: optional "anonymous_mobile_login_attempted"` + - `previous_read_agent_ids: optional array of string` - default: anonymous_mobile_login_attempted + The Claude agents (`cagt_…` identifiers) whose channel held view access to the artifact before the change. Empty when none. + + - `previous_read_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members held view access to the artifact before the change. Edit access implies view access, so every `previous_write_group_ids` entry also appears here. Empty when none. + + - `previous_user_count: optional number or null` + + The number of accounts on the explicit read allowlist before the change. Only meaningful when `previous_mode` is `users`. + + - `previous_write_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel held edit access to the artifact before the change. Empty when none. + + - `previous_write_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members held edit access to the artifact before the change. Empty when none. + + - `previous_write_mode: optional string or null` + + The write-axis sharing mode before the change: `owner`, `users`, or `org`. + + - `previous_write_user_count: optional number or null` + + The number of accounts on the explicit write allowlist before the change. Only meaningful when `previous_write_mode` is `users`. + + - `read_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel holds view access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + + - `read_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members hold view access to the artifact after the change (including every `write_group_ids` entry). Reflects the standing grants, so it is populated on every sharing update for an artifact shared with groups, not only when a group grant changed. Empty when none. + + - `write_agent_ids: optional array of string` + + The Claude agents (`cagt_…` identifiers) whose channel holds edit access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + + - `write_group_ids: optional array of string` + + The admin-managed groups (`rbac_group_…` identifiers) whose members hold edit access to the artifact after the change. Reflects the standing grants, like `read_group_ids`. Empty when none. + + - `ClaudeArtifactViewed object` + + An artifact was viewed. + + - `type: optional "claude_artifact_viewed"` + + default: claude_artifact_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -7037,10 +9433,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `claude_artifact_id: string` + + The artifact's identifier. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_version_id: optional string or null` + + The version of the artifact the user was served, when known. + - `created_at: optional string` When this activity occurred. @@ -7055,13 +9459,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `APIKeyCreated object` + - `AuditLogExportAccessed object` - Activity logged when a new API key is created. + Audit log export file was accessed/downloaded via signed URL. - - `type: optional "api_key_created"` + - `type: optional "audit_log_export_accessed"` - default: api_key_created + default: audit_log_export_accessed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -7269,10 +9673,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `api_key_id: string` - - The tagged ID of the created API key - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -7291,21 +9691,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `restricted_to_organization: optional boolean or null` - - Whether the key was restricted to the creating organization, rather than granted access across the whole parent organization - - - `scopes: optional array of string` - - The scopes for this API key - - - `ClaudeArtifactAccessFailed object` + - `AuditLogExportStarted object` - An attempt to access an artifact failed. + Audit log export was initiated. - - `type: optional "claude_artifact_access_failed"` + - `type: optional "audit_log_export_started"` - default: claude_artifact_access_failed + default: audit_log_export_started - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -7517,20 +9909,16 @@ compliance activities that can be filtered by various criteria. Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` - - The artifact's identifier, when known. - - - `claude_artifact_version_id: optional string or null` - - The version of the artifact the user attempted to access, when known. - - `created_at: optional string` When this activity occurred. format: date-time + - `from_date: optional string or null` + + Start date of the export range + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -7539,17 +9927,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `reason: optional string or null` + - `to_date: optional string or null` - The reason access was denied, when recorded. + End date of the export range - - `ClaudeArtifactCommented object` + - `BillingEmailsUpdated object` - Comment activity on a published artifact: a comment was added, a thread's resolved state was changed, or a thread was deleted. The actor is the user who performed the action; the comment text itself is stored with the artifact and is not part of this record. + The organization's billing email recipients were updated. - - `type: optional "claude_artifact_commented"` + - `type: optional "billing_emails_updated"` - default: claude_artifact_commented + default: billing_emails_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -7757,59 +10145,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - The artifact's identifier. - - - `comment_action: "activate_thread" or "create_thread" or "deactivate_thread" or 10 more` - - The action recorded: for example a new comment thread, a reply to an existing thread, a thread resolved, reopened, or deleted, a thread's Claude activation granted or revoked, a comment's text rewritten by its author, an existing comment sent to Claude or withdrawn from Claude, or a thread resolved by a Claude session. - - - `"activate_thread"` - - - `"create_thread"` - - - `"deactivate_thread"` - - - `"delete_thread"` - - - `"edit_comment"` - - - `"move_thread"` - - - `"reopen"` - - - `"reply"` - - - `"resolve"` - - - `"send_to_claude"` - - - `"session_resolve"` - - - `"unsend_to_claude"` - - - `"unspecified"` - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `actor_outside_organization: optional boolean or null` - - True when the person who acted belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted commenter or editor access. Absent on older events; treat absence as false. - - - `claude_artifact_comment_id: optional string or null` - - The comment's identifier. Present when the activity relates to a specific comment, for example a new comment, an author's edit of one, or an existing comment sent to Claude or withdrawn from Claude; absent for thread-level actions performed without a comment, such as resolve, reopen, deletion, an activation change, or a resolve by a Claude session. - - - `claude_artifact_comment_thread_id: optional string or null` - - The comment thread's identifier. - - - `claude_artifact_version_id: optional string or null` + - `cc_email_count: optional number or null` - The artifact version the comment activity applied to, when known. + Number of 'cc' email recipients. - `created_at: optional string` @@ -7825,13 +10167,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactCommentsViewed object` + - `primary_email_set: optional boolean or null` - An artifact's comments were viewed. + Whether a primary billing email is configured. - - `type: optional "claude_artifact_comments_viewed"` + - `to_email_count: optional number or null` - default: claude_artifact_comments_viewed + Number of 'to' email recipients. + + - `CcrAgentCreated object` + + A Claude Code agent was created. + + - `type: optional "ccr_agent_created"` + + default: ccr_agent_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -8039,17 +10389,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `agent_id: string` - The artifact's identifier. + The agent that was created, e.g. "cagt_01HX...". - - `id: optional string` + - `default_source_urls_truncated: boolean` - Unique identifier for the activity e.g. 'activity_abcd1234' + Whether default_source_urls was capped and omits some of the granted repositories. - - `claude_artifact_version_id: optional string or null` + - `display_name: string` - The version of the artifact whose comments were served, when known. + The agent's display name at creation time. + + - `omitted_source_url_count: number` + + Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. + + - `slug: string` + + The agent's URL-safe identifier, unique within the organization. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -8057,6 +10419,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `default_source_urls: optional array of string` + + The repository URLs the agent works on by default, reduced to scheme, host, and path — credentials and query parameters are never included. Empty with a zero omitted_source_url_count means the agent was created without any default repositories; empty with a non-zero count means repositories were granted but could not be safely rendered. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + + - `guest_policy: optional string or null` + + Whether the agent responds in Slack channels that include guest users, and in Slack Connect channels shared with other organizations: "allow", "restrict", or "channel" (the agent responds, using only that channel's own content and configuration). In Slack Connect channels "allow" gives at most "channel" access. Omitted when the agent inherits the default policy. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -8065,13 +10435,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactCreated object` + - `slack_alias: optional string or null` - An artifact was created. + The Slack trigger word that routes mentions to this agent. An empty value means the agent responds to bare "@Claude" mentions. Omitted when the agent is not addressable from Slack. - - `type: optional "claude_artifact_created"` + - `CcrAgentDeleted object` - default: claude_artifact_created + A Claude Code agent was deleted. + + - `type: optional "ccr_agent_deleted"` + + default: ccr_agent_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -8279,14 +10653,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `agent_id: string` - Tagged ID of the artifact that was created, e.g. "claude_artifact_01HX...". + The agent that was deleted, e.g. "cagt_01HX...". + + - `cascaded_agent_ids_truncated: boolean` + + True when more agents were deleted in this cascade than are individually recorded. On a cascade parent event (cascaded_from_agent_id unset), cascaded_agent_ids is capped at 100. On a cascade child event (cascaded_from_agent_id set, emitted when the parent deletion failed after committing child deletions), one event is emitted per deleted child up to 100, and this field indicates additional children were deleted in the same cascade. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `cascaded_agent_ids: optional array of string` + + Agents assigned to individual Slack channels that were also deleted because agent_id was the agent assigned to their entire Slack workspace. Empty when no such agents were deleted, and always empty on a cascade child event (cascaded_from_agent_id set) — the child's siblings are recorded as their own events, not listed here. Capped at 100 entries; cascaded_agent_ids_truncated is set when the actual count exceeded the cap. + + - `cascaded_from_agent_id: optional string or null` + + When set, the Slack workspace's dedicated agent whose deletion attempt caused this agent to be deleted. The parent's own deletion may have failed after the cascade committed — check for a separate event with agent_id = cascaded_from_agent_id to confirm. Unset on a direct deletion. + - `created_at: optional string` When this activity occurred. @@ -8301,13 +10687,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudePublishedArtifactDeleted object` + - `CcrAgentProxyAnthropicOidcTokenExchanged object` - A published artifact was deleted or unpublished — by its creator, by an organization admin, or by Anthropic (for example, when it was removed for a policy violation). + The Claude Code agent proxy exchanged a minted identity token for short-lived credentials in the organization's own cloud. Recorded for exchange targets only (such as "aws" and "gcp"; the "direct" target has no exchange step). One event is recorded per exchange call; a request served from the proxy's exchanged-credential cache does not exchange again and is not recorded here. Per-request detail for traffic the credentials were injected into is available in the agent proxy network events. - - `type: optional "claude_published_artifact_deleted"` + - `type: optional "ccr_agent_proxy_anthropic_oidc_token_exchanged"` - default: claude_published_artifact_deleted + default: ccr_agent_proxy_anthropic_oidc_token_exchanged - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -8515,9 +10901,37 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_published_artifact_id: string` + - `agent_id: string` - The published artifact's identifier. + The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. + + - `credential_id: string` + + The credential row the exchange ran for, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + + - `role_arn: string` + + The IAM role the token was exchanged for ("aws" target), e.g. "arn:aws:iam::123456789012:role/example-role". Empty for other targets. + + - `role_session_name: string` + + The role session name the temporary credentials were issued under ("aws" target), matching the session name recorded in the organization's own AWS CloudTrail log. Empty for other targets. + + - `service_account: string` + + The Google Cloud service account the federated token was exchanged into ("gcp" target), e.g. "example@example-project.iam.gserviceaccount.com". Empty when the federated token was used directly, and for other targets. + + - `session_id: string` + + The Claude Code session whose request triggered the exchange, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + + - `target: string` + + The credential's configured target, e.g. "aws" or "gcp". - `id: optional string` @@ -8529,6 +10943,12 @@ compliance activities that can be filtered by various criteria. format: date-time + - `credentials_expire_at: optional string or null` + + When the exchanged cloud credentials expire. Unset when the cloud provider did not return a lifetime; such credentials were used for the single triggering request and not cached. + + format: date-time + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -8537,13 +10957,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactPublished object` + - `slack_threads: optional array of object` - A new version of an artifact was published — for an artifact created in a chat this is the action that made it publicly viewable; for an artifact created outside a chat it is recorded when the artifact is saved, including saves of private artifacts, except that automatic saves made while a person keeps editing may be recorded periodically for that person rather than once per save; changes to who can access the artifact are recorded separately as claude_artifact_sharing_updated. + The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - - `type: optional "claude_artifact_published"` + - `channel_id: string` - default: claude_artifact_published + The Slack channel ID, e.g. "C0123ABCDE". + + - `enterprise_id: string` + + The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. + + - `team_id: string` + + The Slack workspace (team) ID, e.g. "T0123ABCDE". + + - `thread_ts: string` + + The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + + - `CcrAgentProxyAnthropicOidcTokenMinted object` + + The Claude Code agent proxy minted a short-lived identity token for an anthropic_oidc credential. One event is recorded per fresh token issuance; a request served from the proxy's short-lived token cache does not mint a new token and is not recorded here. Per-request detail for traffic the credential was injected into is available in the agent proxy network events. + + - `type: optional "ccr_agent_proxy_anthropic_oidc_token_minted"` + + default: ccr_agent_proxy_anthropic_oidc_token_minted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -8751,39 +11191,63 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `artifact_type: string` + - `agent_id: string` - Artifact type (code, html, react, etc.) + The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - `claude_published_artifact_id: string` + - `audience: string` - The published artifact's identifier. + The minted token's audience: the fixed token-exchange audience for the "aws" target, the credential row's Google workload identity pool provider URL for the "gcp" target, or the row's configured audience for the "direct" target. - - `id: optional string` + - `credential_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The credential row the token was minted for, e.g. "apc_01HX...". - - `actor_outside_organization: optional boolean or null` + - `issuance_path: "broker_report" or "direct" or "proxy_record" or "unspecified"` - True when the person who published belongs to a different organization than the artifact's owner organization, such as someone invited by email who accepted editor access. Absent on older events; treat absence as false. + Which record of the issuance this event is. Unspecified on events published before this field existed. - - `claude_artifact_version_id: optional string or null` + - `"broker_report"` - The version identifier recorded as live by this publish. + - `"direct"` - - `created_at: optional string` + - `"proxy_record"` - When this activity occurred. + - `"unspecified"` - format: date-time + - `mint_jti: string` - - `description: optional string or null` + The identifier of the mint attempt, a bare UUID. One mint through the Claude Tag mint broker produces two minted events that carry the same value, the broker's own report and the agent proxy's record. A reader counts issuances from the broker's reports by distinct report_id. Each non-empty value belongs to at most one issued token. Empty on events for mints that did not travel through the broker. - No longer populated: the gallery-card description supplied at publish time is intentionally omitted from this feed. + - `profile_id: string` - - `is_redeploy: optional boolean or null` + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - True when the publish updated an existing artifact; false when the publish created the artifact. + - `report_id: string` + + The identity of the mint broker's report itself, a bare UUID. The broker mints it once per report and delivery retries repeat it, so several events carrying one report_id are duplicates of one report and collapse to one issuance. Present on broker_report events only. + + - `session_id: string` + + The Claude Code session whose request triggered the mint, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + + - `target: string` + + The credential's configured target, e.g. "aws", "gcp", or "direct". + + - `test_mint: string` + + Set when the token was minted by the gateway verification test that runs while an admin registers a custom-gateway audience: "wrong_subject" for the probe token the gateway must reject, "right_subject" for the control token it must accept. Empty for tokens minted for live sessions. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time - `organization_id: optional string or null` @@ -8793,19 +11257,43 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `title: string` + - `slack_threads: optional array of object` - **Deprecated** + The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - No longer populated. For Code Artifacts (`claude_published_artifact_id` starts with `cart_`), find that artifact in List Code Artifacts: the title is the `name` of its `versions` entry whose `id` equals `claude_artifact_version_id`, while that version is still retained (a `name` equal to the version id means the title is no longer kept). For other artifacts, look up `claude_artifact_version_id` with Get artifact metadata. That id is absent when the publish isn't linked to an artifact version, and neither lookup works once the artifact is deleted. + - `channel_id: string` - - `ClaudeArtifactSharingUpdated object` + The Slack channel ID, e.g. "C0123ABCDE". - An artifact's sharing settings were updated. + - `enterprise_id: string` - - `type: optional "claude_artifact_sharing_updated"` + The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. - default: claude_artifact_sharing_updated + - `team_id: string` + + The Slack workspace (team) ID, e.g. "T0123ABCDE". + + - `thread_ts: string` + + The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + + - `token_expires_at: optional string or null` + + When the minted token expires. + + format: date-time + + - `token_jti: optional string or null` + + The issued token's unique identifier (its `jti` claim), for matching this event to the token a gateway or cloud provider received; not the same value as mint_jti. Set only when issuance_path is `proxy_record` or `direct`, for live sessions, and only when the identifier could be read. + + - `CcrAgentProxyCredentialCreated object` + + A Claude Code agent proxy credential was created. Credentials hold the secrets the agent proxy injects into requests Claude Code sessions send to approved external services; each credential belongs to an agent proxy profile. Audit events carry only credential names and settings, never the secret material itself. + + - `type: optional "ccr_agent_proxy_credential_created"` + + default: ccr_agent_proxy_credential_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -9013,131 +11501,87 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `audience: array of Organization or Users or AnyoneWithLink` - - The artifact's sharing audience after the change. If empty, the artifact is visible only to its owner. - - - `Organization object` - - Sharing audience: visible to the owning organization. - - - `type: optional "organization"` - - default: organization - - - `Users object` - - Sharing audience: visible to an explicit allowlist of users. - - - `type: optional "users"` + - `credential_id: string` - default: users + The credential that was created, e.g. "apc_01HX...". - - `AnyoneWithLink object` + - `credential_type: string` - Sharing audience: anyone with the link, including anonymous viewers (an artifact shared to the open internet). + The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - `type: optional "anyone_with_link"` + - `display_name: string` - default: anyone_with_link + The credential's display name. - - `claude_artifact_id: string` + - `host_constraint_truncated: boolean` - The artifact's identifier. + Whether host_constraint was capped and omits some of the configured host name patterns. - - `claude_artifact_version_id: string` + - `profile_id: string` - The artifact version's identifier. + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `new_mode: optional string or null` - - The read-axis sharing mode after the change: `owner`, `users`, `org`, or `public` (anyone on the internet). - - - `new_user_count: optional number or null` - - The number of accounts on the explicit read allowlist after the change. Only meaningful when `new_mode` is `users`. - - - `new_write_mode: optional string or null` - - The write-axis sharing mode after the change: `owner`, `users`, or `org`. - - - `new_write_user_count: optional number or null` - - The number of accounts on the explicit write allowlist after the change. Only meaningful when `new_write_mode` is `users`. - - - `organization_id: optional string or null` - - Organization ID this activity is associated with - - - `organization_uuid: optional string or null` - - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + - `authorization_basis: optional object or null` - - `previous_mode: optional string or null` + How the actor was authorized to create this credential. Absent on system-initiated operations and on credentials created via a provisioning link. - The read-axis sharing mode before the change: `owner`, `users`, `org`, or `public` (anyone on the internet). + - `slack_channel_id: string` - - `previous_read_agent_ids: optional array of string` + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - The Claude agents (`cagt_…` identifiers) whose channel held view access to the artifact before the change. Empty when none. + - `slack_enterprise_id: string` - - `previous_read_group_ids: optional array of string` + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - The admin-managed groups (`rbac_group_…` identifiers) whose members held view access to the artifact before the change. Edit access implies view access, so every `previous_write_group_ids` entry also appears here. Empty when none. + - `slack_team_id: string` - - `previous_user_count: optional number or null` + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - The number of accounts on the explicit read allowlist before the change. Only meaningful when `previous_mode` is `users`. + - `via_entitlement_leg: boolean` - - `previous_write_agent_ids: optional array of string` + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - The Claude agents (`cagt_…` identifiers) whose channel held edit access to the artifact before the change. Empty when none. + - `via_full_manage: boolean` - - `previous_write_group_ids: optional array of string` + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - The admin-managed groups (`rbac_group_…` identifiers) whose members held edit access to the artifact before the change. Empty when none. + - `granting_role_ids: optional array of string` - - `previous_write_mode: optional string or null` + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - The write-axis sharing mode before the change: `owner`, `users`, or `org`. + - `via_account_assignment: optional boolean or null` - - `previous_write_user_count: optional number or null` + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - The number of accounts on the explicit write allowlist before the change. Only meaningful when `previous_write_mode` is `users`. + - `created_at: optional string` - - `read_agent_ids: optional array of string` + When this activity occurred. - The Claude agents (`cagt_…` identifiers) whose channel holds view access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + format: date-time - - `read_group_ids: optional array of string` + - `host_constraint: optional array of string` - The admin-managed groups (`rbac_group_…` identifiers) whose members hold view access to the artifact after the change (including every `write_group_ids` entry). Reflects the standing grants, so it is populated on every sharing update for an artifact shared with groups, not only when a group grant changed. Empty when none. + The host name patterns the credential may be sent to, e.g. "api.example.com" or "*.example.com". At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `write_agent_ids: optional array of string` + - `organization_id: optional string or null` - The Claude agents (`cagt_…` identifiers) whose channel holds edit access to the artifact after the change. Reflects the standing grants, so it is populated on every sharing update for an artifact shared with agents, not only when an agent grant changed. Empty when none. + Organization ID this activity is associated with - - `write_group_ids: optional array of string` + - `organization_uuid: optional string or null` - The admin-managed groups (`rbac_group_…` identifiers) whose members hold edit access to the artifact after the change. Reflects the standing grants, like `read_group_ids`. Empty when none. + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactViewed object` + - `CcrAgentProxyCredentialDeleted object` - An artifact was viewed. + A Claude Code agent proxy credential was deleted. Its secret material was removed and can no longer be sent to any host. - - `type: optional "claude_artifact_viewed"` + - `type: optional "ccr_agent_proxy_credential_deleted"` - default: claude_artifact_viewed + default: ccr_agent_proxy_credential_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -9345,17 +11789,49 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `credential_id: string` - The artifact's identifier. + The credential that was deleted, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belonged to, e.g. "capp_01HX...". Carried so the deletion can be correlated with the profile's other audit events after the credential row no longer exists. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_version_id: optional string or null` + - `authorization_basis: optional object or null` - The version of the artifact the user was served, when known. + How the actor was authorized to delete this credential. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - `created_at: optional string` @@ -9371,13 +11847,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AuditLogExportAccessed object` + - `CcrAgentProxyCredentialRotated object` - Audit log export file was accessed/downloaded via signed URL. + A Claude Code agent proxy credential's secret material was replaced. The replacement keeps the same name, profile, and allowed hosts under a new credential identifier, and everything that referenced the old credential now uses the replacement. - - `type: optional "audit_log_export_accessed"` + - `type: optional "ccr_agent_proxy_credential_rotated"` - default: audit_log_export_accessed + default: ccr_agent_proxy_credential_rotated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -9585,10 +12061,70 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `credential_id: string` + + The replacement credential, e.g. "apc_01HX...". + + - `credential_type: string` + + The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". + + - `destinations_repointed: number` + + The number of agent proxy destinations that referenced the old credential and now reference the replacement. + + - `display_name: string` + + The credential's display name. + + - `previous_credential_id: string` + + The credential that was replaced, e.g. "apc_01HX...". + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + + - `rules_repointed: number` + + The number of agent proxy rules that referenced the old credential and now reference the replacement. + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `authorization_basis: optional object or null` + + How the actor was authorized to rotate this credential. Absent on automatic rotations initiated by the system rather than by a user. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `created_at: optional string` When this activity occurred. @@ -9603,13 +12139,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `AuditLogExportStarted object` + - `CcrAgentProxyCredentialUpdated object` - Audit log export was initiated. + A Claude Code agent proxy credential's settings were updated. Only the display name and the allowed host patterns can be updated; the secret material can only be replaced through a rotation. - - `type: optional "audit_log_export_started"` + - `type: optional "ccr_agent_proxy_credential_updated"` - default: audit_log_export_started + default: ccr_agent_proxy_credential_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -9817,19 +12353,67 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `credential_id: string` + + The credential that was updated, e.g. "apc_01HX...". + + - `display_name: string` + + The credential's display name after the update. + + - `host_constraint_truncated: boolean` + + Whether host_constraint was capped and omits some of the configured host name patterns. + + - `profile_id: string` + + The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `authorization_basis: optional object or null` + + How the actor was authorized to update this credential. + + - `slack_channel_id: string` + + The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + + - `slack_enterprise_id: string` + + The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + + - `slack_team_id: string` + + The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + + - `via_entitlement_leg: boolean` + + True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + + - `via_full_manage: boolean` + + True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + + - `granting_role_ids: optional array of string` + + The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + + - `via_account_assignment: optional boolean or null` + + True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `created_at: optional string` When this activity occurred. format: date-time - - `from_date: optional string or null` + - `host_constraint: optional array of string` - Start date of the export range + The host name patterns the credential may be sent to after the update, e.g. "api.example.com" or "*.example.com". Populated only when the update changed them. At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - `organization_id: optional string or null` @@ -9839,17 +12423,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `to_date: optional string or null` + - `updated_fields: optional array of string` - End date of the export range + Names of the settings included in the update: "display_name", "host_constraint". - - `BillingEmailsUpdated object` + - `CcrAgentProxyDestinationDeleted object` - The organization's billing email recipients were updated. + An agent proxy destination was deleted. - - `type: optional "billing_emails_updated"` + - `type: optional "ccr_agent_proxy_destination_deleted"` - default: billing_emails_updated + default: ccr_agent_proxy_destination_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -10057,13 +12641,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `deleted_with_profile: boolean` + + True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyDestination call. + + - `destination_id: string` + + The destination that was deleted, e.g. "apd_01HX...". + + - `profile_id: string` + + The agent proxy profile the destination belonged to, e.g. "capp_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cc_email_count: optional number or null` + - `cascade_trigger_credential_id: optional string or null` - Number of 'cc' email recipients. + Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the destination's client_tls_credential was the deleted credential). Unset for a direct DeleteAgentProxyDestination call and for the profile-delete cascade (see deleted_with_profile). - `created_at: optional string` @@ -10079,21 +12675,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `primary_email_set: optional boolean or null` - - Whether a primary billing email is configured. - - - `to_email_count: optional number or null` - - Number of 'to' email recipients. - - - `CcrAgentCreated object` + - `CcrAgentProxyNetworkEventsListed object` - A Claude Code agent was created. + A Claude Code network activity export was accessed for the given hour. - - `type: optional "ccr_agent_created"` + - `type: optional "ccr_agent_proxy_network_events_listed"` - default: ccr_agent_created + default: ccr_agent_proxy_network_events_listed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -10301,25 +12889,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was created, e.g. "cagt_01HX...". - - - `default_source_urls_truncated: boolean` - - Whether default_source_urls was capped and omits some of the granted repositories. - - - `display_name: string` - - The agent's display name at creation time. - - - `omitted_source_url_count: number` - - Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. - - - `slug: string` + - `failed: boolean` - The agent's URL-safe identifier, unique within the organization. + True when the export request did not complete successfully. - `id: optional string` @@ -10331,13 +12903,11 @@ compliance activities that can be filtered by various criteria. format: date-time - - `default_source_urls: optional array of string` - - The repository URLs the agent works on by default, reduced to scheme, host, and path — credentials and query parameters are never included. Empty with a zero omitted_source_url_count means the agent was created without any default repositories; empty with a non-zero count means repositories were granted but could not be safely rendered. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + - `hour: optional string or null` - - `guest_policy: optional string or null` + The UTC hour that was exported. - Whether the agent responds in Slack channels that include guest users, and in Slack Connect channels shared with other organizations: "allow", "restrict", or "channel" (the agent responds, using only that channel's own content and configuration). In Slack Connect channels "allow" gives at most "channel" access. Omitted when the agent inherits the default policy. + format: date-time - `organization_id: optional string or null` @@ -10347,17 +12917,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_alias: optional string or null` - - The Slack trigger word that routes mentions to this agent. An empty value means the agent responds to bare "@Claude" mentions. Omitted when the agent is not addressable from Slack. - - - `CcrAgentDeleted object` + - `CcrAgentProxyProfileBound object` - A Claude Code agent was deleted. + A Claude Code agent proxy profile was bound to a scope, applying its policy to Claude Code sessions in that scope. - - `type: optional "ccr_agent_deleted"` + - `type: optional "ccr_agent_proxy_profile_bound"` - default: ccr_agent_deleted + default: ccr_agent_proxy_profile_bound - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -10565,25 +13131,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was deleted, e.g. "cagt_01HX...". - - - `cascaded_agent_ids_truncated: boolean` + - `profile_id: string` - True when more agents were deleted in this cascade than are individually recorded. On a cascade parent event (cascaded_from_agent_id unset), cascaded_agent_ids is capped at 100. On a cascade child event (cascaded_from_agent_id set, emitted when the parent deletion failed after committing child deletions), one event is emitted per deleted child up to 100, and this field indicates additional children were deleted in the same cascade. + The profile that was bound, e.g. "capp_01HX...". - - `id: optional string` + - `scope_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The identifier of the scope the profile was bound to. - - `cascaded_agent_ids: optional array of string` + - `scope_kind: string` - Agents assigned to individual Slack channels that were also deleted because agent_id was the agent assigned to their entire Slack workspace. Empty when no such agents were deleted, and always empty on a cascade child event (cascaded_from_agent_id set) — the child's siblings are recorded as their own events, not listed here. Capped at 100 entries; cascaded_agent_ids_truncated is set when the actual count exceeded the cap. + The kind of scope the profile was bound to: "organization", "environment", "account", or "agent". - - `cascaded_from_agent_id: optional string or null` + - `id: optional string` - When set, the Slack workspace's dedicated agent whose deletion attempt caused this agent to be deleted. The parent's own deletion may have failed after the cascade committed — check for a separate event with agent_id = cascaded_from_agent_id to confirm. Unset on a direct deletion. + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -10599,13 +13161,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyAnthropicOidcTokenExchanged object` + - `CcrAgentProxyProfileCreated object` - The Claude Code agent proxy exchanged a minted identity token for short-lived credentials in the organization's own cloud. Recorded for exchange targets only (such as "aws" and "gcp"; the "direct" target has no exchange step). One event is recorded per exchange call; a request served from the proxy's exchanged-credential cache does not exchange again and is not recorded here. Per-request detail for traffic the credentials were injected into is available in the agent proxy network events. + A Claude Code agent proxy profile was created. Agent proxy profiles are named, reusable bundles of access policy that administrators bind to parts of the organization. - - `type: optional "ccr_agent_proxy_anthropic_oidc_token_exchanged"` + - `type: optional "ccr_agent_proxy_profile_created"` - default: ccr_agent_proxy_anthropic_oidc_token_exchanged + default: ccr_agent_proxy_profile_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -10813,37 +13375,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - - `credential_id: string` + - `display_name: string` - The credential row the exchange ran for, e.g. "apc_01HX...". + The profile's display name at creation time. - `profile_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - - - `role_arn: string` - - The IAM role the token was exchanged for ("aws" target), e.g. "arn:aws:iam::123456789012:role/example-role". Empty for other targets. - - - `role_session_name: string` - - The role session name the temporary credentials were issued under ("aws" target), matching the session name recorded in the organization's own AWS CloudTrail log. Empty for other targets. - - - `service_account: string` - - The Google Cloud service account the federated token was exchanged into ("gcp" target), e.g. "example@example-project.iam.gserviceaccount.com". Empty when the federated token was used directly, and for other targets. - - - `session_id: string` - - The Claude Code session whose request triggered the exchange, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). + The profile that was created, e.g. "capp_01HX...". - - `target: string` + - `slug: string` - The credential's configured target, e.g. "aws" or "gcp". + The profile's URL-safe identifier, unique within the organization. - `id: optional string` @@ -10855,47 +13397,53 @@ compliance activities that can be filtered by various criteria. format: date-time - - `credentials_expire_at: optional string or null` + - `github_access: optional array of object` - When the exchanged cloud credentials expire. Unset when the cloud provider did not return a lifetime; such credentials were used for the single triggering request and not cached. + The GitHub repository access the profile grants, one entry per GitHub App installation. Empty when the profile grants no GitHub access. - format: date-time + - `access_mode: string` - - `organization_id: optional string or null` + How repository access is granted: "none" (no access), "list" (exactly the repositories in repos), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - Organization ID this activity is associated with + - `github_installation_id: number` - - `organization_uuid: optional string or null` + The GitHub App installation the access applies to. - Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + - `repo_count: number` - - `slack_threads: optional array of object` + The total number of repositories granted, including any omitted from repos. - The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. + - `repos_truncated: boolean` - - `channel_id: string` + Whether repos was capped and omits some of the granted repositories. - The Slack channel ID, e.g. "C0123ABCDE". + - `ghe_configuration_id: optional number or null` - - `enterprise_id: string` + The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. - The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. + - `repo_ids: optional array of number` - - `team_id: string` + The numeric GitHub repository IDs the profile grants access to, in the same order as repos (and subject to the same 100-entry cap). These IDs are the authoritative identity of the granted repositories — access is enforced against them, not against the display names in repos. - The Slack workspace (team) ID, e.g. "T0123ABCDE". + - `repos: optional array of string` - - `thread_ts: string` + Repository names (owner/name) the profile grants access to, populated when access_mode is "list". Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids are the authoritative identity of the granted repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when the granted set is larger. - The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. + - `organization_id: optional string or null` - - `CcrAgentProxyAnthropicOidcTokenMinted object` + Organization ID this activity is associated with - The Claude Code agent proxy minted a short-lived identity token for an anthropic_oidc credential. One event is recorded per fresh token issuance; a request served from the proxy's short-lived token cache does not mint a new token and is not recorded here. Per-request detail for traffic the credential was injected into is available in the agent proxy network events. + - `organization_uuid: optional string or null` - - `type: optional "ccr_agent_proxy_anthropic_oidc_token_minted"` + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - default: ccr_agent_proxy_anthropic_oidc_token_minted + - `CcrAgentProxyProfileDeleted object` + + A Claude Code agent proxy profile was deleted, removing its policy from everything it was bound to. + + - `type: optional "ccr_agent_proxy_profile_deleted"` + + default: ccr_agent_proxy_profile_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -11103,53 +13651,33 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The Claude Code agent that owns the session, e.g. "cagt_01HX...". Empty when the session is not owned by an agent. - - - `audience: string` + - `deleted_credential_count: number` - The minted token's audience: the fixed token-exchange audience for the "aws" target, the credential row's Google workload identity pool provider URL for the "gcp" target, or the row's configured audience for the "direct" target. + Number of credentials deleted together with the profile — deleting a profile also deletes the credentials attached to it. Each deleted credential additionally emits its own ccr_agent_proxy_credential_deleted activity, at most 100 per profile deletion. Best-effort: when deleted_credentials_unknown is true the count could not be determined and 0 here does not mean the profile had no credentials. - - `credential_id: string` + - `deleted_credentials_unknown: boolean` - The credential row the token was minted for, e.g. "apc_01HX...". + Whether the number of credentials deleted with the profile could not be determined. When true, deleted_credential_count is 0 and no per-credential deletion activities were emitted, even though the deletion may have destroyed credentials. - - `issuance_path: "broker_report" or "direct" or "proxy_record" or "unspecified"` + - `deleted_destination_count: number` - Which record of the issuance this event is. Unspecified on events published before this field existed. + Number of destinations deleted together with the profile. Each deleted destination additionally emits its own ccr_agent_proxy_destination_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_destinations_unknown is true the count could not be determined and 0 here does not mean the profile had no destinations. - - `"broker_report"` + - `deleted_destinations_unknown: boolean` - - `"direct"` + Whether the number of destinations deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - - `"proxy_record"` + - `deleted_rule_count: number` - - `"unspecified"` + Number of rules deleted together with the profile. Each deleted rule additionally emits its own ccr_agent_proxy_rule_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_rules_unknown is true the count could not be determined and 0 here does not mean the profile had no rules. - - `mint_jti: string` + - `deleted_rules_unknown: boolean` - The identifier of the mint attempt, a bare UUID. One mint through the Claude Tag mint broker produces two minted events that carry the same value, the broker's own report and the agent proxy's record. A reader counts issuances from the broker's reports by distinct report_id. Each non-empty value belongs to at most one issued token. Empty on events for mints that did not travel through the broker. + Whether the number of rules deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - `profile_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". - - - `report_id: string` - - The identity of the mint broker's report itself, a bare UUID. The broker mints it once per report and delivery retries repeat it, so several events carrying one report_id are duplicates of one report and collapse to one issuance. Present on broker_report events only. - - - `session_id: string` - - The Claude Code session whose request triggered the mint, e.g. "cse_01HX..." or "session_01HX..." (the session's ID is carried in whichever tagged form the session's credential presented). - - - `target: string` - - The credential's configured target, e.g. "aws", "gcp", or "direct". - - - `test_mint: string` - - Set when the token was minted by the gateway verification test that runs while an admin registers a custom-gateway audience: "wrong_subject" for the probe token the gateway must reject, "right_subject" for the control token it must accept. Empty for tokens minted for live sessions. + The profile that was deleted, e.g. "capp_01HX...". - `id: optional string` @@ -11169,43 +13697,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_threads: optional array of object` - - The Slack threads in the session's provenance, when the session originated from Slack. At most 64 entries are included. - - - `channel_id: string` - - The Slack channel ID, e.g. "C0123ABCDE". - - - `enterprise_id: string` - - The Slack Enterprise Grid organization ID, e.g. "E0123ABCDE". Empty for workspaces that are not part of an Enterprise Grid. - - - `team_id: string` - - The Slack workspace (team) ID, e.g. "T0123ABCDE". - - - `thread_ts: string` - - The Slack thread timestamp within the channel, e.g. "1714000000.123456". Empty for a session bound to a whole channel rather than to one thread. - - - `token_expires_at: optional string or null` - - When the minted token expires. - - format: date-time - - - `token_jti: optional string or null` - - The issued token's unique identifier (its `jti` claim), for matching this event to the token a gateway or cloud provider received; not the same value as mint_jti. Set only when issuance_path is `proxy_record` or `direct`, for live sessions, and only when the identifier could be read. - - - `CcrAgentProxyCredentialCreated object` + - `CcrAgentProxyProfileUnbound object` - A Claude Code agent proxy credential was created. Credentials hold the secrets the agent proxy injects into requests Claude Code sessions send to approved external services; each credential belongs to an agent proxy profile. Audit events carry only credential names and settings, never the secret material itself. + A Claude Code agent proxy profile was unbound from a scope, removing its policy from Claude Code sessions in that scope. - - `type: optional "ccr_agent_proxy_credential_created"` + - `type: optional "ccr_agent_proxy_profile_unbound"` - default: ccr_agent_proxy_credential_created + default: ccr_agent_proxy_profile_unbound - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -11413,72 +13911,28 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` - - The credential that was created, e.g. "apc_01HX...". - - - `credential_type: string` - - The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - - `display_name: string` + - `profile_id: string` - The credential's display name. + The profile that was unbound, e.g. "capp_01HX...". - - `host_constraint_truncated: boolean` + - `scope_id: string` - Whether host_constraint was capped and omits some of the configured host name patterns. + The identifier of the scope the profile was unbound from. - - `profile_id: string` + - `scope_kind: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The kind of scope the profile was unbound from: "organization", "environment", "account", or "agent". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to create this credential. Absent on system-initiated operations and on credentials created via a provisioning link. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to, e.g. "api.example.com" or "*.example.com". At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -11487,13 +13941,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialDeleted object` + - `CcrAgentProxyProfileUpdated object` - A Claude Code agent proxy credential was deleted. Its secret material was removed and can no longer be sent to any host. + A Claude Code agent proxy profile's configuration was updated. - - `type: optional "ccr_agent_proxy_credential_deleted"` + - `type: optional "ccr_agent_proxy_profile_updated"` - default: ccr_agent_proxy_credential_deleted + default: ccr_agent_proxy_profile_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -11701,55 +14155,63 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` - - The credential that was deleted, e.g. "apc_01HX...". - - `profile_id: string` - The agent proxy profile the credential belonged to, e.g. "capp_01HX...". Carried so the deletion can be correlated with the profile's other audit events after the credential row no longer exists. + The profile that was updated, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` + - `created_at: optional string` - How the actor was authorized to delete this credential. + When this activity occurred. - - `slack_channel_id: string` + format: date-time - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". + - `github_access_changes: optional array of object` - - `slack_enterprise_id: string` + How the profile's GitHub repository access changed, one entry per GitHub App installation whose access changed. Empty when the update did not change GitHub access. - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. + - `access_mode: string` - - `slack_team_id: string` + How repository access is granted after the change: "none" (no access), "list" (access is restricted to an explicit repository list — repos_added/repos_removed carry this change's delta and repo_count the post-change total), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". + - `github_installation_id: number` - - `via_entitlement_leg: boolean` + The GitHub App installation the change applies to. - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. + - `repo_count: number` - - `via_full_manage: boolean` + The total number of repositories granted after the change. - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. + - `repos_truncated: boolean` - - `granting_role_ids: optional array of string` + Whether repos_added or repos_removed was capped and omits some of the changed repositories. - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). + - `ghe_configuration_id: optional number or null` - - `via_account_assignment: optional boolean or null` + The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. + - `previous_access_mode: optional string or null` - - `created_at: optional string` + How repository access was granted before the change. Present only when the access mode changed. - When this activity occurred. + - `repo_ids_added: optional array of number` - format: date-time + The numeric GitHub repository IDs added to the granted set, in the same order as repos_added (and subject to the same 100-entry cap). These IDs are the authoritative identity of the added repositories — access is enforced against them, not against the display names in repos_added. + + - `repo_ids_removed: optional array of number` + + The numeric GitHub repository IDs removed from the granted set, in the same order as repos_removed (and subject to the same 100-entry cap). These IDs are the authoritative identity of the removed repositories. + + - `repos_added: optional array of string` + + Repository names (owner/name) added to the granted set. Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids_added are the authoritative identity of the added repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when more were added. Empty when the change involves "all" access, which grants every repository regardless of any explicit list. + + - `repos_removed: optional array of string` + + Repository names (owner/name) removed from the granted set. Same rendering, cap, and "all" handling as repos_added; repo_ids_removed carries the authoritative identity of the removed repositories. - `organization_id: optional string or null` @@ -11759,13 +14221,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialRotated object` + - `updated_fields: optional array of string` - A Claude Code agent proxy credential's secret material was replaced. The replacement keeps the same name, profile, and allowed hosts under a new credential identifier, and everything that referenced the old credential now uses the replacement. + Names of the configuration fields included in the update, e.g. "display_name", "github_installation_permissions". - - `type: optional "ccr_agent_proxy_credential_rotated"` + - `CcrAgentProxyProvisioningCredentialRejected object` - default: ccr_agent_proxy_credential_rotated + An organization owner rejected a credential that a teammate submitted via an agent proxy provisioning link: the credential and its disabled rule were deleted and the link was revoked. The actor is the owner; the submitter is recorded for attribution. + + - `type: optional "ccr_agent_proxy_provisioning_credential_rejected"` + + default: ccr_agent_proxy_provisioning_credential_rejected - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -11975,68 +14441,28 @@ compliance activities that can be filtered by various criteria. - `credential_id: string` - The replacement credential, e.g. "apc_01HX...". - - - `credential_type: string` - - The kind of credential, e.g. "bearer", "basic", "github_app", "mtls". - - - `destinations_repointed: number` - - The number of agent proxy destinations that referenced the old credential and now reference the replacement. + The credential the member submitted, e.g. "apc_01HX...". - - `display_name: string` + - `link_id: string` - The credential's display name. + The provisioning link's identifier. - - `previous_credential_id: string` + - `profile_id: string` - The credential that was replaced, e.g. "apc_01HX...". + The agent proxy profile the credential lived in, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The disabled rule that was deleted alongside the credential, e.g. "apr_01HX...". - - `rules_repointed: number` + - `submitted_by_user_id: string` - The number of agent proxy rules that referenced the old credential and now reference the replacement. + The tagged account ID of the user who originally submitted the credential, e.g. "user_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to rotate this credential. Absent on automatic rotations initiated by the system rather than by a user. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. @@ -12051,13 +14477,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyCredentialUpdated object` + - `CcrAgentProxyProvisioningLinkEnabled object` - A Claude Code agent proxy credential's settings were updated. Only the display name and the allowed host patterns can be updated; the secret material can only be replaced through a rotation. + An organization owner enabled a credential that a teammate submitted via an agent proxy provisioning link: the disabled rule created at submission was switched to enforce, so the credential now takes traffic. The actor is the owner; the submitter is the actor on the prior ccr_agent_proxy_provisioning_link_submitted event. - - `type: optional "ccr_agent_proxy_credential_updated"` + - `type: optional "ccr_agent_proxy_provisioning_link_enabled"` - default: ccr_agent_proxy_credential_updated + default: ccr_agent_proxy_provisioning_link_enabled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -12267,66 +14693,30 @@ compliance activities that can be filtered by various criteria. - `credential_id: string` - The credential that was updated, e.g. "apc_01HX...". + The credential the member submitted, e.g. "apc_01HX...". - - `display_name: string` + - `link_id: string` - The credential's display name after the update. + The provisioning link's identifier. - - `host_constraint_truncated: boolean` + - `profile_id: string` - Whether host_constraint was capped and omits some of the configured host name patterns. + The agent proxy profile the credential lives in, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The agent proxy profile the credential belongs to, e.g. "capp_01HX...". + The rule that was flipped to enforce, e.g. "apr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `authorization_basis: optional object or null` - - How the actor was authorized to update this credential. - - - `slack_channel_id: string` - - The Slack channel the credential's agent proxy profile is bound to, e.g. "C01ABC...". - - - `slack_enterprise_id: string` - - The Slack Enterprise Grid organization containing the workspace, e.g. "E01ABC...". Empty when the workspace does not belong to an Enterprise Grid organization. - - - `slack_team_id: string` - - The Slack workspace the credential's agent proxy profile is bound to, e.g. "T01ABC...". - - - `via_entitlement_leg: boolean` - - True when the actor's permission came from a custom role assigned in Roles & permissions. False when it came from a built-in Owner or Admin role. - - - `via_full_manage: boolean` - - True when the actor held the organization-wide Claude Tag management permission. False when the actor was instead authorized for the Slack channel identified below, either via the per-channel `claude_tag_channel:manage` permission or, when `via_account_assignment` is true, via a direct channel-manager assignment. - - - `granting_role_ids: optional array of string` - - The tagged IDs of the custom roles that granted the actor the per-channel `claude_tag_channel:manage` permission, e.g. "rbac_role_01HX...". Empty when `via_full_manage` is true (the actor was authorized by the organization-wide permission, so no per-channel role grant was evaluated) and when `via_account_assignment` is true (no role stands behind a direct assignment). - - - `via_account_assignment: optional boolean or null` - - True when the actor was authorized because an owner or admin assigned them directly as a manager of the Slack channel identified below (see ccr_channel_manager_added), rather than through a permission held via a role. When true, `via_full_manage` and `via_entitlement_leg` are false and `granting_role_ids` is empty. Absent on events recorded before direct channel-manager assignments existed; treat absence as false. - - `created_at: optional string` When this activity occurred. format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to after the update, e.g. "api.example.com" or "*.example.com". Populated only when the update changed them. At most 100 entries are included; host_constraint_truncated indicates when the configured set is larger. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -12335,17 +14725,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` - - Names of the settings included in the update: "display_name", "host_constraint". - - - `CcrAgentProxyDestinationDeleted object` + - `CcrAgentProxyProvisioningLinkGenerated object` - An agent proxy destination was deleted. + An organization owner generated a one-time agent proxy credential provisioning link so a teammate can submit a credential into the target agent proxy profile without holding the owner role. - - `type: optional "ccr_agent_proxy_destination_deleted"` + - `type: optional "ccr_agent_proxy_provisioning_link_generated"` - default: ccr_agent_proxy_destination_deleted + default: ccr_agent_proxy_provisioning_link_generated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -12553,26 +14939,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_with_profile: boolean` - - True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyDestination call. - - - `destination_id: string` + - `link_id: string` - The destination that was deleted, e.g. "apd_01HX...". + The provisioning link's identifier. Correlation only; redemption requires an org-member session, so this is not a bearer credential. - `profile_id: string` - The agent proxy profile the destination belonged to, e.g. "capp_01HX...". + The agent proxy profile the submitted credential will be created in, e.g. "capp_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cascade_trigger_credential_id: optional string or null` - - Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the destination's client_tls_credential was the deleted credential). Unset for a direct DeleteAgentProxyDestination call and for the profile-delete cascade (see deleted_with_profile). - - `created_at: optional string` When this activity occurred. @@ -12587,13 +14965,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyNetworkEventsListed object` + - `CcrAgentProxyProvisioningLinkRevoked object` - A Claude Code network activity export was accessed for the given hour. + An organization owner revoked an unfilled agent proxy provisioning link. - - `type: optional "ccr_agent_proxy_network_events_listed"` + - `type: optional "ccr_agent_proxy_provisioning_link_revoked"` - default: ccr_agent_proxy_network_events_listed + default: ccr_agent_proxy_provisioning_link_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -12801,9 +15179,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `failed: boolean` + - `link_id: string` - True when the export request did not complete successfully. + The provisioning link's identifier. + + - `profile_id: string` + + The agent proxy profile the link targeted, e.g. "capp_01HX...". - `id: optional string` @@ -12815,12 +15197,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `hour: optional string or null` - - The UTC hour that was exported. - - format: date-time - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -12829,13 +15205,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileBound object` + - `CcrAgentProxyProvisioningLinkSubmitted object` - A Claude Code agent proxy profile was bound to a scope, applying its policy to Claude Code sessions in that scope. + A teammate submitted a credential via an agent proxy provisioning link. The credential and a disabled rule are created; the credential takes traffic only after an organization owner enables the submitted credential. This event records the link-mediated lifecycle; the credential itself additionally emits ccr_agent_proxy_credential_created. - - `type: optional "ccr_agent_proxy_profile_bound"` + - `type: optional "ccr_agent_proxy_provisioning_link_submitted"` - default: ccr_agent_proxy_profile_bound + default: ccr_agent_proxy_provisioning_link_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -13043,17 +15419,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `profile_id: string` + - `credential_id: string` - The profile that was bound, e.g. "capp_01HX...". + The credential that was created, e.g. "apc_01HX...". - - `scope_id: string` + - `credential_type: string` - The identifier of the scope the profile was bound to. + The kind of credential, e.g. "bearer" or "basic". - - `scope_kind: string` + - `link_id: string` - The kind of scope the profile was bound to: "organization", "environment", "account", or "agent". + The provisioning link's identifier. + + - `profile_id: string` + + The agent proxy profile the credential was created in, e.g. "capp_01HX...". - `id: optional string` @@ -13065,6 +15445,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `host_constraint: optional array of string` + + The host name patterns the credential may be sent to. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -13073,13 +15457,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileCreated object` + - `CcrAgentProxyRuleCreated object` - A Claude Code agent proxy profile was created. Agent proxy profiles are named, reusable bundles of access policy that administrators bind to parts of the organization. + An agent proxy rule was created. A rule decides what happens to a session's outbound requests that match it. - - `type: optional "ccr_agent_proxy_profile_created"` + - `type: optional "ccr_agent_proxy_rule_created"` - default: ccr_agent_proxy_profile_created + default: ccr_agent_proxy_rule_created + + - `action: "allow" or "deny" or "require_approval" or "unspecified"` + + What the rule does with a matching request. + + - `"allow"` + + - `"deny"` + + - `"require_approval"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -13287,17 +15683,65 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `display_name: string` + - `has_condition: boolean` - The profile's display name at creation time. + Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. + + - `hosts_truncated: boolean` + + Whether hosts was capped and omits some of the configured host name patterns. + + - `injects_credential: boolean` + + Whether the rule adds a managed credential to the requests it allows. + + - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` + + Whether the rule is enforced, only observed, or switched off. + + - `"disabled"` + + - `"enforce"` + + - `"shadow"` + + - `"unspecified"` + + - `path_pattern_count: number` + + How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches; 0 when the rule matches every path. + + - `ports_truncated: boolean` + + Whether ports was capped and omits some of the configured ports. + + - `priority: number` + + Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - `profile_id: string` - The profile that was created, e.g. "capp_01HX...". + The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - `slug: string` + - `protocol: "http" or "mysql" or "postgres" or 3 more` - The profile's URL-safe identifier, unique within the organization. + The kind of connection the rule applies to. + + - `"http"` + + - `"mysql"` + + - `"postgres"` + + - `"ssh"` + + - `"tcp"` + + - `"unspecified"` + + - `rule_id: string` + + The rule that was created, e.g. "apr_01HX...". - `id: optional string` @@ -13309,37 +15753,31 @@ compliance activities that can be filtered by various criteria. format: date-time - - `github_access: optional array of object` - - The GitHub repository access the profile grants, one entry per GitHub App installation. Empty when the profile grants no GitHub access. - - - `access_mode: string` - - How repository access is granted: "none" (no access), "list" (exactly the repositories in repos), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. + - `hosts: optional array of string` - - `github_installation_id: number` + The host name patterns the rule matches, in canonical form (lowercase, internationalized names in their ASCII encoding), e.g. "api.example.com" or "*.example.com". At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - The GitHub App installation the access applies to. + - `injected_credential_id: optional string or null` - - `repo_count: number` + The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - The total number of repositories granted, including any omitted from repos. + - `methods: optional array of string` - - `repos_truncated: boolean` + The HTTP methods the rule matches, e.g. `GET`. Empty when the rule matches every method. - Whether repos was capped and omits some of the granted repositories. + - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - `ghe_configuration_id: optional number or null` + The kinds of change the rule makes to the requests it allows, each listed once. - The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. + - `"inject_credential"` - - `repo_ids: optional array of number` + - `"route_to"` - The numeric GitHub repository IDs the profile grants access to, in the same order as repos (and subject to the same 100-entry cap). These IDs are the authoritative identity of the granted repositories — access is enforced against them, not against the display names in repos. + - `"set_header"` - - `repos: optional array of string` + - `"strip_header"` - Repository names (owner/name) the profile grants access to, populated when access_mode is "list". Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids are the authoritative identity of the granted repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when the granted set is larger. + - `"unspecified"` - `organization_id: optional string or null` @@ -13349,13 +15787,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileDeleted object` + - `ports: optional array of number` - A Claude Code agent proxy profile was deleted, removing its policy from everything it was bound to. + The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - `type: optional "ccr_agent_proxy_profile_deleted"` + - `route_to_destination_id: optional string or null` - default: ccr_agent_proxy_profile_deleted + The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. + + - `CcrAgentProxyRuleDeleted object` + + An agent proxy rule was deleted. + + - `type: optional "ccr_agent_proxy_rule_deleted"` + + default: ccr_agent_proxy_rule_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -13563,38 +16009,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_credential_count: number` - - Number of credentials deleted together with the profile — deleting a profile also deletes the credentials attached to it. Each deleted credential additionally emits its own ccr_agent_proxy_credential_deleted activity, at most 100 per profile deletion. Best-effort: when deleted_credentials_unknown is true the count could not be determined and 0 here does not mean the profile had no credentials. - - - `deleted_credentials_unknown: boolean` - - Whether the number of credentials deleted with the profile could not be determined. When true, deleted_credential_count is 0 and no per-credential deletion activities were emitted, even though the deletion may have destroyed credentials. - - - `deleted_destination_count: number` - - Number of destinations deleted together with the profile. Each deleted destination additionally emits its own ccr_agent_proxy_destination_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_destinations_unknown is true the count could not be determined and 0 here does not mean the profile had no destinations. - - - `deleted_destinations_unknown: boolean` - - Whether the number of destinations deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. - - - `deleted_rule_count: number` + - `deleted_with_profile: boolean` - Number of rules deleted together with the profile. Each deleted rule additionally emits its own ccr_agent_proxy_rule_deleted activity with deleted_with_profile set, at most 100 per profile deletion. Best-effort: when deleted_rules_unknown is true the count could not be determined and 0 here does not mean the profile had no rules. + True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyRule call or a provisioning-link reject (RejectAgentProxyProvisionedCredential) — the reject case also emits CcrAgentProxyProvisioningCredentialRejected with the same rule_id in the same batch. - - `deleted_rules_unknown: boolean` + - `profile_id: string` - Whether the number of rules deleted with the profile could not be determined. Same semantics as deleted_credentials_unknown. + The agent proxy profile the rule belonged to, e.g. "capp_01HX...". - - `profile_id: string` + - `rule_id: string` - The profile that was deleted, e.g. "capp_01HX...". + The rule that was deleted, e.g. "apr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `cascade_trigger_credential_id: optional string or null` + + Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the rule inject_credential-referenced the deleted credential). Unset for a direct DeleteAgentProxyRule call, for the profile-delete cascade (see deleted_with_profile), and for a provisioning-link reject that removed the provisioned rule. + - `created_at: optional string` When this activity occurred. @@ -13609,13 +16043,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileUnbound object` + - `CcrAgentProxyRuleUpdated object` - A Claude Code agent proxy profile was unbound from a scope, removing its policy from Claude Code sessions in that scope. + An agent proxy rule was updated. An update replaces everything the rule matches and does, so the host name patterns here are the rule's complete set after the update. - - `type: optional "ccr_agent_proxy_profile_unbound"` + - `type: optional "ccr_agent_proxy_rule_updated"` - default: ccr_agent_proxy_profile_unbound + default: ccr_agent_proxy_rule_updated + + - `action: "allow" or "deny" or "require_approval" or "unspecified"` + + What the rule does with a matching request. + + - `"allow"` + + - `"deny"` + + - `"require_approval"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -13823,17 +16269,69 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `has_condition: boolean` + + Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. + + - `hosts_truncated: boolean` + + Whether hosts was capped and omits some of the configured host name patterns. + + - `injects_credential: boolean` + + Whether the rule adds a managed credential to the requests it allows. + + - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` + + Whether the rule is enforced, only observed, or switched off. + + - `"disabled"` + + - `"enforce"` + + - `"shadow"` + + - `"unspecified"` + + - `path_pattern_count: number` + + How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches after the update; 0 when the rule matches every path. + + - `ports_truncated: boolean` + + Whether ports was capped and omits some of the configured ports. + + - `priority: number` + + Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. + - `profile_id: string` - The profile that was unbound, e.g. "capp_01HX...". + The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - `scope_id: string` + - `protocol: "http" or "mysql" or "postgres" or 3 more` - The identifier of the scope the profile was unbound from. + The kind of connection the rule applies to. - - `scope_kind: string` + - `"http"` - The kind of scope the profile was unbound from: "organization", "environment", "account", or "agent". + - `"mysql"` + + - `"postgres"` + + - `"ssh"` + + - `"tcp"` + + - `"unspecified"` + + - `rule_id: string` + + The rule that was updated, e.g. "apr_01HX...". + + - `version: number` + + The rule's version after the update; it increases by one on every update. - `id: optional string` @@ -13845,6 +16343,32 @@ compliance activities that can be filtered by various criteria. format: date-time + - `hosts: optional array of string` + + The host name patterns the rule matches after the update, in canonical form (lowercase, internationalized names in their ASCII encoding). At most 100 entries are included; hosts_truncated indicates when the configured set is larger. + + - `injected_credential_id: optional string or null` + + The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. + + - `methods: optional array of string` + + The HTTP methods the rule matches after the update, e.g. `GET`. Empty when the rule matches every method. + + - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` + + The kinds of change the rule makes to the requests it allows after the update, each listed once. + + - `"inject_credential"` + + - `"route_to"` + + - `"set_header"` + + - `"strip_header"` + + - `"unspecified"` + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -13853,13 +16377,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProfileUpdated object` + - `ports: optional array of number` - A Claude Code agent proxy profile's configuration was updated. + The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - `type: optional "ccr_agent_proxy_profile_updated"` + - `route_to_destination_id: optional string or null` - default: ccr_agent_proxy_profile_updated + The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. + + - `CcrAgentSlackAccessScopeCreated object` + + A Claude Code agent was granted access to read or write in an additional Slack channel beyond the one it is assigned to. + + - `type: optional "ccr_agent_slack_access_scope_created"` + + default: ccr_agent_slack_access_scope_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -14067,63 +16599,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `profile_id: string` - - The profile that was updated, e.g. "capp_01HX...". - - - `id: optional string` - - Unique identifier for the activity e.g. 'activity_abcd1234' - - - `created_at: optional string` - - When this activity occurred. - - format: date-time - - - `github_access_changes: optional array of object` - - How the profile's GitHub repository access changed, one entry per GitHub App installation whose access changed. Empty when the update did not change GitHub access. - - - `access_mode: string` - - How repository access is granted after the change: "none" (no access), "list" (access is restricted to an explicit repository list — repos_added/repos_removed carry this change's delta and repo_count the post-change total), or "all" — a legacy value for policies created before per-repository grants were required; it can no longer be assigned. - - - `github_installation_id: number` - - The GitHub App installation the change applies to. - - - `repo_count: number` - - The total number of repositories granted after the change. - - - `repos_truncated: boolean` - - Whether repos_added or repos_removed was capped and omits some of the changed repositories. + - `agent_id: string` - - `ghe_configuration_id: optional number or null` + The agent that was granted access, e.g. "cagt_01HX...". - The GitHub host configuration this installation belongs to. Distinguishes installations with the same numeric installation ID across github.com and GitHub Enterprise Server hosts. Absent for github.com installations. + - `can_write: boolean` - - `previous_access_mode: optional string or null` + Whether the grant includes permission to post messages in the channel, in addition to reading it. - How repository access was granted before the change. Present only when the access mode changed. + - `slack_channel_id: string` - - `repo_ids_added: optional array of number` + The Slack channel the agent was granted access to, e.g. "C01ABC...". Empty when the grant covers the entire workspace. - The numeric GitHub repository IDs added to the granted set, in the same order as repos_added (and subject to the same 100-entry cap). These IDs are the authoritative identity of the added repositories — access is enforced against them, not against the display names in repos_added. + - `slack_team_id: string` - - `repo_ids_removed: optional array of number` + The Slack workspace containing the channel, e.g. "T01ABC...". - The numeric GitHub repository IDs removed from the granted set, in the same order as repos_removed (and subject to the same 100-entry cap). These IDs are the authoritative identity of the removed repositories. + - `id: optional string` - - `repos_added: optional array of string` + Unique identifier for the activity e.g. 'activity_abcd1234' - Repository names (owner/name) added to the granted set. Names are display-only labels resolved when the event was recorded and may lag a repository rename; the entries in repo_ids_added are the authoritative identity of the added repositories. A repository whose name is unavailable is listed as its numeric GitHub repository ID instead. At most 100 entries are included; repos_truncated indicates when more were added. Empty when the change involves "all" access, which grants every repository regardless of any explicit list. + - `created_at: optional string` - - `repos_removed: optional array of string` + When this activity occurred. - Repository names (owner/name) removed from the granted set. Same rendering, cap, and "all" handling as repos_added; repo_ids_removed carries the authoritative identity of the removed repositories. + format: date-time - `organization_id: optional string or null` @@ -14133,17 +16633,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` - - Names of the configuration fields included in the update, e.g. "display_name", "github_installation_permissions". - - - `CcrAgentProxyProvisioningCredentialRejected object` + - `CcrAgentSlackAccessScopeDeleted object` - An organization owner rejected a credential that a teammate submitted via an agent proxy provisioning link: the credential and its disabled rule were deleted and the link was revoked. The actor is the owner; the submitter is recorded for attribution. + A Claude Code agent's access to an additional Slack channel was revoked. - - `type: optional "ccr_agent_proxy_provisioning_credential_rejected"` + - `type: optional "ccr_agent_slack_access_scope_deleted"` - default: ccr_agent_proxy_provisioning_credential_rejected + default: ccr_agent_slack_access_scope_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -14351,25 +16847,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` - - The credential the member submitted, e.g. "apc_01HX...". - - - `link_id: string` - - The provisioning link's identifier. - - - `profile_id: string` + - `agent_id: string` - The agent proxy profile the credential lived in, e.g. "capp_01HX...". + The agent whose access was revoked, e.g. "cagt_01HX...". - - `rule_id: string` + - `slack_channel_id: string` - The disabled rule that was deleted alongside the credential, e.g. "apr_01HX...". + The Slack channel the agent's access was revoked from, e.g. "C01ABC...". Empty when the revoked grant covered the entire workspace. - - `submitted_by_user_id: string` + - `slack_team_id: string` - The tagged account ID of the user who originally submitted the credential, e.g. "user_01HX...". + The Slack workspace containing the channel, e.g. "T01ABC...". - `id: optional string` @@ -14389,13 +16877,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkEnabled object` + - `CcrAgentSlackBindingCreated object` - An organization owner enabled a credential that a teammate submitted via an agent proxy provisioning link: the disabled rule created at submission was switched to enforce, so the credential now takes traffic. The actor is the owner; the submitter is the actor on the prior ccr_agent_proxy_provisioning_link_submitted event. + A Claude Code agent was assigned to a Slack channel or workspace as its dedicated agent. - - `type: optional "ccr_agent_proxy_provisioning_link_enabled"` + - `type: optional "ccr_agent_slack_binding_created"` - default: ccr_agent_proxy_provisioning_link_enabled + default: ccr_agent_slack_binding_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -14603,21 +17091,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` - - The credential the member submitted, e.g. "apc_01HX...". - - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. + The agent the binding was created for, e.g. "cagt_01HX...". - - `profile_id: string` + - `slack_channel_id: string` - The agent proxy profile the credential lives in, e.g. "capp_01HX...". + The Slack channel the agent was assigned to, e.g. "C01ABC...". Empty when the agent was assigned to the entire workspace. - - `rule_id: string` + - `slack_team_id: string` - The rule that was flipped to enforce, e.g. "apr_01HX...". + The Slack workspace the agent was assigned to, e.g. "T01ABC...". - `id: optional string` @@ -14637,13 +17121,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkGenerated object` + - `CcrAgentSlackBindingDeleted object` - An organization owner generated a one-time agent proxy credential provisioning link so a teammate can submit a credential into the target agent proxy profile without holding the owner role. + A Claude Code agent's assignment to a Slack channel or workspace was removed. - - `type: optional "ccr_agent_proxy_provisioning_link_generated"` + - `type: optional "ccr_agent_slack_binding_deleted"` - default: ccr_agent_proxy_provisioning_link_generated + default: ccr_agent_slack_binding_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -14851,13 +17335,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. Correlation only; redemption requires an org-member session, so this is not a bearer credential. + The agent the binding was removed from, e.g. "cagt_01HX...". - - `profile_id: string` + - `slack_channel_id: string` - The agent proxy profile the submitted credential will be created in, e.g. "capp_01HX...". + The Slack channel the agent was unassigned from, e.g. "C01ABC...". Empty when the assignment covered the entire workspace. + + - `slack_team_id: string` + + The Slack workspace the agent was unassigned from, e.g. "T01ABC...". - `id: optional string` @@ -14877,13 +17365,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkRevoked object` + - `CcrAgentUpdated object` - An organization owner revoked an unfilled agent proxy provisioning link. + A Claude Code agent's configuration was updated. Also emitted with updated_fields ["is_virtual"] alone when an auto-provisioned agent is promoted to a configured one, whether by an update request targeting it or by binding an agent proxy profile to it. - - `type: optional "ccr_agent_proxy_provisioning_link_revoked"` + - `type: optional "ccr_agent_updated"` - default: ccr_agent_proxy_provisioning_link_revoked + default: ccr_agent_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -15091,13 +17579,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `link_id: string` + - `agent_id: string` - The provisioning link's identifier. + The agent that was updated, e.g. "cagt_01HX...". - - `profile_id: string` + - `default_source_urls_truncated: boolean` - The agent proxy profile the link targeted, e.g. "capp_01HX...". + Whether default_source_urls was capped and omits some of the granted repositories. + + - `omitted_source_url_count: number` + + Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. - `id: optional string` @@ -15109,6 +17601,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `default_source_urls: optional array of string` + + The agent's default repository URLs after the update, reduced to scheme, host, and path — credentials and query parameters are never included. Populated only when the update changed them — "default_source_urls" appears in updated_fields. Empty while listed in updated_fields AND omitted_source_url_count is 0 means all default repositories were removed. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. + + - `guest_policy: optional string or null` + + The agent's response policy for Slack channels that include guest users and Slack Connect channels shared with other organizations, after the update: "allow", "restrict", "channel" (the agent responds, using only that channel's own content and configuration), or "default" when the update removed the agent-specific policy so the agent inherits the surrounding default. In Slack Connect channels "allow" gives at most "channel" access. Present only when the update changed it. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -15117,13 +17617,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyProvisioningLinkSubmitted object` + - `slack_alias: optional string or null` - A teammate submitted a credential via an agent proxy provisioning link. The credential and a disabled rule are created; the credential takes traffic only after an organization owner enables the submitted credential. This event records the link-mediated lifecycle; the credential itself additionally emits ccr_agent_proxy_credential_created. + The agent's Slack trigger word after the update. Present only when the update changed it. An empty value means the agent responds to bare "@Claude" mentions. - - `type: optional "ccr_agent_proxy_provisioning_link_submitted"` + - `updated_fields: optional array of string` - default: ccr_agent_proxy_provisioning_link_submitted + Names of the configuration fields included in the update, e.g. "display_name", "system_prompt_addendum", "guest_policy". Includes "is_virtual" when this update was the first administrator action on an auto-provisioned agent — a durable state change even when no other field was supplied. + + - `CcrChannelManagerAdded object` + + An org owner/admin assigned an organization member to manage the Claude-in-Slack configuration of one Slack channel. + + - `type: optional "ccr_channel_manager_added"` + + default: ccr_channel_manager_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -15331,21 +17839,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_id: string` + - `agent_id: string` - The credential that was created, e.g. "apc_01HX...". + The channel's Claude agent (cagt_...) the assignment is recorded against. - - `credential_type: string` + - `slack_channel_id: string` - The kind of credential, e.g. "bearer" or "basic". + The Slack channel the member may now manage, e.g. "C01ABC...". - - `link_id: string` + - `slack_team_id: string` - The provisioning link's identifier. + The Slack workspace containing the channel, e.g. "T01ABC...". - - `profile_id: string` + - `user_id: string` - The agent proxy profile the credential was created in, e.g. "capp_01HX...". + Tagged ID of the member who was assigned. - `id: optional string` @@ -15357,10 +17865,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `host_constraint: optional array of string` - - The host name patterns the credential may be sent to. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -15369,25 +17873,261 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyRuleCreated object` + - `CcrChannelManagerRemoved object` - An agent proxy rule was created. A rule decides what happens to a session's outbound requests that match it. + An org owner/admin removed an organization member's assignment to manage the Claude-in-Slack configuration of one Slack channel. - - `type: optional "ccr_agent_proxy_rule_created"` + - `type: optional "ccr_channel_manager_removed"` - default: ccr_agent_proxy_rule_created + default: ccr_channel_manager_removed - - `action: "allow" or "deny" or "require_approval" or "unspecified"` + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` - What the rule does with a matching request. + - `APIActor object` - - `"allow"` + - `type: optional "api_actor"` - - `"deny"` + default: api_actor - - `"require_approval"` + - `api_key_id: string` - - `"unspecified"` + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `agent_id: string` + + The channel's Claude agent (cagt_...) the assignment was recorded against. + + - `slack_channel_id: string` + + The Slack channel the member managed, e.g. "C01ABC...". + + - `slack_team_id: string` + + The Slack workspace containing the channel, e.g. "T01ABC...". + + - `user_id: string` + + Tagged ID of the member whose assignment was removed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `CcrRoleChannelAssignmentDeleted object` + + CcrRoleChannelAssignmentDeleted is emitted when an org owner/admin removes an RBAC role's channel assignment row (the role reverts to granting zero channels). + + - `type: optional "ccr_role_channel_assignment_deleted"` + + default: ccr_role_channel_assignment_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -15595,65 +18335,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `has_condition: boolean` - - Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. - - - `hosts_truncated: boolean` - - Whether hosts was capped and omits some of the configured host name patterns. - - - `injects_credential: boolean` - - Whether the rule adds a managed credential to the requests it allows. - - - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` - - Whether the rule is enforced, only observed, or switched off. - - - `"disabled"` - - - `"enforce"` - - - `"shadow"` - - - `"unspecified"` - - - `path_pattern_count: number` - - How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches; 0 when the rule matches every path. - - - `ports_truncated: boolean` - - Whether ports was capped and omits some of the configured ports. - - - `priority: number` - - Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - - - `profile_id: string` - - The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - - `protocol: "http" or "mysql" or "postgres" or 3 more` - - The kind of connection the rule applies to. - - - `"http"` - - - `"mysql"` - - - `"postgres"` - - - `"ssh"` - - - `"tcp"` + - `previous_channel_count: number` - - `"unspecified"` + Number of (team, channel) pairs the role was assigned before deletion. - - `rule_id: string` + - `role_id: string` - The rule that was created, e.g. "apr_01HX...". + Tagged ID of the role whose channel assignment was removed. - `id: optional string` @@ -15665,32 +18353,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `hosts: optional array of string` - - The host name patterns the rule matches, in canonical form (lowercase, internationalized names in their ASCII encoding), e.g. "api.example.com" or "*.example.com". At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - - - `injected_credential_id: optional string or null` - - The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - - - `methods: optional array of string` - - The HTTP methods the rule matches, e.g. `GET`. Empty when the rule matches every method. - - - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - The kinds of change the rule makes to the requests it allows, each listed once. - - - `"inject_credential"` - - - `"route_to"` - - - `"set_header"` - - - `"strip_header"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -15699,21 +18361,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ports: optional array of number` - - The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - - `route_to_destination_id: optional string or null` - - The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. - - - `CcrAgentProxyRuleDeleted object` + - `CcrRoleChannelAssignmentUpdated object` - An agent proxy rule was deleted. + CcrRoleChannelAssignmentUpdated is emitted when an org owner/admin sets or replaces the list of Slack channels an RBAC role's holders may configure via the delegated Claude-in-Slack channel-manage surface. - - `type: optional "ccr_agent_proxy_rule_deleted"` + - `type: optional "ccr_role_channel_assignment_updated"` - default: ccr_agent_proxy_rule_deleted + default: ccr_role_channel_assignment_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -15921,25 +18575,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_with_profile: boolean` + - `channel_count: number` - True when this deletion happened as part of deleting the whole profile (profile_id names the deleted profile). At most one of deleted_with_profile / cascade_trigger_credential_id is set; both unset means a direct DeleteAgentProxyRule call or a provisioning-link reject (RejectAgentProxyProvisionedCredential) — the reject case also emits CcrAgentProxyProvisioningCredentialRejected with the same rule_id in the same batch. + Number of channels assigned after the write. - - `profile_id: string` + - `previous_channel_count: number` - The agent proxy profile the rule belonged to, e.g. "capp_01HX...". + Number of channels assigned before the write. - - `rule_id: string` + - `role_id: string` - The rule that was deleted, e.g. "apr_01HX...". + Tagged ID of the role whose channel assignment was written. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `cascade_trigger_credential_id: optional string or null` + - `agent_ids: optional array of string` - Set when this deletion was triggered by a cascading DeleteAgentProxyCredential (the rule inject_credential-referenced the deleted credential). Unset for a direct DeleteAgentProxyRule call, for the profile-delete cascade (see deleted_with_profile), and for a provisioning-link reject that removed the provisioned rule. + The channel-silo agents (cagt_...) assigned after the write. Capped at 100 entries; channel_count carries the uncapped total. - `created_at: optional string` @@ -15955,25 +18609,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentProxyRuleUpdated object` - - An agent proxy rule was updated. An update replaces everything the rule matches and does, so the host name patterns here are the rule's complete set after the update. - - - `type: optional "ccr_agent_proxy_rule_updated"` - - default: ccr_agent_proxy_rule_updated - - - `action: "allow" or "deny" or "require_approval" or "unspecified"` - - What the rule does with a matching request. - - - `"allow"` + - `CcrSessionCreated object` - - `"deny"` + A Claude Code session was created. A session is one coding interaction with Claude. - - `"require_approval"` + - `type: optional "ccr_session_created"` - - `"unspecified"` + default: ccr_session_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -16181,106 +18823,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `has_condition: boolean` - - Whether the rule carries a custom condition expression that further narrows the requests it matches beyond the host name patterns, ports, methods and paths. - - - `hosts_truncated: boolean` - - Whether hosts was capped and omits some of the configured host name patterns. - - - `injects_credential: boolean` - - Whether the rule adds a managed credential to the requests it allows. - - - `mode: "disabled" or "enforce" or "shadow" or "unspecified"` - - Whether the rule is enforced, only observed, or switched off. - - - `"disabled"` - - - `"enforce"` - - - `"shadow"` - - - `"unspecified"` - - - `path_pattern_count: number` - - How many request path patterns (prefixes or regular expressions) narrow the requests the rule matches after the update; 0 when the rule matches every path. - - - `ports_truncated: boolean` - - Whether ports was capped and omits some of the configured ports. - - - `priority: number` - - Where the rule is evaluated among the profile's rules: a lower number is evaluated first, and the first matching rule decides the request. - - - `profile_id: string` - - The agent proxy profile the rule belongs to, e.g. "capp_01HX...". - - - `protocol: "http" or "mysql" or "postgres" or 3 more` - - The kind of connection the rule applies to. - - - `"http"` - - - `"mysql"` - - - `"postgres"` - - - `"ssh"` - - - `"tcp"` - - - `"unspecified"` - - - `rule_id: string` - - The rule that was updated, e.g. "apr_01HX...". - - - `version: number` + - `session_id: string` - The rule's version after the update; it increases by one on every update. + The session that was created, e.g. "cse_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `agent_id: optional string or null` + + The Claude Code agent attached to the session, e.g. "cagt_01HX...". Omitted when the session was created without an agent. + - `created_at: optional string` When this activity occurred. format: date-time - - `hosts: optional array of string` - - The host name patterns the rule matches after the update, in canonical form (lowercase, internationalized names in their ASCII encoding). At most 100 entries are included; hosts_truncated indicates when the configured set is larger. - - - `injected_credential_id: optional string or null` - - The managed credential the rule adds to the requests it allows, e.g. "apc_01HX...". Unset when the rule adds none. - - - `methods: optional array of string` - - The HTTP methods the rule matches after the update, e.g. `GET`. Empty when the rule matches every method. - - - `mutation_kinds: optional array of "inject_credential" or "route_to" or "set_header" or 2 more` - - The kinds of change the rule makes to the requests it allows after the update, each listed once. - - - `"inject_credential"` - - - `"route_to"` - - - `"set_header"` - - - `"strip_header"` - - - `"unspecified"` - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -16289,21 +18849,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ports: optional array of number` - - The TCP ports the rule matches, e.g. 443. At most 100 entries are included; ports_truncated indicates when the configured set is larger. - - - `route_to_destination_id: optional string or null` - - The configured destination the rule sends allowed requests to instead of the host they name, e.g. "apd_01HX...". Unset when the rule reroutes nothing. - - - `CcrAgentSlackAccessScopeCreated object` + - `CcrSessionDeleted object` - A Claude Code agent was granted access to read or write in an additional Slack channel beyond the one it is assigned to. + A Claude Code session was deleted. - - `type: optional "ccr_agent_slack_access_scope_created"` + - `type: optional "ccr_session_deleted"` - default: ccr_agent_slack_access_scope_created + default: ccr_session_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -16511,21 +19063,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was granted access, e.g. "cagt_01HX...". - - - `can_write: boolean` - - Whether the grant includes permission to post messages in the channel, in addition to reading it. - - - `slack_channel_id: string` - - The Slack channel the agent was granted access to, e.g. "C01ABC...". Empty when the grant covers the entire workspace. - - - `slack_team_id: string` + - `session_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + The session that was deleted, e.g. "cse_01HX...". - `id: optional string` @@ -16545,13 +19085,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackAccessScopeDeleted object` + - `CcrSessionUpdated object` - A Claude Code agent's access to an additional Slack channel was revoked. + A Claude Code session's settings were updated. - - `type: optional "ccr_agent_slack_access_scope_deleted"` + - `type: optional "ccr_session_updated"` - default: ccr_agent_slack_access_scope_deleted + default: ccr_session_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -16759,17 +19299,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent whose access was revoked, e.g. "cagt_01HX...". - - - `slack_channel_id: string` - - The Slack channel the agent's access was revoked from, e.g. "C01ABC...". Empty when the revoked grant covered the entire workspace. - - - `slack_team_id: string` + - `session_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + The session that was updated, e.g. "cse_01HX...". - `id: optional string` @@ -16789,13 +19321,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackBindingCreated object` + - `updated_fields: optional array of string` - A Claude Code agent was assigned to a Slack channel or workspace as its dedicated agent. + Names of the fields included in the update, e.g. "add_tags", "remove_tags". - - `type: optional "ccr_agent_slack_binding_created"` + - `CcrSlackChannelJoined object` - default: ccr_agent_slack_binding_created + Claude's Slack app joined a public Slack channel at an organization administrator's request. + + - `type: optional "ccr_slack_channel_joined"` + + default: ccr_slack_channel_joined - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -17003,17 +19539,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent the binding was created for, e.g. "cagt_01HX...". - - `slack_channel_id: string` - The Slack channel the agent was assigned to, e.g. "C01ABC...". Empty when the agent was assigned to the entire workspace. + The Slack channel the app joined, e.g. "C01ABC...". - `slack_team_id: string` - The Slack workspace the agent was assigned to, e.g. "T01ABC...". + The Slack workspace containing the channel, e.g. "T01ABC...". - `id: optional string` @@ -17033,13 +19565,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentSlackBindingDeleted object` + - `ClaudeChatSettingsUpdated object` - A Claude Code agent's assignment to a Slack channel or workspace was removed. + User updated the settings for a conversation. - - `type: optional "ccr_agent_slack_binding_deleted"` + - `type: optional "claude_chat_settings_updated"` - default: ccr_agent_slack_binding_deleted + default: claude_chat_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -17247,17 +19779,249 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` + - `claude_chat_id: string` - The agent the binding was removed from, e.g. "cagt_01HX...". + Tagged ID of the conversation whose settings were updated, e.g. "claude_chat_01HX...". - - `slack_channel_id: string` + - `id: optional string` - The Slack channel the agent was unassigned from, e.g. "C01ABC...". Empty when the assignment covered the entire workspace. + Unique identifier for the activity e.g. 'activity_abcd1234' - - `slack_team_id: string` + - `claude_project_id: optional string or null` - The Slack workspace the agent was unassigned from, e.g. "T01ABC...". + Project ID this chat belongs to, if any + + - `created_at: optional string` + + When this activity occurred. + + format: date-time + + - `organization_id: optional string or null` + + Organization ID this activity is associated with + + - `organization_uuid: optional string or null` + + Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). + + - `ClaudeChatSnapshotCreated object` + + User created/shared a chat snapshot. + + - `type: optional "claude_chat_snapshot_created"` + + default: claude_chat_snapshot_created + + - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` + + - `APIActor object` + + - `type: optional "api_actor"` + + default: api_actor + + - `api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `UserActor object` + + - `type: optional "user_actor"` + + default: user_actor + + - `email_address: string` + + format: email + + - `ip_address: string` + + - `user_agent: string` + + - `user_id: string` + + - `UnauthenticatedUserActor object` + + - `type: optional "unauthenticated_user_actor"` + + default: unauthenticated_user_actor + + - `ip_address: string` + + - `user_agent: string` + + - `unauthenticated_email_address: optional string or null` + + format: email + + - `AnthropicActor object` + + - `type: optional "anthropic_actor"` + + default: anthropic_actor + + - `email_address: optional string or null` + + format: email + + - `SystemActor object` + + Automated background processing performed by Anthropic systems, acting + without a user or customer credential. + + - `type: optional "system_actor"` + + default: system_actor + + - `service: optional string or null` + + Name of the automated process that performed the action, when known. + + - `AdminAPIKeyActor object` + + - `type: optional "admin_api_key_actor"` + + default: admin_api_key_actor + + - `admin_api_key_id: string` + + - `ip_address: string` + + - `user_agent: string` + + - `ServiceAccountActor object` + + - `type: optional "service_account_actor"` + + default: service_account_actor + + - `ip_address: string` + + - `service_account_id: string` + + - `user_agent: string` + + - `ScimDirectorySyncActor object` + + - `type: optional "scim_directory_sync_actor"` + + default: scim_directory_sync_actor + + - `directory_id: string` + + - `workos_event_id: string` + + - `idp_connection_type: optional string or null` + + - `FederatedIdentityActor object` + + A federated external workload authenticated via a verified OIDC token. + + Carries the verified issuer, subject, and audience claims from the + presented JWT. + + - `type: optional "federated_identity_actor"` + + default: federated_identity_actor + + - `issuer: string` + + - `subject: string` + + - `audience: optional array of string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `FederatedActor object` + + An external identity asserted by a trusted provider — a cloud-provider + gateway or a customer-registered federation issuer — acting without an + Anthropic-provisioned account or service account. + + - `type: optional "federated_actor"` + + default: federated_actor + + - `provider: FederatedActorAwsProvider or FederatedActorAzureProvider or FederatedActorGcpProvider or FederatedActorOidcProvider` + + - `FederatedActorAwsProvider object` + + Asserting party: the AWS account the organization is bound to. + + - `type: optional "aws"` + + default: aws + + - `account_id: string` + + - `signed_principal: string` + + The AWS-signed ARN of the IAM principal that requested the token. + + - `FederatedActorAzureProvider object` + + Asserting party: the Azure subscription the organization is bound to. + + - `type: optional "azure"` + + default: azure + + - `subscription_id: string` + + - `FederatedActorGcpProvider object` + + Asserting party: the GCP project the organization is bound to. + + - `type: optional "gcp"` + + default: gcp + + - `project_number: string` + + - `FederatedActorOidcProvider object` + + Asserting party: a customer-registered OIDC federation issuer. + + - `type: optional "oidc"` + + default: oidc + + - `issuer: optional string or null` + + The federation issuer's URL. Null when the presented credential failed verification. + + - `ip_address: optional string or null` + + - `subject: optional string or null` + + The provider's verified identifier for the caller; its form depends on the provider. + + - `user_agent: optional string or null` + + - `AttestedDeviceActor object` + + An attested mobile device authenticated via Apple App Attest. + + - `type: optional "attested_device_actor"` + + default: attested_device_actor + + - `external_client_id: string` + + - `kid_hash: string` + + - `ip_address: optional string or null` + + - `user_agent: optional string or null` + + - `claude_chat_id: string` + + - `claude_chat_snapshot_id: string` - `id: optional string` @@ -17277,13 +20041,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrAgentUpdated object` + - `ClaudeChatSnapshotDeleted object` - A Claude Code agent's configuration was updated. Also emitted with updated_fields ["is_virtual"] alone when an auto-provisioned agent is promoted to a configured one, whether by an update request targeting it or by binding an agent proxy profile to it. + User deleted/unshared a chat snapshot. - - `type: optional "ccr_agent_updated"` + - `type: optional "claude_chat_snapshot_deleted"` - default: ccr_agent_updated + default: claude_chat_snapshot_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -17491,36 +20255,20 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The agent that was updated, e.g. "cagt_01HX...". - - - `default_source_urls_truncated: boolean` - - Whether default_source_urls was capped and omits some of the granted repositories. - - - `omitted_source_url_count: number` - - Number of default repository entries that could not be safely rendered as a credential-free URL and were omitted from default_source_urls. A non-zero value with an empty list means repositories were granted but could not be displayed — not that all repositories were removed. + - `claude_chat_snapshot_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + - `created_at: optional string` When this activity occurred. format: date-time - - `default_source_urls: optional array of string` - - The agent's default repository URLs after the update, reduced to scheme, host, and path — credentials and query parameters are never included. Populated only when the update changed them — "default_source_urls" appears in updated_fields. Empty while listed in updated_fields AND omitted_source_url_count is 0 means all default repositories were removed. At most 100 entries are included; default_source_urls_truncated indicates when more were granted. - - - `guest_policy: optional string or null` - - The agent's response policy for Slack channels that include guest users and Slack Connect channels shared with other organizations, after the update: "allow", "restrict", "channel" (the agent responds, using only that channel's own content and configuration), or "default" when the update removed the agent-specific policy so the agent inherits the surrounding default. In Slack Connect channels "allow" gives at most "channel" access. Present only when the update changed it. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -17529,21 +20277,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `slack_alias: optional string or null` - - The agent's Slack trigger word after the update. Present only when the update changed it. An empty value means the agent responds to bare "@Claude" mentions. - - - `updated_fields: optional array of string` - - Names of the configuration fields included in the update, e.g. "display_name", "system_prompt_addendum", "guest_policy". Includes "is_virtual" when this update was the first administrator action on an auto-provisioned agent — a durable state change even when no other field was supplied. - - - `CcrChannelManagerAdded object` + - `ClaudeChatSnapshotViewed object` - An org owner/admin assigned an organization member to manage the Claude-in-Slack configuration of one Slack channel. + User viewed a chat snapshot (authenticated or public/unauthenticated). - - `type: optional "ccr_channel_manager_added"` + - `type: optional "claude_chat_snapshot_viewed"` - default: ccr_channel_manager_added + default: claude_chat_snapshot_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -17751,26 +20491,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The channel's Claude agent (cagt_...) the assignment is recorded against. - - - `slack_channel_id: string` - - The Slack channel the member may now manage, e.g. "C01ABC...". - - - `slack_team_id: string` - - The Slack workspace containing the channel, e.g. "T01ABC...". - - - `user_id: string` - - Tagged ID of the member who was assigned. + - `claude_chat_snapshot_id: string` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + - `created_at: optional string` When this activity occurred. @@ -17785,13 +20513,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrChannelManagerRemoved object` + - `ClaudeArtifactDuplicated object` - An org owner/admin removed an organization member's assignment to manage the Claude-in-Slack configuration of one Slack channel. + A user duplicated an artifact they could view into a new artifact that they own. The actor is the user who created the copy; the source artifact is not modified. - - `type: optional "ccr_channel_manager_removed"` + - `type: optional "claude_artifact_duplicated"` - default: ccr_channel_manager_removed + default: claude_artifact_duplicated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -17999,21 +20727,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `agent_id: string` - - The channel's Claude agent (cagt_...) the assignment was recorded against. - - - `slack_channel_id: string` - - The Slack channel the member managed, e.g. "C01ABC...". - - - `slack_team_id: string` + - `claude_artifact_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + Tagged ID of the new artifact created by the duplication. It is owned by the actor and is independent of the source artifact. - - `user_id: string` + - `source_claude_artifact_id: string` - Tagged ID of the member whose assignment was removed. + Tagged ID of the artifact that was copied. - `id: optional string` @@ -18033,13 +20753,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrRoleChannelAssignmentDeleted object` + - `source_claude_artifact_version_id: optional string or null` - CcrRoleChannelAssignmentDeleted is emitted when an org owner/admin removes an RBAC role's channel assignment row (the role reverts to granting zero channels). + The version of the source artifact that was copied into the new artifact. - - `type: optional "ccr_role_channel_assignment_deleted"` + - `ClaudeArtifactExternalSharingPermissionUpdated object` - default: ccr_role_channel_assignment_deleted + An organization admin allowed one artifact to be shared outside the organization by link while the organization-wide external sharing setting was off, or revoked that permission. + + - `type: optional "claude_artifact_external_sharing_permission_updated"` + + default: claude_artifact_external_sharing_permission_updated + + - `action: "allowed" or "revoked" or "unspecified"` + + Whether the permission was allowed or revoked. + + - `"allowed"` + + - `"revoked"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -18247,13 +20981,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `previous_channel_count: number` - - Number of (team, channel) pairs the role was assigned before deletion. - - - `role_id: string` + - `claude_artifact_id: string` - Tagged ID of the role whose channel assignment was removed. + Tagged ID of the artifact. - `id: optional string` @@ -18273,13 +21003,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrRoleChannelAssignmentUpdated object` + - `ClaudeArtifactInviteAccepted object` - CcrRoleChannelAssignmentUpdated is emitted when an org owner/admin sets or replaces the list of Slack channels an RBAC role's holders may configure via the delegated Claude-in-Slack channel-manage surface. + Someone outside the organization signed in with a verified account for the invited address and accepted an invitation to an artifact, and can now open it; recorded in the artifact owner's organization. The person who accepted is identified by `invitee_email` and `invitee_user_id`. - - `type: optional "ccr_role_channel_assignment_updated"` + - `type: optional "claude_artifact_invite_accepted"` - default: ccr_role_channel_assignment_updated + default: claude_artifact_invite_accepted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -18487,25 +21217,29 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `channel_count: number` + - `claude_artifact_id: string` - Number of channels assigned after the write. + Tagged ID of the artifact the invitation is for. - - `previous_channel_count: number` + - `claude_artifact_invite_id: string` - Number of channels assigned before the write. + Tagged ID of the invitation that was accepted. - - `role_id: string` + - `invitee_email: string` - Tagged ID of the role whose channel assignment was written. + Email address the invitation was sent to. - - `id: optional string` + - `invitee_user_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged user ID of the account outside the organization that accepted the invitation. - - `agent_ids: optional array of string` + - `role: string` - The channel-silo agents (cagt_...) assigned after the write. Capped at 100 entries; channel_count carries the uncapped total. + The access level the invitation grants, for example `reader`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -18521,13 +21255,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionCreated object` + - `ClaudeArtifactInviteCreated object` - A Claude Code session was created. A session is one coding interaction with Claude. + A member invited (or re-invited) an email address outside the organization to an artifact; recorded in the artifact owner's organization with the inviting member as the actor. - - `type: optional "ccr_session_created"` + - `type: optional "claude_artifact_invite_created"` - default: ccr_session_created + default: claude_artifact_invite_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -18735,17 +21469,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was created, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation is for. - - `id: optional string` + - `claude_artifact_invite_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Tagged ID of the invitation; the same ID appears on the accepted, role-updated and revoked activities for this invitation, including a later re-invitation of the same address. - - `agent_id: optional string or null` + - `invitee_email: string` - The Claude Code agent attached to the session, e.g. "cagt_01HX...". Omitted when the session was created without an agent. + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation grants, for example `reader`. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -18761,13 +21503,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionDeleted object` + - `ClaudeArtifactInviteRevoked object` - A Claude Code session was deleted. + A member withdrew an invitation to an artifact for someone outside the organization, removing any access that invitation had granted; recorded in the artifact owner's organization with that member as the actor. - - `type: optional "ccr_session_deleted"` + - `type: optional "claude_artifact_invite_revoked"` - default: ccr_session_deleted + default: claude_artifact_invite_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -18975,9 +21717,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was deleted, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation was for. + + - `claude_artifact_invite_id: string` + + Tagged ID of the invitation that was withdrawn. + + - `invitee_email: string` + + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation granted, for example `reader`. - `id: optional string` @@ -18989,6 +21743,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `invitee_user_id: optional string or null` + + Tagged user ID of the account outside the organization that had accepted the invitation; absent when it was withdrawn before anyone accepted. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -18997,13 +21755,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `CcrSessionUpdated object` + - `ClaudeArtifactInviteRoleUpdated object` - A Claude Code session's settings were updated. + A member changed the access level of an email invitation to an artifact for someone outside the organization, whether the invitation was still pending or had been accepted; recorded in the artifact owner's organization with that member as the actor. - - `type: optional "ccr_session_updated"` + - `type: optional "claude_artifact_invite_role_updated"` - default: ccr_session_updated + default: claude_artifact_invite_role_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -19211,9 +21969,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `claude_artifact_id: string` - The session that was updated, e.g. "cse_01HX...". + Tagged ID of the artifact the invitation is for. + + - `claude_artifact_invite_id: string` + + Tagged ID of the invitation whose access level was changed. + + - `invitee_email: string` + + Email address the invitation was sent to. + + - `role: string` + + The access level the invitation grants after the change, for example `reader`. - `id: optional string` @@ -19225,6 +21995,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `invitee_user_id: optional string or null` + + Tagged user ID of the account outside the organization that had accepted the invitation; absent while the invitation is pending. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -19233,17 +22007,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `updated_fields: optional array of string` + - `previous_role: optional string or null` - Names of the fields included in the update, e.g. "add_tags", "remove_tags". + The access level the invitation granted before the change, for example `commenter`. - - `CcrSlackChannelJoined object` + - `ClaudeArtifactSentToPartner object` - Claude's Slack app joined a public Slack channel at an organization administrator's request. + A member sent an export of an artifact to a partner application ("Send to …" on the artifact; a partner is a third-party application listed in Claude's connector directory): a file exported from the artifact was made available over a temporary link for the chosen partner to fetch. One activity is recorded per send, in the artifact owner's organization with the sending member as actor, whether or not the partner then retrieved the file; the partner's own import of the file is not part of this record. The file's name and contents are not recorded. - - `type: optional "ccr_slack_channel_joined"` + - `type: optional "claude_artifact_sent_to_partner"` - default: ccr_slack_channel_joined + default: claude_artifact_sent_to_partner - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -19451,13 +22225,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `slack_channel_id: string` + - `claude_artifact_id: string` - The Slack channel the app joined, e.g. "C01ABC...". + Tagged ID of the artifact the file was exported from. - - `slack_team_id: string` + - `claude_artifact_send_id: string` - The Slack workspace containing the channel, e.g. "T01ABC...". + Tagged ID of this send; a new one for every link created, so two sends of the same artifact to the same partner are distinct. + + - `claude_artifact_version_id: string` + + The version of the artifact served to the member when they sent it. + + - `mime_type: string` + + MIME type of the exported file, for example `text/html`. + + - `size_bytes: number` + + Size of the exported file in bytes. - `id: optional string` @@ -19477,13 +22263,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSettingsUpdated object` + - `partner_mcp_directory_server_id: optional string or null` - User updated the settings for a conversation. + Tagged ID of the partner's MCP directory listing (the listing's public ID), as reported by the member's Claude app when it sent the file. It is not independently verified, and is absent when the app did not report a valid listing ID. - - `type: optional "claude_chat_settings_updated"` + - `ClaudeArtifactTypeDefaultUpdated object` - default: claude_chat_settings_updated + An organization's default artifact for an artifact type (for example, its default design system) was set or cleared. Neither artifact named is itself modified. + + - `type: optional "claude_artifact_type_default_updated"` + + default: claude_artifact_type_default_updated + + - `action: "cleared" or "set" or "unspecified"` + + Whether the default was set or cleared. + + - `"cleared"` + + - `"set"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -19691,17 +22491,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `claude_artifact_id: string` - Tagged ID of the conversation whose settings were updated, e.g. "claude_chat_01HX...". + Tagged ID of the artifact that was made the default, or of the artifact that was the default until it was cleared. - - `id: optional string` + - `scope: "org" or "unspecified"` - Unique identifier for the activity e.g. 'activity_abcd1234' + Whose default changed. - - `claude_project_id: optional string or null` + - `"org"` - Project ID this chat belongs to, if any + - `"unspecified"` + + - `type_claude_artifact_id: string` + + Tagged ID of the published artifact that defines the template (for example, the design-system template) whose default changed. + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -19717,13 +22525,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotCreated object` + - `ClaudeArtifactTypePinUpdated object` - User created/shared a chat snapshot. + An artifact was pinned or unpinned for an artifact type (for example, a design system was pinned so every member sees it in their picker). Neither artifact named is itself modified, and pinning does not change who can open it. - - `type: optional "claude_chat_snapshot_created"` + - `type: optional "claude_artifact_type_pin_updated"` - default: claude_chat_snapshot_created + default: claude_artifact_type_pin_updated + + - `action: "pinned" or "unpinned" or "unspecified"` + + Whether the artifact was pinned or unpinned. + + - `"pinned"` + + - `"unpinned"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -19931,9 +22749,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `claude_artifact_id: string` - - `claude_chat_snapshot_id: string` + Tagged ID of the artifact that was pinned or unpinned. + + - `type_claude_artifact_id: string` + + Tagged ID of the published artifact that defines the template (for example, the design-system template) the pin belongs to. - `id: optional string` @@ -19953,13 +22775,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotDeleted object` + - `ClaudeChatAccessFailed object` - User deleted/unshared a chat snapshot. + A user was denied access to a Claude.ai chat conversation. - - `type: optional "claude_chat_snapshot_deleted"` + - `type: optional "claude_chat_access_failed"` - default: claude_chat_snapshot_deleted + default: claude_chat_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -20167,14 +22989,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_snapshot_id: string` + - `claude_chat_id: string` + + The chat conversation the user was denied access to, e.g. "claude_chat_01Ab...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` - - `created_at: optional string` When this activity occurred. @@ -20189,13 +23011,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSnapshotViewed object` + - `ClaudeChatCreated object` - User viewed a chat snapshot (authenticated or public/unauthenticated). + User created a chat. - - `type: optional "claude_chat_snapshot_viewed"` + - `type: optional "claude_chat_created"` - default: claude_chat_snapshot_viewed + default: claude_chat_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -20403,13 +23225,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_snapshot_id: string` + - `claude_chat_id: string` + + Tagged ID of the created conversation, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` + - `claude_project_id: optional string or null` + + Tagged ID of the project the chat was created in, if any, e.g. "claude_proj_01HX...". - `created_at: optional string` @@ -20425,13 +23251,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactDuplicated object` + - `ClaudeChatDeleted object` - A user duplicated an artifact they could view into a new artifact that they own. The actor is the user who created the copy; the source artifact is not modified. + A user deleted a Claude.ai chat conversation. - - `type: optional "claude_artifact_duplicated"` + - `type: optional "claude_chat_deleted"` - default: claude_artifact_duplicated + default: claude_chat_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -20639,18 +23465,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the new artifact created by the duplication. It is owned by the actor and is independent of the source artifact. - - - `source_claude_artifact_id: string` + - `claude_chat_id: string` - Tagged ID of the artifact that was copied. + The chat conversation that was deleted, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + The project the chat belonged to, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -20665,27 +23491,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `source_claude_artifact_version_id: optional string or null` - - The version of the source artifact that was copied into the new artifact. - - - `ClaudeArtifactExternalSharingPermissionUpdated object` - - An organization admin allowed one artifact to be shared outside the organization by link while the organization-wide external sharing setting was off, or revoked that permission. - - - `type: optional "claude_artifact_external_sharing_permission_updated"` - - default: claude_artifact_external_sharing_permission_updated - - - `action: "allowed" or "revoked" or "unspecified"` - - Whether the permission was allowed or revoked. + - `ClaudeChatDeletionFailed object` - - `"allowed"` + A request to delete a Claude.ai chat conversation failed. - - `"revoked"` + - `type: optional "claude_chat_deletion_failed"` - - `"unspecified"` + default: claude_chat_deletion_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -20893,9 +23705,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `claude_chat_id: string` - Tagged ID of the artifact. + The chat conversation the user attempted to delete, e.g. "claude_chat_01HX...". - `id: optional string` @@ -20915,13 +23727,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteAccepted object` + - `ClaudeChatSyncSourceCreated object` - Someone outside the organization signed in with a verified account for the invited address and accepted an invitation to an artifact, and can now open it; recorded in the artifact owner's organization. The person who accepted is identified by `invitee_email` and `invitee_user_id`. + A sync source was connected for syncing external content into Claude chats. - - `type: optional "claude_artifact_invite_accepted"` + - `type: optional "claude_chat_sync_source_created"` - default: claude_artifact_invite_accepted + default: claude_chat_sync_source_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -21129,25 +23941,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation that was accepted. - - - `invitee_email: string` - - Email address the invitation was sent to. - - - `invitee_user_id: string` + - `claude_chat_sync_source_id: string` - Tagged user ID of the account outside the organization that accepted the invitation. + Tagged ID of the chat-scoped sync source that was created. - - `role: string` + - `provider: string` - The access level the invitation grants, for example `reader`. + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. - `id: optional string` @@ -21167,13 +23967,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteCreated object` + - `resource_descriptor: optional string or null` - A member invited (or re-invited) an email address outside the organization to an artifact; recorded in the artifact owner's organization with the inviting member as the actor. + A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_artifact_invite_created"` + - `ClaudeChatSyncSourceDeleted object` - default: claude_artifact_invite_created + A sync source was disconnected from Claude chats. + + - `type: optional "claude_chat_sync_source_deleted"` + + default: claude_chat_sync_source_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -21381,21 +24185,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation; the same ID appears on the accepted, role-updated and revoked activities for this invitation, including a later re-invitation of the same address. - - - `invitee_email: string` + - `claude_chat_sync_source_id: string` - Email address the invitation was sent to. + Tagged ID of the chat-scoped sync source that was deleted. - - `role: string` + - `provider: string` - The access level the invitation grants, for example `reader`. + The external provider backing the sync source. Always `unspecified` for deletion events. - `id: optional string` @@ -21415,13 +24211,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteRevoked object` + - `ClaudeChatSyncSourceUpdated object` - A member withdrew an invitation to an artifact for someone outside the organization, removing any access that invitation had granted; recorded in the artifact owner's organization with that member as the actor. + A Claude chat sync source's configuration was updated. - - `type: optional "claude_artifact_invite_revoked"` + - `type: optional "claude_chat_sync_source_updated"` - default: claude_artifact_invite_revoked + default: claude_chat_sync_source_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -21629,36 +24425,28 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation was for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation that was withdrawn. - - - `invitee_email: string` + - `claude_chat_sync_source_id: string` - Email address the invitation was sent to. + Tagged ID of the chat-scoped sync source that was updated. - - `role: string` + - `provider: string` - The access level the invitation granted, for example `reader`. + The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `config_changed: optional boolean or null` + + Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. + - `created_at: optional string` When this activity occurred. format: date-time - - `invitee_user_id: optional string or null` - - Tagged user ID of the account outside the organization that had accepted the invitation; absent when it was withdrawn before anyone accepted. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -21667,13 +24455,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactInviteRoleUpdated object` + - `resource_descriptor: optional string or null` - A member changed the access level of an email invitation to an artifact for someone outside the organization, whether the invitation was still pending or had been accepted; recorded in the artifact owner's organization with that member as the actor. + A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - `type: optional "claude_artifact_invite_role_updated"` + - `ClaudeChatUpdated object` - default: claude_artifact_invite_role_updated + User updated the chat metadata (e.g name, model). + + - `type: optional "claude_chat_updated"` + + default: claude_chat_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -21881,36 +24673,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the invitation is for. - - - `claude_artifact_invite_id: string` - - Tagged ID of the invitation whose access level was changed. - - - `invitee_email: string` - - Email address the invitation was sent to. - - - `role: string` + - `claude_chat_id: string` - The access level the invitation grants after the change, for example `reader`. + Tagged ID of the updated conversation, e.g. "claude_chat_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + Tagged ID of the project the chat belongs to, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `invitee_user_id: optional string or null` - - Tagged user ID of the account outside the organization that had accepted the invitation; absent while the invitation is pending. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -21919,17 +24699,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_role: optional string or null` - - The access level the invitation granted before the change, for example `commenter`. - - - `ClaudeArtifactSentToPartner object` + - `ClaudeChatViewed object` - A member sent an export of an artifact to a partner application ("Send to …" on the artifact; a partner is a third-party application listed in Claude's connector directory): a file exported from the artifact was made available over a temporary link for the chosen partner to fetch. One activity is recorded per send, in the artifact owner's organization with the sending member as actor, whether or not the partner then retrieved the file; the partner's own import of the file is not part of this record. The file's name and contents are not recorded. + A user viewed a Claude.ai chat conversation. - - `type: optional "claude_artifact_sent_to_partner"` + - `type: optional "claude_chat_viewed"` - default: claude_artifact_sent_to_partner + default: claude_chat_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -22137,30 +24913,18 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact the file was exported from. - - - `claude_artifact_send_id: string` - - Tagged ID of this send; a new one for every link created, so two sends of the same artifact to the same partner are distinct. - - - `claude_artifact_version_id: string` - - The version of the artifact served to the member when they sent it. - - - `mime_type: string` - - MIME type of the exported file, for example `text/html`. - - - `size_bytes: number` + - `claude_chat_id: string` - Size of the exported file in bytes. + The chat conversation that was viewed, e.g. "claude_chat_01Ab...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_project_id: optional string or null` + + The project the chat belongs to, if any, e.g. "claude_proj_01Ab...". + - `created_at: optional string` When this activity occurred. @@ -22175,27 +24939,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `partner_mcp_directory_server_id: optional string or null` - - Tagged ID of the partner's MCP directory listing (the listing's public ID), as reported by the member's Claude app when it sent the file. It is not independently verified, and is absent when the app did not report a valid listing ID. - - - `ClaudeArtifactTypeDefaultUpdated object` - - An organization's default artifact for an artifact type (for example, its default design system) was set or cleared. Neither artifact named is itself modified. - - - `type: optional "claude_artifact_type_default_updated"` - - default: claude_artifact_type_default_updated - - - `action: "cleared" or "set" or "unspecified"` - - Whether the default was set or cleared. + - `ClaudeCodeCredentialRevoked object` - - `"cleared"` + A Claude Code credential (runner pool key, runner token, or session token) was revoked. The credential itself is never recorded. - - `"set"` + - `type: optional "claude_code_credential_revoked"` - - `"unspecified"` + default: claude_code_credential_revoked - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -22403,32 +25153,40 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` + - `credential_type: "runner_pool_key" or "runner_token" or "session_token" or "unspecified"` - Tagged ID of the artifact that was made the default, or of the artifact that was the default until it was cleared. + The kind of credential the revoked target identifies, when known. Subject-targeted revocations cascade to every credential delegated from the target regardless of kind; this field describes the target itself, not the full set of credentials the cascade reached. For a revocation submitted as a pasted credential the kind is best-effort and may be inaccurate; the recorded jti and the revocation itself are unaffected. - - `scope: "org" or "unspecified"` + - `"runner_pool_key"` - Whose default changed. + - `"runner_token"` - - `"org"` + - `"session_token"` - `"unspecified"` - - `type_claude_artifact_id: string` - - Tagged ID of the published artifact that defines the template (for example, the design-system template) whose default changed. - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `agent_id: optional string or null` + + The agent identity whose Claude Code credentials were revoked, when revocation targeted every session created by an agent identity, e.g. "cagt_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time + - `delegating_jti: optional string or null` + + The credential identifier whose delegated credentials were revoked (a chain revoke): every credential delegated from this one was revoked, but the credential itself was not. Distinct from `jti`, which records a revocation of the credential itself and its delegates. + + - `jti: optional string or null` + + The unique identifier of the revoked credential, recorded in its canonical form. Revoking a runner pool key also revokes every runner and session token delegated from it. A revocation submitted as a pasted credential is recorded by that credential's identifier. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -22437,23 +25195,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeArtifactTypePinUpdated object` + - `runner_id: optional string or null` - An artifact was pinned or unpinned for an artifact type (for example, a design system was pinned so every member sees it in their picker). Neither artifact named is itself modified, and pinning does not change who can open it. + The runner whose credentials were revoked, when revocation targeted every credential delegated from the runner, e.g. "ccrunner_01HX...". - - `type: optional "claude_artifact_type_pin_updated"` + - `runner_pool_id: optional string or null` - default: claude_artifact_type_pin_updated + The runner pool whose credentials were revoked, when revocation targeted every credential delegated from the pool, e.g. "ccpool_01HX...". - - `action: "pinned" or "unpinned" or "unspecified"` + - `session_id: optional string or null` - Whether the artifact was pinned or unpinned. + The session whose credentials were revoked, when revocation targeted every credential delegated from the session, e.g. "cse_01HX...". - - `"pinned"` + - `user_id: optional string or null` - - `"unpinned"` + The user whose Claude Code credentials were revoked, when revocation targeted every credential minted for a user. Carries the user's tagged account ID, e.g. "user_01HX..." — the only form the revocation API accepts, so the field joins against other activities' account identifiers and never carries an email. - - `"unspecified"` + - `ClaudeCodeReviewConfigUpdated object` + + Claude Code Review configuration was enabled/disabled for an org. + + - `type: optional "claude_code_review_config_updated"` + + default: claude_code_review_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -22661,13 +25425,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_artifact_id: string` - - Tagged ID of the artifact that was pinned or unpinned. - - - `type_claude_artifact_id: string` + - `enabled: boolean` - Tagged ID of the published artifact that defines the template (for example, the design-system template) the pin belongs to. + Whether code review is now enabled - `id: optional string` @@ -22679,6 +25439,14 @@ compliance activities that can be filtered by various criteria. format: date-time + - `environment_id: optional string or null` + + Environment used for code review + + - `model: optional string or null` + + Model configured for code review + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -22687,13 +25455,49 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatAccessFailed object` + - `per_review_limit_usd: optional string or null` - A user was denied access to a Claude.ai chat conversation. + Per-review spend limit in USD - - `type: optional "claude_chat_access_failed"` + - `previous_enabled: optional boolean or null` - default: claude_chat_access_failed + Whether code review was enabled before the change. Absent when no configuration existed before this update. + + - `previous_environment_id: optional string or null` + + Environment used for code review before the change. Absent when no configuration existed before this update or no environment was set. + + - `previous_model: optional string or null` + + Model configured for code review before the change. Absent when no configuration existed before this update or no model was set. + + - `previous_per_review_limit_usd: optional string or null` + + Per-review spend limit in USD before the change. Absent when no configuration existed before this update or no limit was set. + + - `previous_show_tips: optional boolean or null` + + Whether tip-style pull-request comments were enabled before the change. Absent when no configuration existed before this update. + + - `previous_verification_enabled: optional boolean or null` + + Whether the verification stage of code review was enabled for the organization before the change. Absent when no configuration existed before this update or no preference was set. + + - `show_tips: optional boolean or null` + + Whether tip-style pull-request comments are now enabled + + - `verification_enabled: optional boolean or null` + + Whether the verification stage of code review is now enabled for the organization. Absent when the organization has not set a preference and the default applies. + + - `ClaudeCodeReviewRepositoryAdded object` + + A repository was added to org-level Claude Code Review configuration. + + - `type: optional "claude_code_review_repository_added"` + + default: claude_code_review_repository_added - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -22901,9 +25705,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - The chat conversation the user was denied access to, e.g. "claude_chat_01Ab...". + ID of the repository configuration + + - `repo_name: string` + + Repository name + + - `repo_owner: string` + + Repository owner (GitHub org/user) + + - `trigger_mode: string` + + When code review is triggered - `id: optional string` @@ -22923,13 +25739,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatCreated object` + - `ClaudeCodeReviewRepositoryRemoved object` - User created a chat. + A repository was removed from org-level Claude Code Review configuration. - - `type: optional "claude_chat_created"` + - `type: optional "claude_code_review_repository_removed"` - default: claude_chat_created + default: claude_code_review_repository_removed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -23137,17 +25953,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - Tagged ID of the created conversation, e.g. "claude_chat_01HX...". + ID of the deleted repository configuration - - `id: optional string` + - `repo_name: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Repository name at deletion time - - `claude_project_id: optional string or null` + - `repo_owner: string` - Tagged ID of the project the chat was created in, if any, e.g. "claude_proj_01HX...". + Repository owner at deletion time + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -23163,13 +25983,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatDeleted object` + - `ClaudeCodeReviewRepositoryUpdated object` - A user deleted a Claude.ai chat conversation. + A Claude Code Review repository configuration was updated. - - `type: optional "claude_chat_deleted"` + - `type: optional "claude_code_review_repository_updated"` - default: claude_chat_deleted + default: claude_code_review_repository_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -23377,17 +26197,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `config_id: string` - The chat conversation that was deleted, e.g. "claude_chat_01HX...". + ID of the repository configuration - - `id: optional string` + - `repo_name: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + Repository name - - `claude_project_id: optional string or null` + - `repo_owner: string` - The project the chat belonged to, if any, e.g. "claude_proj_01HX...". + Repository owner + + - `id: optional string` + + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -23403,13 +26227,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatDeletionFailed object` + - `status: optional string or null` - A request to delete a Claude.ai chat conversation failed. + Updated status (ACTIVE/INACTIVE) - - `type: optional "claude_chat_deletion_failed"` + - `trigger_mode: optional string or null` - default: claude_chat_deletion_failed + Updated trigger mode + + - `ClaudeCodeRunnerDeleted object` + + A self-hosted runner was forcibly removed from its pool. Sessions assigned to the runner were returned to the pool queue, unless a session had already been requeued repeatedly, in which case it was marked stuck instead of being requeued again. + + - `type: optional "claude_code_runner_deleted"` + + default: claude_code_runner_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -23617,9 +26449,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `runner_id: string` - The chat conversation the user attempted to delete, e.g. "claude_chat_01HX...". + The runner that was removed, e.g. "ccrunner_01HX...". - `id: optional string` @@ -23639,13 +26471,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSyncSourceCreated object` + - `runner_pool_id: optional string or null` - A sync source was connected for syncing external content into Claude chats. + The pool the runner was removed from, e.g. "ccpool_01HX...". - - `type: optional "claude_chat_sync_source_created"` + - `ClaudeCodeRunnerPoolCreated object` - default: claude_chat_sync_source_created + A self-hosted runner pool for Claude Code was created. + + - `type: optional "claude_code_runner_pool_created"` + + default: claude_code_runner_pool_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -23853,13 +26689,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` + - `display_name: string` - Tagged ID of the chat-scoped sync source that was created. + The display name the pool was created with. - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The runner pool that was created, e.g. "ccpool_01HX...". - `id: optional string` @@ -23879,17 +26715,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` - - A short provider-specific identifier for the external resource that was connected, e.g. `owner/repo` for GitHub or a file ID for Google Drive. - - - `ClaudeChatSyncSourceDeleted object` + - `ClaudeCodeRunnerPoolDeleted object` - A sync source was disconnected from Claude chats. + A self-hosted runner pool was deleted. - - `type: optional "claude_chat_sync_source_deleted"` + - `type: optional "claude_code_runner_pool_deleted"` - default: claude_chat_sync_source_deleted + default: claude_code_runner_pool_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -24097,13 +26929,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` - - Tagged ID of the chat-scoped sync source that was deleted. - - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source. Always `unspecified` for deletion events. + The runner pool that was deleted, e.g. "ccpool_01HX...". - `id: optional string` @@ -24115,6 +26943,10 @@ compliance activities that can be filtered by various criteria. format: date-time + - `display_name: optional string or null` + + The pool's display name at deletion time. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -24123,13 +26955,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatSyncSourceUpdated object` + - `ClaudeCodeRunnerPoolSecretMinted object` - A Claude chat sync source's configuration was updated. + A registration key for a self-hosted runner pool was minted. Runners present this key to join the pool. The key itself is never recorded. - - `type: optional "claude_chat_sync_source_updated"` + - `type: optional "claude_code_runner_pool_secret_minted"` - default: claude_chat_sync_source_updated + default: claude_code_runner_pool_secret_minted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -24337,28 +27169,34 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_sync_source_id: string` + - `jti: string` - Tagged ID of the chat-scoped sync source that was updated. + The minted key's unique identifier (its JWT `jti` claim), usable to revoke that key later. - - `provider: string` + - `runner_pool_id: string` - The external provider backing the sync source, e.g. `github`, `google_drive`, `outline`, `slack`, `salesforce`, `google_calendar`, `gmail`, `asana`, or `mcp_resources`. + The runner pool the key was minted for, e.g. "ccpool_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `config_changed: optional boolean or null` - - Whether the update changed the stored sync-source configuration, including sync settings such as path filters. False for a re-sync or a metadata-only refresh of the same resource. - - `created_at: optional string` When this activity occurred. format: date-time + - `expires_at: optional string or null` + + When the minted key expires. + + format: date-time + + - `label: optional string or null` + + The label the key was minted with. The key minted automatically when a pool is created carries the label "Initial key". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -24367,17 +27205,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `resource_descriptor: optional string or null` + - `ClaudeCodeRunnerPoolSessionQueueUpdated object` - A short provider-specific identifier for the external resource after the update, e.g. `owner/repo` for GitHub or a file ID for Google Drive. + An admin changed a session's position in its self-hosted runner pool's queue: requeued it onto a different runner, dismissed it from the queue, or re-admitted it for another runner provisioning attempt. - - `ClaudeChatUpdated object` + - `type: optional "claude_code_runner_pool_session_queue_updated"` - User updated the chat metadata (e.g name, model). + default: claude_code_runner_pool_session_queue_updated - - `type: optional "claude_chat_updated"` + - `action: "dismissed" or "provisioning_retried" or "requeued" or "unspecified"` - default: claude_chat_updated + What changed about the session's queue state. + + - `"dismissed"` + + - `"provisioning_retried"` + + - `"requeued"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -24585,24 +27431,24 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `session_id: string` - Tagged ID of the updated conversation, e.g. "claude_chat_01HX...". + The session whose queue state changed, e.g. "cse_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_project_id: optional string or null` - - Tagged ID of the project the chat belongs to, if any, e.g. "claude_proj_01HX...". - - `created_at: optional string` When this activity occurred. format: date-time + - `excluded_runner_id: optional string or null` + + The runner the session was moved off, when action is "requeued", e.g. "ccrunner_01HX...". + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -24611,13 +27457,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeChatViewed object` + - `runner_pool_id: optional string or null` - A user viewed a Claude.ai chat conversation. + The runner pool whose queue the session is in, when known, e.g. "ccpool_01HX...". - - `type: optional "claude_chat_viewed"` + - `ClaudeCodeRunnerPoolUpdated object` - default: claude_chat_viewed + A self-hosted runner pool's settings were updated. + + - `type: optional "claude_code_runner_pool_updated"` + + default: claude_code_runner_pool_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -24825,17 +27675,17 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_chat_id: string` + - `display_name: string` - The chat conversation that was viewed, e.g. "claude_chat_01Ab...". + The pool's display name after the update. - - `id: optional string` + - `runner_pool_id: string` - Unique identifier for the activity e.g. 'activity_abcd1234' + The runner pool that was updated, e.g. "ccpool_01HX...". - - `claude_project_id: optional string or null` + - `id: optional string` - The project the chat belongs to, if any, e.g. "claude_proj_01Ab...". + Unique identifier for the activity e.g. 'activity_abcd1234' - `created_at: optional string` @@ -24851,13 +27701,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeCredentialRevoked object` + - `previous_display_name: optional string or null` - A Claude Code credential (runner pool key, runner token, or session token) was revoked. The credential itself is never recorded. + The pool's display name before the update. Absent when the name was unchanged or the previous value was unavailable. - - `type: optional "claude_code_credential_revoked"` + - `ClaudeCodeSecurityCenterConfigUpdated object` - default: claude_code_credential_revoked + Claude Code Security Center scanning was enabled/disabled for an org. + + - `type: optional "claude_code_security_center_config_updated"` + + default: claude_code_security_center_config_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -25065,39 +27919,23 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `credential_type: "runner_pool_key" or "runner_token" or "session_token" or "unspecified"` - - The kind of credential the revoked target identifies, when known. Subject-targeted revocations cascade to every credential delegated from the target regardless of kind; this field describes the target itself, not the full set of credentials the cascade reached. For a revocation submitted as a pasted credential the kind is best-effort and may be inaccurate; the recorded jti and the revocation itself are unaffected. - - - `"runner_pool_key"` - - - `"runner_token"` - - - `"session_token"` + - `enabled: boolean` - - `"unspecified"` + Whether Security Center is now enabled - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `agent_id: optional string or null` - - The agent identity whose Claude Code credentials were revoked, when revocation targeted every session created by an agent identity, e.g. "cagt_01HX...". - - `created_at: optional string` When this activity occurred. format: date-time - - `delegating_jti: optional string or null` - - The credential identifier whose delegated credentials were revoked (a chain revoke): every credential delegated from this one was revoked, but the credential itself was not. Distinct from `jti`, which records a revocation of the credential itself and its delegates. - - - `jti: optional string or null` + - `environment_id: optional string or null` - The unique identifier of the revoked credential, recorded in its canonical form. Revoking a runner pool key also revokes every runner and session token delegated from it. A revocation submitted as a pasted credential is recorded by that credential's identifier. + Environment used for security scanning - `organization_id: optional string or null` @@ -25107,29 +27945,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_id: optional string or null` - - The runner whose credentials were revoked, when revocation targeted every credential delegated from the runner, e.g. "ccrunner_01HX...". - - - `runner_pool_id: optional string or null` - - The runner pool whose credentials were revoked, when revocation targeted every credential delegated from the pool, e.g. "ccpool_01HX...". - - - `session_id: optional string or null` - - The session whose credentials were revoked, when revocation targeted every credential delegated from the session, e.g. "cse_01HX...". - - - `user_id: optional string or null` - - The user whose Claude Code credentials were revoked, when revocation targeted every credential minted for a user. Carries the user's tagged account ID, e.g. "user_01HX..." — the only form the revocation API accepts, so the field joins against other activities' account identifiers and never carries an email. - - - `ClaudeCodeReviewConfigUpdated object` + - `ClaudeCodeSecurityScanCancelled object` - Claude Code Review configuration was enabled/disabled for an org. + In-flight Claude Code Security scans were cancelled for a project. - - `type: optional "claude_code_review_config_updated"` + - `type: optional "claude_code_security_scan_cancelled"` - default: claude_code_review_config_updated + default: claude_code_security_scan_cancelled - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -25337,9 +28159,11 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` + - `scan_project_id: string` - Whether code review is now enabled + Tagged ID of the scan project + + - `scans_cancelled: number` - `id: optional string` @@ -25351,14 +28175,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `environment_id: optional string or null` - - Environment used for code review - - - `model: optional string or null` - - Model configured for code review - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -25367,49 +28183,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `per_review_limit_usd: optional string or null` - - Per-review spend limit in USD - - - `previous_enabled: optional boolean or null` - - Whether code review was enabled before the change. Absent when no configuration existed before this update. - - - `previous_environment_id: optional string or null` - - Environment used for code review before the change. Absent when no configuration existed before this update or no environment was set. - - - `previous_model: optional string or null` - - Model configured for code review before the change. Absent when no configuration existed before this update or no model was set. - - - `previous_per_review_limit_usd: optional string or null` - - Per-review spend limit in USD before the change. Absent when no configuration existed before this update or no limit was set. - - - `previous_show_tips: optional boolean or null` - - Whether tip-style pull-request comments were enabled before the change. Absent when no configuration existed before this update. - - - `previous_verification_enabled: optional boolean or null` - - Whether the verification stage of code review was enabled for the organization before the change. Absent when no configuration existed before this update or no preference was set. - - - `show_tips: optional boolean or null` - - Whether tip-style pull-request comments are now enabled - - - `verification_enabled: optional boolean or null` - - Whether the verification stage of code review is now enabled for the organization. Absent when the organization has not set a preference and the default applies. - - - `ClaudeCodeReviewRepositoryAdded object` + - `ClaudeCodeSecurityScanCreated object` - A repository was added to org-level Claude Code Review configuration. + A Claude Code Security scan was started. - - `type: optional "claude_code_review_repository_added"` + - `type: optional "claude_code_security_scan_created"` - default: claude_code_review_repository_added + default: claude_code_security_scan_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -25617,21 +28397,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `config_id: string` - - ID of the repository configuration - - - `repo_name: string` - - Repository name - - - `repo_owner: string` + - `scan_id: string` - Repository owner (GitHub org/user) + Tagged ID of the created scan - - `trigger_mode: string` + - `scan_project_id: string` - When code review is triggered + Tagged ID of the scan project the scan belongs to - `id: optional string` @@ -25651,13 +28423,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeReviewRepositoryRemoved object` + - `ClaudeCodeSecurityScanProjectMemberUpdated object` - A repository was removed from org-level Claude Code Review configuration. + A person's access to a Claude Code Security scan project was granted, changed, or revoked. - - `type: optional "claude_code_review_repository_removed"` + - `type: optional "claude_code_security_scan_project_member_updated"` - default: claude_code_review_repository_removed + default: claude_code_security_scan_project_member_updated + + - `action: "member_added" or "member_removed" or "member_role_changed" or "unspecified"` + + Whether the member was granted access, had their role changed, or was revoked + + - `"member_added"` + + - `"member_removed"` + + - `"member_role_changed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -25865,22 +28649,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `config_id: string` - - ID of the deleted repository configuration - - - `repo_name: string` + - `member_id: string` - Repository name at deletion time + Tagged ID of the member whose access changed - - `repo_owner: string` + - `scan_project_id: string` - Repository owner at deletion time + Tagged ID of the scan project - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -25895,13 +28689,33 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeReviewRepositoryUpdated object` + - `role: optional string or null` - A Claude Code Review repository configuration was updated. + Role granted to the member (full, view_triage, or view); omitted for revocations - - `type: optional "claude_code_review_repository_updated"` + - `ClaudeCodeSecurityScanProjectUpdated object` - default: claude_code_review_repository_updated + A Claude Code Security scan project was archived, unarchived, created, or migrated to a new product experience. + + - `type: optional "claude_code_security_scan_project_updated"` + + default: claude_code_security_scan_project_updated + + - `action: "archived" or "created" or "migrated" or 3 more` + + The state change applied to the scan project. + + - `"archived"` + + - `"created"` + + - `"migrated"` + + - `"resumed"` + + - `"unarchived"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -26109,21 +28923,27 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `config_id: string` + - `scan_project_id: string` - ID of the repository configuration + Tagged ID of the scan project - - `repo_name: string` + - `id: optional string` - Repository name + Unique identifier for the activity e.g. 'activity_abcd1234' - - `repo_owner: string` + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - Repository owner + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (the project's creation, or an automated change); events recorded before this field was introduced omit it. - - `id: optional string` + - `"member"` - Unique identifier for the activity e.g. 'activity_abcd1234' + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` - `created_at: optional string` @@ -26139,21 +28959,23 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `status: optional string or null` + - `ClaudeCodeSecurityScanProjectVisibilityUpdated object` - Updated status (ACTIVE/INACTIVE) + A Claude Code Security scan project was shared with the organization or made private. - - `trigger_mode: optional string or null` + - `type: optional "claude_code_security_scan_project_visibility_updated"` - Updated trigger mode + default: claude_code_security_scan_project_visibility_updated - - `ClaudeCodeRunnerDeleted object` + - `action: "shared" or "unshared" or "unspecified"` - A self-hosted runner was forcibly removed from its pool. Sessions assigned to the runner were returned to the pool queue, unless a session had already been requeued repeatedly, in which case it was marked stuck instead of being requeued again. + Whether the project was shared with the organization or made private - - `type: optional "claude_code_runner_deleted"` + - `"shared"` - default: claude_code_runner_deleted + - `"unshared"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -26361,14 +29183,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `runner_id: string` + - `scan_project_id: string` - The runner that was removed, e.g. "ccrunner_01HX...". + Tagged ID of the scan project - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_level: optional string or null` + + Access level granted to organization members (read_only or full); only set when shared + + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -26383,17 +29223,29 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_pool_id: optional string or null` + - `ClaudeCodeSecurityScanRunUpdated object` - The pool the runner was removed from, e.g. "ccpool_01HX...". + A single Claude Code Security scan run was archived, unarchived, or resumed after a billing pause. - - `ClaudeCodeRunnerPoolCreated object` + - `type: optional "claude_code_security_scan_run_updated"` - A self-hosted runner pool for Claude Code was created. + default: claude_code_security_scan_run_updated - - `type: optional "claude_code_runner_pool_created"` + - `action: "archived" or "created" or "migrated" or 3 more` - default: claude_code_runner_pool_created + The state change applied to the scan run + + - `"archived"` + + - `"created"` + + - `"migrated"` + + - `"resumed"` + + - `"unarchived"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -26601,13 +29453,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `display_name: string` - - The display name the pool was created with. - - - `runner_pool_id: string` + - `scan_id: string` - The runner pool that was created, e.g. "ccpool_01HX...". + Tagged ID of the scan the request named — for archive/unarchive any scan in the run, not necessarily its canonical (run_index=0) scan; for resume, the paused scan - `id: optional string` @@ -26627,13 +29475,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolDeleted object` + - `ClaudeCodeSecurityScanScheduleDeleted object` - A self-hosted runner pool was deleted. + A recurring scan schedule was deleted for a Claude Code Security project. - - `type: optional "claude_code_runner_pool_deleted"` + - `type: optional "claude_code_security_scan_schedule_deleted"` - default: claude_code_runner_pool_deleted + default: claude_code_security_scan_schedule_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -26841,9 +29689,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `runner_pool_id: string` + - `scan_project_id: string` - The runner pool that was deleted, e.g. "ccpool_01HX...". + Tagged ID of the scan project - `id: optional string` @@ -26855,10 +29703,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `display_name: optional string or null` - - The pool's display name at deletion time. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -26867,13 +29711,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolSecretMinted object` + - `ClaudeCodeSecurityScanScheduleUpdated object` - A registration key for a self-hosted runner pool was minted. Runners present this key to join the pool. The key itself is never recorded. + A recurring scan schedule was set or replaced for a Claude Code Security project. - - `type: optional "claude_code_runner_pool_secret_minted"` + - `type: optional "claude_code_security_scan_schedule_updated"` - default: claude_code_runner_pool_secret_minted + default: claude_code_security_scan_schedule_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -27081,13 +29925,11 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `jti: string` - - The minted key's unique identifier (its JWT `jti` claim), usable to revoke that key later. + - `cadence: string` - - `runner_pool_id: string` + - `scan_project_id: string` - The runner pool the key was minted for, e.g. "ccpool_01HX...". + Tagged ID of the scan project - `id: optional string` @@ -27099,16 +29941,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `expires_at: optional string or null` - - When the minted key expires. - - format: date-time - - - `label: optional string or null` - - The label the key was minted with. The key minted automatically when a pool is created carries the label "Initial key". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -27117,25 +29949,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeRunnerPoolSessionQueueUpdated object` - - An admin changed a session's position in its self-hosted runner pool's queue: requeued it onto a different runner, dismissed it from the queue, or re-admitted it for another runner provisioning attempt. - - - `type: optional "claude_code_runner_pool_session_queue_updated"` - - default: claude_code_runner_pool_session_queue_updated - - - `action: "dismissed" or "provisioning_retried" or "requeued" or "unspecified"` - - What changed about the session's queue state. - - - `"dismissed"` + - `ClaudeCodeSecurityVulnerabilityDeleted object` - - `"provisioning_retried"` + A Claude Code Security vulnerability finding was permanently deleted. - - `"requeued"` + - `type: optional "claude_code_security_vulnerability_deleted"` - - `"unspecified"` + default: claude_code_security_vulnerability_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -27343,9 +30163,13 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `session_id: string` + - `scan_id: string` - The session whose queue state changed, e.g. "cse_01HX...". + Tagged ID of the scan the finding belonged to + + - `vulnerability_id: number` + + Numeric ID of the deleted finding, as shown in the product - `id: optional string` @@ -27357,10 +30181,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `excluded_runner_id: optional string or null` - - The runner the session was moved off, when action is "requeued", e.g. "ccrunner_01HX...". - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -27369,17 +30189,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `runner_pool_id: optional string or null` - - The runner pool whose queue the session is in, when known, e.g. "ccpool_01HX...". - - - `ClaudeCodeRunnerPoolUpdated object` + - `ClaudeCodeSecurityVulnerabilityFixSessionCreated object` - A self-hosted runner pool's settings were updated. + A Claude Code remediation session was created for a Claude Code Security vulnerability finding. - - `type: optional "claude_code_runner_pool_updated"` + - `type: optional "claude_code_security_vulnerability_fix_session_created"` - default: claude_code_runner_pool_updated + default: claude_code_security_vulnerability_fix_session_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -27587,18 +30403,32 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `display_name: string` + - `scan_id: string` - The pool's display name after the update. + Tagged ID of the scan the finding belongs to - - `runner_pool_id: string` + - `session_id: string` - The runner pool that was updated, e.g. "ccpool_01HX...". + ID of the created remediation session - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + + How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved; events recorded before this field was introduced omit it. + + - `"member"` + + - `"organization_admin"` + + - `"organization_share"` + + - `"owner"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. @@ -27613,17 +30443,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_display_name: optional string or null` + - `ClaudeCodeSecurityVulnerabilityUpdated object` - The pool's display name before the update. Absent when the name was unchanged or the previous value was unavailable. + A Claude Code Security vulnerability finding was dismissed, restored, marked fixed, or reopened. - - `ClaudeCodeSecurityCenterConfigUpdated object` + - `type: optional "claude_code_security_vulnerability_updated"` - Claude Code Security Center scanning was enabled/disabled for an org. + default: claude_code_security_vulnerability_updated - - `type: optional "claude_code_security_center_config_updated"` + - `action: "dismissed" or "fixed" or "restored" or 2 more` - default: claude_code_security_center_config_updated + The state change applied to the finding + + - `"dismissed"` + + - `"fixed"` + + - `"restored"` + + - `"unfixed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -27831,9 +30671,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `enabled: boolean` + - `scan_id: string` - Whether Security Center is now enabled + Tagged ID of the scan the finding belongs to - `id: optional string` @@ -27845,9 +30685,9 @@ compliance activities that can be filtered by various criteria. format: date-time - - `environment_id: optional string or null` + - `dismissal_reason: optional string or null` - Environment used for security scanning + The categorized dismissal reason (only set when the finding was dismissed) - `organization_id: optional string or null` @@ -27857,13 +30697,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanCancelled object` + - `ClaudeCodeSecurityWebhookCreated object` - In-flight Claude Code Security scans were cancelled for a project. + A Claude Code Security outbound webhook was created. - - `type: optional "claude_code_security_scan_cancelled"` + - `type: optional "claude_code_security_webhook_created"` - default: claude_code_security_scan_cancelled + default: claude_code_security_webhook_created - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -28071,11 +30911,11 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_project_id: string` + - `url: string` - Tagged ID of the scan project + - `webhook_id: string` - - `scans_cancelled: number` + Tagged ID of the webhook - `id: optional string` @@ -28095,13 +30935,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanCreated object` + - `scan_project_id: optional string or null` - A Claude Code Security scan was started. + Tagged ID of the scan project (null for organization-wide webhooks) - - `type: optional "claude_code_security_scan_created"` + - `ClaudeCodeSecurityWebhookDeleted object` - default: claude_code_security_scan_created + A Claude Code Security outbound webhook was deleted. + + - `type: optional "claude_code_security_webhook_deleted"` + + default: claude_code_security_webhook_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -28309,13 +31153,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the created scan - - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project the scan belongs to + Tagged ID of the webhook - `id: optional string` @@ -28335,25 +31175,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanProjectMemberUpdated object` - - A person's access to a Claude Code Security scan project was granted, changed, or revoked. - - - `type: optional "claude_code_security_scan_project_member_updated"` - - default: claude_code_security_scan_project_member_updated - - - `action: "member_added" or "member_removed" or "member_role_changed" or "unspecified"` + - `scan_project_id: optional string or null` - Whether the member was granted access, had their role changed, or was revoked + Tagged ID of the scan project (null for organization-wide webhooks) - - `"member_added"` + - `ClaudeCodeSecurityWebhookSecretUpdated object` - - `"member_removed"` + The HMAC signing secret for a Claude Code Security webhook was rotated. - - `"member_role_changed"` + - `type: optional "claude_code_security_webhook_secret_updated"` - - `"unspecified"` + default: claude_code_security_webhook_secret_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -28561,32 +31393,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `member_id: string` - - Tagged ID of the member whose access changed - - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project + Tagged ID of the webhook - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. @@ -28601,33 +31415,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `role: optional string or null` - - Role granted to the member (full, view_triage, or view); omitted for revocations - - - `ClaudeCodeSecurityScanProjectUpdated object` - - A Claude Code Security scan project was archived, unarchived, created, or migrated to a new product experience. - - - `type: optional "claude_code_security_scan_project_updated"` - - default: claude_code_security_scan_project_updated - - - `action: "archived" or "created" or "migrated" or 3 more` - - The state change applied to the scan project. - - - `"archived"` + - `scan_project_id: optional string or null` - - `"created"` + Tagged ID of the scan project (null for organization-wide webhooks) - - `"migrated"` + - `ClaudeCodeSecurityWebhookUpdated object` - - `"resumed"` + A Claude Code Security outbound webhook was updated. - - `"unarchived"` + - `type: optional "claude_code_security_webhook_updated"` - - `"unspecified"` + default: claude_code_security_webhook_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -28835,28 +31633,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_project_id: string` + - `webhook_id: string` - Tagged ID of the scan project + Tagged ID of the webhook - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (the project's creation, or an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` - - `created_at: optional string` When this activity occurred. @@ -28871,21 +31655,25 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanProjectVisibilityUpdated object` + - `scan_project_id: optional string or null` - A Claude Code Security scan project was shared with the organization or made private. + Tagged ID of the scan project (null for organization-wide webhooks) - - `type: optional "claude_code_security_scan_project_visibility_updated"` + - `ClaudeCodeTeamMemoryACLUpdated object` - default: claude_code_security_scan_project_visibility_updated + An RBAC group was added to or removed from the Claude Code team-memory ACL. - - `action: "shared" or "unshared" or "unspecified"` + - `type: optional "claude_code_team_memory_acl_updated"` - Whether the project was shared with the organization or made private + default: claude_code_team_memory_acl_updated - - `"shared"` + - `action: "removed" or "set" or "unspecified"` - - `"unshared"` + Whether the group was set (added/updated) or removed + + - `"removed"` + + - `"set"` - `"unspecified"` @@ -29095,9 +31883,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_project_id: string` + - `group_id: string` - Tagged ID of the scan project + Tagged ID of the RBAC group - `id: optional string` @@ -29105,21 +31893,7 @@ compliance activities that can be filtered by various criteria. - `access_level: optional string or null` - Access level granted to organization members (read_only or full); only set when shared - - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` - - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved (for example, an automated change); events recorded before this field was introduced omit it. - - - `"member"` - - - `"organization_admin"` - - - `"organization_share"` - - - `"owner"` - - - `"unspecified"` + Access level granted (when action=set) - `created_at: optional string` @@ -29135,29 +31909,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanRunUpdated object` - - A single Claude Code Security scan run was archived, unarchived, or resumed after a billing pause. - - - `type: optional "claude_code_security_scan_run_updated"` - - default: claude_code_security_scan_run_updated - - - `action: "archived" or "created" or "migrated" or 3 more` - - The state change applied to the scan run - - - `"archived"` + - `previous_access_level: optional string or null` - - `"created"` + Access level the group had before this change; absent when the group was not previously in the access list. For removals this is the access level that was removed. - - `"migrated"` + - `ClaudeCodeTeamMemoryUpdated object` - - `"resumed"` + Claude Code team memory shared with the organization was updated. - - `"unarchived"` + - `type: optional "claude_code_team_memory_updated"` - - `"unspecified"` + default: claude_code_team_memory_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -29365,9 +32127,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` + - `deleted_all: boolean` - Tagged ID of the scan the request named — for archive/unarchive any scan in the run, not necessarily its canonical (run_index=0) scan; for resume, the paused scan + True when the entire team memory store for this scope was deleted in one request. - `id: optional string` @@ -29379,6 +32141,26 @@ compliance activities that can be filtered by various criteria. format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of team memory entries removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of team memory entries created or updated. + + - `new_checksum: optional string or null` + + Checksum of the team memory after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -29387,13 +32169,37 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanScheduleDeleted object` + - `previous_checksum: optional string or null` - A recurring scan schedule was deleted for a Claude Code Security project. + Checksum of the team memory before this change; null when it did not exist. - - `type: optional "claude_code_security_scan_schedule_deleted"` + - `repo: optional string or null` - default: claude_code_security_scan_schedule_deleted + Withdrawn — never populated. + + - `version: optional number or null` + + Version number of the team memory store after this change. + + - `ClaudeCodeTeamOnboardingGuideUpdated object` + + A Claude Code team onboarding guide was created, updated, or deleted. + + - `type: optional "claude_code_team_onboarding_guide_updated"` + + default: claude_code_team_onboarding_guide_updated + + - `action: "created" or "deleted" or "unspecified" or "updated"` + + The state change applied to the onboarding guide. + + - `"created"` + + - `"deleted"` + + - `"unspecified"` + + - `"updated"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -29601,9 +32407,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_project_id: string` + - `guide_short_code: string` - Tagged ID of the scan project + Short code identifying the onboarding guide — the public URL handle shown in the share link. - `id: optional string` @@ -29615,6 +32421,18 @@ compliance activities that can be filtered by various criteria. format: date-time + - `guide_id: optional string or null` + + Tagged ID of the onboarding guide. + + - `guide_name: optional string or null` + + Withdrawn — never populated. + + - `new_checksum: optional string or null` + + Checksum of the guide content after this change; null when the guide was deleted. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -29623,13 +32441,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityScanScheduleUpdated object` + - `previous_checksum: optional string or null` - A recurring scan schedule was set or replaced for a Claude Code Security project. + Checksum of the guide content before this change; null when the guide did not exist. - - `type: optional "claude_code_security_scan_schedule_updated"` + - `ClaudeCodeUserMarketplacesUpdated object` - default: claude_code_security_scan_schedule_updated + A user's Claude Code plugin marketplace selections were updated on Anthropic servers. + + - `type: optional "claude_code_user_marketplaces_updated"` + + default: claude_code_user_marketplaces_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -29837,11 +32659,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `cadence: string` - - - `scan_project_id: string` + - `deleted_all: boolean` - Tagged ID of the scan project + True when all of the user's marketplace selections were removed in one request. - `id: optional string` @@ -29853,6 +32673,26 @@ compliance activities that can be filtered by various criteria. format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of marketplace selections removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of marketplace selections added or whose source changed. + + - `new_value: optional string or null` + + Withdrawn — never populated. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -29861,13 +32701,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityDeleted object` + - `previous_value: optional string or null` - A Claude Code Security vulnerability finding was permanently deleted. + Withdrawn — never populated. - - `type: optional "claude_code_security_vulnerability_deleted"` + - `ClaudeCodeUserMemoryUpdated object` - default: claude_code_security_vulnerability_deleted + A user's synced private Claude Code memory was updated or deleted on Anthropic servers. + + - `type: optional "claude_code_user_memory_updated"` + + default: claude_code_user_memory_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -30075,13 +32919,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the scan the finding belonged to - - - `vulnerability_id: number` + - `deleted_all: boolean` - Numeric ID of the deleted finding, as shown in the product + True when the user's entire synced memory for this scope was deleted in one request. - `id: optional string` @@ -30093,6 +32933,26 @@ compliance activities that can be filtered by various criteria. format: date-time + - `keys_deleted: optional array of string` + + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of memory file paths removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of memory file paths created or updated. + + - `new_checksum: optional string or null` + + Checksum of the user's synced memory after this change. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -30101,13 +32961,21 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityFixSessionCreated object` + - `previous_checksum: optional string or null` - A Claude Code remediation session was created for a Claude Code Security vulnerability finding. + Checksum of the user's synced memory before this change; null when the store did not exist. - - `type: optional "claude_code_security_vulnerability_fix_session_created"` + - `repo: optional string or null` - default: claude_code_security_vulnerability_fix_session_created + Withdrawn — never populated. + + - `ClaudeCodeUserPluginsUpdated object` + + A user's Claude Code plugin selections — which plugins are installed and enabled — were updated on Anthropic servers. + + - `type: optional "claude_code_user_plugins_updated"` + + default: claude_code_user_plugins_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -30315,37 +33183,39 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` - - Tagged ID of the scan the finding belongs to - - - `session_id: string` + - `deleted_all: boolean` - ID of the created remediation session + True when all of the user's plugin selections were removed in one request. - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_via: optional "member" or "organization_admin" or "organization_share" or 2 more or null` + - `created_at: optional string` - How the actor was authorized to make this change: "owner" (the scan project's owner), "member" (an individually added member), "organization_share" (the project is shared with the actor's organization), or "organization_admin" (an administrator of the organization's security scanning). Absent when no project relationship was involved; events recorded before this field was introduced omit it. + When this activity occurred. - - `"member"` + format: date-time - - `"organization_admin"` + - `keys_deleted: optional array of string` - - `"organization_share"` + Withdrawn — never populated. See `keys_deleted_count`. - - `"owner"` + - `keys_deleted_count: optional number or null` - - `"unspecified"` + Number of plugin selections removed. - - `created_at: optional string` + - `keys_written: optional array of string` - When this activity occurred. + Withdrawn — never populated. See `keys_written_count`. - format: date-time + - `keys_written_count: optional number or null` + + Number of plugin selections added or whose enabled state changed. + + - `new_value: optional string or null` + + The targeted plugin's new enabled state, when a single plugin's state changed. - `organization_id: optional string or null` @@ -30355,27 +33225,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityVulnerabilityUpdated object` - - A Claude Code Security vulnerability finding was dismissed, restored, marked fixed, or reopened. - - - `type: optional "claude_code_security_vulnerability_updated"` - - default: claude_code_security_vulnerability_updated - - - `action: "dismissed" or "fixed" or "restored" or 2 more` - - The state change applied to the finding + - `previous_value: optional string or null` - - `"dismissed"` + The targeted plugin's previous enabled state, when a single plugin's state changed; null when the plugin did not previously exist or multiple plugins changed. - - `"fixed"` + - `ClaudeCodeUserSettingsUpdated object` - - `"restored"` + A user's synced Claude Code settings were updated or deleted on Anthropic servers. - - `"unfixed"` + - `type: optional "claude_code_user_settings_updated"` - - `"unspecified"` + default: claude_code_user_settings_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -30583,9 +33443,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `scan_id: string` + - `deleted_all: boolean` - Tagged ID of the scan the finding belongs to + True when the user's entire synced settings store was deleted in one request. - `id: optional string` @@ -30597,9 +33457,25 @@ compliance activities that can be filtered by various criteria. format: date-time - - `dismissal_reason: optional string or null` + - `keys_deleted: optional array of string` - The categorized dismissal reason (only set when the finding was dismissed) + Withdrawn — never populated. See `keys_deleted_count`. + + - `keys_deleted_count: optional number or null` + + Number of settings entries removed. + + - `keys_written: optional array of string` + + Withdrawn — never populated. See `keys_written_count`. + + - `keys_written_count: optional number or null` + + Number of settings entries created or updated. + + - `new_checksum: optional string or null` + + Checksum of the user's synced settings after this change. - `organization_id: optional string or null` @@ -30609,13 +33485,27 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeCodeSecurityWebhookCreated object` + - `previous_checksum: optional string or null` - A Claude Code Security outbound webhook was created. + Checksum of the user's synced settings before this change; null when the store did not exist. - - `type: optional "claude_code_security_webhook_created"` + - `ClaudeEnterpriseUpgradeCreditUpdated object` - default: claude_code_security_webhook_created + An organization admin cancelled, or turned back on, the monthly usage credit the organization receives for upgrading from the Team plan to the Enterprise plan, together with the recurring monthly charge that accompanies it. + + - `type: optional "claude_enterprise_upgrade_credit_updated"` + + default: claude_enterprise_upgrade_credit_updated + + - `action: "cancelled" or "resumed" or "unspecified"` + + Whether the credit was cancelled or turned back on + + - `"cancelled"` + + - `"resumed"` + + - `"unspecified"` - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -30823,12 +33713,6 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `url: string` - - - `webhook_id: string` - - Tagged ID of the webhook - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' @@ -30847,17 +33731,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` - - Tagged ID of the scan project (null for organization-wide webhooks) - - - `ClaudeCodeSecurityWebhookDeleted object` + - `ClaudeFileAccessFailed object` - A Claude Code Security outbound webhook was deleted. + A user was denied access to a file in Claude.ai. - - `type: optional "claude_code_security_webhook_deleted"` + - `type: optional "claude_file_access_failed"` - default: claude_code_security_webhook_deleted + default: claude_file_access_failed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -31065,14 +33945,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `webhook_id: string` + - `claude_file_id: string` - Tagged ID of the webhook + The file the user was denied access to, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_id: optional string or null` + + The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + + - `claude_project_id: optional string or null` + + The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -31087,17 +33975,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` + - `filename: optional string or null` - Tagged ID of the scan project (null for organization-wide webhooks) + **Deprecated** - - `ClaudeCodeSecurityWebhookSecretUpdated object` + Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - The HMAC signing secret for a Claude Code Security webhook was rotated. + - `ClaudeFileExported object` - - `type: optional "claude_code_security_webhook_secret_updated"` + A file was exported from Claude to an external storage destination. - default: claude_code_security_webhook_secret_updated + - `type: optional "claude_file_exported"` + + default: claude_file_exported - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -31305,14 +34195,26 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `webhook_id: string` + - `export_destination: "google_drive" or "unspecified"` - Tagged ID of the webhook + The external destination the file was exported to. + + - `"google_drive"` + + - `"unspecified"` - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_chat_id: optional string or null` + + The chat conversation the file was exported from, if the export originated in a chat, e.g. "claude_chat_01HX...". + + - `claude_file_id: optional string or null` + + The exported file, e.g. "claude_file_01HX...", if the file has a stored file record; files that exist only inside a session have no file ID. + - `created_at: optional string` When this activity occurred. @@ -31327,17 +34229,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` + - `filename: string` - Tagged ID of the scan project (null for organization-wide webhooks) + **Deprecated** - - `ClaudeCodeSecurityWebhookUpdated object` + No longer populated. Where `claude_file_id` is present, resolve the name via the Compliance API files endpoint; sandbox and desktop exports carry no file id. - A Claude Code Security outbound webhook was updated. + - `ClaudeFileViewed object` - - `type: optional "claude_code_security_webhook_updated"` + A user viewed a file in Claude.ai. - default: claude_code_security_webhook_updated + - `type: optional "claude_file_viewed"` + + default: claude_file_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -31545,14 +34449,22 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `webhook_id: string` + - `claude_file_id: string` - Tagged ID of the webhook + The file that was viewed, e.g. "claude_file_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `claude_artifact_id: optional string or null` + + The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + + - `claude_project_id: optional string or null` + + The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + - `created_at: optional string` When this activity occurred. @@ -31567,27 +34479,19 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `scan_project_id: optional string or null` - - Tagged ID of the scan project (null for organization-wide webhooks) - - - `ClaudeCodeTeamMemoryACLUpdated object` - - An RBAC group was added to or removed from the Claude Code team-memory ACL. - - - `type: optional "claude_code_team_memory_acl_updated"` + - `filename: optional string or null` - default: claude_code_team_memory_acl_updated + **Deprecated** - - `action: "removed" or "set" or "unspecified"` + Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - Whether the group was set (added/updated) or removed + - `ClaudeInsightsAttributionSettingUpdated object` - - `"removed"` + An organization admin set the organization's setting that allows Smart Reports to be opened in the rendering that attributes findings to individual, identified members (off: no member can open that rendering). Every write is recorded, so the two values are equal when the setting was written with the value it already had. - - `"set"` + - `type: optional "claude_insights_attribution_setting_updated"` - - `"unspecified"` + default: claude_insights_attribution_setting_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -31795,24 +34699,20 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `group_id: string` - - Tagged ID of the RBAC group - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `access_level: optional string or null` - - Access level granted (when action=set) - - `created_at: optional string` When this activity occurred. format: date-time + - `current_value: optional boolean or null` + + Setting value immediately after this write + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -31821,17 +34721,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_access_level: optional string or null` + - `previous_value: optional boolean or null` - Access level the group had before this change; absent when the group was not previously in the access list. For removals this is the access level that was removed. + Setting value immediately before this write - - `ClaudeCodeTeamMemoryUpdated object` + - `ClaudeInsightsReportArchived object` - Claude Code team memory shared with the organization was updated. + A Smart Report was archived, hiding it from the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_code_team_memory_updated"` + - `type: optional "claude_insights_report_archived"` - default: claude_code_team_memory_updated + default: claude_insights_report_archived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -32039,9 +34939,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when the entire team memory store for this scope was deleted in one request. + The report that was archived, e.g. "insr_01HX...". - `id: optional string` @@ -32053,26 +34953,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of team memory entries removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of team memory entries created or updated. - - - `new_checksum: optional string or null` - - Checksum of the team memory after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -32081,37 +34961,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the team memory before this change; null when it did not exist. - - - `repo: optional string or null` - - Withdrawn — never populated. - - - `version: optional number or null` - - Version number of the team memory store after this change. - - - `ClaudeCodeTeamOnboardingGuideUpdated object` + - `ClaudeInsightsReportAttributionViewed object` - A Claude Code team onboarding guide was created, updated, or deleted. + A Smart Report was viewed or downloaded with its usage findings attributed to individual, identified members of the organization (rather than in the default rendering, which identifies no member), one session it lists was inspected from that attributed rendering, or an organization admin was shown which members one of its recommendations suggests. - - `type: optional "claude_code_team_onboarding_guide_updated"` + - `type: optional "claude_insights_report_attribution_viewed"` - default: claude_code_team_onboarding_guide_updated - - - `action: "created" or "deleted" or "unspecified" or "updated"` - - The state change applied to the onboarding guide. - - - `"created"` - - - `"deleted"` - - - `"unspecified"` - - - `"updated"` + default: claude_insights_report_attribution_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -32319,31 +35175,31 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `guide_short_code: string` + - `report_id: string` - Short code identifying the onboarding guide — the public URL handle shown in the share link. + The report that was viewed with attribution, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `created_at: optional string` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - When this activity occurred. + How the member who viewed the attributed rendering was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. Not set on events recorded before this field existed. - format: date-time + - `"admin"` - - `guide_id: optional string or null` + - `"delegate"` - Tagged ID of the onboarding guide. + - `"share_recipient"` - - `guide_name: optional string or null` + - `"unspecified"` - Withdrawn — never populated. + - `created_at: optional string` - - `new_checksum: optional string or null` + When this activity occurred. - Checksum of the guide content after this change; null when the guide was deleted. + format: date-time - `organization_id: optional string or null` @@ -32353,17 +35209,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` + - `ClaudeInsightsReportDeleted object` - Checksum of the guide content before this change; null when the guide did not exist. - - - `ClaudeCodeUserMarketplacesUpdated object` - - A user's Claude Code plugin marketplace selections were updated on Anthropic servers. + An archived Smart Report was permanently deleted, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope): its document was removed; purge_confirmed says whether it was also removed from the organization's report list. - - `type: optional "claude_code_user_marketplaces_updated"` + - `type: optional "claude_insights_report_deleted"` - default: claude_code_user_marketplaces_updated + default: claude_insights_report_deleted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -32571,9 +35423,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when all of the user's marketplace selections were removed in one request. + The report that was deleted, e.g. "insr_01HX...". - `id: optional string` @@ -32585,26 +35437,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of marketplace selections removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of marketplace selections added or whose source changed. - - - `new_value: optional string or null` - - Withdrawn — never populated. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -32613,17 +35445,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional string or null` + - `purge_confirmed: optional boolean or null` - Withdrawn — never populated. + Whether the report was also removed from the organization's report list. False means the report document was removed but the report was not removed from the list (for example it was unarchived at the same time), so it may still appear there until a later delete succeeds. Not set on events recorded before this field existed. - - `ClaudeCodeUserMemoryUpdated object` + - `ClaudeInsightsReportFeedbackSubmitted object` - A user's synced private Claude Code memory was updated or deleted on Anthropic servers. + Feedback was submitted on a Smart Report by an organization admin, by the delegate who ran it (a member the organization allowed to run reports on a limited scope), or by a member it was shared with. The event records which report was rated, not the ratings themselves or the member's written comment. - - `type: optional "claude_code_user_memory_updated"` + - `type: optional "claude_insights_report_feedback_submitted"` - default: claude_code_user_memory_updated + default: claude_insights_report_feedback_submitted - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -32831,9 +35663,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when the user's entire synced memory for this scope was deleted in one request. + The report the feedback was submitted on, e.g. "insr_01HX...". - `id: optional string` @@ -32845,26 +35677,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of memory file paths removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of memory file paths created or updated. - - - `new_checksum: optional string or null` - - Checksum of the user's synced memory after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -32873,21 +35685,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the user's synced memory before this change; null when the store did not exist. - - - `repo: optional string or null` - - Withdrawn — never populated. - - - `ClaudeCodeUserPluginsUpdated object` + - `ClaudeInsightsReportRenamed object` - A user's Claude Code plugin selections — which plugins are installed and enabled — were updated on Anthropic servers. + A Smart Report was renamed, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). - - `type: optional "claude_code_user_plugins_updated"` + - `type: optional "claude_insights_report_renamed"` - default: claude_code_user_plugins_updated + default: claude_insights_report_renamed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -33095,9 +35899,9 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_all: boolean` + - `report_id: string` - True when all of the user's plugin selections were removed in one request. + The report that was renamed, e.g. "insr_01HX...". - `id: optional string` @@ -33109,26 +35913,6 @@ compliance activities that can be filtered by various criteria. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of plugin selections removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of plugin selections added or whose enabled state changed. - - - `new_value: optional string or null` - - The targeted plugin's new enabled state, when a single plugin's state changed. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -33137,17 +35921,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_value: optional string or null` - - The targeted plugin's previous enabled state, when a single plugin's state changed; null when the plugin did not previously exist or multiple plugins changed. - - - `ClaudeCodeUserSettingsUpdated object` + - `ClaudeInsightsReportSharingUpdated object` - A user's synced Claude Code settings were updated or deleted on Anthropic servers. + An organization admin, or the delegate who ran the report (a member the organization allowed to run reports on a limited scope), changed who a Smart Report is shared with: the organization members who may open the report by link, and whether they may open the rendering that attributes findings to individual members. - - `type: optional "claude_code_user_settings_updated"` + - `type: optional "claude_insights_report_sharing_updated"` - default: claude_code_user_settings_updated + default: claude_insights_report_sharing_updated - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -33355,40 +36135,28 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `deleted_all: boolean` + - `attributed_view_allowed: boolean` - True when the user's entire synced settings store was deleted in one request. + Whether, after the change, the members the report is shared with may open the rendering that attributes findings to individual members. + + - `report_id: string` + + The report whose sharing was changed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `added_account_ids: optional array of string` + + The members granted access by this change, e.g. "user_01HX...". + - `created_at: optional string` When this activity occurred. format: date-time - - `keys_deleted: optional array of string` - - Withdrawn — never populated. See `keys_deleted_count`. - - - `keys_deleted_count: optional number or null` - - Number of settings entries removed. - - - `keys_written: optional array of string` - - Withdrawn — never populated. See `keys_written_count`. - - - `keys_written_count: optional number or null` - - Number of settings entries created or updated. - - - `new_checksum: optional string or null` - - Checksum of the user's synced settings after this change. - - `organization_id: optional string or null` Organization ID this activity is associated with @@ -33397,27 +36165,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `previous_checksum: optional string or null` - - Checksum of the user's synced settings before this change; null when the store did not exist. - - - `ClaudeEnterpriseUpgradeCreditUpdated object` - - An organization admin cancelled, or turned back on, the monthly usage credit the organization receives for upgrading from the Team plan to the Enterprise plan, together with the recurring monthly charge that accompanies it. - - - `type: optional "claude_enterprise_upgrade_credit_updated"` - - default: claude_enterprise_upgrade_credit_updated + - `removed_account_ids: optional array of string` - - `action: "cancelled" or "resumed" or "unspecified"` + The members whose access was removed by this change, e.g. "user_01HX...". - Whether the credit was cancelled or turned back on + - `ClaudeInsightsReportTriggered object` - - `"cancelled"` + A Smart Report was triggered by an organization admin, or by a delegate: a member the organization allowed to run reports on a limited scope. A Smart Report is an aggregate analysis of the organization's usage over a date range, optionally scoped to one or more directory groups, to a directory attribute's values, or to product surfaces. - - `"resumed"` + - `type: optional "claude_insights_report_triggered"` - - `"unspecified"` + default: claude_insights_report_triggered - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -33625,16 +36383,34 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` + - `report_id: string` + + The report that was triggered, e.g. "insr_01HX...". + - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' + - `admission_arm: optional "admin" or "delegate" or "unspecified" or null` + + How the member who triggered the report was admitted: an organization admin or a delegate. Not set on events recorded before this field existed. + + - `"admin"` + + - `"delegate"` + + - `"unspecified"` + - `created_at: optional string` When this activity occurred. format: date-time + - `end_date: optional string or null` + + Last day (ISO 8601 date) of the date range the report covers, when specified. + - `organization_id: optional string or null` Organization ID this activity is associated with @@ -33643,13 +36419,53 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `ClaudeFileAccessFailed object` + - `products: optional array of string` - A user was denied access to a file in Claude.ai. + Product surfaces the report was scoped to, for example "chat", "cc" (Claude Code) or "cowork". Empty when the report covers all products. - - `type: optional "claude_file_access_failed"` + - `requester_account_id: optional string or null` - default: claude_file_access_failed + The member who triggered the report, e.g. "user_01HX...". Not set on events recorded before this field existed. + + - `resolved_population: optional number or null` + + How many accounts the directory listed under the selected groups or attribute values when the report was triggered. Not set for a report covering the whole organization, nor on events recorded before this field existed. + + - `scim_group_ids: optional array of string` + + Directory groups the report was scoped to. Empty when the report covers the whole organization. + + - `scope_attribute: optional string or null` + + Directory attribute ("department" / "cost_center") the report was scoped to. Unset when the report is not attribute-scoped. + + - `scope_attribute_values: optional array of string` + + The selected values of that attribute as the directory carries them (customer directory text). Empty when the report is not attribute-scoped. + + - `scope_kind: optional "attribute" or "groups" or "unspecified" or "whole_organization" or null` + + What the report's population was scoped to. Not set on events recorded before this field existed. + + - `"attribute"` + + - `"groups"` + + - `"unspecified"` + + - `"whole_organization"` + + - `start_date: optional string or null` + + First day (ISO 8601 date) of the date range the report covers, when specified. + + - `ClaudeInsightsReportUnarchived object` + + An archived Smart Report was restored to the organization's default report list, by an organization admin or by the delegate who ran it (a member the organization allowed to run reports on a limited scope). + + - `type: optional "claude_insights_report_unarchived"` + + default: claude_insights_report_unarchived - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -33857,22 +36673,14 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` + - `report_id: string` - The file the user was denied access to, e.g. "claude_file_01HX...". + The report that was restored, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` - - The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". - - - `claude_project_id: optional string or null` - - The project the file was accessed through, if any, e.g. "claude_proj_01HX...". - - `created_at: optional string` When this activity occurred. @@ -33887,19 +36695,13 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` - - **Deprecated** - - Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. - - - `ClaudeFileExported object` + - `ClaudeInsightsReportViewed object` - A file was exported from Claude to an external storage destination. + A Smart Report was viewed or downloaded in its default rendering, which identifies no member of the organization (viewing or downloading the rendering that attributes findings to individual members is recorded as a separate activity). - - `type: optional "claude_file_exported"` + - `type: optional "claude_insights_report_viewed"` - default: claude_file_exported + default: claude_insights_report_viewed - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34107,25 +36909,25 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `export_destination: "google_drive" or "unspecified"` - - The external destination the file was exported to. - - - `"google_drive"` + - `report_id: string` - - `"unspecified"` + The report that was viewed, e.g. "insr_01HX...". - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_chat_id: optional string or null` + - `admission_arm: optional "admin" or "delegate" or "share_recipient" or "unspecified" or null` - The chat conversation the file was exported from, if the export originated in a chat, e.g. "claude_chat_01HX...". + How the member who viewed the report was admitted: an organization admin, a delegate (a member allowed to run reports on a limited scope), or a member the report was shared with. - - `claude_file_id: optional string or null` + - `"admin"` - The exported file, e.g. "claude_file_01HX...", if the file has a stored file record; files that exist only inside a session have no file ID. + - `"delegate"` + + - `"share_recipient"` + + - `"unspecified"` - `created_at: optional string` @@ -34141,19 +36943,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: string` - - **Deprecated** + - `ClaudeInsightsResourceAccessUpdated object` - No longer populated. Where `claude_file_id` is present, resolve the name via the Compliance API files endpoint; sandbox and desktop exports carry no file id. + Which directory groups, or which values of one directory attribute, a member may run Smart Reports on (the member's delegated scope) changed: an organization admin set or revoked it, or Smart Reports itself (a system actor) revoked it when the member left the organization. - - `ClaudeFileViewed object` + - `type: optional "claude_insights_resource_access_updated"` - A user viewed a file in Claude.ai. + default: claude_insights_resource_access_updated - - `type: optional "claude_file_viewed"` + - `account_id: string` - default: claude_file_viewed + The member whose delegated scope changed, e.g. "user_01HX...". - `actor: APIActor or UserActor or UnauthenticatedUserActor or 8 more` @@ -34361,21 +37161,21 @@ compliance activities that can be filtered by various criteria. - `user_agent: optional string or null` - - `claude_file_id: string` - - The file that was viewed, e.g. "claude_file_01HX...". - - `id: optional string` Unique identifier for the activity e.g. 'activity_abcd1234' - - `claude_artifact_id: optional string or null` + - `added_scim_group_ids: optional array of string` - The artifact the file was accessed through, if any, e.g. "claude_artifact_01HX...". + Directory groups this change added to the member's scope. - - `claude_project_id: optional string or null` + - `added_scope_attribute: optional string or null` - The project the file was accessed through, if any, e.g. "claude_proj_01HX...". + Directory attribute ("department" / "cost_center") of the added values below. Unset when no attribute value was added. + + - `added_scope_attribute_values: optional array of string` + + The values of that attribute this change added, as the directory carries them (customer directory text). - `created_at: optional string` @@ -34391,11 +37191,17 @@ compliance activities that can be filtered by various criteria. Organization UUID where the activity occurred. Null when the activity is not tied to an organization (for example, login and logout events or calls to the Compliance API). - - `filename: optional string or null` + - `removed_scim_group_ids: optional array of string` - **Deprecated** + Directory groups this change removed from the member's scope. - Deprecated — DO NOT USE. Always empty; the file's display name is intentionally omitted. + - `removed_scope_attribute: optional string or null` + + Directory attribute of the removed values below. Unset when no attribute value was removed. + + - `removed_scope_attribute_values: optional array of string` + + The values of that attribute this change removed. - `ClaudePluginArchiveAccessed object` @@ -67915,7 +70721,7 @@ compliance activities that can be filtered by various criteria. - `new_otlp_endpoint: optional string or null` - The OpenTelemetry export endpoint after the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint is unset or was not itself modified by this update. + The OpenTelemetry export endpoint after the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint was cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint is unset or was not itself modified by this update. - `new_otlp_protocol: optional string or null` @@ -67949,7 +70755,7 @@ compliance activities that can be filtered by various criteria. - `previous_otlp_endpoint: optional string or null` - The OpenTelemetry export endpoint before the change. Credentials in the URL userinfo or query string are removed; path segments are retained. Null if the endpoint was previously unset or was not itself modified by this update. + The OpenTelemetry export endpoint before the change, recorded as its scheme, host and port only (for example, `https://collector.example.com:4318`); the path, query string, user name and password are not recorded. An endpoint entered as only a host and port, without a scheme, is recorded as entered. An empty string means the endpoint had been cleared. `` means the endpoint was entered in some other form, such as text that is not a URL or a URL whose port is not a number. The previous and new values can be the same even though the endpoint changed, for example when only its path changed. Null if the endpoint was previously unset or was not itself modified by this update. - `previous_otlp_protocol: optional string or null` diff --git a/content/en/api/compliance/apps.md b/content/en/api/compliance/apps.md index a05e558108..447bb3a243 100644 --- a/content/en/api/compliance/apps.md +++ b/content/en/api/compliance/apps.md @@ -3516,27 +3516,31 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts \ **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -Streams the content of one version of a Claude Code Artifact as the -response body. +Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files. -Returns 404 for Artifacts that don't exist or belong to another parent -organization. A listed version id can start returning 404 if subsequent -publishes rotated it out of retained history — re-list on 404. Returns -503 while the version's content upload is still in flight or was -abandoned — retry with backoff. Returns 422 with -`error.details.error_code` `multi_file_unavailable` for a version that -has more than one file, unless the request sets `multi_file_format=zip`, -which returns those files as a ZIP archive. With `multi_file_format=zip`, -a version with more than one file, one of them with a name the API cannot -export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude -Doc's versions hold only the web page that displays the Doc and never come -back as a ZIP. That page usually has more than one file, so a Doc's version -usually gets the 422 `multi_file_unavailable`. Download the Doc's text with -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. -Oversized encoded content aborts mid-stream: headers and initial bytes arrive -but the body terminates early — an aborted chunked transfer is the -only truncation signal for encoded content. `Content-MD5` is emitted -only for identity-stored content; validate against it when present. +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again. +- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff. +- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: the version ID, as in the request. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -3552,7 +3556,7 @@ only for identity-stored content; validate against it when present. - `multi_file_format: optional string` - Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter. + Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP. #### Headers @@ -3576,26 +3580,39 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/ve **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content` -Streams an Artifact's current content as the response body. For a -Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per -text tab, and the request must set `multi_file_format=zip`. For any other -Artifact, it is the latest version, as -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -returns it. - -Returns 404 for Artifacts that don't exist or that the API key cannot read. -Returns 400 with `error.details.error_code` `cmek_key_disabled` when the -organization's customer-managed encryption key can't be used, for example -because it is disabled or revoked. Returns 503 when the content can't be -produced right now; wait the number of seconds in the `Retry-After` -header, or retry with backoff when it is absent. For a Claude Doc, a 422's -`error.details.error_code` is `multi_file_unavailable` when the request -does not set `multi_file_format=zip`, `document_unavailable` when the Doc -has no text to export (for example, it has no text tab or is in the trash), -`document_too_large` when the export is over 16 MiB, or -`cmek_org_unsupported` when the organization uses customer-managed -encryption keys and the export can't be served for it right now. For any -other Artifact, the 422s are the version download's. +Streams an Artifact's current content as the response body, in chunks with no `Content-Length`. + +For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`. + +For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist, or the API key cannot read it. +- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again. +- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent. +- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry. +- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes. +- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry. +- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: null. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -3607,7 +3624,7 @@ other Artifact, the 422s are the version download's. - `multi_file_format: optional string` - Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. + Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. #### Headers diff --git a/content/en/api/compliance/apps/code.md b/content/en/api/compliance/apps/code.md index e23438f8cb..771943b6a1 100644 --- a/content/en/api/compliance/apps/code.md +++ b/content/en/api/compliance/apps/code.md @@ -223,27 +223,31 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts \ **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -Streams the content of one version of a Claude Code Artifact as the -response body. +Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files. -Returns 404 for Artifacts that don't exist or belong to another parent -organization. A listed version id can start returning 404 if subsequent -publishes rotated it out of retained history — re-list on 404. Returns -503 while the version's content upload is still in flight or was -abandoned — retry with backoff. Returns 422 with -`error.details.error_code` `multi_file_unavailable` for a version that -has more than one file, unless the request sets `multi_file_format=zip`, -which returns those files as a ZIP archive. With `multi_file_format=zip`, -a version with more than one file, one of them with a name the API cannot -export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude -Doc's versions hold only the web page that displays the Doc and never come -back as a ZIP. That page usually has more than one file, so a Doc's version -usually gets the 422 `multi_file_unavailable`. Download the Doc's text with -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. -Oversized encoded content aborts mid-stream: headers and initial bytes arrive -but the body terminates early — an aborted chunked transfer is the -only truncation signal for encoded content. `Content-MD5` is emitted -only for identity-stored content; validate against it when present. +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again. +- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff. +- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: the version ID, as in the request. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -259,7 +263,7 @@ only for identity-stored content; validate against it when present. - `multi_file_format: optional string` - Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter. + Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP. #### Headers @@ -283,26 +287,39 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/ve **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content` -Streams an Artifact's current content as the response body. For a -Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per -text tab, and the request must set `multi_file_format=zip`. For any other -Artifact, it is the latest version, as -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -returns it. - -Returns 404 for Artifacts that don't exist or that the API key cannot read. -Returns 400 with `error.details.error_code` `cmek_key_disabled` when the -organization's customer-managed encryption key can't be used, for example -because it is disabled or revoked. Returns 503 when the content can't be -produced right now; wait the number of seconds in the `Retry-After` -header, or retry with backoff when it is absent. For a Claude Doc, a 422's -`error.details.error_code` is `multi_file_unavailable` when the request -does not set `multi_file_format=zip`, `document_unavailable` when the Doc -has no text to export (for example, it has no text tab or is in the trash), -`document_too_large` when the export is over 16 MiB, or -`cmek_org_unsupported` when the organization uses customer-managed -encryption keys and the export can't be served for it right now. For any -other Artifact, the 422s are the version download's. +Streams an Artifact's current content as the response body, in chunks with no `Content-Length`. + +For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`. + +For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist, or the API key cannot read it. +- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again. +- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent. +- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry. +- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes. +- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry. +- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: null. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. #### Path parameters @@ -314,7 +331,7 @@ other Artifact, the 422s are the version download's. - `multi_file_format: optional string` - Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. + Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. #### Headers diff --git a/content/en/api/compliance/apps/code/artifacts.md b/content/en/api/compliance/apps/code/artifacts.md index ae31b2244a..f522f20c1f 100644 --- a/content/en/api/compliance/apps/code/artifacts.md +++ b/content/en/api/compliance/apps/code/artifacts.md @@ -221,27 +221,31 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts \ **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -Streams the content of one version of a Claude Code Artifact as the -response body. +Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files. -Returns 404 for Artifacts that don't exist or belong to another parent -organization. A listed version id can start returning 404 if subsequent -publishes rotated it out of retained history — re-list on 404. Returns -503 while the version's content upload is still in flight or was -abandoned — retry with backoff. Returns 422 with -`error.details.error_code` `multi_file_unavailable` for a version that -has more than one file, unless the request sets `multi_file_format=zip`, -which returns those files as a ZIP archive. With `multi_file_format=zip`, -a version with more than one file, one of them with a name the API cannot -export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude -Doc's versions hold only the web page that displays the Doc and never come -back as a ZIP. That page usually has more than one file, so a Doc's version -usually gets the 422 `multi_file_unavailable`. Download the Doc's text with -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. -Oversized encoded content aborts mid-stream: headers and initial bytes arrive -but the body terminates early — an aborted chunked transfer is the -only truncation signal for encoded content. `Content-MD5` is emitted -only for identity-stored content; validate against it when present. +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again. +- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff. +- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: the version ID, as in the request. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. ### Path parameters @@ -257,7 +261,7 @@ only for identity-stored content; validate against it when present. - `multi_file_format: optional string` - Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter. + Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP. ### Headers @@ -281,26 +285,39 @@ curl https://api.anthropic.com/v1/compliance/apps/code/artifacts/$ARTIFACT_ID/ve **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content` -Streams an Artifact's current content as the response body. For a -Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per -text tab, and the request must set `multi_file_format=zip`. For any other -Artifact, it is the latest version, as -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -returns it. - -Returns 404 for Artifacts that don't exist or that the API key cannot read. -Returns 400 with `error.details.error_code` `cmek_key_disabled` when the -organization's customer-managed encryption key can't be used, for example -because it is disabled or revoked. Returns 503 when the content can't be -produced right now; wait the number of seconds in the `Retry-After` -header, or retry with backoff when it is absent. For a Claude Doc, a 422's -`error.details.error_code` is `multi_file_unavailable` when the request -does not set `multi_file_format=zip`, `document_unavailable` when the Doc -has no text to export (for example, it has no text tab or is in the trash), -`document_too_large` when the export is over 16 MiB, or -`cmek_org_unsupported` when the organization uses customer-managed -encryption keys and the export can't be served for it right now. For any -other Artifact, the 422s are the version download's. +Streams an Artifact's current content as the response body, in chunks with no `Content-Length`. + +For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`. + +For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist, or the API key cannot read it. +- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again. +- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent. +- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry. +- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes. +- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry. +- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: null. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. ### Path parameters @@ -312,7 +329,7 @@ other Artifact, the 422s are the version download's. - `multi_file_format: optional string` - Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. + Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. ### Headers diff --git a/content/en/api/compliance/apps/code/artifacts/download.md b/content/en/api/compliance/apps/code/artifacts/download.md index 50f0666138..879d7ea710 100644 --- a/content/en/api/compliance/apps/code/artifacts/download.md +++ b/content/en/api/compliance/apps/code/artifacts/download.md @@ -7,26 +7,39 @@ url: https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/down **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/content` -Streams an Artifact's current content as the response body. For a -Claude Doc, that is the Doc's text as a ZIP archive of Word files, one per -text tab, and the request must set `multi_file_format=zip`. For any other -Artifact, it is the latest version, as -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -returns it. - -Returns 404 for Artifacts that don't exist or that the API key cannot read. -Returns 400 with `error.details.error_code` `cmek_key_disabled` when the -organization's customer-managed encryption key can't be used, for example -because it is disabled or revoked. Returns 503 when the content can't be -produced right now; wait the number of seconds in the `Retry-After` -header, or retry with backoff when it is absent. For a Claude Doc, a 422's -`error.details.error_code` is `multi_file_unavailable` when the request -does not set `multi_file_format=zip`, `document_unavailable` when the Doc -has no text to export (for example, it has no text tab or is in the trash), -`document_too_large` when the export is over 16 MiB, or -`cmek_org_unsupported` when the organization uses customer-managed -encryption keys and the export can't be served for it right now. For any -other Artifact, the 422s are the version download's. +Streams an Artifact's current content as the response body, in chunks with no `Content-Length`. + +For a Claude Doc (an Artifact whose `artifact_type` is `claude_docs`), the request must set `multi_file_format=zip`, and the content is the Doc's text as a ZIP archive of Word files. That ZIP has no `files.json`. It holds one Word file per text tab, in tab order, named `NN-.docx`, where `NN` counts from `01`. A Doc with one text tab gets one file, `01-document.docx`. + +For any other Artifact, the content is the latest version. With `multi_file_format=zip`, when the latest version has more than one file, it comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}.zip` for a ZIP archive, otherwise `{artifact_id}.txt`, whatever the content is. `Content-MD5` is always on a Claude Doc's ZIP, only on a single file stored uncompressed, and never on a ZIP archive of a version's files. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist, or the API key cannot read it. +- `400` with `error.details.error_code` `cmek_key_disabled`: the organization's customer-managed encryption key can't be used, for example because it is disabled or revoked. Retry once the key can be used again. +- `503`: the content can't be produced right now. Wait the number of seconds in the `Retry-After` header, or retry with backoff when it is absent. +- `422` with `multi_file_unavailable`: the request does not set `multi_file_format=zip`, and the Artifact is a Claude Doc or its latest version has more than one file. Add the parameter. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the Artifact is not a Claude Doc, and one of the latest version's files has a path the API cannot export. Do not retry. +- `422` with `document_unavailable`: Claude Docs has no document it can export for the Doc, for example because it has no text tab or is in the trash. Retrying will not help unless that changes. +- `422` with `document_too_large`: the Doc's export is over 16 MiB. Do not retry. +- `422` with `cmek_org_unsupported`: the organization uses customer-managed encryption keys and the export can't be served for it right now. Try again later, and contact Anthropic support if this continues. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: null. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. ## Path parameters @@ -38,7 +51,7 @@ other Artifact, the 422s are the version download's. - `multi_file_format: optional string` - Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact it works as on the version download: when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. + Set to `zip`, its only value. A Claude Doc downloads only this way, as a ZIP archive of Word files, one per text tab. For any other Artifact, when the latest version has more than one file, it comes back as a ZIP archive of its files with an index, `files.json`. ## Headers diff --git a/content/en/api/compliance/apps/code/artifacts/retrieve_version.md b/content/en/api/compliance/apps/code/artifacts/retrieve_version.md index 5a51614dfd..2114906ec3 100644 --- a/content/en/api/compliance/apps/code/artifacts/retrieve_version.md +++ b/content/en/api/compliance/apps/code/artifacts/retrieve_version.md @@ -7,27 +7,31 @@ url: https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts/retr **GET** `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` -Streams the content of one version of a Claude Code Artifact as the -response body. - -Returns 404 for Artifacts that don't exist or belong to another parent -organization. A listed version id can start returning 404 if subsequent -publishes rotated it out of retained history — re-list on 404. Returns -503 while the version's content upload is still in flight or was -abandoned — retry with backoff. Returns 422 with -`error.details.error_code` `multi_file_unavailable` for a version that -has more than one file, unless the request sets `multi_file_format=zip`, -which returns those files as a ZIP archive. With `multi_file_format=zip`, -a version with more than one file, one of them with a name the API cannot -export, gets 422 `file_set_unavailable`. Do not retry a 422. A Claude -Doc's versions hold only the web page that displays the Doc and never come -back as a ZIP. That page usually has more than one file, so a Doc's version -usually gets the 422 `multi_file_unavailable`. Download the Doc's text with -`GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. -Oversized encoded content aborts mid-stream: headers and initial bytes arrive -but the body terminates early — an aborted chunked transfer is the -only truncation signal for encoded content. `Content-MD5` is emitted -only for identity-stored content; validate against it when present. +Streams the content of one version of an Artifact as the response body, in chunks with no `Content-Length`. With `multi_file_format=zip`, a version with more than one file, other than a Claude Doc's (an Artifact whose `artifact_type` is `claude_docs`), comes back as a ZIP archive of its files. + +Headers: `Content-Type` (`application/zip` for a ZIP archive, otherwise the stored MIME type), `Content-Disposition: attachment; filename*=utf-8''` (RFC 5987), `Cache-Control: no-store, private` and, when available, `Content-MD5` (base64). `` is `{artifact_id}-{version_id}.zip` for a ZIP archive, otherwise `{artifact_id}-{version_id}.txt`, whatever the content is. `Content-MD5` is only on a single file stored uncompressed, so it is never on a ZIP archive. Check the body against it when present. + +Errors specific to this download: + +- `404`: the Artifact doesn't exist or the API key cannot read it, or the version is no longer kept. Older versions are dropped as new ones are published, so list the Artifact's versions again. You also get this when the organization's customer-managed encryption key can't be used. Retry once the key can be used again. +- `503`: the content can't be served right now, for example because its upload is still in progress or was abandoned. Retry with backoff. +- `422` with `error.details.error_code` `multi_file_unavailable`: the version has more than one file. Add `multi_file_format=zip`. A Claude Doc's version with more than one file gets this error either way, because it holds only the web page that displays the Doc. Download the Doc's text with `GET /v1/compliance/apps/code/artifacts/{artifact_id}/content?multi_file_format=zip`. +- `422` with `file_set_unavailable`: the request sets `multi_file_format=zip`, the version has more than one file, and one of them has a path the API cannot export. Do not retry. + +An error after the download has started stops the body early, with the `200` status already sent. For example, this happens to content stored compressed when it is over 16 MiB once decompressed. For a single file with no `Content-MD5`, the only sign is a transfer that aborts before its last chunk, so treat a download that aborts this way as failed. + +A ZIP archive of a version's files holds one top-level folder, named for the Artifact and version. That folder holds a `files/` folder and an index, `files.json`. The index is written last, so treat an archive as incomplete if it cannot be opened or has no `files.json` in its top-level folder. + +`files.json` has these fields: + +- `artifact_id`: the Artifact ID, as in the request. +- `version_id`: the version ID, as in the request. +- `title`: the title of the version in the archive, or that version's ID when no title is kept. +- `created_at`: when the version was published (RFC 3339, UTC), or null when that is not known. +- `files`: one entry for each file under `files/`, with `original_path` (the file's path in the version), `exported_as` (its path in the archive), `sha256` (lowercase hex), `size_bytes` (before compression) and `mime_type`. `exported_as` is the top-level folder, then `files/`, then `original_path`. A name that could not be saved or opened safely on every operating system is changed. Use `exported_as`, not `original_path`, to find a file in the archive. +- `omitted_files`: the files left out of the archive, each with `original_path`, `sha256`, `size_bytes` and `mime_type`. They include files the version uses from another Artifact. They also include files copied from the Artifact type the Artifact was made from, such as the app that displays it, when another organization owns that type. + +`files` and `omitted_files` together list at most 4,096 files, their `size_bytes` add up to at most 1 GiB, and no file is over 20 MiB. ## Path parameters @@ -43,7 +47,7 @@ only for identity-stored content; validate against it when present. - `multi_file_format: optional string` - Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. Files the Artifact copied from its type (the app that displays every Artifact of that type) are listed under `omitted_files` in the index, and left out of the archive, when an organization other than the Artifact's owns that type. Files the version uses from another Artifact are always listed there and left out. A Claude Doc's version never comes back as a ZIP: it is answered as without this parameter, except that a version with more than one file, one of them with a name the API cannot export, gets 422 `file_set_unavailable`. A version with one file is returned as that file, as without this parameter. + Set to `zip`, its only value, to receive a version that has more than one file as a ZIP archive of its files with an index, `files.json`. A version with one file is returned as that file. A Claude Doc's version never comes back as a ZIP. ## Headers diff --git a/content/en/api/csharp/beta.md b/content/en/api/csharp/beta.md index deeb684acc..f20798a3a6 100644 --- a/content/en/api/csharp/beta.md +++ b/content/en/api/csharp/beta.md @@ -371,6 +371,8 @@ The Models API response can be used to determine which models are available for - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -592,6 +594,9 @@ The Models API response can be used to determine which models are available for #### Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelListParams parameters = new(); var page = await client.Beta.Models.List(parameters); @@ -834,6 +839,8 @@ The Models API response can be used to determine information about a specific mo - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1055,6 +1062,9 @@ The Models API response can be used to determine information about a specific mo #### Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelRetrieveParams parameters = new() { ModelID = "model_id" }; var betaModelInfo = await client.Beta.Models.Retrieve(parameters); @@ -5034,9 +5044,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -8132,6 +8144,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -8140,6 +8156,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -8148,6 +8168,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -8156,6 +8180,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -8164,10 +8192,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -9064,6 +9104,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCreateParams parameters = new() { MaxTokens = 1024, @@ -9074,10 +9118,13 @@ MessageCreateParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessage = await client.Beta.Messages.Create(parameters); @@ -12928,9 +12975,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -12965,6 +13014,10 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCountTokensParams parameters = new() { Messages = @@ -12974,10 +13027,13 @@ MessageCountTokensParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessageTokensCount = await client.Beta.Messages.CountTokens(parameters); @@ -16665,8 +16721,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -16715,7 +16785,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -16723,6 +16797,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -17244,9 +17324,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -17355,6 +17437,13 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Beta.Messages; +using Anthropic.Models.Beta.Messages.Batches; +using ModelsMessages = Anthropic.Models.Messages; + BatchCreateParams parameters = new() { Requests = @@ -17370,15 +17459,18 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, - ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + Role = Messages::Role.User, + ClearAt = Messages::ClearAt.NextUserMessage, + OutputConfig = new() + { + Effort = Messages::BetaSystemMessageOutputConfigEffort.Low, + }, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, + Model = ModelsMessages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Compaction = new() { Instructions = "instructions" }, - Container = new BetaContainerParams() + Container = new Messages::BetaContainerParams() { ID = "id", Skills = @@ -17386,7 +17478,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = Type.Anthropic, + Type = Messages::BetaSkillParamsType.Anthropic, Version = "latest", }, ], @@ -17395,7 +17487,7 @@ BatchCreateParams parameters = new() { Edits = [ - new BetaClearToolUses20250919Edit() + new Messages::BetaClearToolUses20250919Edit() { ClearAtLeast = new(0), ClearToolInputs = true, @@ -17404,7 +17496,7 @@ BatchCreateParams parameters = new() "string" ], Keep = new(0), - Trigger = new BetaInputTokensTrigger(1), + Trigger = new Messages::BetaInputTokensTrigger(1), }, ], }, @@ -17413,7 +17505,7 @@ BatchCreateParams parameters = new() PreviousMessageID = "previous_message_id" }, FallbackCreditToken = "x", - Fallbacks = new Default(), + Fallbacks = new Messages::Default(), InferenceGeo = "inference_geo", McpServers = [ @@ -17438,7 +17530,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -17469,13 +17561,13 @@ BatchCreateParams parameters = new() System = new( [ - new BetaTextBlockParam() + new Messages::BetaTextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new BetaCitationCharLocationParam() + new Messages::BetaCitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -17488,21 +17580,21 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new BetaThinkingConfigAdaptive() + Thinking = new Messages::BetaThinkingConfigAdaptive() { BlockBinding = new() { - PrefixMismatchBehavior = BetaThinkingPrefixMismatchBehavior.Error, + PrefixMismatchBehavior = Messages::BetaThinkingPrefixMismatchBehavior.Error, }, - Display = Display.Summarized, + Display = Messages::Display.Summarized, }, - ToolChoice = new BetaToolChoiceAuto() + ToolChoice = new Messages::BetaToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new BetaTool() + new Messages::BetaTool() { InputSchema = new() { @@ -17519,9 +17611,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::BetaToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -17533,7 +17625,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::BetaToolType.Custom, }, ], TopK = 5, @@ -17695,6 +17787,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -17802,6 +17896,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Retrieve(parameters); @@ -17968,6 +18065,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18075,6 +18174,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Beta.Messages.Batches.List(parameters); @@ -18240,6 +18342,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18347,6 +18451,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Cancel(parameters); @@ -18503,6 +18610,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18526,6 +18635,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaDeletedMessageBatch = await client.Beta.Messages.Batches.Delete(parameters); @@ -18668,6 +18780,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -21738,6 +21852,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -21746,6 +21864,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -21754,6 +21876,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -21762,6 +21888,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -21770,10 +21900,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -22448,6 +22590,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Batches.ResultsStreaming(parameters)) @@ -23416,6 +23561,8 @@ Create Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -24211,6 +24358,9 @@ Create Agent #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentCreateParams parameters = new() { Model = BetaManagedAgentsModel.ClaudeOpus5_5, @@ -24468,6 +24618,8 @@ List Agents - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25263,6 +25415,9 @@ List Agents #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentListParams parameters = new(); var page = await client.Beta.Agents.List(parameters); @@ -25507,6 +25662,8 @@ Get Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26302,6 +26459,9 @@ Get Agent #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentRetrieveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -27382,6 +27542,8 @@ Update Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28177,6 +28339,9 @@ Update Agent #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentUpdateParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -28411,6 +28576,8 @@ Archive Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29206,6 +29373,9 @@ Archive Agent #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentArchiveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -29452,6 +29622,8 @@ List Agent Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30247,6 +30419,9 @@ List Agent Versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents.Versions; + VersionListParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -30600,6 +30775,8 @@ Create a new environment with the specified configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30739,6 +30916,9 @@ Create a new environment with the specified configuration. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentCreateParams parameters = new() { Name = "python-data-analysis" }; var betaEnvironment = await client.Beta.Environments.Create(parameters); @@ -30927,6 +31107,8 @@ List environments with pagination support. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31066,6 +31248,9 @@ List environments with pagination support. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentListParams parameters = new(); var page = await client.Beta.Environments.List(parameters); @@ -31249,6 +31434,8 @@ Retrieve a specific environment by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31388,6 +31575,9 @@ Retrieve a specific environment by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -31681,6 +31871,8 @@ Update an existing environment's configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31820,6 +32012,9 @@ Update an existing environment's configuration. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -31999,6 +32194,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32022,6 +32219,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentDeleteParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -32161,6 +32361,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32300,6 +32502,9 @@ Archive an environment by ID. Archived environments cannot be used to create new #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentArchiveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -32485,6 +32690,8 @@ Retrieve detailed information about a specific work item. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32574,6 +32781,9 @@ Retrieve detailed information about a specific work item. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -32744,6 +32954,8 @@ Long poll for work items in the queue. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string anthropicWorkerID` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -32831,6 +33043,9 @@ Long poll for work items in the queue. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkPollParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -32990,6 +33205,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -33073,6 +33290,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkAckParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -33241,6 +33461,8 @@ Record a heartbeat for a work item to maintain the lease. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -33280,6 +33502,9 @@ Record a heartbeat for a work item to maintain the lease. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkHeartbeatParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -33431,6 +33656,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33520,6 +33747,9 @@ Stop a work item, initiating graceful or forced shutdown. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStopParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -33688,6 +33918,8 @@ List work items in an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -33771,6 +34003,9 @@ List work items in an environment. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkListParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -33941,6 +34176,8 @@ Update work item metadata with merge semantics. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34030,6 +34267,10 @@ Update work item metadata with merge semantics. #### Example ```csharp +using System; +using System.Collections.Generic; +using Anthropic.Models.Beta.Environments.Work; + WorkUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -34187,6 +34428,8 @@ Get statistics about the work queue for an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34224,6 +34467,9 @@ Get statistics about the work queue for an environment. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStatsParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -35544,6 +35790,8 @@ Create Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -36693,6 +36941,9 @@ Create Session #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionCreateParams parameters = new() { Agent = "agent_011CZkYpogX7uDKUyvBTophP", @@ -37106,6 +37357,8 @@ List Sessions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -38255,6 +38508,9 @@ List Sessions #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionListParams parameters = new(); var page = await client.Beta.Sessions.List(parameters); @@ -38590,6 +38846,8 @@ Get Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -39739,6 +39997,9 @@ Get Session #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -40091,6 +40352,8 @@ Update Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41240,6 +41503,9 @@ Update Session #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -41570,6 +41836,8 @@ Delete Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41589,6 +41857,9 @@ Delete Session #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -41728,6 +41999,8 @@ Archive Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -42877,6 +43150,9 @@ Archive Session #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -43335,6 +43611,8 @@ List Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -46268,6 +46546,9 @@ List Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -46794,6 +47075,8 @@ Send Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -47249,6 +47532,9 @@ Send Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventSendParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -47261,10 +47547,10 @@ EventSendParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], }; @@ -47422,6 +47708,8 @@ Stream Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -50405,6 +50693,9 @@ Stream Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -50570,6 +50861,8 @@ Add Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -50603,11 +50896,14 @@ Add Session Resource #### Example ```csharp -ResourceAddParams parameters = new() +using System; +using Resources = Anthropic.Models.Beta.Sessions.Resources; + +Resources::ResourceAddParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", FileID = "file_011CNha8iCJcU1wXNR6q4V8w", - Type = Type.File, + Type = Resources::Type.File, }; var betaManagedAgentsFileResource = await client.Beta.Sessions.Resources.Add(parameters); @@ -50758,6 +51054,8 @@ List Session Resources - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -50873,6 +51171,9 @@ List Session Resources #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -51037,6 +51338,8 @@ Get Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51154,6 +51457,9 @@ Get Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -51310,6 +51616,8 @@ Update Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51427,6 +51735,9 @@ Update Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -51578,6 +51889,8 @@ Delete Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51597,6 +51910,9 @@ Delete Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -51763,6 +52079,8 @@ List Session Threads - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52608,6 +52926,9 @@ List Session Threads #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -52840,6 +53161,8 @@ Get Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53685,6 +54008,9 @@ Get Session Thread #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -53911,6 +54237,8 @@ Archive Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54756,6 +55084,9 @@ Archive Session Thread #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -54990,6 +55321,8 @@ List Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -57923,6 +58256,9 @@ List Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -58098,6 +58434,8 @@ Stream Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -61081,6 +61419,9 @@ Stream Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -61601,6 +61942,8 @@ Create Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -62130,6 +62473,10 @@ Create Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; +using Anthropic.Models.Beta.Sessions.Events; + DeploymentCreateParams parameters = new() { Agent = "string", @@ -62143,10 +62490,10 @@ DeploymentCreateParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], Name = "x", @@ -62376,6 +62723,8 @@ List Deployments - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -62905,6 +63254,9 @@ List Deployments #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentListParams parameters = new(); var page = await client.Beta.Deployments.List(parameters); @@ -63108,6 +63460,8 @@ Get Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63637,6 +63991,9 @@ Get Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRetrieveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -64208,6 +64565,8 @@ Update Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64737,6 +65096,9 @@ Update Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUpdateParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -64936,6 +65298,8 @@ Archive Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65465,6 +65829,9 @@ Archive Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentArchiveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -65664,6 +66031,8 @@ Run Deployment Now - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65897,6 +66266,9 @@ Run Deployment Now #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRunParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -66054,6 +66426,8 @@ Pause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66583,6 +66957,9 @@ Pause Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentPauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -66782,6 +67159,8 @@ Unpause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67311,6 +67690,9 @@ Unpause Deployment #### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUnpauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -67554,6 +67936,8 @@ List Deployment Runs - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67787,6 +68171,9 @@ List Deployment Runs #### Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunListParams parameters = new(); var page = await client.Beta.DeploymentRuns.List(parameters); @@ -67948,6 +68335,8 @@ Get Deployment Run - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68181,6 +68570,9 @@ Get Deployment Run #### Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunRetrieveParams parameters = new() { DeploymentRunID = "deployment_run_id" @@ -68346,6 +68738,8 @@ Create a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68393,6 +68787,9 @@ Create a Vault #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultCreateParams parameters = new() { DisplayName = "Example vault" }; var betaManagedAgentsVault = await client.Beta.Vaults.Create(parameters); @@ -68548,6 +68945,8 @@ List Vaults - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68595,6 +68994,9 @@ List Vaults #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultListParams parameters = new(); var page = await client.Beta.Vaults.List(parameters); @@ -68747,6 +69149,8 @@ Retrieve a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68794,6 +69198,9 @@ Retrieve a Vault #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -68952,6 +69359,8 @@ Update a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68999,6 +69408,9 @@ Update a Vault #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -69147,6 +69559,8 @@ Delete a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69168,6 +69582,9 @@ Delete a Vault #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -69309,6 +69726,8 @@ Archive a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69356,6 +69775,9 @@ Archive a Vault #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -69682,6 +70104,8 @@ Create a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69847,6 +70271,9 @@ Create a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialCreateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -69854,7 +70281,7 @@ CredentialCreateParams parameters = new() { Token = "bearer_exampletoken", McpServerUrl = "https://example-server.modelcontextprotocol.io/sse", - Type = Type.StaticBearer, + Type = BetaManagedAgentsStaticBearerCreateParamsType.StaticBearer, }, }; @@ -70020,6 +70447,8 @@ List Credentials - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70185,6 +70614,9 @@ List Credentials #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialListParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -70349,6 +70781,8 @@ Retrieve a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70514,6 +70948,9 @@ Retrieve a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -70812,6 +71249,8 @@ Update a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70977,6 +71416,9 @@ Update a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -71135,6 +71577,8 @@ Delete a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71156,6 +71600,9 @@ Delete a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -71302,6 +71749,8 @@ Archive a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71467,6 +71916,9 @@ Archive a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -71625,6 +72077,8 @@ Validate an MCP OAuth Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71734,6 +72188,9 @@ Validate an MCP OAuth Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialMcpOAuthValidateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -71778,13 +72235,13 @@ Console.WriteLine(betaManagedAgentsCredentialValidation); ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters @@ -71792,19 +72249,25 @@ Create a memory store - `required string name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `IReadOnlyDictionary metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `IReadOnlyList betas` (header parameter) @@ -71912,6 +72375,8 @@ Create a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71928,27 +72393,33 @@ Create a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -71956,13 +72427,18 @@ Create a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreCreateParams parameters = new() { Name = "x" }; var betaManagedAgentsMemoryStore = await client.Beta.MemoryStores.Create(parameters); @@ -71987,13 +72463,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -### List memory stores +### List Memory Stores `MemoryStoreListPage Beta.MemoryStores.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters @@ -72001,13 +72477,13 @@ List memory stores - `DateTimeOffset createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `DateTimeOffset createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -72023,7 +72499,7 @@ List memory stores - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `IReadOnlyList betas` (header parameter) @@ -72131,6 +72607,8 @@ List memory stores - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72147,27 +72625,33 @@ List memory stores - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -72175,13 +72659,18 @@ List memory stores - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreListParams parameters = new(); var page = await client.Beta.MemoryStores.List(parameters); @@ -72211,13 +72700,13 @@ await foreach (var item in page.Paginate()) } ``` -### Retrieve a memory store +### Retrieve a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters @@ -72225,7 +72714,7 @@ Retrieve a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `IReadOnlyList betas` (header parameter) @@ -72333,6 +72822,8 @@ Retrieve a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72349,27 +72840,33 @@ Retrieve a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -72377,13 +72874,18 @@ Retrieve a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -72411,13 +72913,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -### Update a memory store +### Update a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters @@ -72425,21 +72927,27 @@ Update a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `string? description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `IReadOnlyDictionary? metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `string? name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -72549,6 +73057,8 @@ Update a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72565,27 +73075,33 @@ Update a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -72593,13 +73109,18 @@ Update a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreUpdateParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -72627,13 +73148,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -### Delete a memory store +### Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore Beta.MemoryStores.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters @@ -72641,7 +73162,9 @@ Delete a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `IReadOnlyList betas` (header parameter) @@ -72749,6 +73272,8 @@ Delete a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72770,6 +73295,9 @@ Delete a memory store #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreDeleteParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -72789,13 +73317,13 @@ Console.WriteLine(betaManagedAgentsDeletedMemoryStore); } ``` -### Archive a memory store +### Archive a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Archive(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters @@ -72803,7 +73331,9 @@ Archive a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `IReadOnlyList betas` (header parameter) @@ -72911,6 +73441,8 @@ Archive a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72927,27 +73459,33 @@ Archive a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -72955,13 +73493,18 @@ Archive a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreArchiveParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -72991,13 +73534,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -73009,17 +73552,23 @@ Create a memory - `required string? content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `required string path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -73127,6 +73676,8 @@ Create a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73137,13 +73688,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -73151,7 +73708,7 @@ Create a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73167,7 +73724,11 @@ Create a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -73175,17 +73736,24 @@ Create a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryCreateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -73215,13 +73783,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### List memories +### List Memories `MemoryListPage Beta.MemoryStores.Memories.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -73233,27 +73801,35 @@ List memories - `int depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `int limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `string pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `BetaManagedAgentsMemoryView view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `IReadOnlyList betas` (header parameter) @@ -73361,6 +73937,8 @@ List memories - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73371,17 +73949,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -73389,7 +73973,7 @@ List memories - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73405,7 +73989,11 @@ List memories - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -73413,17 +74001,23 @@ List memories - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -73434,6 +74028,9 @@ List memories #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryListParams parameters = new() { MemoryStoreID = "memory_store_id" }; var page = await client.Beta.MemoryStores.Memories.List(parameters); @@ -73465,13 +74062,13 @@ await foreach (var item in page.Paginate()) } ``` -### Retrieve a memory +### Retrieve a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -73487,7 +74084,9 @@ Retrieve a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -73595,6 +74194,8 @@ Retrieve a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73605,13 +74206,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -73619,7 +74226,7 @@ Retrieve a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73635,7 +74242,11 @@ Retrieve a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -73643,17 +74254,24 @@ Retrieve a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -73682,13 +74300,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### Update a memory +### Update a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -73704,7 +74322,9 @@ Update a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `string? content` @@ -73712,13 +74332,17 @@ Update a memory - `string? path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `BetaManagedAgentsPrecondition precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `IReadOnlyList betas` (header parameter) @@ -73826,6 +74450,8 @@ Update a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73836,13 +74462,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -73850,7 +74482,7 @@ Update a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73866,7 +74498,11 @@ Update a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -73874,17 +74510,24 @@ Update a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryUpdateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -73913,13 +74556,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### Delete a memory +### Delete a Memory `BetaManagedAgentsDeletedMemory Beta.MemoryStores.Memories.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -74045,6 +74688,8 @@ Delete a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74055,7 +74700,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about how long versions are kept. - `required Type Type` @@ -74066,6 +74715,9 @@ Delete a memory #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryDeleteParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -74088,13 +74740,13 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `MemoryVersionListPage Beta.MemoryStores.MemoryVersions.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -74122,7 +74774,9 @@ List memory versions - `int limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -74130,7 +74784,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `BetaManagedAgentsMemoryVersionOperation operation` (query parameter) @@ -74150,7 +74804,9 @@ List memory versions - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -74258,6 +74914,8 @@ List memory versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74268,7 +74926,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -74284,7 +74948,9 @@ List memory versions - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -74322,7 +74988,11 @@ List memory versions - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -74378,7 +75048,11 @@ List memory versions - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -74389,6 +75063,9 @@ List memory versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionListParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -74432,13 +75109,13 @@ await foreach (var item in page.Paginate()) } ``` -### Retrieve a memory version +### Retrieve a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -74454,7 +75131,9 @@ Retrieve a memory version - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -74562,6 +75241,8 @@ Retrieve a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74572,7 +75253,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -74588,7 +75275,9 @@ Retrieve a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -74626,7 +75315,11 @@ Retrieve a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -74682,7 +75375,11 @@ Retrieve a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -74693,6 +75390,9 @@ Retrieve a memory version #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -74730,13 +75430,13 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); } ``` -### Redact a memory version +### Redact a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Redact(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -74856,6 +75556,8 @@ Redact a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74866,7 +75568,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -74882,7 +75590,9 @@ Redact a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -74920,7 +75630,11 @@ Redact a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -74976,7 +75690,11 @@ Redact a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -74987,6 +75705,9 @@ Redact a memory version #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRedactParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -75156,6 +75877,8 @@ Upload File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75227,6 +75950,10 @@ Upload File #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Files; + FileUploadParams parameters = new() { File = Encoding.UTF8.GetBytes("Example data") @@ -75394,6 +76121,8 @@ List Files - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75465,6 +76194,9 @@ List Files #### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileListParams parameters = new(); var page = await client.Beta.Files.List(parameters); @@ -75620,6 +76352,8 @@ Download File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75629,6 +76363,9 @@ Download File #### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDownloadParams parameters = new() { FileID = "file_id" }; var response = await client.Beta.Files.Download(parameters); @@ -75758,6 +76495,8 @@ Get File Metadata - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75829,6 +76568,9 @@ Get File Metadata #### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileRetrieveMetadataParams parameters = new() { FileID = "file_id" }; var betaFileMetadata = await client.Beta.Files.RetrieveMetadata(parameters); @@ -75977,6 +76719,8 @@ Delete File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76000,6 +76744,9 @@ Delete File #### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDeleteParams parameters = new() { FileID = "file_id" }; var betaDeletedFile = await client.Beta.Files.Delete(parameters); @@ -76148,6 +76895,8 @@ Create Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76225,6 +76974,10 @@ Create Skill #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills; + SkillCreateParams parameters = new() { Files = @@ -76395,6 +77148,8 @@ List Skills - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76472,6 +77227,9 @@ List Skills #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillListParams parameters = new(); var page = await client.Beta.Skills.List(parameters); @@ -76626,6 +77384,8 @@ Get Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76703,6 +77463,9 @@ Get Skill #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillRetrieveParams parameters = new() { SkillID = "skill_id" }; var betaSkill = await client.Beta.Skills.Retrieve(parameters); @@ -76850,6 +77613,8 @@ Delete Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76875,6 +77640,9 @@ Delete Skill #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillDeleteParams parameters = new() { SkillID = "skill_id" }; var betaDeletedSkill = await client.Beta.Skills.Delete(parameters); @@ -77023,6 +77791,8 @@ Create Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77072,6 +77842,10 @@ Create Skill Version #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills.Versions; + VersionCreateParams parameters = new() { SkillID = "skill_id", @@ -77235,6 +78009,8 @@ List Skill Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77284,6 +78060,9 @@ List Skill Versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionListParams parameters = new() { SkillID = "skill_id" }; var page = await client.Beta.Skills.Versions.List(parameters); @@ -77441,6 +78220,8 @@ Download a skill version's content as a zip archive. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77450,6 +78231,9 @@ Download a skill version's content as a zip archive. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDownloadParams parameters = new() { SkillID = "skill_id", @@ -77591,6 +78375,8 @@ Get Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77640,6 +78426,9 @@ Get Skill Version #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionRetrieveParams parameters = new() { SkillID = "skill_id", @@ -77794,6 +78583,8 @@ Delete Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77818,6 +78609,9 @@ Delete Skill Version #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDeleteParams parameters = new() { SkillID = "skill_id", @@ -77866,17 +78660,17 @@ Create User Profile - `string? externalID` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `DateTimeOffset externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -77892,7 +78686,7 @@ Create User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -77996,6 +78790,8 @@ Create User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78028,6 +78824,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -78044,13 +78844,13 @@ Create User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -78062,11 +78862,11 @@ Create User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -78120,17 +78920,16 @@ Create User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateParams parameters = new(); var betaUserProfile = await client.Beta.UserProfiles.Create(parameters); @@ -78145,6 +78944,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -78156,15 +78956,14 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -78218,7 +79017,7 @@ List User Profiles - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -78322,6 +79121,8 @@ List User Profiles - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78354,6 +79155,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -78370,13 +79175,13 @@ List User Profiles - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -78388,11 +79193,11 @@ List User Profiles - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -78446,17 +79251,16 @@ List User Profiles - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileListParams parameters = new(); var page = await client.Beta.UserProfiles.List(parameters); @@ -78475,6 +79279,7 @@ await foreach (var item in page.Paginate()) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -78486,15 +79291,14 @@ await foreach (var item in page.Paginate()) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -78519,7 +79323,7 @@ Get User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -78623,6 +79427,8 @@ Get User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78655,6 +79461,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -78671,13 +79481,13 @@ Get User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -78689,11 +79499,11 @@ Get User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -78747,17 +79557,16 @@ Get User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileRetrieveParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -78775,6 +79584,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -78786,15 +79596,14 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -78828,17 +79637,17 @@ Update User Profile - `string? externalID` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `DateTimeOffset externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -78854,7 +79663,7 @@ Update User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -78958,6 +79767,8 @@ Update User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78990,6 +79801,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -79006,13 +79821,13 @@ Update User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -79024,11 +79839,11 @@ Update User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -79082,17 +79897,16 @@ Update User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileUpdateParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -79110,6 +79924,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -79121,15 +79936,181 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +`BetaDeletedUserProfile Beta.UserProfiles.Delete(parameters, cancellationToken = default)` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Parameters + +- `UserProfileDeleteParams parameters` + + - `required string userProfileID` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + + - `IReadOnlyList betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + + - `string workspaceID` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaDeletedUserProfile` + + - `JsonElement Type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `required string ID` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + +UserProfileDeleteParams parameters = new() +{ + UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" +}; + +var betaDeletedUserProfile = await client.Beta.UserProfiles.Delete(parameters); + +Console.WriteLine(betaDeletedUserProfile); +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -79151,7 +80132,7 @@ Create Enrollment URL - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -79255,6 +80236,8 @@ Create Enrollment URL - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79265,7 +80248,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `required Type Type` @@ -79284,6 +80267,9 @@ Create Enrollment URL #### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateEnrollmentUrlParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -79304,6 +80290,189 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +`BetaUserProfileActionUrl Beta.UserProfiles.ActionUrls.Create(parameters, cancellationToken = default)` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `ActionUrlCreateParams parameters` + + - `required string userProfileID` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + + - `required BetaUserProfileEnrollEndUserAction action` + + The action that the person who opens the URL takes. + + - `IReadOnlyList betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + + - `string workspaceID` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaUserProfileActionUrl` + + A URL to give to the person who takes the requested action. + + - `JsonElement Type = "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `required DateTimeOffset ExpiresAt` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.UserProfiles.ActionUrls; + +ActionUrlCreateParams parameters = new() +{ + UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9", + Action = new(), +}; + +var betaUserProfileActionUrl = await client.Beta.UserProfiles.ActionUrls.Create(parameters); + +Console.WriteLine(betaUserProfileActionUrl); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -79508,6 +80677,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79741,6 +80912,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Example ```csharp +using System; +using Anthropic.Models.Beta.Dreams; + DreamCreateParams parameters = new() { Inputs = @@ -79748,7 +80922,7 @@ DreamCreateParams parameters = new() new BetaDreamMemoryStoreInput() { MemoryStoreID = "x", - Type = Type.MemoryStore, + Type = BetaDreamMemoryStoreInputType.MemoryStore, }, ], Model = "string", @@ -79987,6 +81161,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80220,6 +81396,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Example ```csharp +using System; +using Anthropic.Models.Beta.Dreams; + DreamListParams parameters = new(); var page = await client.Beta.Dreams.List(parameters); @@ -80404,6 +81583,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80637,6 +81818,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Example ```csharp +using System; +using Anthropic.Models.Beta.Dreams; + DreamRetrieveParams parameters = new() { DreamID = "dream_id" }; var betaDream = await client.Beta.Dreams.Retrieve(parameters); @@ -80814,6 +81998,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81047,6 +82233,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Example ```csharp +using System; +using Anthropic.Models.Beta.Dreams; + DreamCancelParams parameters = new() { DreamID = "dream_id" }; var betaDream = await client.Beta.Dreams.Cancel(parameters); @@ -81224,6 +82413,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81457,6 +82648,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Example ```csharp +using System; +using Anthropic.Models.Beta.Dreams; + DreamArchiveParams parameters = new() { DreamID = "dream_id" }; var betaDream = await client.Beta.Dreams.Archive(parameters); @@ -81636,6 +82830,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81677,6 +82873,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelCreateParams parameters = new(); var betaTunnel = await client.Beta.Tunnels.Create(parameters); @@ -81821,6 +83020,8 @@ Fetches a tunnel by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81862,6 +83063,9 @@ Fetches a tunnel by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRetrieveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Retrieve(parameters); @@ -82016,6 +83220,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82057,6 +83263,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelListParams parameters = new(); var page = await client.Beta.Tunnels.List(parameters); @@ -82208,6 +83417,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82249,6 +83460,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelArchiveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Archive(parameters); @@ -82393,6 +83607,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82418,6 +83634,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRevealTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RevealToken(parameters); @@ -82565,6 +83784,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82590,6 +83811,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRotateTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RotateToken(parameters); @@ -82739,6 +83963,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82786,6 +84012,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateCreateParams parameters = new() { TunnelID = "tunnel_id", @@ -82939,6 +84168,8 @@ Fetches a tunnel certificate by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82986,6 +84217,9 @@ Fetches a tunnel certificate by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateRetrieveParams parameters = new() { TunnelID = "tunnel_id", @@ -83149,6 +84383,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83196,6 +84432,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateListParams parameters = new() { TunnelID = "tunnel_id" }; var page = await client.Beta.Tunnels.Certificates.List(parameters); @@ -83352,6 +84591,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83399,6 +84640,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateArchiveParams parameters = new() { TunnelID = "tunnel_id", @@ -83461,6 +84705,9 @@ Retrieve information about the organization associated with the authenticated AP #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization; + OrganizationRetrieveParams parameters = new(); var betaOrganization = await client.Beta.Organization.Retrieve(parameters); @@ -83645,6 +84892,9 @@ List API Keys #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ApiKeys; + ApiKeyListParams parameters = new(); var page = await client.Beta.Organization.ApiKeys.List(parameters); @@ -83821,6 +85071,9 @@ Retrieve information about a single API key in your organization, looked up by i #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ApiKeys; + ApiKeyRetrieveParams parameters = new() { ApiKeyID = "api_key_id" }; var betaApiKey = await client.Beta.Organization.ApiKeys.Retrieve(parameters); @@ -84004,6 +85257,9 @@ Update API Key #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ApiKeys; + ApiKeyUpdateParams parameters = new() { ApiKeyID = "api_key_id" }; var betaApiKey = await client.Beta.Organization.ApiKeys.Update(parameters); @@ -84217,6 +85473,9 @@ Create an external key config owned by the caller's organization. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyCreateParams parameters = new() { ProviderConfig = new BetaAwsExternalKeyConfig() @@ -84378,6 +85637,9 @@ Results are ordered by creation time (newest first). Use the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyListParams parameters = new(); var page = await client.Beta.Organization.ExternalKeys.List(parameters); @@ -84531,6 +85793,9 @@ Retrieve a single external key config in the caller's organization by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyRetrieveParams parameters = new() { ExternalKeyID = "external_key_id" @@ -84750,6 +86015,9 @@ encrypted data requires the original key identity to decrypt. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyUpdateParams parameters = new() { ExternalKeyID = "external_key_id" @@ -84815,6 +86083,9 @@ The request is rejected if any workspace still references this config. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyDeleteParams parameters = new() { ExternalKeyID = "external_key_id" @@ -84883,6 +86154,9 @@ message if it failed or timed out. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ExternalKeys; + ExternalKeyValidateParams parameters = new() { ExternalKeyID = "external_key_id" @@ -85107,6 +86381,8 @@ matched as the JWT's `iss` claim and is not fetched. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -85247,6 +86523,9 @@ matched as the JWT's `iss` claim and is not fetched. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Issuers; + IssuerCreateParams parameters = new() { IssuerUrl = "x", @@ -85424,6 +86703,8 @@ Archived issuers are excluded unless `include_archived=true`. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -85564,6 +86845,9 @@ Archived issuers are excluded unless `include_archived=true`. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Issuers; + IssuerListParams parameters = new(); var page = await client.Beta.Organization.Federation.Issuers.List(parameters); @@ -85732,6 +87016,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -85872,6 +87158,9 @@ Retrieve a federation issuer by its ID (`fdis_...`). #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Issuers; + IssuerRetrieveParams parameters = new() { FederationIssuerID = "federation_issuer_id" @@ -86119,6 +87408,8 @@ session. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -86259,6 +87550,9 @@ session. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Issuers; + IssuerUpdateParams parameters = new() { FederationIssuerID = "federation_issuer_id" @@ -86428,6 +87722,8 @@ issuer cannot be changed), or recreate them against another issuer. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -86568,6 +87864,9 @@ issuer cannot be changed), or recreate them against another issuer. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Issuers; + IssuerArchiveParams parameters = new() { FederationIssuerID = "federation_issuer_id" @@ -86792,6 +88091,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -86926,6 +88227,10 @@ manage rules whose `oauth_scope` is `workspace:developer` or #### Example ```csharp +using System; +using System.Collections.Generic; +using Anthropic.Models.Beta.Organization.Federation.Rules; + RuleCreateParams parameters = new() { IssuerID = "issuer_id", @@ -87133,6 +88438,8 @@ unless `include_archived=true`. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -87267,6 +88574,9 @@ unless `include_archived=true`. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules; + RuleListParams parameters = new(); var page = await client.Beta.Organization.Federation.Rules.List(parameters); @@ -87447,6 +88757,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -87581,6 +88893,9 @@ Retrieve a federation rule by its ID (`fdrl_...`). #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules; + RuleRetrieveParams parameters = new() { FederationRuleID = "federation_rule_id" @@ -87817,6 +89132,8 @@ Console session. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -87951,6 +89268,9 @@ Console session. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules; + RuleUpdateParams parameters = new() { FederationRuleID = "federation_rule_id" }; var betaFederationRule = await client.Beta.Organization.Federation.Rules.Update(parameters); @@ -88132,6 +89452,8 @@ other scopes require a Console session. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -88266,6 +89588,9 @@ other scopes require a Console session. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules; + RuleArchiveParams parameters = new() { FederationRuleID = "federation_rule_id" @@ -88457,6 +89782,8 @@ other scopes require a Console session. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRuleWorkspace` @@ -88488,6 +89815,9 @@ other scopes require a Console session. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules.Workspaces; + WorkspaceAddParams parameters = new() { FederationRuleID = "federation_rule_id", @@ -88652,6 +89982,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRuleWorkspace` @@ -88683,6 +90015,9 @@ rules with `applies_to_all_workspaces` or a legacy single #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules.Workspaces; + WorkspaceListParams parameters = new() { FederationRuleID = "federation_rule_id" @@ -88846,6 +90181,8 @@ Console session. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class WorkspaceRemoveResponse` @@ -88863,6 +90200,9 @@ Console session. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Federation.Rules.Workspaces; + WorkspaceRemoveParams parameters = new() { FederationRuleID = "federation_rule_id", @@ -89005,6 +90345,9 @@ On plans that draw members from a finite pool of purchased seats, the invite aut #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Invites; + InviteCreateParams parameters = new() { Email = "user@emaildomain.com", @@ -89161,6 +90504,9 @@ List the organization's invites. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Invites; + InviteListParams parameters = new(); var page = await client.Beta.Organization.Invites.List(parameters); @@ -89288,6 +90634,9 @@ Retrieve an invite by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Invites; + InviteRetrieveParams parameters = new() { InviteID = "invite_id" }; var betaOrganizationInvite = await client.Beta.Organization.Invites.Retrieve(parameters); @@ -89346,6 +90695,9 @@ Delete a pending invite. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Invites; + InviteDeleteParams parameters = new() { InviteID = "invite_id" }; var invite = await client.Beta.Organization.Invites.Delete(parameters); @@ -89512,6 +90864,8 @@ accounts. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -89576,6 +90930,9 @@ accounts. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts; + ServiceAccountCreateParams parameters = new() { Name = "ci-deploy-bot" }; var betaServiceAccount = await client.Beta.Organization.ServiceAccounts.Create(parameters); @@ -89739,6 +91096,8 @@ archived service accounts. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -89803,6 +91162,9 @@ archived service accounts. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts; + ServiceAccountListParams parameters = new(); var page = await client.Beta.Organization.ServiceAccounts.List(parameters); @@ -89959,6 +91321,8 @@ Retrieve a service account by its ID (`svac_...`). - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -90023,6 +91387,9 @@ Retrieve a service account by its ID (`svac_...`). #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts; + ServiceAccountRetrieveParams parameters = new() { ServiceAccountID = "service_account_id" @@ -90194,6 +91561,8 @@ interactive credential (a user OAuth token or a Console session). - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -90258,6 +91627,9 @@ interactive credential (a user OAuth token or a Console session). #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts; + ServiceAccountUpdateParams parameters = new() { ServiceAccountID = "service_account_id" @@ -90415,6 +91787,8 @@ those rules first or change their target to another service account. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -90479,6 +91853,9 @@ those rules first or change their target to another service account. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts; + ServiceAccountArchiveParams parameters = new() { ServiceAccountID = "service_account_id" @@ -90648,6 +92025,8 @@ rejected. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -90687,6 +92066,10 @@ rejected. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts.Workspaces; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceAddParams parameters = new() { ServiceAccountID = "service_account_id", @@ -90860,6 +92243,8 @@ page to recover. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -90899,6 +92284,9 @@ page to recover. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts.Workspaces; + WorkspaceListParams parameters = new() { ServiceAccountID = "service_account_id" @@ -91065,6 +92453,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class WorkspaceRemoveResponse` @@ -91082,6 +92472,9 @@ to the implicit `workspace_user` membership. Archived workspaces return #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ServiceAccounts.Workspaces; + WorkspaceRemoveParams parameters = new() { ServiceAccountID = "service_account_id", @@ -91198,6 +92591,9 @@ List the organization's members. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Users; + UserListParams parameters = new(); var page = await client.Beta.Organization.Users.List(parameters); @@ -91296,6 +92692,9 @@ Retrieve a member of the organization by user ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Users; + UserRetrieveParams parameters = new() { UserID = "user_id" }; var betaOrganizationUser = await client.Beta.Organization.Users.Retrieve(parameters); @@ -91401,6 +92800,9 @@ Update a member's organization role. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Users; + UserUpdateParams parameters = new() { UserID = "user_id", @@ -91458,6 +92860,9 @@ Remove a member from the organization. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Users; + UserRemoveParams parameters = new() { UserID = "user_id" }; var user = await client.Beta.Organization.Users.Remove(parameters); @@ -91609,6 +93014,9 @@ List Workspaces #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceListParams parameters = new(); var page = await client.Beta.Organization.Workspaces.List(parameters); @@ -91801,6 +93209,8 @@ Create Workspace - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaWorkspace` @@ -91898,6 +93308,9 @@ Create Workspace #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceCreateParams parameters = new() { Name = "x" }; var betaWorkspace = await client.Beta.Organization.Workspaces.Create(parameters); @@ -92042,6 +93455,9 @@ Get Workspace #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceRetrieveParams parameters = new() { WorkspaceID = "workspace_id" }; var betaWorkspace = await client.Beta.Organization.Workspaces.Retrieve(parameters); @@ -92218,6 +93634,9 @@ Update Workspace #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceUpdateParams parameters = new() { WorkspaceID = "workspace_id" }; var betaWorkspace = await client.Beta.Organization.Workspaces.Update(parameters); @@ -92360,6 +93779,9 @@ Archive Workspace #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; + WorkspaceArchiveParams parameters = new() { WorkspaceID = "workspace_id" }; var betaWorkspace = await client.Beta.Organization.Workspaces.Archive(parameters); @@ -92592,6 +94014,9 @@ the remaining entries. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.RateLimits; + RateLimitListParams parameters = new() { WorkspaceID = "workspace_id" }; var page = await client.Beta.Organization.Workspaces.RateLimits.List(parameters); @@ -92635,6 +94060,262 @@ await foreach (var item in page.Paginate()) } ``` +### Set Workspace Rate Limits + +`BetaWorkspaceRateLimit Beta.Organization.Workspaces.RateLimits.Update(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `RateLimitUpdateParams parameters` + + - `required string workspaceID` (path parameter) + + The ID of the workspace. + + - `required string rateLimitID` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + + - `required IReadOnlyList limits` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `required BetaWorkspaceRateLimitType Type` + + Rate limiter type. + + - `FastItpmca("fast_itpmca")` + + - `FastOtpm("fast_otpm")` + + - `InputTokensPerMinute("input_tokens_per_minute")` + + - `InputTokensPerMinuteCacheAware("input_tokens_per_minute_cache_aware")` + + - `OutputTokensPerMinute("output_tokens_per_minute")` + + - `RequestsPerMinute("requests_per_minute")` + + - `TokensPerDay("tokens_per_day")` + + - `TokensPerMinute("tokens_per_minute")` + + - `ToolUsesPerSecond("tool_uses_per_second")` + + - `required long? Value` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `JsonElement Type = "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `required Group Group` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `JsonElement Type = "model_group"` + + Always `model_group`: a family of models. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `required string DisplayName` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `JsonElement Type = "batch"` + + Always `batch`: the Message Batches API. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `JsonElement Type = "token_count"` + + Always `token_count`: the Token Count API. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `JsonElement Type = "files"` + + Always `files`: the Files API. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `JsonElement Type = "skills"` + + Always `skills`: the Skills API. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `JsonElement Type = "web_search"` + + Always `web_search`: the Messages API web search tool. + + - `required string ID` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `required IReadOnlyList Limits` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `required string Type` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `required long? OrgLimit` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `required Source Source` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `class BetaWorkspaceRateLimitWorkspaceSource` + + - `JsonElement Type = "workspace"` + + Always `workspace`: a workspace-level override is stored. + + - `class BetaWorkspaceRateLimitOrganizationSource` + + - `JsonElement Type = "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + - `required long Value` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `required IReadOnlyList? Models` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `required string RateLimitID` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `required string WorkspaceID` + + ID of the Workspace this entry applies to. + + - `required GroupType GroupType` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `Batch("batch")` + + - `Files("files")` + + - `ModelGroup("model_group")` + + - `Skills("skills")` + + - `TokenCount("token_count")` + + - `WebSearch("web_search")` + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.RateLimits; + +RateLimitUpdateParams parameters = new() +{ + WorkspaceID = "workspace_id", + RateLimitID = "rate_limit_id", + Limits = + [ + new() + { + Type = BetaWorkspaceRateLimitType.FastItpmca, + Value = 0, + }, + ], +}; + +var betaWorkspaceRateLimit = await client.Beta.Organization.Workspaces.RateLimits.Update(parameters); + +Console.WriteLine(betaWorkspaceRateLimit); +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -92704,6 +94385,9 @@ List Workspace Members #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.Members; + MemberListParams parameters = new() { WorkspaceID = "workspace_id" }; var page = await client.Beta.Organization.Workspaces.Members.List(parameters); @@ -92790,6 +94474,10 @@ Create Workspace Member #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; +using Anthropic.Models.Beta.Organization.Workspaces.Members; + MemberAddParams parameters = new() { WorkspaceID = "workspace_id", @@ -92868,6 +94556,9 @@ Get Workspace Member #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.Members; + MemberRetrieveParams parameters = new() { WorkspaceID = "workspace_id", @@ -92949,6 +94640,10 @@ Update Workspace Member #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; +using Anthropic.Models.Beta.Organization.Workspaces.Members; + MemberUpdateParams parameters = new() { WorkspaceID = "workspace_id", @@ -93013,6 +94708,9 @@ Delete Workspace Member #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.Members; + MemberRemoveParams parameters = new() { WorkspaceID = "workspace_id", @@ -93177,6 +94875,8 @@ omitted from the results. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93216,6 +94916,9 @@ omitted from the results. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.ServiceAccounts; + ServiceAccountListParams parameters = new() { WorkspaceID = "workspace_id" }; var page = await client.Beta.Organization.Workspaces.ServiceAccounts.List(parameters); @@ -93384,6 +95087,8 @@ accounts cannot be added and are rejected. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93423,6 +95128,10 @@ accounts cannot be added and are rejected. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; +using Anthropic.Models.Beta.Organization.Workspaces.ServiceAccounts; + ServiceAccountAddParams parameters = new() { WorkspaceID = "workspace_id", @@ -93583,6 +95292,8 @@ account returns 404. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93622,6 +95333,9 @@ account returns 404. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.ServiceAccounts; + ServiceAccountRetrieveParams parameters = new() { WorkspaceID = "workspace_id", @@ -93785,6 +95499,8 @@ rejected. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93824,6 +95540,10 @@ rejected. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces; +using Anthropic.Models.Beta.Organization.Workspaces.ServiceAccounts; + ServiceAccountUpdateParams parameters = new() { WorkspaceID = "workspace_id", @@ -93983,6 +95703,8 @@ membership. Archived workspaces return 400. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class ServiceAccountRemoveResponse` @@ -94000,6 +95722,9 @@ membership. Archived workspaces return 400. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Workspaces.ServiceAccounts; + ServiceAccountRemoveParams parameters = new() { WorkspaceID = "workspace_id", @@ -94085,7 +95810,7 @@ the remaining entries. - `required string ID` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `required Group Group` @@ -94192,6 +95917,9 @@ the remaining entries. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RateLimits; + RateLimitListParams parameters = new(); var page = await client.Beta.Organization.RateLimits.List(parameters); @@ -94270,6 +95998,9 @@ organization reads the state inherited from the parent's configuration. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ComplianceSettings; + ComplianceSettingRetrieveParams parameters = new(); var betaComplianceSettings = await client.Beta.Organization.ComplianceSettings.Retrieve(parameters); @@ -94338,6 +96069,9 @@ compliance settings. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.ComplianceSettings; + ComplianceSettingUpdateParams parameters = new() { State = new BetaComplianceSettingsStateEnabledParam() @@ -94553,6 +96287,9 @@ Enterprise plan. Requires an API key with the `read:analytics` scope. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Summaries; + SummaryListParams parameters = new() { StartingDate = "2019-12-27" }; var page = await client.Beta.Organization.Analytics.Summaries.List(parameters); @@ -95169,6 +96906,9 @@ the `read:analytics` scope. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Users; + UserListParams parameters = new(); var page = await client.Beta.Organization.Analytics.Users.List(parameters); @@ -95488,6 +97228,9 @@ plan. Requires an API key with the `read:analytics` scope. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Apps.Chat.Projects; + ProjectListParams parameters = new(); var page = await client.Beta.Organization.Analytics.Apps.Chat.Projects.List(parameters); @@ -95732,6 +97475,9 @@ organizations on a Claude Enterprise plan. Requires an API key with the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Connectors; + ConnectorListParams parameters = new(); var page = await client.Beta.Organization.Analytics.Connectors.List(parameters); @@ -95955,6 +97701,9 @@ range-rollup mode like `/skills`. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Plugins; + PluginListParams parameters = new(); var page = await client.Beta.Organization.Analytics.Plugins.List(parameters); @@ -96210,6 +97959,9 @@ on a Claude Enterprise plan. Requires an API key with the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Skills; + SkillListParams parameters = new(); var page = await client.Beta.Organization.Analytics.Skills.List(parameters); @@ -96383,6 +98135,9 @@ can be broken out per product, per member, or per RBAC group via #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.Artifacts; + ArtifactListParams parameters = new() { Date = "2019-12-27" }; var page = await client.Beta.Organization.Analytics.Artifacts.List(parameters); @@ -96709,6 +98464,9 @@ key with the `read:analytics` scope. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.UsageReport; + UsageReportListParams parameters = new() { StartingAt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z") @@ -97109,6 +98867,9 @@ organizations on a Claude Enterprise plan. Requires an API key with the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.UserUsageReport; + UserUsageReportListParams parameters = new() { StartingAt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z") @@ -97467,6 +99228,9 @@ Requires an API key with the `read:analytics` scope. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.CostReport; + CostReportListParams parameters = new() { StartingAt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z") @@ -97858,6 +99622,9 @@ organizations on a Claude Enterprise plan. Requires an API key with the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Analytics.UserCostReport; + UserCostReportListParams parameters = new() { StartingAt = DateTimeOffset.Parse("2019-12-27T18:11:19.117Z") @@ -98076,6 +99843,8 @@ Anthropic account team. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSpendLimit` @@ -98189,6 +99958,9 @@ Anthropic account team. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits; + SpendLimitSetParams parameters = new() { Amount = "50000", @@ -98348,6 +100120,9 @@ Retrieve a spend limit by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits; + SpendLimitRetrieveParams parameters = new() { SpendLimitID = "spend_limit_id" }; var betaSpendLimit = await client.Beta.Organization.SpendLimits.Retrieve(parameters); @@ -98408,6 +100183,9 @@ workspace limits through the API is in an early access preview. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits; + SpendLimitDeleteParams parameters = new() { SpendLimitID = "spend_limit_id" }; var spendLimit = await client.Beta.Organization.SpendLimits.Delete(parameters); @@ -98575,6 +100353,8 @@ organizations only, not for Claude Console organizations. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSpendLimit` @@ -98688,6 +100468,9 @@ organizations only, not for Claude Console organizations. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits; + SpendLimitListParams parameters = new(); var page = await client.Beta.Organization.SpendLimits.List(parameters); @@ -98924,6 +100707,9 @@ organizations. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits.Effective; + EffectiveListParams parameters = new(); var page = await client.Beta.Organization.SpendLimits.Effective.List(parameters); @@ -99207,6 +100993,9 @@ Requests whose requester is no longer a member are excluded. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits.IncreaseRequests; + IncreaseRequestListParams parameters = new(); var page = await client.Beta.Organization.SpendLimits.IncreaseRequests.List(parameters); @@ -99492,6 +101281,9 @@ requester at the request's period. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits.IncreaseRequests; + IncreaseRequestRetrieveParams parameters = new() { SpendLimitIncreaseRequestID = "spend_limit_increase_request_id" @@ -99851,6 +101643,9 @@ the member was blocked on. Anthropic emails the requester unless #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits.IncreaseRequests; + IncreaseRequestApproveParams parameters = new() { SpendLimitIncreaseRequestID = "spend_limit_increase_request_id", @@ -100149,6 +101944,9 @@ Idempotent on `denied`; denying an already-`approved` request returns #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.SpendLimits.IncreaseRequests; + IncreaseRequestDenyParams parameters = new() { SpendLimitIncreaseRequestID = "spend_limit_increase_request_id" @@ -100275,6 +102073,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups; + RbacGroupCreateParams parameters = new() { Name = "Engineering" }; var betaRbacGroup = await client.Beta.Organization.RbacGroups.Create(parameters); @@ -100372,6 +102173,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups; + RbacGroupListParams parameters = new(); var page = await client.Beta.Organization.RbacGroups.List(parameters); @@ -100469,6 +102273,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups; + RbacGroupRetrieveParams parameters = new() { RbacGroupID = "rbac_group_id" }; var betaRbacGroup = await client.Beta.Organization.RbacGroups.Retrieve(parameters); @@ -100564,6 +102371,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups; + RbacGroupUpdateParams parameters = new() { RbacGroupID = "rbac_group_id" }; var betaRbacGroup = await client.Beta.Organization.RbacGroups.Update(parameters); @@ -100625,6 +102435,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups; + RbacGroupDeleteParams parameters = new() { RbacGroupID = "rbac_group_id" }; var rbacGroup = await client.Beta.Organization.RbacGroups.Delete(parameters); @@ -100704,6 +102517,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups.Members; + MemberListParams parameters = new() { RbacGroupID = "rbac_group_id" }; var page = await client.Beta.Organization.RbacGroups.Members.List(parameters); @@ -100785,6 +102601,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups.Members; + MemberAddParams parameters = new() { RbacGroupID = "rbac_group_id", @@ -100850,6 +102669,9 @@ The RBAC Groups API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacGroups.Members; + MemberRemoveParams parameters = new() { RbacGroupID = "rbac_group_id", @@ -100939,6 +102761,9 @@ The RBAC Roles API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacRoles; + RbacRoleListParams parameters = new(); var page = await client.Beta.Organization.RbacRoles.List(parameters); @@ -101024,6 +102849,9 @@ The RBAC Roles API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacRoles; + RbacRoleRetrieveParams parameters = new() { RbacRoleID = "rbac_role_id" }; var betaRbacRole = await client.Beta.Organization.RbacRoles.Retrieve(parameters); @@ -101180,6 +103008,9 @@ The RBAC Roles API is available to Claude Enterprise organizations only. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.RbacRoles.Permissions; + PermissionListParams parameters = new() { RbacRoleID = "rbac_role_id" }; var page = await client.Beta.Organization.RbacRoles.Permissions.List(parameters); @@ -101372,6 +103203,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -101567,6 +103400,10 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Organization.Plugins; + PluginCreateParams parameters = new() { Files = @@ -101752,6 +103589,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -101947,6 +103786,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins; + PluginRetrieveParams parameters = new() { PluginID = "plugin_id" }; var betaPlugin = await client.Beta.Organization.Plugins.Retrieve(parameters); @@ -102146,6 +103988,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -102341,6 +104185,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins; + PluginUpdateParams parameters = new() { PluginID = "plugin_id", @@ -102580,6 +104427,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -102775,6 +104624,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins; + PluginListParams parameters = new(); var page = await client.Beta.Organization.Plugins.List(parameters); @@ -102968,6 +104820,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaDeletedPlugin` @@ -102983,6 +104837,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins; + PluginDeleteParams parameters = new() { PluginID = "plugin_id" }; var betaDeletedPlugin = await client.Beta.Organization.Plugins.Delete(parameters); @@ -103156,6 +105013,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginVersion` @@ -103293,6 +105152,10 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Organization.Plugins.Versions; + VersionCreateParams parameters = new() { PluginID = "plugin_id", @@ -103487,6 +105350,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginVersion` @@ -103624,6 +105489,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.Versions; + VersionListParams parameters = new() { PluginID = "plugin_id" }; var page = await client.Beta.Organization.Plugins.Versions.List(parameters); @@ -103805,6 +105673,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginVersion` @@ -103942,6 +105812,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.Versions; + VersionRetrieveParams parameters = new() { PluginID = "plugin_id", @@ -104136,9 +106009,14 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.Versions; + VersionDownloadParams parameters = new() { PluginID = "plugin_id", @@ -104309,261 +106187,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaPluginInstallationSetting` - - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. - - - `JsonElement Type = "plugin_installation_setting"` - - Always `plugin_installation_setting`. - - - `required DateTimeOffset CreatedAt` - - When the target was first given a setting for this Plugin. - - format: date-time - - - `required InstallationPreference InstallationPreference` - - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `AutoInstall("auto_install")` - - - `Available("available")` - - - `NotAvailable("not_available")` - - - `Required("required")` - - - `required string PluginID` - - The Plugin's ID. - - - `required Target Target` - - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - - - `class BetaPluginTargetOrganization` - - - `JsonElement Type = "organization"` - - Every member of the organization. - - - `class BetaPluginTargetRbacGroup` - - - `JsonElement Type = "rbac_group"` - - An RBAC Group. - - - `required string RbacGroupID` - - The RBAC Group's ID. - - - `class BetaPluginTargetOrganizationMember` - - - `JsonElement Type = "organization_member"` - - One member of the organization. - - - `required string UserID` - - The member's User ID. - - - `required DateTimeOffset UpdatedAt` - - When its setting last changed. - - format: date-time - -#### Example - -```csharp -InstallationSettingListParams parameters = new() { PluginID = "plugin_id" }; - -var page = await client.Beta.Organization.Plugins.InstallationSettings.List(parameters); -await foreach (var item in page.Paginate()) -{ - Console.WriteLine(item); -} -``` - -##### Response (200) - -```json -{ - "data": [ - { - "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` - -### Set Plugin Installation Setting - -`BetaPluginInstallationSetting Beta.Organization.Plugins.InstallationSettings.Set(parameters, cancellationToken = default)` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. - -Writing the value a target already holds of its own changes nothing. - -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. - -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `InstallationSettingSetParams parameters` - - - `required string pluginID` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - - - `required string target` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - - - `required InstallationPreference installationPreference` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `AutoInstall("auto_install")` - - - `Available("available")` - - - `NotAvailable("not_available")` - - - `Required("required")` - - - `IReadOnlyList betas` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `MessageBatches2024_09_24("message-batches-2024-09-24")` - - - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` - - - `ComputerUse2024_10_22("computer-use-2024-10-22")` - - - `ComputerUse2025_01_24("computer-use-2025-01-24")` - - - `Pdfs2024_09_25("pdfs-2024-09-25")` - - - `TokenCounting2024_11_01("token-counting-2024-11-01")` - - - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` - - - `Output128k2025_02_19("output-128k-2025-02-19")` - - - `FilesApi2025_04_14("files-api-2025-04-14")` - - - `McpClient2025_04_04("mcp-client-2025-04-04")` - - - `McpClient2025_11_20("mcp-client-2025-11-20")` - - - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` - - - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` - - - `CodeExecution2025_05_22("code-execution-2025-05-22")` - - - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` - - - `Context1m2025_08_07("context-1m-2025-08-07")` - - - `ContextManagement2025_06_27("context-management-2025-06-27")` - - - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` - - - `Skills2025_10_02("skills-2025-10-02")` - - - `FastMode2026_02_01("fast-mode-2026-02-01")` - - - `Output300k2026_03_24("output-300k-2026-03-24")` - - - `UserProfiles2026_03_24("user-profiles-2026-03-24")` - - - `UserProfiles2026_08_18("user-profiles-2026-08-18")` - - - `UserProfiles2026_09_04("user-profiles-2026-09-04")` - - - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` - - - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` - - - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` - - - `Dreaming2026_04_21("dreaming-2026-04-21")` - - - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` - - - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` - - - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` - - - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` - - - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` - - - `AgentMemory2026_07_22("agent-memory-2026-07-22")` - - - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` - - - `Compact2026_01_12("compact-2026-01-12")` - - - `ComputerUse2025_11_24("computer-use-2025-11-24")` - - - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` - - - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` - - - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` - - - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` - - - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` - - - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` - - - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` - - - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` - - - `Compact2026_09_04("compact-2026-09-04")` - - - `InlineTools2026_09_15("inline-tools-2026-09-15")` - - - `McpClient2026_09_15("mcp-client-2026-09-15")` - - - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` - - - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` - - - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` #### Returns @@ -104638,6 +106262,270 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.InstallationSettings; + +InstallationSettingListParams parameters = new() { PluginID = "plugin_id" }; + +var page = await client.Beta.Organization.Plugins.InstallationSettings.List(parameters); +await foreach (var item in page.Paginate()) +{ + Console.WriteLine(item); +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` + +### Set Plugin Installation Setting + +`BetaPluginInstallationSetting Beta.Organization.Plugins.InstallationSettings.Set(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` + +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. + +Writing the value a target already holds of its own changes nothing. + +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `InstallationSettingSetParams parameters` + + - `required string pluginID` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + + - `required string target` (path parameter) + + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. + + - `required InstallationPreference installationPreference` + + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. + + - `AutoInstall("auto_install")` + + - `Available("available")` + + - `NotAvailable("not_available")` + + - `Required("required")` + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaPluginInstallationSetting` + + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. + + - `JsonElement Type = "plugin_installation_setting"` + + Always `plugin_installation_setting`. + + - `required DateTimeOffset CreatedAt` + + When the target was first given a setting for this Plugin. + + format: date-time + + - `required InstallationPreference InstallationPreference` + + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `AutoInstall("auto_install")` + + - `Available("available")` + + - `NotAvailable("not_available")` + + - `Required("required")` + + - `required string PluginID` + + The Plugin's ID. + + - `required Target Target` + + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + + - `class BetaPluginTargetOrganization` + + - `JsonElement Type = "organization"` + + Every member of the organization. + + - `class BetaPluginTargetRbacGroup` + + - `JsonElement Type = "rbac_group"` + + An RBAC Group. + + - `required string RbacGroupID` + + The RBAC Group's ID. + + - `class BetaPluginTargetOrganizationMember` + + - `JsonElement Type = "organization_member"` + + One member of the organization. + + - `required string UserID` + + The member's User ID. + + - `required DateTimeOffset UpdatedAt` + + When its setting last changed. + + format: date-time + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.InstallationSettings; + InstallationSettingSetParams parameters = new() { PluginID = "plugin_id", @@ -104811,6 +106699,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaDeletedPluginInstallationSetting` @@ -104859,6 +106749,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.InstallationSettings; + InstallationSettingRemoveParams parameters = new() { PluginID = "plugin_id", @@ -105045,6 +106938,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginShare` @@ -105100,6 +106995,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.Plugins.Shares; + ShareListParams parameters = new() { PluginID = "plugin_id" }; var page = await client.Beta.Organization.Plugins.Shares.List(parameters); @@ -105297,6 +107195,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginMarketplace` @@ -105394,6 +107294,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.PluginMarketplaces; + PluginMarketplaceListParams parameters = new(); var page = await client.Beta.Organization.PluginMarketplaces.List(parameters); @@ -105557,6 +107460,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginMarketplace` @@ -105654,6 +107559,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.PluginMarketplaces; + PluginMarketplaceRetrieveParams parameters = new() { MarketplaceID = "marketplace_id" @@ -105826,6 +107734,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginMarketplace` @@ -105923,6 +107833,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.PluginMarketplaces; + PluginMarketplaceUpdateParams parameters = new() { MarketplaceID = "marketplace_id", @@ -106102,264 +108015,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaPluginMarketplaceValidationReport` - - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. - - - `JsonElement Type = "plugin_marketplace_validation_report"` - - Always `plugin_marketplace_validation_report`. - - - `required string? CommitSha` - - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - - - `required string? ManifestError` - - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - - - `required string? ManifestErrorCode` - - A stable identifier for `manifest_error`; null when that is. - - - `required IReadOnlyList PluginErrors` - - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - - `required string Error` - - Why the plugin would be skipped by a synchronization. - - - `required string ErrorCode` - - A stable identifier for the reason — the value to branch on. - - - `required string Name` - - The plugin's name, as its entry in marketplace.json declares it. - - - `required IReadOnlyList PluginWarnings` - - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - - - `required string Name` - - The plugin's name, as its entry in marketplace.json declares it. - - - `required IReadOnlyList Warnings` - - The parts of the plugin a synchronization would leave out. - - - `required string ErrorCode` - - A stable identifier for the kind of warning. - - - `required string Message` - - What would be left out, and why. - - - `required string? Ref` - - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. - - - `required long TotalPluginCount` - - How many plugins marketplace.json declares; 0 when it could not be read. - - - `required bool Valid` - - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. - -#### Example - -```csharp -PluginMarketplaceValidateRepositoryParams parameters = new() -{ - RepositoryUrl = "https://github.com/example-org/example-marketplace" -}; - -var betaPluginMarketplaceValidationReport = await client.Beta.Organization.PluginMarketplaces.ValidateRepository(parameters); - -Console.WriteLine(betaPluginMarketplaceValidationReport); -``` - -##### Response (200) - -```json -{ - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ - { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] - } - ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false -} -``` - -### Validate Plugin Marketplace Archive - -`BetaPluginMarketplaceValidationReport Beta.Organization.PluginMarketplaces.ValidateArchive(parameters, cancellationToken = default)` - -**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - -Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace -directory, would synchronize into claude.ai, without connecting or storing it. - -To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. - -Nothing is recorded on the Compliance API activity feed. - -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=csharp#validate-marketplace-content) -in the Plugins API guide. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `PluginMarketplaceValidateArchiveParams parameters` - - - `required string archive` - - A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. - - format: binary - - - `IReadOnlyList betas` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `MessageBatches2024_09_24("message-batches-2024-09-24")` - - - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` - - - `ComputerUse2024_10_22("computer-use-2024-10-22")` - - - `ComputerUse2025_01_24("computer-use-2025-01-24")` - - - `Pdfs2024_09_25("pdfs-2024-09-25")` - - - `TokenCounting2024_11_01("token-counting-2024-11-01")` - - - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` - - - `Output128k2025_02_19("output-128k-2025-02-19")` - - - `FilesApi2025_04_14("files-api-2025-04-14")` - - - `McpClient2025_04_04("mcp-client-2025-04-04")` - - - `McpClient2025_11_20("mcp-client-2025-11-20")` - - - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` - - - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` - - - `CodeExecution2025_05_22("code-execution-2025-05-22")` - - - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` - - - `Context1m2025_08_07("context-1m-2025-08-07")` - - - `ContextManagement2025_06_27("context-management-2025-06-27")` - - - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` - - - `Skills2025_10_02("skills-2025-10-02")` - - - `FastMode2026_02_01("fast-mode-2026-02-01")` - - - `Output300k2026_03_24("output-300k-2026-03-24")` - - - `UserProfiles2026_03_24("user-profiles-2026-03-24")` - - - `UserProfiles2026_08_18("user-profiles-2026-08-18")` - - - `UserProfiles2026_09_04("user-profiles-2026-09-04")` - - - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` - - - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` - - - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` - - - `Dreaming2026_04_21("dreaming-2026-04-21")` - - - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` - - - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` - - - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` - - - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` - - - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` - - - `AgentMemory2026_07_22("agent-memory-2026-07-22")` - - - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` - - - `Compact2026_01_12("compact-2026-01-12")` - - - `ComputerUse2025_11_24("computer-use-2025-11-24")` - - - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` - - - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` - - - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` - - - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` - - - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` - - - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` - - - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` - - - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` - - - `Compact2026_09_04("compact-2026-09-04")` - - - `InlineTools2026_09_15("inline-tools-2026-09-15")` - - - `McpClient2026_09_15("mcp-client-2026-09-15")` - - - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` - - - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` - - - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` #### Returns @@ -106435,6 +108091,274 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.PluginMarketplaces; + +PluginMarketplaceValidateRepositoryParams parameters = new() +{ + RepositoryUrl = "https://github.com/example-org/example-marketplace" +}; + +var betaPluginMarketplaceValidationReport = await client.Beta.Organization.PluginMarketplaces.ValidateRepository(parameters); + +Console.WriteLine(betaPluginMarketplaceValidationReport); +``` + +##### Response (200) + +```json +{ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ + { + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" + } + ], + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false +} +``` + +### Validate Plugin Marketplace Archive + +`BetaPluginMarketplaceValidationReport Beta.Organization.PluginMarketplaces.ValidateArchive(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/plugin_marketplaces/validate_archive` + +Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace +directory, would synchronize into claude.ai, without connecting or storing it. + +To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. + +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. + +Nothing is recorded on the Compliance API activity feed. + +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=csharp#validate-marketplace-content) +in the Plugins API guide. + +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `PluginMarketplaceValidateArchiveParams parameters` + + - `required string archive` + + A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. + + format: binary + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaPluginMarketplaceValidationReport` + + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. + + - `JsonElement Type = "plugin_marketplace_validation_report"` + + Always `plugin_marketplace_validation_report`. + + - `required string? CommitSha` + + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + + - `required string? ManifestError` + + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + + - `required string? ManifestErrorCode` + + A stable identifier for `manifest_error`; null when that is. + + - `required IReadOnlyList PluginErrors` + + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + + - `required string Error` + + Why the plugin would be skipped by a synchronization. + + - `required string ErrorCode` + + A stable identifier for the reason — the value to branch on. + + - `required string Name` + + The plugin's name, as its entry in marketplace.json declares it. + + - `required IReadOnlyList PluginWarnings` + + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + + - `required string Name` + + The plugin's name, as its entry in marketplace.json declares it. + + - `required IReadOnlyList Warnings` + + The parts of the plugin a synchronization would leave out. + + - `required string ErrorCode` + + A stable identifier for the kind of warning. + + - `required string Message` + + What would be left out, and why. + + - `required string? Ref` + + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + + - `required long TotalPluginCount` + + How many plugins marketplace.json declares; 0 when it could not be read. + + - `required bool Valid` + + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + +#### Example + +```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Organization.PluginMarketplaces; + PluginMarketplaceValidateArchiveParams parameters = new() { Archive = Encoding.UTF8.GetBytes("Example data") @@ -106633,6 +108557,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaTelemetryDestination` @@ -106806,6 +108732,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + TelemetryDestinationCreateParams parameters = new() { EndpointUrl = "x", @@ -106986,6 +108915,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaTelemetryDestination` @@ -107159,6 +109090,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + TelemetryDestinationListParams parameters = new(); var page = await client.Beta.Organization.TelemetryDestinations.List(parameters); @@ -107330,6 +109264,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaTelemetryDestination` @@ -107503,6 +109439,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + TelemetryDestinationRetrieveParams parameters = new() { DestinationID = "destination_id" @@ -107712,6 +109651,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaTelemetryDestination` @@ -107885,6 +109826,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- #### Example ```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + TelemetryDestinationUpdateParams parameters = new() { DestinationID = "destination_id" @@ -108054,59 +109998,1296 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaDeletedTelemetryDestination` + + Confirmation that a destination was deleted. + + - `JsonElement Type = "telemetry_destination_deleted"` + + - `required string ID` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + +TelemetryDestinationDeleteParams parameters = new() +{ + DestinationID = "destination_id" +}; + +var betaDeletedTelemetryDestination = await client.Beta.Organization.TelemetryDestinations.Delete(parameters); + +Console.WriteLine(betaDeletedTelemetryDestination); +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +`BetaTelemetryDestinationTestResponse Beta.Organization.TelemetryDestinations.Test(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Parameters + +- `TelemetryDestinationTestParams parameters` + + - `required string destinationID` (path parameter) + + ID of the destination to test (starts with `tdst_`). + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationTestResponse` + + The result of one test span sent to a destination. + + - `JsonElement Type = "telemetry_destination_test"` + + - `required BetaTelemetryDestinationTestResult Result` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `class BetaTelemetryDestinationTestSuccess` + + The destination answered the test span with a 2xx status. + + - `JsonElement Type = "success"` + + - `class BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `JsonElement Type = "failure"` + + - `required string Error` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations; + +TelemetryDestinationTestParams parameters = new() +{ + DestinationID = "destination_id" +}; + +var betaTelemetryDestinationTestResponse = await client.Beta.Organization.TelemetryDestinations.Test(parameters); + +Console.WriteLine(betaTelemetryDestinationTestResponse); +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +`WorkspaceListPage Beta.Organization.TelemetryDestinations.Workspaces.List(parameters, cancellationToken = default)` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceListParams parameters` + + - `required string destinationID` (path parameter) + + ID of the destination (`tdst_...`). + + - `int limit` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + + - `string page` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `JsonElement Type = "telemetry_destination_workspace"` + + - `required DateTimeOffset CreatedAt` + + Time the workspace was added to the list. + + format: date-time + + - `required string TelemetryDestinationID` + + ID of the telemetry destination (`tdst_...`). + + - `required string WorkspaceID` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations.Workspaces; + +WorkspaceListParams parameters = new() { DestinationID = "destination_id" }; + +var page = await client.Beta.Organization.TelemetryDestinations.Workspaces.List(parameters); +await foreach (var item in page.Paginate()) +{ + Console.WriteLine(item); +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +`BetaTelemetryDestinationWorkspace Beta.Organization.TelemetryDestinations.Workspaces.Add(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceAddParams parameters` + + - `required string destinationID` (path parameter) + + ID of the destination (`tdst_...`). + + - `required string workspaceID` (path parameter) + + ID of the workspace to add (`wrkspc_...`). + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `JsonElement Type = "telemetry_destination_workspace"` + + - `required DateTimeOffset CreatedAt` + + Time the workspace was added to the list. + + format: date-time + + - `required string TelemetryDestinationID` + + ID of the telemetry destination (`tdst_...`). + + - `required string WorkspaceID` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations.Workspaces; + +WorkspaceAddParams parameters = new() +{ + DestinationID = "destination_id", + WorkspaceID = "workspace_id", +}; + +var betaTelemetryDestinationWorkspace = await client.Beta.Organization.TelemetryDestinations.Workspaces.Add(parameters); + +Console.WriteLine(betaTelemetryDestinationWorkspace); +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`BetaDeletedTelemetryDestinationWorkspace Beta.Organization.TelemetryDestinations.Workspaces.Remove(parameters, cancellationToken = default)` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceRemoveParams parameters` + + - `required string destinationID` (path parameter) + + ID of the destination (`tdst_...`). + + - `required string workspaceID` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaDeletedTelemetryDestinationWorkspace` + + Confirmation that a workspace was removed from a destination's list. + + - `JsonElement Type = "telemetry_destination_workspace_deleted"` + + - `required string TelemetryDestinationID` + + ID of the telemetry destination (`tdst_...`). + + - `required string WorkspaceID` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.TelemetryDestinations.Workspaces; + +WorkspaceRemoveParams parameters = new() +{ + DestinationID = "destination_id", + WorkspaceID = "workspace_id", +}; + +var betaDeletedTelemetryDestinationWorkspace = await client.Beta.Organization.TelemetryDestinations.Workspaces.Remove(parameters); + +Console.WriteLine(betaDeletedTelemetryDestinationWorkspace); +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`BetaNewOrganizationWebhookEndpoint Beta.Organization.Webhooks.Create(parameters, cancellationToken = default)` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `WebhookCreateParams parameters` + + - `required IReadOnlyList enabledEvents` + + The event types to deliver to the endpoint. Must list at least one. + + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` + + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `required string url` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + + - `string description` + + Notes about the endpoint. + + - `string name` + + A short label for the endpoint. + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `required string ID` + + ID of the webhook endpoint. + + - `required DateTimeOffset CreatedAt` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `required string Description` + + Notes about the endpoint. An empty string when none were given. + + - `required string DisabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `required IReadOnlyList EnabledEvents` + + The event types delivered to the endpoint. + + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` + + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `required string Name` + + A short label for the endpoint. An empty string when none was given. + + - `required string SigningSecret` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `required BetaOrganizationWebhookEndpointState State` + + Whether deliveries are sent to the endpoint. + + - `Disabled("disabled")` + + - `Enabled("enabled")` + + - `required DateTimeOffset UpdatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.Organization.Webhooks; + +WebhookCreateParams parameters = new() +{ + EnabledEvents = + [ + EnabledEvent.UserProfileEnforcementActionOpened + ], + UrlValue = "x", +}; + +var betaNewOrganizationWebhookEndpoint = await client.Beta.Organization.Webhooks.Create(parameters); + +Console.WriteLine(betaNewOrganizationWebhookEndpoint); +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`WebhookListPage Beta.Organization.Webhooks.List(parameters, cancellationToken = default)` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `WebhookListParams parameters` + + - `string? afterID` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + + - `string? beforeID` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + + - `long limit` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + + - `Order? order` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `Asc("asc")` + + - `Desc("desc")` + + - `IReadOnlyList betas` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns -- `class BetaDeletedTelemetryDestination` +- `class BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `JsonElement Type = "telemetry_destination_deleted"` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `required string ID` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `required DateTimeOffset CreatedAt` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `required string Description` + + Notes about the endpoint. An empty string when none were given. + + - `required string DisabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `required IReadOnlyList EnabledEvents` + + The event types delivered to the endpoint. + + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` + + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `required string Name` + + A short label for the endpoint. An empty string when none was given. + + - `required BetaOrganizationWebhookEndpointState State` + + Whether deliveries are sent to the endpoint. + + - `Disabled("disabled")` + + - `Enabled("enabled")` + + - `required DateTimeOffset UpdatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The HTTPS URL that deliveries are sent to. #### Example ```csharp -TelemetryDestinationDeleteParams parameters = new() -{ - DestinationID = "destination_id" -}; +using System; +using Anthropic.Models.Beta.Organization.Webhooks; -var betaDeletedTelemetryDestination = await client.Beta.Organization.TelemetryDestinations.Delete(parameters); +WebhookListParams parameters = new(); -Console.WriteLine(betaDeletedTelemetryDestination); +var page = await client.Beta.Organization.Webhooks.List(parameters); +await foreach (var item in page.Paginate()) +{ + Console.WriteLine(item); +} ``` ##### Response (200) ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`BetaTelemetryDestinationTestResponse Beta.Organization.TelemetryDestinations.Test(parameters, cancellationToken = default)` +`BetaOrganizationWebhookEndpoint Beta.Organization.Webhooks.Retrieve(parameters, cancellationToken = default)` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `TelemetryDestinationTestParams parameters` +- `WebhookRetrieveParams parameters` - - `required string destinationID` (path parameter) + - `required string webhookEndpointID` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. + + maxLength: 2048 - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -108210,93 +111391,150 @@ Send one test span, named `anthropic.test`, to the destination with its register - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns -- `class BetaTelemetryDestinationTestResponse` +- `class BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `JsonElement Type = "telemetry_destination_test"` + - `required string ID` - - `required BetaTelemetryDestinationTestResult Result` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `required DateTimeOffset CreatedAt` - - `class BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `JsonElement Type = "success"` + - `required string Description` - - `class BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `required string DisabledReason` - - `JsonElement Type = "failure"` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `required string Error` + - `required IReadOnlyList EnabledEvents` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` + + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `required string Name` + + A short label for the endpoint. An empty string when none was given. + + - `required BetaOrganizationWebhookEndpointState State` + + Whether deliveries are sent to the endpoint. + + - `Disabled("disabled")` + + - `Enabled("enabled")` + + - `required DateTimeOffset UpdatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The HTTPS URL that deliveries are sent to. #### Example ```csharp -TelemetryDestinationTestParams parameters = new() +using System; +using Anthropic.Models.Beta.Organization.Webhooks; + +WebhookRetrieveParams parameters = new() { - DestinationID = "destination_id" + WebhookEndpointID = "webhook_endpoint_id" }; -var betaTelemetryDestinationTestResponse = await client.Beta.Organization.TelemetryDestinations.Test(parameters); +var betaOrganizationWebhookEndpoint = await client.Beta.Organization.Webhooks.Retrieve(parameters); -Console.WriteLine(betaTelemetryDestinationTestResponse); +Console.WriteLine(betaOrganizationWebhookEndpoint); ``` ##### Response (200) ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +`BetaOrganizationWebhookEndpoint Beta.Organization.Webhooks.Update(parameters, cancellationToken = default)` -`WorkspaceListPage Beta.Organization.TelemetryDestinations.Workspaces.List(parameters, cancellationToken = default)` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +#### Parameters -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +- `WebhookUpdateParams parameters` -#### Parameters + - `required string webhookEndpointID` (path parameter) -- `WorkspaceListParams parameters` + ID of the webhook endpoint. - - `required string destinationID` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). + - `string description` - - `int limit` (query parameter) + Notes about the endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. + - `IReadOnlyList enabledEvents` - format: int32 + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. - - `string page` (query parameter) + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `string name` + + A short label for the endpoint. + + - `State state` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `Disabled("disabled")` + + - `Enabled("enabled")` + + - `string url` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -108400,87 +111638,120 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns -- `class BetaTelemetryDestinationWorkspace` +- `class BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `required string ID` - - `JsonElement Type = "telemetry_destination_workspace"` + ID of the webhook endpoint. - `required DateTimeOffset CreatedAt` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `required string TelemetryDestinationID` + - `required string Description` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `required string WorkspaceID` + - `required string DisabledReason` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `required IReadOnlyList EnabledEvents` + + The event types delivered to the endpoint. + + - `UserProfileEnforcementActionOpened("user_profile.enforcement_action_opened")` + + - `UserProfileEnforcementActionResolved("user_profile.enforcement_action_resolved")` + + - `required string Name` + + A short label for the endpoint. An empty string when none was given. + + - `required BetaOrganizationWebhookEndpointState State` + + Whether deliveries are sent to the endpoint. + + - `Disabled("disabled")` + + - `Enabled("enabled")` + + - `required DateTimeOffset UpdatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The HTTPS URL that deliveries are sent to. #### Example ```csharp -WorkspaceListParams parameters = new() { DestinationID = "destination_id" }; +using System; +using Anthropic.Models.Beta.Organization.Webhooks; -var page = await client.Beta.Organization.TelemetryDestinations.Workspaces.List(parameters); -await foreach (var item in page.Paginate()) +WebhookUpdateParams parameters = new() { - Console.WriteLine(item); -} + WebhookEndpointID = "webhook_endpoint_id" +}; + +var betaOrganizationWebhookEndpoint = await client.Beta.Organization.Webhooks.Update(parameters); + +Console.WriteLine(betaOrganizationWebhookEndpoint); ``` ##### Response (200) ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace - -`BetaTelemetryDestinationWorkspace Beta.Organization.TelemetryDestinations.Workspaces.Add(parameters, cancellationToken = default)` - -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +### Delete Organization Webhook Endpoint -Add one workspace to a destination's workspace list. +`BetaDeletedOrganizationWebhookEndpoint Beta.Organization.Webhooks.Delete(parameters, cancellationToken = default)` -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. +Delete an organization webhook endpoint. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `WorkspaceAddParams parameters` +- `WebhookDeleteParams parameters` - - `required string destinationID` (path parameter) + - `required string webhookEndpointID` (path parameter) - ID of the destination (`tdst_...`). + ID of the webhook endpoint. - - `required string workspaceID` (path parameter) - - ID of the workspace to add (`wrkspc_...`). + maxLength: 2048 - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -108584,84 +111855,71 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaTelemetryDestinationWorkspace` - - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. - - - `JsonElement Type = "telemetry_destination_workspace"` + - `Webhooks2026_10_07("webhooks-2026-10-07")` - - `required DateTimeOffset CreatedAt` +#### Returns - Time the workspace was added to the list. +- `class BetaDeletedOrganizationWebhookEndpoint` - format: date-time + A deleted organization webhook endpoint. - - `required string TelemetryDestinationID` + - `JsonElement Type = "webhook_endpoint_deleted"` - ID of the telemetry destination (`tdst_...`). + Always `webhook_endpoint_deleted`. - - `required string WorkspaceID` + - `required string ID` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example ```csharp -WorkspaceAddParams parameters = new() +using System; +using Anthropic.Models.Beta.Organization.Webhooks; + +WebhookDeleteParams parameters = new() { - DestinationID = "destination_id", - WorkspaceID = "workspace_id", + WebhookEndpointID = "webhook_endpoint_id" }; -var betaTelemetryDestinationWorkspace = await client.Beta.Organization.TelemetryDestinations.Workspaces.Add(parameters); +var betaDeletedOrganizationWebhookEndpoint = await client.Beta.Organization.Webhooks.Delete(parameters); -Console.WriteLine(betaTelemetryDestinationWorkspace); +Console.WriteLine(betaDeletedOrganizationWebhookEndpoint); ``` ##### Response (200) ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace +### Regenerate Organization Webhook Endpoint Signing Secret -`BetaDeletedTelemetryDestinationWorkspace Beta.Organization.TelemetryDestinations.Workspaces.Remove(parameters, cancellationToken = default)` +`BetaOrganizationWebhookEndpointSigningSecret Beta.Organization.Webhooks.RegenerateSigningSecret(parameters, cancellationToken = default)` -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Remove one workspace from a destination's workspace list. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. - -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=csharp#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `WorkspaceRemoveParams parameters` - - - `required string destinationID` (path parameter) +- `WebhookRegenerateSigningSecretParams parameters` - ID of the destination (`tdst_...`). + - `required string webhookEndpointID` (path parameter) - - `required string workspaceID` (path parameter) + ID of the webhook endpoint. - ID of the workspace to remove (`wrkspc_...`). + maxLength: 2048 - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -108765,42 +112023,38 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaDeletedTelemetryDestinationWorkspace` + - `Webhooks2026_10_07("webhooks-2026-10-07")` - Confirmation that a workspace was removed from a destination's list. +#### Returns - - `JsonElement Type = "telemetry_destination_workspace_deleted"` +- `class BetaOrganizationWebhookEndpointSigningSecret` - - `required string TelemetryDestinationID` + An organization webhook endpoint's new signing secret. - ID of the telemetry destination (`tdst_...`). + - `required string SigningSecret` - - `required string WorkspaceID` - - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example ```csharp -WorkspaceRemoveParams parameters = new() +using System; +using Anthropic.Models.Beta.Organization.Webhooks; + +WebhookRegenerateSigningSecretParams parameters = new() { - DestinationID = "destination_id", - WorkspaceID = "workspace_id", + WebhookEndpointID = "webhook_endpoint_id" }; -var betaDeletedTelemetryDestinationWorkspace = await client.Beta.Organization.TelemetryDestinations.Workspaces.Remove(parameters); +var betaOrganizationWebhookEndpointSigningSecret = await client.Beta.Organization.Webhooks.RegenerateSigningSecret(parameters); -Console.WriteLine(betaDeletedTelemetryDestinationWorkspace); +Console.WriteLine(betaOrganizationWebhookEndpointSigningSecret); ``` ##### Response (200) ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/csharp/beta/agents.md b/content/en/api/csharp/beta/agents.md index 62e44abeab..54ef5e152e 100644 --- a/content/en/api/csharp/beta/agents.md +++ b/content/en/api/csharp/beta/agents.md @@ -963,6 +963,8 @@ Create Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1758,6 +1760,9 @@ Create Agent ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentCreateParams parameters = new() { Model = BetaManagedAgentsModel.ClaudeOpus5_5, @@ -2015,6 +2020,8 @@ List Agents - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2810,6 +2817,9 @@ List Agents ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentListParams parameters = new(); var page = await client.Beta.Agents.List(parameters); @@ -3054,6 +3064,8 @@ Get Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3849,6 +3861,9 @@ Get Agent ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentRetrieveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -4929,6 +4944,8 @@ Update Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5724,6 +5741,9 @@ Update Agent ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentUpdateParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -5958,6 +5978,8 @@ Archive Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6753,6 +6775,9 @@ Archive Agent ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentArchiveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" @@ -13299,6 +13324,8 @@ List Agent Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -14094,6 +14121,9 @@ List Agent Versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents.Versions; + VersionListParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/agents/archive.md b/content/en/api/csharp/beta/agents/archive.md index 8d5bcfb02c..280660a34e 100644 --- a/content/en/api/csharp/beta/agents/archive.md +++ b/content/en/api/csharp/beta/agents/archive.md @@ -125,6 +125,8 @@ Archive Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -920,6 +922,9 @@ Archive Agent ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentArchiveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/agents/create.md b/content/en/api/csharp/beta/agents/create.md index 3ac19e9aec..91f68d588c 100644 --- a/content/en/api/csharp/beta/agents/create.md +++ b/content/en/api/csharp/beta/agents/create.md @@ -961,6 +961,8 @@ Create Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1756,6 +1758,9 @@ Create Agent ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentCreateParams parameters = new() { Model = BetaManagedAgentsModel.ClaudeOpus5_5, diff --git a/content/en/api/csharp/beta/agents/list.md b/content/en/api/csharp/beta/agents/list.md index 55fa13e3e7..8c6009fecb 100644 --- a/content/en/api/csharp/beta/agents/list.md +++ b/content/en/api/csharp/beta/agents/list.md @@ -147,6 +147,8 @@ List Agents - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -942,6 +944,9 @@ List Agents ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentListParams parameters = new(); var page = await client.Beta.Agents.List(parameters); diff --git a/content/en/api/csharp/beta/agents/retrieve.md b/content/en/api/csharp/beta/agents/retrieve.md index 9f113824fb..6cfba36017 100644 --- a/content/en/api/csharp/beta/agents/retrieve.md +++ b/content/en/api/csharp/beta/agents/retrieve.md @@ -131,6 +131,8 @@ Get Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -926,6 +928,9 @@ Get Agent ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentRetrieveParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/agents/update.md b/content/en/api/csharp/beta/agents/update.md index c687a375bb..49dcf11af3 100644 --- a/content/en/api/csharp/beta/agents/update.md +++ b/content/en/api/csharp/beta/agents/update.md @@ -971,6 +971,8 @@ Update Agent - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1766,6 +1768,9 @@ Update Agent ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents; + AgentUpdateParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/agents/versions.md b/content/en/api/csharp/beta/agents/versions.md index a80cbffb15..199171bde4 100644 --- a/content/en/api/csharp/beta/agents/versions.md +++ b/content/en/api/csharp/beta/agents/versions.md @@ -137,6 +137,8 @@ List Agent Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -932,6 +934,9 @@ List Agent Versions ### Example ```csharp +using System; +using Anthropic.Models.Beta.Agents.Versions; + VersionListParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/agents/versions/list.md b/content/en/api/csharp/beta/agents/versions/list.md index a7775a3e03..41b9f18652 100644 --- a/content/en/api/csharp/beta/agents/versions/list.md +++ b/content/en/api/csharp/beta/agents/versions/list.md @@ -135,6 +135,8 @@ List Agent Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -930,6 +932,9 @@ List Agent Versions ## Example ```csharp +using System; +using Anthropic.Models.Beta.Agents.Versions; + VersionListParams parameters = new() { AgentID = "agent_011CZkYpogX7uDKUyvBTophP" diff --git a/content/en/api/csharp/beta/deployment_runs.md b/content/en/api/csharp/beta/deployment_runs.md index 640da1c250..f536ffe298 100644 --- a/content/en/api/csharp/beta/deployment_runs.md +++ b/content/en/api/csharp/beta/deployment_runs.md @@ -169,6 +169,8 @@ List Deployment Runs - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -402,6 +404,9 @@ List Deployment Runs ### Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunListParams parameters = new(); var page = await client.Beta.DeploymentRuns.List(parameters); @@ -563,6 +568,8 @@ Get Deployment Run - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -796,6 +803,9 @@ Get Deployment Run ### Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunRetrieveParams parameters = new() { DeploymentRunID = "deployment_run_id" diff --git a/content/en/api/csharp/beta/deployment_runs/list.md b/content/en/api/csharp/beta/deployment_runs/list.md index 0e5d9d9328..c8fc139e40 100644 --- a/content/en/api/csharp/beta/deployment_runs/list.md +++ b/content/en/api/csharp/beta/deployment_runs/list.md @@ -167,6 +167,8 @@ List Deployment Runs - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -400,6 +402,9 @@ List Deployment Runs ## Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunListParams parameters = new(); var page = await client.Beta.DeploymentRuns.List(parameters); diff --git a/content/en/api/csharp/beta/deployment_runs/retrieve.md b/content/en/api/csharp/beta/deployment_runs/retrieve.md index 03a35e9883..d551534231 100644 --- a/content/en/api/csharp/beta/deployment_runs/retrieve.md +++ b/content/en/api/csharp/beta/deployment_runs/retrieve.md @@ -125,6 +125,8 @@ Get Deployment Run - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -358,6 +360,9 @@ Get Deployment Run ## Example ```csharp +using System; +using Anthropic.Models.Beta.DeploymentRuns; + DeploymentRunRetrieveParams parameters = new() { DeploymentRunID = "deployment_run_id" diff --git a/content/en/api/csharp/beta/deployments.md b/content/en/api/csharp/beta/deployments.md index b094129eb6..957bc59d87 100644 --- a/content/en/api/csharp/beta/deployments.md +++ b/content/en/api/csharp/beta/deployments.md @@ -495,6 +495,8 @@ Create Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1024,6 +1026,10 @@ Create Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; +using Anthropic.Models.Beta.Sessions.Events; + DeploymentCreateParams parameters = new() { Agent = "string", @@ -1037,10 +1043,10 @@ DeploymentCreateParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], Name = "x", @@ -1270,6 +1276,8 @@ List Deployments - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1799,6 +1807,9 @@ List Deployments ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentListParams parameters = new(); var page = await client.Beta.Deployments.List(parameters); @@ -2002,6 +2013,8 @@ Get Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2531,6 +2544,9 @@ Get Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRetrieveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -3102,6 +3118,8 @@ Update Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3631,6 +3649,9 @@ Update Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUpdateParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -3830,6 +3851,8 @@ Archive Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4359,6 +4382,9 @@ Archive Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentArchiveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -4558,6 +4584,8 @@ Run Deployment Now - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4791,6 +4819,9 @@ Run Deployment Now ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRunParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -4948,6 +4979,8 @@ Pause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5477,6 +5510,9 @@ Pause Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentPauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" @@ -5676,6 +5712,8 @@ Unpause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6205,6 +6243,9 @@ Unpause Deployment ### Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUnpauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/archive.md b/content/en/api/csharp/beta/deployments/archive.md index 11f3cdb9c2..4dfd6acc42 100644 --- a/content/en/api/csharp/beta/deployments/archive.md +++ b/content/en/api/csharp/beta/deployments/archive.md @@ -125,6 +125,8 @@ Archive Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -654,6 +656,9 @@ Archive Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentArchiveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/create.md b/content/en/api/csharp/beta/deployments/create.md index 87eee19ba9..e3472ff4eb 100644 --- a/content/en/api/csharp/beta/deployments/create.md +++ b/content/en/api/csharp/beta/deployments/create.md @@ -493,6 +493,8 @@ Create Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1022,6 +1024,10 @@ Create Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; +using Anthropic.Models.Beta.Sessions.Events; + DeploymentCreateParams parameters = new() { Agent = "string", @@ -1035,10 +1041,10 @@ DeploymentCreateParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], Name = "x", diff --git a/content/en/api/csharp/beta/deployments/list.md b/content/en/api/csharp/beta/deployments/list.md index 8b70b677e4..6321a35717 100644 --- a/content/en/api/csharp/beta/deployments/list.md +++ b/content/en/api/csharp/beta/deployments/list.md @@ -155,6 +155,8 @@ List Deployments - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -684,6 +686,9 @@ List Deployments ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentListParams parameters = new(); var page = await client.Beta.Deployments.List(parameters); diff --git a/content/en/api/csharp/beta/deployments/pause.md b/content/en/api/csharp/beta/deployments/pause.md index 86a8c882b5..031733a795 100644 --- a/content/en/api/csharp/beta/deployments/pause.md +++ b/content/en/api/csharp/beta/deployments/pause.md @@ -125,6 +125,8 @@ Pause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -654,6 +656,9 @@ Pause Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentPauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/retrieve.md b/content/en/api/csharp/beta/deployments/retrieve.md index 6ae8598498..12ec8635f4 100644 --- a/content/en/api/csharp/beta/deployments/retrieve.md +++ b/content/en/api/csharp/beta/deployments/retrieve.md @@ -125,6 +125,8 @@ Get Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -654,6 +656,9 @@ Get Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRetrieveParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/run.md b/content/en/api/csharp/beta/deployments/run.md index 5fda984914..4f4b2ec4f0 100644 --- a/content/en/api/csharp/beta/deployments/run.md +++ b/content/en/api/csharp/beta/deployments/run.md @@ -125,6 +125,8 @@ Run Deployment Now - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -358,6 +360,9 @@ Run Deployment Now ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentRunParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/unpause.md b/content/en/api/csharp/beta/deployments/unpause.md index c525e81ffe..d135b52a34 100644 --- a/content/en/api/csharp/beta/deployments/unpause.md +++ b/content/en/api/csharp/beta/deployments/unpause.md @@ -125,6 +125,8 @@ Unpause Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -654,6 +656,9 @@ Unpause Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUnpauseParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/deployments/update.md b/content/en/api/csharp/beta/deployments/update.md index 1e5bf83989..840efc48ed 100644 --- a/content/en/api/csharp/beta/deployments/update.md +++ b/content/en/api/csharp/beta/deployments/update.md @@ -497,6 +497,8 @@ Update Deployment - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1026,6 +1028,9 @@ Update Deployment ## Example ```csharp +using System; +using Anthropic.Models.Beta.Deployments; + DeploymentUpdateParams parameters = new() { DeploymentID = "depl_011CZkZcDH3vPqd7xnEfwTai" diff --git a/content/en/api/csharp/beta/environments.md b/content/en/api/csharp/beta/environments.md index a681fd8217..7d9b1c6941 100644 --- a/content/en/api/csharp/beta/environments.md +++ b/content/en/api/csharp/beta/environments.md @@ -237,6 +237,8 @@ Create a new environment with the specified configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -376,6 +378,9 @@ Create a new environment with the specified configuration. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentCreateParams parameters = new() { Name = "python-data-analysis" }; var betaEnvironment = await client.Beta.Environments.Create(parameters); @@ -564,6 +569,8 @@ List environments with pagination support. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -703,6 +710,9 @@ List environments with pagination support. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentListParams parameters = new(); var page = await client.Beta.Environments.List(parameters); @@ -886,6 +896,8 @@ Retrieve a specific environment by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1025,6 +1037,9 @@ Retrieve a specific environment by ID. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -1318,6 +1333,8 @@ Update an existing environment's configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1457,6 +1474,9 @@ Update an existing environment's configuration. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -1636,6 +1656,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1659,6 +1681,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentDeleteParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -1798,6 +1823,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1937,6 +1964,9 @@ Archive an environment by ID. Archived environments cannot be used to create new ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentArchiveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -2571,6 +2601,8 @@ Retrieve detailed information about a specific work item. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2660,6 +2692,9 @@ Retrieve detailed information about a specific work item. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -2830,6 +2865,8 @@ Long poll for work items in the queue. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string anthropicWorkerID` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -2917,6 +2954,9 @@ Long poll for work items in the queue. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkPollParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -3076,6 +3116,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -3159,6 +3201,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkAckParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -3327,6 +3372,8 @@ Record a heartbeat for a work item to maintain the lease. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -3366,6 +3413,9 @@ Record a heartbeat for a work item to maintain the lease. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkHeartbeatParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -3517,6 +3567,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3606,6 +3658,9 @@ Stop a work item, initiating graceful or forced shutdown. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStopParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -3774,6 +3829,8 @@ List work items in an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -3857,6 +3914,9 @@ List work items in an environment. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkListParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -4027,6 +4087,8 @@ Update work item metadata with merge semantics. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4116,6 +4178,10 @@ Update work item metadata with merge semantics. #### Example ```csharp +using System; +using System.Collections.Generic; +using Anthropic.Models.Beta.Environments.Work; + WorkUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -4273,6 +4339,8 @@ Get statistics about the work queue for an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4310,6 +4378,9 @@ Get statistics about the work queue for an environment. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStatsParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/archive.md b/content/en/api/csharp/beta/environments/archive.md index b9fda16903..3c177069eb 100644 --- a/content/en/api/csharp/beta/environments/archive.md +++ b/content/en/api/csharp/beta/environments/archive.md @@ -123,6 +123,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -262,6 +264,9 @@ Archive an environment by ID. Archived environments cannot be used to create new ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentArchiveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/create.md b/content/en/api/csharp/beta/environments/create.md index dbd577200f..96f34880f9 100644 --- a/content/en/api/csharp/beta/environments/create.md +++ b/content/en/api/csharp/beta/environments/create.md @@ -235,6 +235,8 @@ Create a new environment with the specified configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -374,6 +376,9 @@ Create a new environment with the specified configuration. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentCreateParams parameters = new() { Name = "python-data-analysis" }; var betaEnvironment = await client.Beta.Environments.Create(parameters); diff --git a/content/en/api/csharp/beta/environments/delete.md b/content/en/api/csharp/beta/environments/delete.md index 75b66abca8..faf092f761 100644 --- a/content/en/api/csharp/beta/environments/delete.md +++ b/content/en/api/csharp/beta/environments/delete.md @@ -123,6 +123,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -146,6 +148,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentDeleteParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/list.md b/content/en/api/csharp/beta/environments/list.md index 4ff5f6dbc4..d8522c8ddd 100644 --- a/content/en/api/csharp/beta/environments/list.md +++ b/content/en/api/csharp/beta/environments/list.md @@ -135,6 +135,8 @@ List environments with pagination support. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -274,6 +276,9 @@ List environments with pagination support. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentListParams parameters = new(); var page = await client.Beta.Environments.List(parameters); diff --git a/content/en/api/csharp/beta/environments/retrieve.md b/content/en/api/csharp/beta/environments/retrieve.md index 7fabfc1b30..9858ef06cb 100644 --- a/content/en/api/csharp/beta/environments/retrieve.md +++ b/content/en/api/csharp/beta/environments/retrieve.md @@ -123,6 +123,8 @@ Retrieve a specific environment by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -262,6 +264,9 @@ Retrieve a specific environment by ID. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/update.md b/content/en/api/csharp/beta/environments/update.md index 5ca9752e3c..604ef02b13 100644 --- a/content/en/api/csharp/beta/environments/update.md +++ b/content/en/api/csharp/beta/environments/update.md @@ -237,6 +237,8 @@ Update an existing environment's configuration. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -376,6 +378,9 @@ Update an existing environment's configuration. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments; + EnvironmentUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/work.md b/content/en/api/csharp/beta/environments/work.md index 721965561f..6743444799 100644 --- a/content/en/api/csharp/beta/environments/work.md +++ b/content/en/api/csharp/beta/environments/work.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -218,6 +220,9 @@ Retrieve detailed information about a specific work item. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -388,6 +393,8 @@ Long poll for work items in the queue. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string anthropicWorkerID` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -475,6 +482,9 @@ Long poll for work items in the queue. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkPollParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -634,6 +644,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWork` @@ -717,6 +729,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkAckParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -885,6 +900,8 @@ Record a heartbeat for a work item to maintain the lease. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -924,6 +941,9 @@ Record a heartbeat for a work item to maintain the lease. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkHeartbeatParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -1075,6 +1095,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1164,6 +1186,9 @@ Stop a work item, initiating graceful or forced shutdown. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStopParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -1332,6 +1357,8 @@ List work items in an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWork` @@ -1415,6 +1442,9 @@ List work items in an environment. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkListParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" @@ -1585,6 +1615,8 @@ Update work item metadata with merge semantics. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1674,6 +1706,10 @@ Update work item metadata with merge semantics. ### Example ```csharp +using System; +using System.Collections.Generic; +using Anthropic.Models.Beta.Environments.Work; + WorkUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", @@ -1831,6 +1867,8 @@ Get statistics about the work queue for an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1868,6 +1906,9 @@ Get statistics about the work queue for an environment. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStatsParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/work/ack.md b/content/en/api/csharp/beta/environments/work/ack.md index 802dba1b39..3618968f80 100644 --- a/content/en/api/csharp/beta/environments/work/ack.md +++ b/content/en/api/csharp/beta/environments/work/ack.md @@ -127,6 +127,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWork` @@ -210,6 +212,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkAckParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", diff --git a/content/en/api/csharp/beta/environments/work/heartbeat.md b/content/en/api/csharp/beta/environments/work/heartbeat.md index fc6fda0daa..fd94a5dbeb 100644 --- a/content/en/api/csharp/beta/environments/work/heartbeat.md +++ b/content/en/api/csharp/beta/environments/work/heartbeat.md @@ -135,6 +135,8 @@ Record a heartbeat for a work item to maintain the lease. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -174,6 +176,9 @@ Record a heartbeat for a work item to maintain the lease. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkHeartbeatParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", diff --git a/content/en/api/csharp/beta/environments/work/list.md b/content/en/api/csharp/beta/environments/work/list.md index d84842747f..f9ab1d067d 100644 --- a/content/en/api/csharp/beta/environments/work/list.md +++ b/content/en/api/csharp/beta/environments/work/list.md @@ -135,6 +135,8 @@ List work items in an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWork` @@ -218,6 +220,9 @@ List work items in an environment. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkListParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/work/poll.md b/content/en/api/csharp/beta/environments/work/poll.md index 649bd11197..d26c197fe8 100644 --- a/content/en/api/csharp/beta/environments/work/poll.md +++ b/content/en/api/csharp/beta/environments/work/poll.md @@ -137,6 +137,8 @@ Long poll for work items in the queue. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string anthropicWorkerID` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -224,6 +226,9 @@ Long poll for work items in the queue. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkPollParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/work/retrieve.md b/content/en/api/csharp/beta/environments/work/retrieve.md index 51c08f74fb..c51db80496 100644 --- a/content/en/api/csharp/beta/environments/work/retrieve.md +++ b/content/en/api/csharp/beta/environments/work/retrieve.md @@ -127,6 +127,8 @@ Retrieve detailed information about a specific work item. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -216,6 +218,9 @@ Retrieve detailed information about a specific work item. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkRetrieveParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", diff --git a/content/en/api/csharp/beta/environments/work/stats.md b/content/en/api/csharp/beta/environments/work/stats.md index 0ef327b186..7965b023eb 100644 --- a/content/en/api/csharp/beta/environments/work/stats.md +++ b/content/en/api/csharp/beta/environments/work/stats.md @@ -123,6 +123,8 @@ Get statistics about the work queue for an environment. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -160,6 +162,9 @@ Get statistics about the work queue for an environment. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStatsParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW" diff --git a/content/en/api/csharp/beta/environments/work/stop.md b/content/en/api/csharp/beta/environments/work/stop.md index 11a86dfed4..2b9801673d 100644 --- a/content/en/api/csharp/beta/environments/work/stop.md +++ b/content/en/api/csharp/beta/environments/work/stop.md @@ -131,6 +131,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -220,6 +222,9 @@ Stop a work item, initiating graceful or forced shutdown. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Environments.Work; + WorkStopParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", diff --git a/content/en/api/csharp/beta/environments/work/update.md b/content/en/api/csharp/beta/environments/work/update.md index 8252bdd20f..8ede4db8e1 100644 --- a/content/en/api/csharp/beta/environments/work/update.md +++ b/content/en/api/csharp/beta/environments/work/update.md @@ -131,6 +131,8 @@ Update work item metadata with merge semantics. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -220,6 +222,10 @@ Update work item metadata with merge semantics. ## Example ```csharp +using System; +using System.Collections.Generic; +using Anthropic.Models.Beta.Environments.Work; + WorkUpdateParams parameters = new() { EnvironmentID = "env_011CZkZ9X2dpNyB7HsEFoRfW", diff --git a/content/en/api/csharp/beta/files.md b/content/en/api/csharp/beta/files.md index b781797113..1a1acd1998 100644 --- a/content/en/api/csharp/beta/files.md +++ b/content/en/api/csharp/beta/files.md @@ -135,6 +135,8 @@ Upload File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -206,6 +208,10 @@ Upload File ### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Files; + FileUploadParams parameters = new() { File = Encoding.UTF8.GetBytes("Example data") @@ -373,6 +379,8 @@ List Files - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -444,6 +452,9 @@ List Files ### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileListParams parameters = new(); var page = await client.Beta.Files.List(parameters); @@ -599,6 +610,8 @@ Download File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -608,6 +621,9 @@ Download File ### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDownloadParams parameters = new() { FileID = "file_id" }; var response = await client.Beta.Files.Download(parameters); @@ -737,6 +753,8 @@ Get File Metadata - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -808,6 +826,9 @@ Get File Metadata ### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileRetrieveMetadataParams parameters = new() { FileID = "file_id" }; var betaFileMetadata = await client.Beta.Files.RetrieveMetadata(parameters); @@ -956,6 +977,8 @@ Delete File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -979,6 +1002,9 @@ Delete File ### Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDeleteParams parameters = new() { FileID = "file_id" }; var betaDeletedFile = await client.Beta.Files.Delete(parameters); diff --git a/content/en/api/csharp/beta/files/delete.md b/content/en/api/csharp/beta/files/delete.md index bf26c7c092..f43c84c5a8 100644 --- a/content/en/api/csharp/beta/files/delete.md +++ b/content/en/api/csharp/beta/files/delete.md @@ -125,6 +125,8 @@ Delete File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -148,6 +150,9 @@ Delete File ## Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDeleteParams parameters = new() { FileID = "file_id" }; var betaDeletedFile = await client.Beta.Files.Delete(parameters); diff --git a/content/en/api/csharp/beta/files/download.md b/content/en/api/csharp/beta/files/download.md index 2a64fc1a02..ce7a0b37fd 100644 --- a/content/en/api/csharp/beta/files/download.md +++ b/content/en/api/csharp/beta/files/download.md @@ -125,6 +125,8 @@ Download File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -134,6 +136,9 @@ Download File ## Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileDownloadParams parameters = new() { FileID = "file_id" }; var response = await client.Beta.Files.Download(parameters); diff --git a/content/en/api/csharp/beta/files/list.md b/content/en/api/csharp/beta/files/list.md index e9552cc2a8..4e65f90ae7 100644 --- a/content/en/api/csharp/beta/files/list.md +++ b/content/en/api/csharp/beta/files/list.md @@ -141,6 +141,8 @@ List Files - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -212,6 +214,9 @@ List Files ## Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileListParams parameters = new(); var page = await client.Beta.Files.List(parameters); diff --git a/content/en/api/csharp/beta/files/retrieve_metadata.md b/content/en/api/csharp/beta/files/retrieve_metadata.md index 3c6dccde08..b0238727b7 100644 --- a/content/en/api/csharp/beta/files/retrieve_metadata.md +++ b/content/en/api/csharp/beta/files/retrieve_metadata.md @@ -125,6 +125,8 @@ Get File Metadata - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -196,6 +198,9 @@ Get File Metadata ## Example ```csharp +using System; +using Anthropic.Models.Beta.Files; + FileRetrieveMetadataParams parameters = new() { FileID = "file_id" }; var betaFileMetadata = await client.Beta.Files.RetrieveMetadata(parameters); diff --git a/content/en/api/csharp/beta/files/upload.md b/content/en/api/csharp/beta/files/upload.md index 4e9f0cce9d..62732d31c0 100644 --- a/content/en/api/csharp/beta/files/upload.md +++ b/content/en/api/csharp/beta/files/upload.md @@ -133,6 +133,8 @@ Upload File - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -204,6 +206,10 @@ Upload File ## Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Files; + FileUploadParams parameters = new() { File = Encoding.UTF8.GetBytes("Example data") diff --git a/content/en/api/csharp/beta/memory_stores.md b/content/en/api/csharp/beta/memory_stores.md index 12d45dfbc1..092512879e 100644 --- a/content/en/api/csharp/beta/memory_stores.md +++ b/content/en/api/csharp/beta/memory_stores.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters @@ -19,19 +19,25 @@ Create a memory store - `required string name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `IReadOnlyDictionary metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `IReadOnlyList betas` (header parameter) @@ -139,6 +145,8 @@ Create a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,27 +163,33 @@ Create a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -183,13 +197,18 @@ Create a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreCreateParams parameters = new() { Name = "x" }; var betaManagedAgentsMemoryStore = await client.Beta.MemoryStores.Create(parameters); @@ -214,13 +233,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -## List memory stores +## List Memory Stores `MemoryStoreListPage Beta.MemoryStores.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters @@ -228,13 +247,13 @@ List memory stores - `DateTimeOffset createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `DateTimeOffset createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -250,7 +269,7 @@ List memory stores - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `IReadOnlyList betas` (header parameter) @@ -358,6 +377,8 @@ List memory stores - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -374,27 +395,33 @@ List memory stores - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -402,13 +429,18 @@ List memory stores - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreListParams parameters = new(); var page = await client.Beta.MemoryStores.List(parameters); @@ -438,13 +470,13 @@ await foreach (var item in page.Paginate()) } ``` -## Retrieve a memory store +## Retrieve a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters @@ -452,7 +484,7 @@ Retrieve a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `IReadOnlyList betas` (header parameter) @@ -560,6 +592,8 @@ Retrieve a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -576,27 +610,33 @@ Retrieve a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -604,13 +644,18 @@ Retrieve a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -638,13 +683,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -## Update a memory store +## Update a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters @@ -652,21 +697,27 @@ Update a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `string? description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `IReadOnlyDictionary? metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `string? name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -776,6 +827,8 @@ Update a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -792,27 +845,33 @@ Update a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -820,13 +879,18 @@ Update a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreUpdateParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -854,13 +918,13 @@ Console.WriteLine(betaManagedAgentsMemoryStore); } ``` -## Delete a memory store +## Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore Beta.MemoryStores.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters @@ -868,7 +932,9 @@ Delete a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `IReadOnlyList betas` (header parameter) @@ -976,6 +1042,8 @@ Delete a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -997,6 +1065,9 @@ Delete a memory store ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreDeleteParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -1016,13 +1087,13 @@ Console.WriteLine(betaManagedAgentsDeletedMemoryStore); } ``` -## Archive a memory store +## Archive a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Archive(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters @@ -1030,7 +1101,9 @@ Archive a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `IReadOnlyList betas` (header parameter) @@ -1138,6 +1211,8 @@ Archive a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1154,27 +1229,33 @@ Archive a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -1182,13 +1263,18 @@ Archive a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreArchiveParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -1240,27 +1326,33 @@ Console.WriteLine(betaManagedAgentsMemoryStore); - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -1268,19 +1360,21 @@ Console.WriteLine(betaManagedAgentsMemoryStore); - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1292,17 +1386,23 @@ Create a memory - `required string? content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `required string path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -1410,6 +1510,8 @@ Create a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1420,13 +1522,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -1434,7 +1542,7 @@ Create a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1450,7 +1558,11 @@ Create a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -1458,17 +1570,24 @@ Create a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryCreateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -1498,13 +1617,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### List memories +### List Memories `MemoryListPage Beta.MemoryStores.Memories.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1516,27 +1635,35 @@ List memories - `int depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `int limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `string pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `BetaManagedAgentsMemoryView view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `IReadOnlyList betas` (header parameter) @@ -1644,6 +1771,8 @@ List memories - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1654,17 +1783,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -1672,7 +1807,7 @@ List memories - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1688,7 +1823,11 @@ List memories - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -1696,17 +1835,23 @@ List memories - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -1717,6 +1862,9 @@ List memories #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryListParams parameters = new() { MemoryStoreID = "memory_store_id" }; var page = await client.Beta.MemoryStores.Memories.List(parameters); @@ -1748,13 +1896,13 @@ await foreach (var item in page.Paginate()) } ``` -### Retrieve a memory +### Retrieve a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1770,7 +1918,9 @@ Retrieve a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -1878,6 +2028,8 @@ Retrieve a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1888,13 +2040,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -1902,7 +2060,7 @@ Retrieve a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1918,7 +2076,11 @@ Retrieve a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -1926,17 +2088,24 @@ Retrieve a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -1965,13 +2134,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### Update a memory +### Update a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -1987,7 +2156,9 @@ Update a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `string? content` @@ -1995,13 +2166,17 @@ Update a memory - `string? path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `BetaManagedAgentsPrecondition precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `IReadOnlyList betas` (header parameter) @@ -2109,6 +2284,8 @@ Update a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2119,13 +2296,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -2133,7 +2316,7 @@ Update a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2149,7 +2332,11 @@ Update a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -2157,17 +2344,24 @@ Update a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryUpdateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -2196,13 +2390,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -### Delete a memory +### Delete a Memory `BetaManagedAgentsDeletedMemory Beta.MemoryStores.Memories.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2328,6 +2522,8 @@ Delete a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2338,7 +2534,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about how long versions are kept. - `required Type Type` @@ -2349,6 +2549,9 @@ Delete a memory #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryDeleteParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -2371,13 +2574,13 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `MemoryVersionListPage Beta.MemoryStores.MemoryVersions.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2405,7 +2608,9 @@ List memory versions - `int limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2413,7 +2618,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `BetaManagedAgentsMemoryVersionOperation operation` (query parameter) @@ -2433,7 +2638,9 @@ List memory versions - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -2541,6 +2748,8 @@ List memory versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2551,7 +2760,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -2567,7 +2782,9 @@ List memory versions - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -2605,7 +2822,11 @@ List memory versions - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -2661,7 +2882,11 @@ List memory versions - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -2672,6 +2897,9 @@ List memory versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionListParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -2715,13 +2943,13 @@ await foreach (var item in page.Paginate()) } ``` -### Retrieve a memory version +### Retrieve a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2737,7 +2965,9 @@ Retrieve a memory version - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -2845,6 +3075,8 @@ Retrieve a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2855,7 +3087,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -2871,7 +3109,9 @@ Retrieve a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -2909,7 +3149,11 @@ Retrieve a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -2965,7 +3209,11 @@ Retrieve a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -2976,6 +3224,9 @@ Retrieve a memory version #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -3013,13 +3264,13 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); } ``` -### Redact a memory version +### Redact a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Redact(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3139,6 +3390,8 @@ Redact a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3149,7 +3402,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -3165,7 +3424,9 @@ Redact a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -3203,7 +3464,11 @@ Redact a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3259,7 +3524,11 @@ Redact a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -3270,6 +3539,9 @@ Redact a memory version #### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRedactParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/archive.md b/content/en/api/csharp/beta/memory_stores/archive.md index 286ac106d6..6cd1772f21 100644 --- a/content/en/api/csharp/beta/memory_stores/archive.md +++ b/content/en/api/csharp/beta/memory_stores/archive.md @@ -1,15 +1,15 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Archive(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters @@ -17,7 +17,9 @@ Archive a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `IReadOnlyList betas` (header parameter) @@ -125,6 +127,8 @@ Archive a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +145,33 @@ Archive a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -169,13 +179,18 @@ Archive a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreArchiveParams parameters = new() { MemoryStoreID = "memory_store_id" diff --git a/content/en/api/csharp/beta/memory_stores/create.md b/content/en/api/csharp/beta/memory_stores/create.md index f92e4f412b..7c1148b59b 100644 --- a/content/en/api/csharp/beta/memory_stores/create.md +++ b/content/en/api/csharp/beta/memory_stores/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters @@ -17,19 +17,25 @@ Create a memory store - `required string name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `IReadOnlyDictionary metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `IReadOnlyList betas` (header parameter) @@ -137,6 +143,8 @@ Create a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,27 +161,33 @@ Create a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -181,13 +195,18 @@ Create a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreCreateParams parameters = new() { Name = "x" }; var betaManagedAgentsMemoryStore = await client.Beta.MemoryStores.Create(parameters); diff --git a/content/en/api/csharp/beta/memory_stores/delete.md b/content/en/api/csharp/beta/memory_stores/delete.md index 8a685d77cb..ab3bc82fa8 100644 --- a/content/en/api/csharp/beta/memory_stores/delete.md +++ b/content/en/api/csharp/beta/memory_stores/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore Beta.MemoryStores.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters @@ -17,7 +17,9 @@ Delete a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `IReadOnlyList betas` (header parameter) @@ -125,6 +127,8 @@ Delete a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -146,6 +150,9 @@ Delete a memory store ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreDeleteParams parameters = new() { MemoryStoreID = "memory_store_id" diff --git a/content/en/api/csharp/beta/memory_stores/list.md b/content/en/api/csharp/beta/memory_stores/list.md index 329ab77d37..df7516e593 100644 --- a/content/en/api/csharp/beta/memory_stores/list.md +++ b/content/en/api/csharp/beta/memory_stores/list.md @@ -1,15 +1,15 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `MemoryStoreListPage Beta.MemoryStores.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters @@ -17,13 +17,13 @@ List memory stores - `DateTimeOffset createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `DateTimeOffset createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -39,7 +39,7 @@ List memory stores - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `IReadOnlyList betas` (header parameter) @@ -147,6 +147,8 @@ List memory stores - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,27 +165,33 @@ List memory stores - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -191,13 +199,18 @@ List memory stores - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreListParams parameters = new(); var page = await client.Beta.MemoryStores.List(parameters); diff --git a/content/en/api/csharp/beta/memory_stores/memories.md b/content/en/api/csharp/beta/memory_stores/memories.md index 11397ffb93..390e0b97b3 100644 --- a/content/en/api/csharp/beta/memory_stores/memories.md +++ b/content/en/api/csharp/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -23,17 +23,23 @@ Create a memory - `required string? content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `required string path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -141,6 +147,8 @@ Create a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,13 +159,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -165,7 +179,7 @@ Create a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -181,7 +195,11 @@ Create a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -189,17 +207,24 @@ Create a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryCreateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -229,13 +254,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -## List memories +## List Memories `MemoryListPage Beta.MemoryStores.Memories.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -247,27 +272,35 @@ List memories - `int depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `int limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `string pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `BetaManagedAgentsMemoryView view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `IReadOnlyList betas` (header parameter) @@ -375,6 +408,8 @@ List memories - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -385,17 +420,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -403,7 +444,7 @@ List memories - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -419,7 +460,11 @@ List memories - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -427,17 +472,23 @@ List memories - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -448,6 +499,9 @@ List memories ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryListParams parameters = new() { MemoryStoreID = "memory_store_id" }; var page = await client.Beta.MemoryStores.Memories.List(parameters); @@ -479,13 +533,13 @@ await foreach (var item in page.Paginate()) } ``` -## Retrieve a memory +## Retrieve a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -501,7 +555,9 @@ Retrieve a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -609,6 +665,8 @@ Retrieve a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -619,13 +677,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -633,7 +697,7 @@ Retrieve a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -649,7 +713,11 @@ Retrieve a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -657,17 +725,24 @@ Retrieve a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -696,13 +771,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -## Update a memory +## Update a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -718,7 +793,9 @@ Update a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `string? content` @@ -726,13 +803,17 @@ Update a memory - `string? path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `BetaManagedAgentsPrecondition precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `IReadOnlyList betas` (header parameter) @@ -840,6 +921,8 @@ Update a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -850,13 +933,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -864,7 +953,7 @@ Update a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -880,7 +969,11 @@ Update a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -888,17 +981,24 @@ Update a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryUpdateParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -927,13 +1027,13 @@ Console.WriteLine(betaManagedAgentsMemory); } ``` -## Delete a memory +## Delete a Memory `BetaManagedAgentsDeletedMemory Beta.MemoryStores.Memories.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1059,6 +1159,8 @@ Delete a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1069,7 +1171,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about how long versions are kept. - `required Type Type` @@ -1080,6 +1186,9 @@ Delete a memory ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryDeleteParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -1114,7 +1223,9 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `required Type Type` @@ -1126,7 +1237,11 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about how long versions are kept. - `required Type Type` @@ -1208,7 +1323,7 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1238,13 +1353,19 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -1252,7 +1373,7 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1268,7 +1389,11 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -1276,29 +1401,39 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -1306,7 +1441,7 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1322,7 +1457,11 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -1330,17 +1469,23 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -1352,7 +1497,7 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1392,7 +1537,9 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -1404,7 +1551,9 @@ Console.WriteLine(betaManagedAgentsDeletedMemory); - `enum BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Basic("basic")` diff --git a/content/en/api/csharp/beta/memory_stores/memories/create.md b/content/en/api/csharp/beta/memory_stores/memories/create.md index 0c9b8dd644..7b6158e148 100644 --- a/content/en/api/csharp/beta/memory_stores/memories/create.md +++ b/content/en/api/csharp/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Create(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -21,17 +21,23 @@ Create a memory - `required string? content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `required string path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -139,6 +145,8 @@ Create a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -149,13 +157,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -163,7 +177,7 @@ Create a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -179,7 +193,11 @@ Create a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -187,17 +205,24 @@ Create a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryCreateParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/memories/delete.md b/content/en/api/csharp/beta/memory_stores/memories/delete.md index b4613406a1..4afbefc878 100644 --- a/content/en/api/csharp/beta/memory_stores/memories/delete.md +++ b/content/en/api/csharp/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `BetaManagedAgentsDeletedMemory Beta.MemoryStores.Memories.Delete(parameters, cancellationToken = default)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -135,6 +135,8 @@ Delete a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=csharp) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about how long versions are kept. - `required Type Type` @@ -156,6 +162,9 @@ Delete a memory ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryDeleteParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/memories/list.md b/content/en/api/csharp/beta/memory_stores/memories/list.md index 0a544ea7e0..218411b24a 100644 --- a/content/en/api/csharp/beta/memory_stores/memories/list.md +++ b/content/en/api/csharp/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/list --- -# List memories +# List Memories `MemoryListPage Beta.MemoryStores.Memories.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -21,27 +21,35 @@ List memories - `int depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `int limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `string page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `string pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `BetaManagedAgentsMemoryView view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `IReadOnlyList betas` (header parameter) @@ -149,6 +157,8 @@ List memories - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,17 +169,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -177,7 +193,7 @@ List memories - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -193,7 +209,11 @@ List memories - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -201,17 +221,23 @@ List memories - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=csharp) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `required Type Type` @@ -222,6 +248,9 @@ List memories ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryListParams parameters = new() { MemoryStoreID = "memory_store_id" }; var page = await client.Beta.MemoryStores.Memories.List(parameters); diff --git a/content/en/api/csharp/beta/memory_stores/memories/retrieve.md b/content/en/api/csharp/beta/memory_stores/memories/retrieve.md index a76caa1a4b..7ad23efd72 100644 --- a/content/en/api/csharp/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/csharp/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,13 +147,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -157,7 +167,7 @@ Retrieve a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -173,7 +183,11 @@ Retrieve a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -181,17 +195,24 @@ Retrieve a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/memories/update.md b/content/en/api/csharp/beta/memory_stores/memories/update.md index 0c467626a6..bb7483a230 100644 --- a/content/en/api/csharp/beta/memory_stores/memories/update.md +++ b/content/en/api/csharp/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `BetaManagedAgentsMemory Beta.MemoryStores.Memories.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -25,7 +25,9 @@ Update a memory - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `string? content` @@ -33,13 +35,17 @@ Update a memory - `string? path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `BetaManagedAgentsPrecondition precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `IReadOnlyList betas` (header parameter) @@ -147,6 +153,8 @@ Update a memory - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,13 +165,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#view-and-edit-memories) to learn more about working with memories. - `required Type Type` - `required string ID` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `required string ContentSha256` @@ -171,7 +185,7 @@ Update a memory - `required int ContentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -187,7 +201,11 @@ Update a memory - `required string MemoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required string Path` @@ -195,17 +213,24 @@ Update a memory - `required DateTimeOffset UpdatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `string? Content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.Memories; + MemoryUpdateParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/memory_versions.md b/content/en/api/csharp/beta/memory_stores/memory_versions.md index e3f99c9a34..4ab5fd751a 100644 --- a/content/en/api/csharp/beta/memory_stores/memory_versions.md +++ b/content/en/api/csharp/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_ve # Memory Versions -## List memory versions +## List Memory Versions `MemoryVersionListPage Beta.MemoryStores.MemoryVersions.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -39,7 +39,9 @@ List memory versions - `int limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -47,7 +49,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `BetaManagedAgentsMemoryVersionOperation operation` (query parameter) @@ -67,7 +69,9 @@ List memory versions - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -175,6 +179,8 @@ List memory versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -185,7 +191,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -201,7 +213,9 @@ List memory versions - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -239,7 +253,11 @@ List memory versions - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -295,7 +313,11 @@ List memory versions - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -306,6 +328,9 @@ List memory versions ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionListParams parameters = new() { MemoryStoreID = "memory_store_id" @@ -349,13 +374,13 @@ await foreach (var item in page.Paginate()) } ``` -## Retrieve a memory version +## Retrieve a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -371,7 +396,9 @@ Retrieve a memory version - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -479,6 +506,8 @@ Retrieve a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -489,7 +518,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -505,7 +540,9 @@ Retrieve a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -543,7 +580,11 @@ Retrieve a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -599,7 +640,11 @@ Retrieve a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -610,6 +655,9 @@ Retrieve a memory version ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -647,13 +695,13 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); } ``` -## Redact a memory version +## Redact a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Redact(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -773,6 +821,8 @@ Redact a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -783,7 +833,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -799,7 +855,9 @@ Redact a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -837,7 +895,11 @@ Redact a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -893,7 +955,11 @@ Redact a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -904,6 +970,9 @@ Redact a memory version ### Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRedactParams parameters = new() { MemoryStoreID = "memory_store_id", @@ -1015,7 +1084,13 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -1031,7 +1106,9 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -1069,7 +1146,11 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -1125,7 +1206,11 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -1137,7 +1222,9 @@ Console.WriteLine(betaManagedAgentsMemoryVersion); - `enum BetaManagedAgentsMemoryVersionOperation` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `Created("created")` diff --git a/content/en/api/csharp/beta/memory_stores/memory_versions/list.md b/content/en/api/csharp/beta/memory_stores/memory_versions/list.md index 02bc81346f..0117bb7061 100644 --- a/content/en/api/csharp/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/csharp/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `MemoryVersionListPage Beta.MemoryStores.MemoryVersions.List(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -37,7 +37,9 @@ List memory versions - `int limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `BetaManagedAgentsMemoryVersionOperation operation` (query parameter) @@ -65,7 +67,9 @@ List memory versions - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -173,6 +177,8 @@ List memory versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -183,7 +189,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -199,7 +211,9 @@ List memory versions - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -237,7 +251,11 @@ List memory versions - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -293,7 +311,11 @@ List memory versions - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -304,6 +326,9 @@ List memory versions ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionListParams parameters = new() { MemoryStoreID = "memory_store_id" diff --git a/content/en/api/csharp/beta/memory_stores/memory_versions/redact.md b/content/en/api/csharp/beta/memory_stores/memory_versions/redact.md index 809f931c2e..3eaabbe8cd 100644 --- a/content/en/api/csharp/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/csharp/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Redact(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -129,6 +129,8 @@ Redact a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,7 +141,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -155,7 +163,9 @@ Redact a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -193,7 +203,11 @@ Redact a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -249,7 +263,11 @@ Redact a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -260,6 +278,9 @@ Redact a memory version ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRedactParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/csharp/beta/memory_stores/memory_versions/retrieve.md index 64b3da4b63..5ddcbce8e3 100644 --- a/content/en/api/csharp/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/csharp/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `BetaManagedAgentsMemoryVersion Beta.MemoryStores.MemoryVersions.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory version - `BetaManagedAgentsMemoryView view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `IReadOnlyList betas` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,7 +147,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#audit-memory-changes) to learn more about memory versions. - `required Type Type` @@ -159,7 +169,9 @@ Retrieve a memory version - `required string MemoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=csharp) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `required string MemoryStoreID` @@ -197,7 +209,11 @@ Retrieve a memory version - `BetaManagedAgentsActor CreatedBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=csharp) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -253,7 +269,11 @@ Retrieve a memory version - `DateTimeOffset? RedactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=csharp). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#redact-a-version) to learn more about redaction. format: date-time @@ -264,6 +284,9 @@ Retrieve a memory version ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores.MemoryVersions; + MemoryVersionRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id", diff --git a/content/en/api/csharp/beta/memory_stores/retrieve.md b/content/en/api/csharp/beta/memory_stores/retrieve.md index 3514b99f82..753c0d4234 100644 --- a/content/en/api/csharp/beta/memory_stores/retrieve.md +++ b/content/en/api/csharp/beta/memory_stores/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Retrieve(parameters, cancellationToken = default)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters @@ -17,7 +17,7 @@ Retrieve a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `IReadOnlyList betas` (header parameter) @@ -125,6 +125,8 @@ Retrieve a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +143,33 @@ Retrieve a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -169,13 +177,18 @@ Retrieve a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreRetrieveParams parameters = new() { MemoryStoreID = "memory_store_id" diff --git a/content/en/api/csharp/beta/memory_stores/update.md b/content/en/api/csharp/beta/memory_stores/update.md index 22eaa6f94c..fcdb0e02e3 100644 --- a/content/en/api/csharp/beta/memory_stores/update.md +++ b/content/en/api/csharp/beta/memory_stores/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/csharp/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `BetaManagedAgentsMemoryStore Beta.MemoryStores.Update(parameters, cancellationToken = default)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters @@ -17,21 +17,27 @@ Update a memory store - `required string memoryStoreID` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `string? description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `IReadOnlyDictionary? metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `string? name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -141,6 +147,8 @@ Update a memory store - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,27 +165,33 @@ Update a memory store - `required string ID` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `required DateTimeOffset? ArchivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=csharp#archive-a-store) to learn more about archiving. format: date-time - `required DateTimeOffset CreatedAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `required string Description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `required IReadOnlyDictionary Metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `required string Name` @@ -185,13 +199,18 @@ Update a memory store - `required DateTimeOffset UpdatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Example ```csharp +using System; +using Anthropic.Models.Beta.MemoryStores; + MemoryStoreUpdateParams parameters = new() { MemoryStoreID = "memory_store_id" diff --git a/content/en/api/csharp/beta/messages.md b/content/en/api/csharp/beta/messages.md index 9de94f2e57..3f9c3da2ae 100644 --- a/content/en/api/csharp/beta/messages.md +++ b/content/en/api/csharp/beta/messages.md @@ -3873,9 +3873,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -6971,6 +6973,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -6979,6 +6985,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -6987,6 +6997,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -6995,6 +7009,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -7003,10 +7021,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -7903,6 +7933,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCreateParams parameters = new() { MaxTokens = 1024, @@ -7913,10 +7947,13 @@ MessageCreateParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessage = await client.Beta.Messages.Create(parameters); @@ -11767,9 +11804,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -11804,6 +11843,10 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCountTokensParams parameters = new() { Messages = @@ -11813,10 +11856,13 @@ MessageCountTokensParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessageTokensCount = await client.Beta.Messages.CountTokens(parameters); @@ -18186,6 +18232,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -18196,6 +18246,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -18206,6 +18260,12 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` ### Beta Cache Miss Reason @@ -18214,6 +18274,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -18222,6 +18286,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -18230,6 +18298,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -18238,6 +18310,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -18246,16 +18322,32 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Beta Cache Miss System Changed - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -18266,6 +18358,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -18276,6 +18372,12 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Beta Citation Char Location @@ -33046,6 +33148,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -33054,6 +33160,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -33062,6 +33172,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -33070,6 +33184,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -33078,10 +33196,22 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Beta Diagnostics Param @@ -34034,8 +34164,22 @@ Console.WriteLine(betaMessageTokensCount); - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34084,7 +34228,11 @@ Console.WriteLine(betaMessageTokensCount); - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -34092,6 +34240,12 @@ Console.WriteLine(betaMessageTokensCount); - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -34284,8 +34438,22 @@ Console.WriteLine(betaMessageTokensCount); - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34334,7 +34502,11 @@ Console.WriteLine(betaMessageTokensCount); - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -34342,6 +34514,12 @@ Console.WriteLine(betaMessageTokensCount); - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -38306,6 +38484,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -38314,6 +38496,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -38322,6 +38508,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -38330,6 +38520,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -38338,10 +38532,22 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -49947,6 +50153,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -49955,6 +50165,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -49963,6 +50177,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -49971,6 +50189,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -49979,10 +50201,22 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -53636,6 +53870,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -53644,6 +53882,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -53652,6 +53894,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -53660,6 +53906,10 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -53668,10 +53918,22 @@ Console.WriteLine(betaMessageTokensCount); - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -78919,8 +79181,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -78969,7 +79245,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -78977,6 +79257,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -79498,9 +79784,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -79609,6 +79897,13 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Beta.Messages; +using Anthropic.Models.Beta.Messages.Batches; +using ModelsMessages = Anthropic.Models.Messages; + BatchCreateParams parameters = new() { Requests = @@ -79624,15 +79919,18 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, - ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + Role = Messages::Role.User, + ClearAt = Messages::ClearAt.NextUserMessage, + OutputConfig = new() + { + Effort = Messages::BetaSystemMessageOutputConfigEffort.Low, + }, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, + Model = ModelsMessages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Compaction = new() { Instructions = "instructions" }, - Container = new BetaContainerParams() + Container = new Messages::BetaContainerParams() { ID = "id", Skills = @@ -79640,7 +79938,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = Type.Anthropic, + Type = Messages::BetaSkillParamsType.Anthropic, Version = "latest", }, ], @@ -79649,7 +79947,7 @@ BatchCreateParams parameters = new() { Edits = [ - new BetaClearToolUses20250919Edit() + new Messages::BetaClearToolUses20250919Edit() { ClearAtLeast = new(0), ClearToolInputs = true, @@ -79658,7 +79956,7 @@ BatchCreateParams parameters = new() "string" ], Keep = new(0), - Trigger = new BetaInputTokensTrigger(1), + Trigger = new Messages::BetaInputTokensTrigger(1), }, ], }, @@ -79667,7 +79965,7 @@ BatchCreateParams parameters = new() PreviousMessageID = "previous_message_id" }, FallbackCreditToken = "x", - Fallbacks = new Default(), + Fallbacks = new Messages::Default(), InferenceGeo = "inference_geo", McpServers = [ @@ -79692,7 +79990,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -79723,13 +80021,13 @@ BatchCreateParams parameters = new() System = new( [ - new BetaTextBlockParam() + new Messages::BetaTextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new BetaCitationCharLocationParam() + new Messages::BetaCitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -79742,21 +80040,21 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new BetaThinkingConfigAdaptive() + Thinking = new Messages::BetaThinkingConfigAdaptive() { BlockBinding = new() { - PrefixMismatchBehavior = BetaThinkingPrefixMismatchBehavior.Error, + PrefixMismatchBehavior = Messages::BetaThinkingPrefixMismatchBehavior.Error, }, - Display = Display.Summarized, + Display = Messages::Display.Summarized, }, - ToolChoice = new BetaToolChoiceAuto() + ToolChoice = new Messages::BetaToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new BetaTool() + new Messages::BetaTool() { InputSchema = new() { @@ -79773,9 +80071,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::BetaToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -79787,7 +80085,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::BetaToolType.Custom, }, ], TopK = 5, @@ -79949,6 +80247,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80056,6 +80356,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Retrieve(parameters); @@ -80222,6 +80525,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80329,6 +80634,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Beta.Messages.Batches.List(parameters); @@ -80494,6 +80802,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80601,6 +80911,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Cancel(parameters); @@ -80757,6 +81070,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80780,6 +81095,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaDeletedMessageBatch = await client.Beta.Messages.Batches.Delete(parameters); @@ -80922,6 +81240,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83992,6 +84312,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -84000,6 +84324,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -84008,6 +84336,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -84016,6 +84348,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -84024,10 +84360,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -84702,6 +85050,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Batches.ResultsStreaming(parameters)) diff --git a/content/en/api/csharp/beta/messages/batches.md b/content/en/api/csharp/beta/messages/batches.md index a58d9c9197..49da3c6ee7 100644 --- a/content/en/api/csharp/beta/messages/batches.md +++ b/content/en/api/csharp/beta/messages/batches.md @@ -3672,8 +3672,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3722,7 +3736,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -3730,6 +3748,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -4251,9 +4275,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -4362,6 +4388,13 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Beta.Messages; +using Anthropic.Models.Beta.Messages.Batches; +using ModelsMessages = Anthropic.Models.Messages; + BatchCreateParams parameters = new() { Requests = @@ -4377,15 +4410,18 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, - ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + Role = Messages::Role.User, + ClearAt = Messages::ClearAt.NextUserMessage, + OutputConfig = new() + { + Effort = Messages::BetaSystemMessageOutputConfigEffort.Low, + }, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, + Model = ModelsMessages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Compaction = new() { Instructions = "instructions" }, - Container = new BetaContainerParams() + Container = new Messages::BetaContainerParams() { ID = "id", Skills = @@ -4393,7 +4429,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = Type.Anthropic, + Type = Messages::BetaSkillParamsType.Anthropic, Version = "latest", }, ], @@ -4402,7 +4438,7 @@ BatchCreateParams parameters = new() { Edits = [ - new BetaClearToolUses20250919Edit() + new Messages::BetaClearToolUses20250919Edit() { ClearAtLeast = new(0), ClearToolInputs = true, @@ -4411,7 +4447,7 @@ BatchCreateParams parameters = new() "string" ], Keep = new(0), - Trigger = new BetaInputTokensTrigger(1), + Trigger = new Messages::BetaInputTokensTrigger(1), }, ], }, @@ -4420,7 +4456,7 @@ BatchCreateParams parameters = new() PreviousMessageID = "previous_message_id" }, FallbackCreditToken = "x", - Fallbacks = new Default(), + Fallbacks = new Messages::Default(), InferenceGeo = "inference_geo", McpServers = [ @@ -4445,7 +4481,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -4476,13 +4512,13 @@ BatchCreateParams parameters = new() System = new( [ - new BetaTextBlockParam() + new Messages::BetaTextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new BetaCitationCharLocationParam() + new Messages::BetaCitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -4495,21 +4531,21 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new BetaThinkingConfigAdaptive() + Thinking = new Messages::BetaThinkingConfigAdaptive() { BlockBinding = new() { - PrefixMismatchBehavior = BetaThinkingPrefixMismatchBehavior.Error, + PrefixMismatchBehavior = Messages::BetaThinkingPrefixMismatchBehavior.Error, }, - Display = Display.Summarized, + Display = Messages::Display.Summarized, }, - ToolChoice = new BetaToolChoiceAuto() + ToolChoice = new Messages::BetaToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new BetaTool() + new Messages::BetaTool() { InputSchema = new() { @@ -4526,9 +4562,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::BetaToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -4540,7 +4576,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::BetaToolType.Custom, }, ], TopK = 5, @@ -4702,6 +4738,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4809,6 +4847,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Retrieve(parameters); @@ -4975,6 +5016,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5082,6 +5125,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Beta.Messages.Batches.List(parameters); @@ -5247,6 +5293,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5354,6 +5402,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Cancel(parameters); @@ -5510,6 +5561,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5533,6 +5586,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaDeletedMessageBatch = await client.Beta.Messages.Batches.Delete(parameters); @@ -5675,6 +5731,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8745,6 +8803,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -8753,6 +8815,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -8761,6 +8827,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -8769,6 +8839,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -8777,10 +8851,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -9455,6 +9541,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Batches.ResultsStreaming(parameters)) @@ -12721,6 +12810,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -12729,6 +12822,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -12737,6 +12834,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -12745,6 +12846,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -12753,10 +12858,22 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -16514,6 +16631,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -16522,6 +16643,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -16530,6 +16655,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -16538,6 +16667,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -16546,10 +16679,22 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -20269,6 +20414,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -20277,6 +20426,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -20285,6 +20438,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -20293,6 +20450,10 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -20301,10 +20462,22 @@ await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Ba - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` diff --git a/content/en/api/csharp/beta/messages/batches/cancel.md b/content/en/api/csharp/beta/messages/batches/cancel.md index 5dc4b3a485..55d3fa28fd 100644 --- a/content/en/api/csharp/beta/messages/batches/cancel.md +++ b/content/en/api/csharp/beta/messages/batches/cancel.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -236,6 +238,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Cancel(parameters); diff --git a/content/en/api/csharp/beta/messages/batches/create.md b/content/en/api/csharp/beta/messages/batches/create.md index cec5ed0220..f9f78d7e22 100644 --- a/content/en/api/csharp/beta/messages/batches/create.md +++ b/content/en/api/csharp/beta/messages/batches/create.md @@ -3670,8 +3670,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `long? MaxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=csharp#naming-your-own-fallback-models) to learn more about fallback entries. + - `BetaOutputConfig? OutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort? Effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3720,7 +3734,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed? Speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `Standard("standard")` @@ -3728,6 +3746,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking? Thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonElement Type = "enabled"` @@ -4249,9 +4273,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -4360,6 +4386,13 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Beta.Messages; +using Anthropic.Models.Beta.Messages.Batches; +using ModelsMessages = Anthropic.Models.Messages; + BatchCreateParams parameters = new() { Requests = @@ -4375,15 +4408,18 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, - ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + Role = Messages::Role.User, + ClearAt = Messages::ClearAt.NextUserMessage, + OutputConfig = new() + { + Effort = Messages::BetaSystemMessageOutputConfigEffort.Low, + }, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, + Model = ModelsMessages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Compaction = new() { Instructions = "instructions" }, - Container = new BetaContainerParams() + Container = new Messages::BetaContainerParams() { ID = "id", Skills = @@ -4391,7 +4427,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = Type.Anthropic, + Type = Messages::BetaSkillParamsType.Anthropic, Version = "latest", }, ], @@ -4400,7 +4436,7 @@ BatchCreateParams parameters = new() { Edits = [ - new BetaClearToolUses20250919Edit() + new Messages::BetaClearToolUses20250919Edit() { ClearAtLeast = new(0), ClearToolInputs = true, @@ -4409,7 +4445,7 @@ BatchCreateParams parameters = new() "string" ], Keep = new(0), - Trigger = new BetaInputTokensTrigger(1), + Trigger = new Messages::BetaInputTokensTrigger(1), }, ], }, @@ -4418,7 +4454,7 @@ BatchCreateParams parameters = new() PreviousMessageID = "previous_message_id" }, FallbackCreditToken = "x", - Fallbacks = new Default(), + Fallbacks = new Messages::Default(), InferenceGeo = "inference_geo", McpServers = [ @@ -4443,7 +4479,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -4474,13 +4510,13 @@ BatchCreateParams parameters = new() System = new( [ - new BetaTextBlockParam() + new Messages::BetaTextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new BetaCitationCharLocationParam() + new Messages::BetaCitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -4493,21 +4529,21 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new BetaThinkingConfigAdaptive() + Thinking = new Messages::BetaThinkingConfigAdaptive() { BlockBinding = new() { - PrefixMismatchBehavior = BetaThinkingPrefixMismatchBehavior.Error, + PrefixMismatchBehavior = Messages::BetaThinkingPrefixMismatchBehavior.Error, }, - Display = Display.Summarized, + Display = Messages::Display.Summarized, }, - ToolChoice = new BetaToolChoiceAuto() + ToolChoice = new Messages::BetaToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new BetaTool() + new Messages::BetaTool() { InputSchema = new() { @@ -4524,9 +4560,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::BetaToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -4538,7 +4574,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::BetaToolType.Custom, }, ], TopK = 5, diff --git a/content/en/api/csharp/beta/messages/batches/delete.md b/content/en/api/csharp/beta/messages/batches/delete.md index 1cbbd181be..572d26a9ea 100644 --- a/content/en/api/csharp/beta/messages/batches/delete.md +++ b/content/en/api/csharp/beta/messages/batches/delete.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -152,6 +154,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaDeletedMessageBatch = await client.Beta.Messages.Batches.Delete(parameters); diff --git a/content/en/api/csharp/beta/messages/batches/list.md b/content/en/api/csharp/beta/messages/batches/list.md index d32513c44d..28d8ab2593 100644 --- a/content/en/api/csharp/beta/messages/batches/list.md +++ b/content/en/api/csharp/beta/messages/batches/list.md @@ -139,6 +139,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -246,6 +248,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Beta.Messages.Batches.List(parameters); diff --git a/content/en/api/csharp/beta/messages/batches/results.md b/content/en/api/csharp/beta/messages/batches/results.md index 3d20c3bbc3..39e47981ed 100644 --- a/content/en/api/csharp/beta/messages/batches/results.md +++ b/content/en/api/csharp/beta/messages/batches/results.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3199,6 +3201,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -3207,6 +3213,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -3215,6 +3225,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -3223,6 +3237,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -3231,10 +3249,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -3909,6 +3939,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var betaMessageBatchIndividualResponse in client.Beta.Messages.Batches.ResultsStreaming(parameters)) diff --git a/content/en/api/csharp/beta/messages/batches/retrieve.md b/content/en/api/csharp/beta/messages/batches/retrieve.md index f19de6588b..7cd11a7199 100644 --- a/content/en/api/csharp/beta/messages/batches/retrieve.md +++ b/content/en/api/csharp/beta/messages/batches/retrieve.md @@ -127,6 +127,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -234,6 +236,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var betaMessageBatch = await client.Beta.Messages.Batches.Retrieve(parameters); diff --git a/content/en/api/csharp/beta/messages/count_tokens.md b/content/en/api/csharp/beta/messages/count_tokens.md index ced3d02e24..c958ab4e4c 100644 --- a/content/en/api/csharp/beta/messages/count_tokens.md +++ b/content/en/api/csharp/beta/messages/count_tokens.md @@ -3736,9 +3736,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -3773,6 +3775,10 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCountTokensParams parameters = new() { Messages = @@ -3782,10 +3788,13 @@ MessageCountTokensParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessageTokensCount = await client.Beta.Messages.CountTokens(parameters); diff --git a/content/en/api/csharp/beta/messages/create.md b/content/en/api/csharp/beta/messages/create.md index eb11934f46..7e5358f2ff 100644 --- a/content/en/api/csharp/beta/messages/create.md +++ b/content/en/api/csharp/beta/messages/create.md @@ -3871,9 +3871,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -6969,6 +6971,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -6977,6 +6983,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -6985,6 +6995,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -6993,6 +7007,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -7001,10 +7019,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -7901,6 +7931,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co ## Example ```csharp +using System; +using Anthropic.Models.Beta.Messages; +using Messages = Anthropic.Models.Messages; + MessageCreateParams parameters = new() { MaxTokens = 1024, @@ -7911,10 +7945,13 @@ MessageCreateParams parameters = new() Content = "Hello, world", Role = Role.User, ClearAt = ClearAt.NextUserMessage, - OutputConfig = new() { Effort = Effort.Low }, + OutputConfig = new() + { + Effort = BetaSystemMessageOutputConfigEffort.Low + }, }, ], - Model = Model.ClaudeOpus5_5, + Model = Messages::Model.ClaudeOpus5_5, }; var betaMessage = await client.Beta.Messages.Create(parameters); diff --git a/content/en/api/csharp/beta/models.md b/content/en/api/csharp/beta/models.md index fe88b6f824..d59a1d2cbf 100644 --- a/content/en/api/csharp/beta/models.md +++ b/content/en/api/csharp/beta/models.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -374,6 +376,9 @@ The Models API response can be used to determine which models are available for ### Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelListParams parameters = new(); var page = await client.Beta.Models.List(parameters); @@ -616,6 +621,8 @@ The Models API response can be used to determine information about a specific mo - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -837,6 +844,9 @@ The Models API response can be used to determine information about a specific mo ### Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelRetrieveParams parameters = new() { ModelID = "model_id" }; var betaModelInfo = await client.Beta.Models.Retrieve(parameters); diff --git a/content/en/api/csharp/beta/models/list.md b/content/en/api/csharp/beta/models/list.md index 1a2dbd5983..9f95d07484 100644 --- a/content/en/api/csharp/beta/models/list.md +++ b/content/en/api/csharp/beta/models/list.md @@ -151,6 +151,8 @@ The Models API response can be used to determine which models are available for - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -372,6 +374,9 @@ The Models API response can be used to determine which models are available for ## Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelListParams parameters = new(); var page = await client.Beta.Models.List(parameters); diff --git a/content/en/api/csharp/beta/models/retrieve.md b/content/en/api/csharp/beta/models/retrieve.md index 7ff8584e17..b54afc23cf 100644 --- a/content/en/api/csharp/beta/models/retrieve.md +++ b/content/en/api/csharp/beta/models/retrieve.md @@ -127,6 +127,8 @@ The Models API response can be used to determine information about a specific mo - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -348,6 +350,9 @@ The Models API response can be used to determine information about a specific mo ## Example ```csharp +using System; +using Anthropic.Models.Beta.Models; + ModelRetrieveParams parameters = new() { ModelID = "model_id" }; var betaModelInfo = await client.Beta.Models.Retrieve(parameters); diff --git a/content/en/api/csharp/beta/sessions.md b/content/en/api/csharp/beta/sessions.md index 4ee2dfa3e5..76f44b382a 100644 --- a/content/en/api/csharp/beta/sessions.md +++ b/content/en/api/csharp/beta/sessions.md @@ -1301,6 +1301,8 @@ Create Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2450,6 +2452,9 @@ Create Session ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionCreateParams parameters = new() { Agent = "agent_011CZkYpogX7uDKUyvBTophP", @@ -2863,6 +2868,8 @@ List Sessions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4012,6 +4019,9 @@ List Sessions ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionListParams parameters = new(); var page = await client.Beta.Sessions.List(parameters); @@ -4347,6 +4357,8 @@ Get Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5496,6 +5508,9 @@ Get Session ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -5848,6 +5863,8 @@ Update Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6997,6 +7014,9 @@ Update Session ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -7327,6 +7347,8 @@ Delete Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7346,6 +7368,9 @@ Delete Session ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -7485,6 +7510,8 @@ Archive Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8634,6 +8661,9 @@ Archive Session ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -19322,6 +19352,8 @@ List Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22255,6 +22287,9 @@ List Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -22781,6 +22816,8 @@ Send Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23236,6 +23273,9 @@ Send Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventSendParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -23248,10 +23288,10 @@ EventSendParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], }; @@ -23409,6 +23449,8 @@ Stream Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26392,6 +26434,9 @@ Stream Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -26557,6 +26602,8 @@ Add Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26590,11 +26637,14 @@ Add Session Resource #### Example ```csharp -ResourceAddParams parameters = new() +using System; +using Resources = Anthropic.Models.Beta.Sessions.Resources; + +Resources::ResourceAddParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", FileID = "file_011CNha8iCJcU1wXNR6q4V8w", - Type = Type.File, + Type = Resources::Type.File, }; var betaManagedAgentsFileResource = await client.Beta.Sessions.Resources.Add(parameters); @@ -26745,6 +26795,8 @@ List Session Resources - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26860,6 +26912,9 @@ List Session Resources #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -27024,6 +27079,8 @@ Get Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27141,6 +27198,9 @@ Get Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -27297,6 +27357,8 @@ Update Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27414,6 +27476,9 @@ Update Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -27565,6 +27630,8 @@ Delete Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27584,6 +27651,9 @@ Delete Session Resource #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -27750,6 +27820,8 @@ List Session Threads - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28595,6 +28667,9 @@ List Session Threads #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -28827,6 +28902,8 @@ Get Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29672,6 +29749,9 @@ Get Session Thread #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -29898,6 +29978,8 @@ Archive Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30743,6 +30825,9 @@ Archive Session Thread #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -30977,6 +31062,8 @@ List Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33910,6 +33997,9 @@ List Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -34085,6 +34175,8 @@ Stream Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -37068,6 +37160,9 @@ Stream Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/archive.md b/content/en/api/csharp/beta/sessions/archive.md index a12ea29db6..f267020a0a 100644 --- a/content/en/api/csharp/beta/sessions/archive.md +++ b/content/en/api/csharp/beta/sessions/archive.md @@ -123,6 +123,8 @@ Archive Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1272,6 +1274,9 @@ Archive Session ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/create.md b/content/en/api/csharp/beta/sessions/create.md index ee9f313bb7..f83c4f42cf 100644 --- a/content/en/api/csharp/beta/sessions/create.md +++ b/content/en/api/csharp/beta/sessions/create.md @@ -1299,6 +1299,8 @@ Create Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2448,6 +2450,9 @@ Create Session ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionCreateParams parameters = new() { Agent = "agent_011CZkYpogX7uDKUyvBTophP", diff --git a/content/en/api/csharp/beta/sessions/delete.md b/content/en/api/csharp/beta/sessions/delete.md index 483989109a..138ec0a54f 100644 --- a/content/en/api/csharp/beta/sessions/delete.md +++ b/content/en/api/csharp/beta/sessions/delete.md @@ -123,6 +123,8 @@ Delete Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -142,6 +144,9 @@ Delete Session ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/events.md b/content/en/api/csharp/beta/sessions/events.md index 3a23040749..703d0d0d62 100644 --- a/content/en/api/csharp/beta/sessions/events.md +++ b/content/en/api/csharp/beta/sessions/events.md @@ -251,6 +251,8 @@ List Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3184,6 +3186,9 @@ List Events ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -3710,6 +3715,8 @@ Send Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4165,6 +4172,9 @@ Send Events ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventSendParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -4177,10 +4187,10 @@ EventSendParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], }; @@ -4338,6 +4348,8 @@ Stream Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7321,6 +7333,9 @@ Stream Events ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/events/list.md b/content/en/api/csharp/beta/sessions/events/list.md index 0b6655c373..03f5e8bfde 100644 --- a/content/en/api/csharp/beta/sessions/events/list.md +++ b/content/en/api/csharp/beta/sessions/events/list.md @@ -249,6 +249,8 @@ List Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3182,6 +3184,9 @@ List Events ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/events/send.md b/content/en/api/csharp/beta/sessions/events/send.md index 65d90a2c5e..9238c9ed36 100644 --- a/content/en/api/csharp/beta/sessions/events/send.md +++ b/content/en/api/csharp/beta/sessions/events/send.md @@ -485,6 +485,8 @@ Send Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -940,6 +942,9 @@ Send Events ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventSendParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -952,10 +957,10 @@ EventSendParams parameters = new() new BetaManagedAgentsTextBlock() { Text = "Where is my order #1234?", - Type = Type.Text, + Type = BetaManagedAgentsTextBlockType.Text, }, ], - Type = Type.UserMessage, + Type = BetaManagedAgentsUserMessageEventParamsType.UserMessage, }, ], }; diff --git a/content/en/api/csharp/beta/sessions/events/stream.md b/content/en/api/csharp/beta/sessions/events/stream.md index da8eb90844..132459abff 100644 --- a/content/en/api/csharp/beta/sessions/events/stream.md +++ b/content/en/api/csharp/beta/sessions/events/stream.md @@ -131,6 +131,8 @@ Stream Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3114,6 +3116,9 @@ Stream Events ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/list.md b/content/en/api/csharp/beta/sessions/list.md index 0b79b46bf3..5571c6e7e3 100644 --- a/content/en/api/csharp/beta/sessions/list.md +++ b/content/en/api/csharp/beta/sessions/list.md @@ -205,6 +205,8 @@ List Sessions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1354,6 +1356,9 @@ List Sessions ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionListParams parameters = new(); var page = await client.Beta.Sessions.List(parameters); diff --git a/content/en/api/csharp/beta/sessions/resources.md b/content/en/api/csharp/beta/sessions/resources.md index 6dfd1dc309..8d6ab91300 100644 --- a/content/en/api/csharp/beta/sessions/resources.md +++ b/content/en/api/csharp/beta/sessions/resources.md @@ -141,6 +141,8 @@ Add Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -174,11 +176,14 @@ Add Session Resource ### Example ```csharp -ResourceAddParams parameters = new() +using System; +using Resources = Anthropic.Models.Beta.Sessions.Resources; + +Resources::ResourceAddParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", FileID = "file_011CNha8iCJcU1wXNR6q4V8w", - Type = Type.File, + Type = Resources::Type.File, }; var betaManagedAgentsFileResource = await client.Beta.Sessions.Resources.Add(parameters); @@ -329,6 +334,8 @@ List Session Resources - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -444,6 +451,9 @@ List Session Resources ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -608,6 +618,8 @@ Get Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -725,6 +737,9 @@ Get Session Resource ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -881,6 +896,8 @@ Update Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -998,6 +1015,9 @@ Update Session Resource ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -1149,6 +1169,8 @@ Delete Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1168,6 +1190,9 @@ Delete Session Resource ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/resources/add.md b/content/en/api/csharp/beta/sessions/resources/add.md index f306b1512c..68caa7ded9 100644 --- a/content/en/api/csharp/beta/sessions/resources/add.md +++ b/content/en/api/csharp/beta/sessions/resources/add.md @@ -139,6 +139,8 @@ Add Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -172,11 +174,14 @@ Add Session Resource ## Example ```csharp -ResourceAddParams parameters = new() +using System; +using Resources = Anthropic.Models.Beta.Sessions.Resources; + +Resources::ResourceAddParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", FileID = "file_011CNha8iCJcU1wXNR6q4V8w", - Type = Type.File, + Type = Resources::Type.File, }; var betaManagedAgentsFileResource = await client.Beta.Sessions.Resources.Add(parameters); diff --git a/content/en/api/csharp/beta/sessions/resources/delete.md b/content/en/api/csharp/beta/sessions/resources/delete.md index 83c29179d0..eeb0022aad 100644 --- a/content/en/api/csharp/beta/sessions/resources/delete.md +++ b/content/en/api/csharp/beta/sessions/resources/delete.md @@ -125,6 +125,8 @@ Delete Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -144,6 +146,9 @@ Delete Session Resource ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceDeleteParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/resources/list.md b/content/en/api/csharp/beta/sessions/resources/list.md index 6a287de4ac..d4204405ce 100644 --- a/content/en/api/csharp/beta/sessions/resources/list.md +++ b/content/en/api/csharp/beta/sessions/resources/list.md @@ -133,6 +133,8 @@ List Session Resources - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -248,6 +250,9 @@ List Session Resources ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/resources/retrieve.md b/content/en/api/csharp/beta/sessions/resources/retrieve.md index c1cbe52be6..aad2ec64d7 100644 --- a/content/en/api/csharp/beta/sessions/resources/retrieve.md +++ b/content/en/api/csharp/beta/sessions/resources/retrieve.md @@ -125,6 +125,8 @@ Get Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -242,6 +244,9 @@ Get Session Resource ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/resources/update.md b/content/en/api/csharp/beta/sessions/resources/update.md index 4760b5c758..26fe902f94 100644 --- a/content/en/api/csharp/beta/sessions/resources/update.md +++ b/content/en/api/csharp/beta/sessions/resources/update.md @@ -131,6 +131,8 @@ Update Session Resource - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -248,6 +250,9 @@ Update Session Resource ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Resources; + ResourceUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/retrieve.md b/content/en/api/csharp/beta/sessions/retrieve.md index 89b2adfdd7..7f8601e643 100644 --- a/content/en/api/csharp/beta/sessions/retrieve.md +++ b/content/en/api/csharp/beta/sessions/retrieve.md @@ -123,6 +123,8 @@ Get Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1272,6 +1274,9 @@ Get Session ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/threads.md b/content/en/api/csharp/beta/sessions/threads.md index f87ecd63dd..8a2cbb81e0 100644 --- a/content/en/api/csharp/beta/sessions/threads.md +++ b/content/en/api/csharp/beta/sessions/threads.md @@ -149,6 +149,8 @@ List Session Threads - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -994,6 +996,9 @@ List Session Threads ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" @@ -1226,6 +1231,8 @@ Get Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2071,6 +2078,9 @@ Get Session Thread ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -2297,6 +2307,8 @@ Archive Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3142,6 +3154,9 @@ Archive Session Thread ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -7920,6 +7935,8 @@ List Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -10853,6 +10870,9 @@ List Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -11028,6 +11048,8 @@ Stream Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -14011,6 +14033,9 @@ Stream Session Thread Events #### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/threads/archive.md b/content/en/api/csharp/beta/sessions/threads/archive.md index 2219cc391a..87051f0ed7 100644 --- a/content/en/api/csharp/beta/sessions/threads/archive.md +++ b/content/en/api/csharp/beta/sessions/threads/archive.md @@ -125,6 +125,8 @@ Archive Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -970,6 +972,9 @@ Archive Session Thread ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadArchiveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/threads/events.md b/content/en/api/csharp/beta/sessions/threads/events.md index a6ad9ee35a..ff418cdcda 100644 --- a/content/en/api/csharp/beta/sessions/threads/events.md +++ b/content/en/api/csharp/beta/sessions/threads/events.md @@ -133,6 +133,8 @@ List Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3066,6 +3068,9 @@ List Session Thread Events ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", @@ -3241,6 +3246,8 @@ Stream Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6224,6 +6231,9 @@ Stream Session Thread Events ### Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/threads/events/list.md b/content/en/api/csharp/beta/sessions/threads/events/list.md index 5359afb8ae..3bac11cb8c 100644 --- a/content/en/api/csharp/beta/sessions/threads/events/list.md +++ b/content/en/api/csharp/beta/sessions/threads/events/list.md @@ -131,6 +131,8 @@ List Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3064,6 +3066,9 @@ List Session Thread Events ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/threads/events/stream.md b/content/en/api/csharp/beta/sessions/threads/events/stream.md index 8768f89047..43f7a5d38f 100644 --- a/content/en/api/csharp/beta/sessions/threads/events/stream.md +++ b/content/en/api/csharp/beta/sessions/threads/events/stream.md @@ -133,6 +133,8 @@ Stream Session Thread Events - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3116,6 +3118,9 @@ Stream Session Thread Events ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads.Events; + EventStreamParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/threads/list.md b/content/en/api/csharp/beta/sessions/threads/list.md index 2e22890733..1ab41dfe1d 100644 --- a/content/en/api/csharp/beta/sessions/threads/list.md +++ b/content/en/api/csharp/beta/sessions/threads/list.md @@ -147,6 +147,8 @@ List Session Threads - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -992,6 +994,9 @@ List Session Threads ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadListParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/sessions/threads/retrieve.md b/content/en/api/csharp/beta/sessions/threads/retrieve.md index c60b46f0ed..510f73c261 100644 --- a/content/en/api/csharp/beta/sessions/threads/retrieve.md +++ b/content/en/api/csharp/beta/sessions/threads/retrieve.md @@ -125,6 +125,8 @@ Get Session Thread - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -970,6 +972,9 @@ Get Session Thread ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions.Threads; + ThreadRetrieveParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7", diff --git a/content/en/api/csharp/beta/sessions/update.md b/content/en/api/csharp/beta/sessions/update.md index a653722b72..6562a4b6be 100644 --- a/content/en/api/csharp/beta/sessions/update.md +++ b/content/en/api/csharp/beta/sessions/update.md @@ -145,6 +145,8 @@ Update Session - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1294,6 +1296,9 @@ Update Session ## Example ```csharp +using System; +using Anthropic.Models.Beta.Sessions; + SessionUpdateParams parameters = new() { SessionID = "sesn_011CZkZAtmR3yMPDzynEDxu7" diff --git a/content/en/api/csharp/beta/skills.md b/content/en/api/csharp/beta/skills.md index 850b096a5a..649615eaf9 100644 --- a/content/en/api/csharp/beta/skills.md +++ b/content/en/api/csharp/beta/skills.md @@ -135,6 +135,8 @@ Create Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -212,6 +214,10 @@ Create Skill ### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills; + SkillCreateParams parameters = new() { Files = @@ -382,6 +388,8 @@ List Skills - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -459,6 +467,9 @@ List Skills ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillListParams parameters = new(); var page = await client.Beta.Skills.List(parameters); @@ -613,6 +624,8 @@ Get Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -690,6 +703,9 @@ Get Skill ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillRetrieveParams parameters = new() { SkillID = "skill_id" }; var betaSkill = await client.Beta.Skills.Retrieve(parameters); @@ -837,6 +853,8 @@ Delete Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -862,6 +880,9 @@ Delete Skill ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillDeleteParams parameters = new() { SkillID = "skill_id" }; var betaDeletedSkill = await client.Beta.Skills.Delete(parameters); @@ -1119,6 +1140,8 @@ Create Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1168,6 +1191,10 @@ Create Skill Version #### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills.Versions; + VersionCreateParams parameters = new() { SkillID = "skill_id", @@ -1331,6 +1358,8 @@ List Skill Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1380,6 +1409,9 @@ List Skill Versions #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionListParams parameters = new() { SkillID = "skill_id" }; var page = await client.Beta.Skills.Versions.List(parameters); @@ -1537,6 +1569,8 @@ Download a skill version's content as a zip archive. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1546,6 +1580,9 @@ Download a skill version's content as a zip archive. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDownloadParams parameters = new() { SkillID = "skill_id", @@ -1687,6 +1724,8 @@ Get Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1736,6 +1775,9 @@ Get Skill Version #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionRetrieveParams parameters = new() { SkillID = "skill_id", @@ -1890,6 +1932,8 @@ Delete Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1914,6 +1958,9 @@ Delete Skill Version #### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDeleteParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/skills/create.md b/content/en/api/csharp/beta/skills/create.md index fdd8154395..227bb0c9f4 100644 --- a/content/en/api/csharp/beta/skills/create.md +++ b/content/en/api/csharp/beta/skills/create.md @@ -133,6 +133,8 @@ Create Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -210,6 +212,10 @@ Create Skill ## Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills; + SkillCreateParams parameters = new() { Files = diff --git a/content/en/api/csharp/beta/skills/delete.md b/content/en/api/csharp/beta/skills/delete.md index ef5cc2edaa..7715d040df 100644 --- a/content/en/api/csharp/beta/skills/delete.md +++ b/content/en/api/csharp/beta/skills/delete.md @@ -127,6 +127,8 @@ Delete Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -152,6 +154,9 @@ Delete Skill ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillDeleteParams parameters = new() { SkillID = "skill_id" }; var betaDeletedSkill = await client.Beta.Skills.Delete(parameters); diff --git a/content/en/api/csharp/beta/skills/list.md b/content/en/api/csharp/beta/skills/list.md index 6f5abb939a..a1458d134e 100644 --- a/content/en/api/csharp/beta/skills/list.md +++ b/content/en/api/csharp/beta/skills/list.md @@ -144,6 +144,8 @@ List Skills - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -221,6 +223,9 @@ List Skills ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillListParams parameters = new(); var page = await client.Beta.Skills.List(parameters); diff --git a/content/en/api/csharp/beta/skills/retrieve.md b/content/en/api/csharp/beta/skills/retrieve.md index d774aea0a6..88d66d9914 100644 --- a/content/en/api/csharp/beta/skills/retrieve.md +++ b/content/en/api/csharp/beta/skills/retrieve.md @@ -127,6 +127,8 @@ Get Skill - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -204,6 +206,9 @@ Get Skill ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills; + SkillRetrieveParams parameters = new() { SkillID = "skill_id" }; var betaSkill = await client.Beta.Skills.Retrieve(parameters); diff --git a/content/en/api/csharp/beta/skills/versions.md b/content/en/api/csharp/beta/skills/versions.md index 5e3b37386a..f9850a86c1 100644 --- a/content/en/api/csharp/beta/skills/versions.md +++ b/content/en/api/csharp/beta/skills/versions.md @@ -135,6 +135,8 @@ Create Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -184,6 +186,10 @@ Create Skill Version ### Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills.Versions; + VersionCreateParams parameters = new() { SkillID = "skill_id", @@ -347,6 +353,8 @@ List Skill Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -396,6 +404,9 @@ List Skill Versions ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionListParams parameters = new() { SkillID = "skill_id" }; var page = await client.Beta.Skills.Versions.List(parameters); @@ -553,6 +564,8 @@ Download a skill version's content as a zip archive. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -562,6 +575,9 @@ Download a skill version's content as a zip archive. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDownloadParams parameters = new() { SkillID = "skill_id", @@ -703,6 +719,8 @@ Get Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -752,6 +770,9 @@ Get Skill Version ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionRetrieveParams parameters = new() { SkillID = "skill_id", @@ -906,6 +927,8 @@ Delete Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -930,6 +953,9 @@ Delete Skill Version ### Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDeleteParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/skills/versions/create.md b/content/en/api/csharp/beta/skills/versions/create.md index 5a65769972..d383c02ba5 100644 --- a/content/en/api/csharp/beta/skills/versions/create.md +++ b/content/en/api/csharp/beta/skills/versions/create.md @@ -133,6 +133,8 @@ Create Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -182,6 +184,10 @@ Create Skill Version ## Example ```csharp +using System; +using System.Text; +using Anthropic.Models.Beta.Skills.Versions; + VersionCreateParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/skills/versions/delete.md b/content/en/api/csharp/beta/skills/versions/delete.md index d773dc54d1..86f7f3316e 100644 --- a/content/en/api/csharp/beta/skills/versions/delete.md +++ b/content/en/api/csharp/beta/skills/versions/delete.md @@ -133,6 +133,8 @@ Delete Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,9 @@ Delete Skill Version ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDeleteParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/skills/versions/download.md b/content/en/api/csharp/beta/skills/versions/download.md index 36f2d0504d..abb56d73ca 100644 --- a/content/en/api/csharp/beta/skills/versions/download.md +++ b/content/en/api/csharp/beta/skills/versions/download.md @@ -133,6 +133,8 @@ Download a skill version's content as a zip archive. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -142,6 +144,9 @@ Download a skill version's content as a zip archive. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionDownloadParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/skills/versions/list.md b/content/en/api/csharp/beta/skills/versions/list.md index 1ad64039b9..e9323124f4 100644 --- a/content/en/api/csharp/beta/skills/versions/list.md +++ b/content/en/api/csharp/beta/skills/versions/list.md @@ -139,6 +139,8 @@ List Skill Versions - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -188,6 +190,9 @@ List Skill Versions ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionListParams parameters = new() { SkillID = "skill_id" }; var page = await client.Beta.Skills.Versions.List(parameters); diff --git a/content/en/api/csharp/beta/skills/versions/retrieve.md b/content/en/api/csharp/beta/skills/versions/retrieve.md index 28e0321e65..66c6c5471d 100644 --- a/content/en/api/csharp/beta/skills/versions/retrieve.md +++ b/content/en/api/csharp/beta/skills/versions/retrieve.md @@ -133,6 +133,8 @@ Get Skill Version - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -182,6 +184,9 @@ Get Skill Version ## Example ```csharp +using System; +using Anthropic.Models.Beta.Skills.Versions; + VersionRetrieveParams parameters = new() { SkillID = "skill_id", diff --git a/content/en/api/csharp/beta/tunnels.md b/content/en/api/csharp/beta/tunnels.md index 7f42983b83..e3b8e1e8d7 100644 --- a/content/en/api/csharp/beta/tunnels.md +++ b/content/en/api/csharp/beta/tunnels.md @@ -131,6 +131,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -172,6 +174,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelCreateParams parameters = new(); var betaTunnel = await client.Beta.Tunnels.Create(parameters); @@ -316,6 +321,8 @@ Fetches a tunnel by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -357,6 +364,9 @@ Fetches a tunnel by ID. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRetrieveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Retrieve(parameters); @@ -511,6 +521,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -552,6 +564,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelListParams parameters = new(); var page = await client.Beta.Tunnels.List(parameters); @@ -703,6 +718,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -744,6 +761,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelArchiveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Archive(parameters); @@ -888,6 +908,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -913,6 +935,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRevealTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RevealToken(parameters); @@ -1060,6 +1085,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1085,6 +1112,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRotateTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RotateToken(parameters); @@ -1284,6 +1314,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1331,6 +1363,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateCreateParams parameters = new() { TunnelID = "tunnel_id", @@ -1484,6 +1519,8 @@ Fetches a tunnel certificate by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1531,6 +1568,9 @@ Fetches a tunnel certificate by ID. #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateRetrieveParams parameters = new() { TunnelID = "tunnel_id", @@ -1694,6 +1734,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1741,6 +1783,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateListParams parameters = new() { TunnelID = "tunnel_id" }; var page = await client.Beta.Tunnels.Certificates.List(parameters); @@ -1897,6 +1942,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1944,6 +1991,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the #### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateArchiveParams parameters = new() { TunnelID = "tunnel_id", diff --git a/content/en/api/csharp/beta/tunnels/archive.md b/content/en/api/csharp/beta/tunnels/archive.md index 9f2bdb5fde..70ab0ecd09 100644 --- a/content/en/api/csharp/beta/tunnels/archive.md +++ b/content/en/api/csharp/beta/tunnels/archive.md @@ -127,6 +127,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -168,6 +170,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelArchiveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Archive(parameters); diff --git a/content/en/api/csharp/beta/tunnels/certificates.md b/content/en/api/csharp/beta/tunnels/certificates.md index 0a42f100e5..d1c2c7e58d 100644 --- a/content/en/api/csharp/beta/tunnels/certificates.md +++ b/content/en/api/csharp/beta/tunnels/certificates.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -182,6 +184,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateCreateParams parameters = new() { TunnelID = "tunnel_id", @@ -335,6 +340,8 @@ Fetches a tunnel certificate by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -382,6 +389,9 @@ Fetches a tunnel certificate by ID. ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateRetrieveParams parameters = new() { TunnelID = "tunnel_id", @@ -545,6 +555,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -592,6 +604,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateListParams parameters = new() { TunnelID = "tunnel_id" }; var page = await client.Beta.Tunnels.Certificates.List(parameters); @@ -748,6 +763,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -795,6 +812,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the ### Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateArchiveParams parameters = new() { TunnelID = "tunnel_id", diff --git a/content/en/api/csharp/beta/tunnels/certificates/archive.md b/content/en/api/csharp/beta/tunnels/certificates/archive.md index 32b8cd643b..3c21d329d7 100644 --- a/content/en/api/csharp/beta/tunnels/certificates/archive.md +++ b/content/en/api/csharp/beta/tunnels/certificates/archive.md @@ -131,6 +131,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -178,6 +180,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateArchiveParams parameters = new() { TunnelID = "tunnel_id", diff --git a/content/en/api/csharp/beta/tunnels/certificates/create.md b/content/en/api/csharp/beta/tunnels/certificates/create.md index dfdad1100c..6c3aef3d20 100644 --- a/content/en/api/csharp/beta/tunnels/certificates/create.md +++ b/content/en/api/csharp/beta/tunnels/certificates/create.md @@ -133,6 +133,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -180,6 +182,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateCreateParams parameters = new() { TunnelID = "tunnel_id", diff --git a/content/en/api/csharp/beta/tunnels/certificates/list.md b/content/en/api/csharp/beta/tunnels/certificates/list.md index ad990bb17d..2be5dfc81c 100644 --- a/content/en/api/csharp/beta/tunnels/certificates/list.md +++ b/content/en/api/csharp/beta/tunnels/certificates/list.md @@ -141,6 +141,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -188,6 +190,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateListParams parameters = new() { TunnelID = "tunnel_id" }; var page = await client.Beta.Tunnels.Certificates.List(parameters); diff --git a/content/en/api/csharp/beta/tunnels/certificates/retrieve.md b/content/en/api/csharp/beta/tunnels/certificates/retrieve.md index d910ba029a..2b0f3b7cf2 100644 --- a/content/en/api/csharp/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/csharp/beta/tunnels/certificates/retrieve.md @@ -131,6 +131,8 @@ Fetches a tunnel certificate by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -178,6 +180,9 @@ Fetches a tunnel certificate by ID. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels.Certificates; + CertificateRetrieveParams parameters = new() { TunnelID = "tunnel_id", diff --git a/content/en/api/csharp/beta/tunnels/create.md b/content/en/api/csharp/beta/tunnels/create.md index 4fb184cb8d..5c80639771 100644 --- a/content/en/api/csharp/beta/tunnels/create.md +++ b/content/en/api/csharp/beta/tunnels/create.md @@ -129,6 +129,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -170,6 +172,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelCreateParams parameters = new(); var betaTunnel = await client.Beta.Tunnels.Create(parameters); diff --git a/content/en/api/csharp/beta/tunnels/list.md b/content/en/api/csharp/beta/tunnels/list.md index 982d07c426..c0366d6bd1 100644 --- a/content/en/api/csharp/beta/tunnels/list.md +++ b/content/en/api/csharp/beta/tunnels/list.md @@ -137,6 +137,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -178,6 +180,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelListParams parameters = new(); var page = await client.Beta.Tunnels.List(parameters); diff --git a/content/en/api/csharp/beta/tunnels/retrieve.md b/content/en/api/csharp/beta/tunnels/retrieve.md index 2da2a8aa23..5b932f9211 100644 --- a/content/en/api/csharp/beta/tunnels/retrieve.md +++ b/content/en/api/csharp/beta/tunnels/retrieve.md @@ -127,6 +127,8 @@ Fetches a tunnel by ID. - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -168,6 +170,9 @@ Fetches a tunnel by ID. ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRetrieveParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnel = await client.Beta.Tunnels.Retrieve(parameters); diff --git a/content/en/api/csharp/beta/tunnels/reveal_token.md b/content/en/api/csharp/beta/tunnels/reveal_token.md index 961a2e4477..f06f0af70b 100644 --- a/content/en/api/csharp/beta/tunnels/reveal_token.md +++ b/content/en/api/csharp/beta/tunnels/reveal_token.md @@ -127,6 +127,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -152,6 +154,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRevealTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RevealToken(parameters); diff --git a/content/en/api/csharp/beta/tunnels/rotate_token.md b/content/en/api/csharp/beta/tunnels/rotate_token.md index e1116c6ab6..22e07e131d 100644 --- a/content/en/api/csharp/beta/tunnels/rotate_token.md +++ b/content/en/api/csharp/beta/tunnels/rotate_token.md @@ -133,6 +133,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -158,6 +160,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n ## Example ```csharp +using System; +using Anthropic.Models.Beta.Tunnels; + TunnelRotateTokenParams parameters = new() { TunnelID = "tunnel_id" }; var betaTunnelToken = await client.Beta.Tunnels.RotateToken(parameters); diff --git a/content/en/api/csharp/beta/user_profiles.md b/content/en/api/csharp/beta/user_profiles.md index d371b350aa..5149b80bca 100644 --- a/content/en/api/csharp/beta/user_profiles.md +++ b/content/en/api/csharp/beta/user_profiles.md @@ -31,17 +31,17 @@ Create User Profile - `string? externalID` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `DateTimeOffset externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -57,7 +57,7 @@ Create User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -161,6 +161,8 @@ Create User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -193,6 +195,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -209,13 +215,13 @@ Create User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -227,11 +233,11 @@ Create User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -285,17 +291,16 @@ Create User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateParams parameters = new(); var betaUserProfile = await client.Beta.UserProfiles.Create(parameters); @@ -310,6 +315,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -321,15 +327,14 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -383,7 +388,7 @@ List User Profiles - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -487,6 +492,8 @@ List User Profiles - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -519,6 +526,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -535,13 +546,13 @@ List User Profiles - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -553,11 +564,11 @@ List User Profiles - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -611,17 +622,16 @@ List User Profiles - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileListParams parameters = new(); var page = await client.Beta.UserProfiles.List(parameters); @@ -640,6 +650,7 @@ await foreach (var item in page.Paginate()) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -651,15 +662,14 @@ await foreach (var item in page.Paginate()) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -684,7 +694,7 @@ Get User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -788,6 +798,8 @@ Get User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -820,6 +832,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -836,13 +852,13 @@ Get User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -854,11 +870,11 @@ Get User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -912,17 +928,16 @@ Get User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileRetrieveParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -940,6 +955,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -951,15 +967,14 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -993,17 +1008,17 @@ Update User Profile - `string? externalID` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `DateTimeOffset externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1019,7 +1034,7 @@ Update User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -1123,6 +1138,8 @@ Update User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1155,6 +1172,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1171,13 +1192,13 @@ Update User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -1189,11 +1210,11 @@ Update User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -1247,17 +1268,16 @@ Update User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileUpdateParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -1275,6 +1295,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1286,15 +1307,181 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`BetaDeletedUserProfile Beta.UserProfiles.Delete(parameters, cancellationToken = default)` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `UserProfileDeleteParams parameters` + + - `required string userProfileID` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + + - `IReadOnlyList betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + + - `string workspaceID` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `class BetaDeletedUserProfile` + + - `JsonElement Type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `required string ID` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + +UserProfileDeleteParams parameters = new() +{ + UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" +}; + +var betaDeletedUserProfile = await client.Beta.UserProfiles.Delete(parameters); + +Console.WriteLine(betaDeletedUserProfile); +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1316,7 +1503,7 @@ Create Enrollment URL - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -1420,6 +1607,8 @@ Create Enrollment URL - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1430,7 +1619,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `required Type Type` @@ -1449,6 +1638,9 @@ Create Enrollment URL ### Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateEnrollmentUrlParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -1471,6 +1663,18 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); ## Domain types +### Beta Deleted User Profile + +- `class BetaDeletedUserProfile` + + - `JsonElement Type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `required string ID` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `class BetaUserProfile` @@ -1497,6 +1701,10 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1513,13 +1721,13 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -1531,11 +1739,11 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -1589,19 +1797,15 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `required Type Type` @@ -1748,3 +1952,186 @@ Console.WriteLine(betaUserProfileEnrollmentUrl); - `Pending("pending")` - `Rejected("rejected")` + +## User Profiles › Action URLs + +### Create Action URL + +`BetaUserProfileActionUrl Beta.UserProfiles.ActionUrls.Create(parameters, cancellationToken = default)` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `ActionUrlCreateParams parameters` + + - `required string userProfileID` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + + - `required BetaUserProfileEnrollEndUserAction action` + + The action that the person who opens the URL takes. + + - `IReadOnlyList betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MessageBatches2024_09_24("message-batches-2024-09-24")` + + - `PromptCaching2024_07_31("prompt-caching-2024-07-31")` + + - `ComputerUse2024_10_22("computer-use-2024-10-22")` + + - `ComputerUse2025_01_24("computer-use-2025-01-24")` + + - `Pdfs2024_09_25("pdfs-2024-09-25")` + + - `TokenCounting2024_11_01("token-counting-2024-11-01")` + + - `TokenEfficientTools2025_02_19("token-efficient-tools-2025-02-19")` + + - `Output128k2025_02_19("output-128k-2025-02-19")` + + - `FilesApi2025_04_14("files-api-2025-04-14")` + + - `McpClient2025_04_04("mcp-client-2025-04-04")` + + - `McpClient2025_11_20("mcp-client-2025-11-20")` + + - `DevFullThinking2025_05_14("dev-full-thinking-2025-05-14")` + + - `InterleavedThinking2025_05_14("interleaved-thinking-2025-05-14")` + + - `CodeExecution2025_05_22("code-execution-2025-05-22")` + + - `ExtendedCacheTtl2025_04_11("extended-cache-ttl-2025-04-11")` + + - `Context1m2025_08_07("context-1m-2025-08-07")` + + - `ContextManagement2025_06_27("context-management-2025-06-27")` + + - `ModelContextWindowExceeded2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `Skills2025_10_02("skills-2025-10-02")` + + - `FastMode2026_02_01("fast-mode-2026-02-01")` + + - `Output300k2026_03_24("output-300k-2026-03-24")` + + - `UserProfiles2026_03_24("user-profiles-2026-03-24")` + + - `UserProfiles2026_08_18("user-profiles-2026-08-18")` + + - `UserProfiles2026_09_04("user-profiles-2026-09-04")` + + - `AdvisorTool2026_03_01("advisor-tool-2026-03-01")` + + - `ManagedAgents2026_04_01("managed-agents-2026-04-01")` + + - `CacheDiagnosis2026_04_07("cache-diagnosis-2026-04-07")` + + - `Dreaming2026_04_21("dreaming-2026-04-21")` + + - `ThinkingTokenCount2026_05_13("thinking-token-count-2026-05-13")` + + - `ServerSideFallback2026_06_01("server-side-fallback-2026-06-01")` + + - `ServerSideFallback2026_07_01("server-side-fallback-2026-07-01")` + + - `FallbackCredit2026_06_01("fallback-credit-2026-06-01")` + + - `FallbackCredit2026_07_01("fallback-credit-2026-07-01")` + + - `AgentMemory2026_07_22("agent-memory-2026-07-22")` + + - `MidConversationToolChanges2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `Compact2026_01_12("compact-2026-01-12")` + + - `ComputerUse2025_11_24("computer-use-2025-11-24")` + + - `McpTunnels2026_06_22("mcp-tunnels-2026-06-22")` + + - `StructuredOutputs2025_11_13("structured-outputs-2025-11-13")` + + - `TaskBudgets2026_03_13("task-budgets-2026-03-13")` + + - `ThinkingDisplayUpdates2026_08_18("thinking-display-updates-2026-08-18")` + + - `CEUserManagement2026_07_13("ce-user-management-2026-07-13")` + + - `MidConversationOutputConfig2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `ThinkingBindingControls2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MidConversationSystemClearAt2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `Compact2026_09_04("compact-2026-09-04")` + + - `InlineTools2026_09_15("inline-tools-2026-09-15")` + + - `McpClient2026_09_15("mcp-client-2026-09-15")` + + - `CEPlugins2026_09_01("ce-plugins-2026-09-01")` + + - `SpendLimitReads2026_09_26("spend-limit-reads-2026-09-26")` + + - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + + - `Webhooks2026_10_07("webhooks-2026-10-07")` + + - `string workspaceID` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaUserProfileActionUrl` + + A URL to give to the person who takes the requested action. + + - `JsonElement Type = "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `required DateTimeOffset ExpiresAt` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `required string Url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```csharp +using System; +using Anthropic.Models.Beta.UserProfiles.ActionUrls; + +ActionUrlCreateParams parameters = new() +{ + UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9", + Action = new(), +}; + +var betaUserProfileActionUrl = await client.Beta.UserProfiles.ActionUrls.Create(parameters); + +Console.WriteLine(betaUserProfileActionUrl); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/csharp/beta/user_profiles/create.md b/content/en/api/csharp/beta/user_profiles/create.md index 3f39249738..d7b37f7b00 100644 --- a/content/en/api/csharp/beta/user_profiles/create.md +++ b/content/en/api/csharp/beta/user_profiles/create.md @@ -29,17 +29,17 @@ Create User Profile - `string? externalID` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `DateTimeOffset externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -55,7 +55,7 @@ Create User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -159,6 +159,8 @@ Create User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -191,6 +193,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -207,13 +213,13 @@ Create User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -225,11 +231,11 @@ Create User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -283,17 +289,16 @@ Create User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateParams parameters = new(); var betaUserProfile = await client.Beta.UserProfiles.Create(parameters); @@ -308,6 +313,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -319,14 +325,13 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/csharp/beta/user_profiles/create_enrollment_url.md b/content/en/api/csharp/beta/user_profiles/create_enrollment_url.md index 13143cf781..f00e6c3fc2 100644 --- a/content/en/api/csharp/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/csharp/beta/user_profiles/create_enrollment_url.md @@ -21,7 +21,7 @@ Create Enrollment URL - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -125,6 +125,8 @@ Create Enrollment URL - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,7 +137,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `required Type Type` @@ -154,6 +156,9 @@ Create Enrollment URL ## Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileCreateEnrollmentUrlParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" diff --git a/content/en/api/csharp/beta/user_profiles/list.md b/content/en/api/csharp/beta/user_profiles/list.md index 2267abd9cb..7b67d89e85 100644 --- a/content/en/api/csharp/beta/user_profiles/list.md +++ b/content/en/api/csharp/beta/user_profiles/list.md @@ -53,7 +53,7 @@ List User Profiles - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -157,6 +157,8 @@ List User Profiles - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -189,6 +191,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -205,13 +211,13 @@ List User Profiles - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -223,11 +229,11 @@ List User Profiles - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -281,17 +287,16 @@ List User Profiles - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileListParams parameters = new(); var page = await client.Beta.UserProfiles.List(parameters); @@ -310,6 +315,7 @@ await foreach (var item in page.Paginate()) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -321,15 +327,14 @@ await foreach (var item in page.Paginate()) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/csharp/beta/user_profiles/retrieve.md b/content/en/api/csharp/beta/user_profiles/retrieve.md index b07c520e53..71b883999d 100644 --- a/content/en/api/csharp/beta/user_profiles/retrieve.md +++ b/content/en/api/csharp/beta/user_profiles/retrieve.md @@ -21,7 +21,7 @@ Get User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -125,6 +125,8 @@ Get User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -173,13 +179,13 @@ Get User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -191,11 +197,11 @@ Get User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -249,17 +255,16 @@ Get User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileRetrieveParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -277,6 +282,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -288,14 +294,13 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/csharp/beta/user_profiles/update.md b/content/en/api/csharp/beta/user_profiles/update.md index d62b79293f..c0efbc5d3c 100644 --- a/content/en/api/csharp/beta/user_profiles/update.md +++ b/content/en/api/csharp/beta/user_profiles/update.md @@ -33,17 +33,17 @@ Update User Profile - `string? externalID` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `BetaUserProfileExternalUserDetailsParams externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `DateTimeOffset externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -59,7 +59,7 @@ Update User Profile - `IReadOnlyList betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MessageBatches2024_09_24("message-batches-2024-09-24")` @@ -163,6 +163,8 @@ Update User Profile - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -195,6 +197,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `required string? Name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `required IReadOnlyDictionary TrustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -211,13 +217,13 @@ Update User Profile - `required DateTimeOffset UpdatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType AccessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `Application("application")` @@ -229,11 +235,11 @@ Update User Profile - `string? ExternalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `BetaUserProfileExternalUserDetails ExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `required AccountStatus? AccountStatus` @@ -287,17 +293,16 @@ Update User Profile - `DateTimeOffset? ExternalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `string? Name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```csharp +using System; +using Anthropic.Models.Beta.UserProfiles; + UserProfileUpdateParams parameters = new() { UserProfileID = "uprof_011CZkZCu8hGbp5mYRQgUmz9" @@ -315,6 +320,7 @@ Console.WriteLine(betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -326,14 +332,13 @@ Console.WriteLine(betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/csharp/beta/vaults.md b/content/en/api/csharp/beta/vaults.md index d9e8d3220d..8b0040c848 100644 --- a/content/en/api/csharp/beta/vaults.md +++ b/content/en/api/csharp/beta/vaults.md @@ -133,6 +133,8 @@ Create a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -180,6 +182,9 @@ Create a Vault ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultCreateParams parameters = new() { DisplayName = "Example vault" }; var betaManagedAgentsVault = await client.Beta.Vaults.Create(parameters); @@ -335,6 +340,8 @@ List Vaults - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -382,6 +389,9 @@ List Vaults ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultListParams parameters = new(); var page = await client.Beta.Vaults.List(parameters); @@ -534,6 +544,8 @@ Retrieve a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -581,6 +593,9 @@ Retrieve a Vault ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -739,6 +754,8 @@ Update a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -786,6 +803,9 @@ Update a Vault ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -934,6 +954,8 @@ Delete a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -955,6 +977,9 @@ Delete a Vault ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -1096,6 +1121,8 @@ Archive a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1143,6 +1170,9 @@ Archive a Vault ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -1521,6 +1551,8 @@ Create a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1686,6 +1718,9 @@ Create a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialCreateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -1693,7 +1728,7 @@ CredentialCreateParams parameters = new() { Token = "bearer_exampletoken", McpServerUrl = "https://example-server.modelcontextprotocol.io/sse", - Type = Type.StaticBearer, + Type = BetaManagedAgentsStaticBearerCreateParamsType.StaticBearer, }, }; @@ -1859,6 +1894,8 @@ List Credentials - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2024,6 +2061,9 @@ List Credentials #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialListParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -2188,6 +2228,8 @@ Retrieve a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2353,6 +2395,9 @@ Retrieve a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -2651,6 +2696,8 @@ Update a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2816,6 +2863,9 @@ Update a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -2974,6 +3024,8 @@ Delete a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2995,6 +3047,9 @@ Delete a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -3141,6 +3196,8 @@ Archive a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3306,6 +3363,9 @@ Archive a Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -3464,6 +3524,8 @@ Validate an MCP OAuth Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3573,6 +3635,9 @@ Validate an MCP OAuth Credential #### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialMcpOAuthValidateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/archive.md b/content/en/api/csharp/beta/vaults/archive.md index 18dac463a1..64f26e033b 100644 --- a/content/en/api/csharp/beta/vaults/archive.md +++ b/content/en/api/csharp/beta/vaults/archive.md @@ -125,6 +125,8 @@ Archive a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -172,6 +174,9 @@ Archive a Vault ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" diff --git a/content/en/api/csharp/beta/vaults/create.md b/content/en/api/csharp/beta/vaults/create.md index 2b6a9b7640..52f2ac0cd6 100644 --- a/content/en/api/csharp/beta/vaults/create.md +++ b/content/en/api/csharp/beta/vaults/create.md @@ -131,6 +131,8 @@ Create a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -178,6 +180,9 @@ Create a Vault ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultCreateParams parameters = new() { DisplayName = "Example vault" }; var betaManagedAgentsVault = await client.Beta.Vaults.Create(parameters); diff --git a/content/en/api/csharp/beta/vaults/credentials.md b/content/en/api/csharp/beta/vaults/credentials.md index 81e288c055..3a26edc133 100644 --- a/content/en/api/csharp/beta/vaults/credentials.md +++ b/content/en/api/csharp/beta/vaults/credentials.md @@ -303,6 +303,8 @@ Create a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -468,6 +470,9 @@ Create a Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialCreateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -475,7 +480,7 @@ CredentialCreateParams parameters = new() { Token = "bearer_exampletoken", McpServerUrl = "https://example-server.modelcontextprotocol.io/sse", - Type = Type.StaticBearer, + Type = BetaManagedAgentsStaticBearerCreateParamsType.StaticBearer, }, }; @@ -641,6 +646,8 @@ List Credentials - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -806,6 +813,9 @@ List Credentials ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialListParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" @@ -970,6 +980,8 @@ Retrieve a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1135,6 +1147,9 @@ Retrieve a Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -1433,6 +1448,8 @@ Update a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1598,6 +1615,9 @@ Update a Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -1756,6 +1776,8 @@ Delete a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1777,6 +1799,9 @@ Delete a Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -1923,6 +1948,8 @@ Archive a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2088,6 +2115,9 @@ Archive a Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -2246,6 +2276,8 @@ Validate an MCP OAuth Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2355,6 +2387,9 @@ Validate an MCP OAuth Credential ### Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialMcpOAuthValidateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/credentials/archive.md b/content/en/api/csharp/beta/vaults/credentials/archive.md index 83a2c39537..f53829d5e2 100644 --- a/content/en/api/csharp/beta/vaults/credentials/archive.md +++ b/content/en/api/csharp/beta/vaults/credentials/archive.md @@ -129,6 +129,8 @@ Archive a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -294,6 +296,9 @@ Archive a Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialArchiveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/credentials/create.md b/content/en/api/csharp/beta/vaults/credentials/create.md index 7dafd47f8d..7be94b8426 100644 --- a/content/en/api/csharp/beta/vaults/credentials/create.md +++ b/content/en/api/csharp/beta/vaults/credentials/create.md @@ -301,6 +301,8 @@ Create a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -466,6 +468,9 @@ Create a Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialCreateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", @@ -473,7 +478,7 @@ CredentialCreateParams parameters = new() { Token = "bearer_exampletoken", McpServerUrl = "https://example-server.modelcontextprotocol.io/sse", - Type = Type.StaticBearer, + Type = BetaManagedAgentsStaticBearerCreateParamsType.StaticBearer, }, }; diff --git a/content/en/api/csharp/beta/vaults/credentials/delete.md b/content/en/api/csharp/beta/vaults/credentials/delete.md index 405b8cbae3..eb291cdd6e 100644 --- a/content/en/api/csharp/beta/vaults/credentials/delete.md +++ b/content/en/api/csharp/beta/vaults/credentials/delete.md @@ -129,6 +129,8 @@ Delete a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -150,6 +152,9 @@ Delete a Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/credentials/list.md b/content/en/api/csharp/beta/vaults/credentials/list.md index 7c6068c59e..11623f7678 100644 --- a/content/en/api/csharp/beta/vaults/credentials/list.md +++ b/content/en/api/csharp/beta/vaults/credentials/list.md @@ -139,6 +139,8 @@ List Credentials - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -304,6 +306,9 @@ List Credentials ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialListParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" diff --git a/content/en/api/csharp/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/csharp/beta/vaults/credentials/mcp_oauth_validate.md index 565a599414..912d9e3474 100644 --- a/content/en/api/csharp/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/csharp/beta/vaults/credentials/mcp_oauth_validate.md @@ -129,6 +129,8 @@ Validate an MCP OAuth Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -238,6 +240,9 @@ Validate an MCP OAuth Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialMcpOAuthValidateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/credentials/retrieve.md b/content/en/api/csharp/beta/vaults/credentials/retrieve.md index 3193871db8..5a53e0433d 100644 --- a/content/en/api/csharp/beta/vaults/credentials/retrieve.md +++ b/content/en/api/csharp/beta/vaults/credentials/retrieve.md @@ -129,6 +129,8 @@ Retrieve a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -294,6 +296,9 @@ Retrieve a Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/credentials/update.md b/content/en/api/csharp/beta/vaults/credentials/update.md index 3b6cd23735..37d86f6d77 100644 --- a/content/en/api/csharp/beta/vaults/credentials/update.md +++ b/content/en/api/csharp/beta/vaults/credentials/update.md @@ -269,6 +269,8 @@ Update a Credential - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -434,6 +436,9 @@ Update a Credential ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults.Credentials; + CredentialUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv", diff --git a/content/en/api/csharp/beta/vaults/delete.md b/content/en/api/csharp/beta/vaults/delete.md index ad74662e1c..2425e3e256 100644 --- a/content/en/api/csharp/beta/vaults/delete.md +++ b/content/en/api/csharp/beta/vaults/delete.md @@ -125,6 +125,8 @@ Delete a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -146,6 +148,9 @@ Delete a Vault ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultDeleteParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" diff --git a/content/en/api/csharp/beta/vaults/list.md b/content/en/api/csharp/beta/vaults/list.md index 90f0a997ec..99392c4fde 100644 --- a/content/en/api/csharp/beta/vaults/list.md +++ b/content/en/api/csharp/beta/vaults/list.md @@ -135,6 +135,8 @@ List Vaults - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -182,6 +184,9 @@ List Vaults ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultListParams parameters = new(); var page = await client.Beta.Vaults.List(parameters); diff --git a/content/en/api/csharp/beta/vaults/retrieve.md b/content/en/api/csharp/beta/vaults/retrieve.md index 3c2cc66347..d850be7dc6 100644 --- a/content/en/api/csharp/beta/vaults/retrieve.md +++ b/content/en/api/csharp/beta/vaults/retrieve.md @@ -125,6 +125,8 @@ Retrieve a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -172,6 +174,9 @@ Retrieve a Vault ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultRetrieveParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" diff --git a/content/en/api/csharp/beta/vaults/update.md b/content/en/api/csharp/beta/vaults/update.md index 1dc4b13f5b..7251117ace 100644 --- a/content/en/api/csharp/beta/vaults/update.md +++ b/content/en/api/csharp/beta/vaults/update.md @@ -135,6 +135,8 @@ Update a Vault - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + - `string workspaceID` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -182,6 +184,9 @@ Update a Vault ## Example ```csharp +using System; +using Anthropic.Models.Beta.Vaults; + VaultUpdateParams parameters = new() { VaultID = "vlt_011CZkZDLs7fYzm1hXNPeRjv" diff --git a/content/en/api/csharp/beta/webhooks.md b/content/en/api/csharp/beta/webhooks.md index 59adce050c..e615c577e0 100644 --- a/content/en/api/csharp/beta/webhooks.md +++ b/content/en/api/csharp/beta/webhooks.md @@ -821,6 +821,34 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/webhooks - `required string WorkspaceID` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_opened"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_resolved"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + ### Beta Webhook Event Data - `class BetaWebhookEventData: union` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/webhooks - `required string WorkspaceID` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_opened"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_resolved"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + ### Beta Webhook Memory Store Archived Event Data - `class BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/csharp/beta/webhooks - `required string WorkspaceID` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_opened"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonElement Type = "user_profile.enforcement_action_resolved"` + + - `required string ID` + + ID of the user profile the enforcement action is on. + + - `required string EnforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `required string OrganizationID` + ### Beta Webhook Vault Archived Event Data - `class BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/csharp/completions.md b/content/en/api/csharp/completions.md index e0e0c27f8a..9d116b0812 100644 --- a/content/en/api/csharp/completions.md +++ b/content/en/api/csharp/completions.md @@ -141,6 +141,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/csharp/completions/create.md b/content/en/api/csharp/completions/create.md index 2c68f98d8c..6246842899 100644 --- a/content/en/api/csharp/completions/create.md +++ b/content/en/api/csharp/completions/create.md @@ -139,6 +139,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/csharp/messages.md b/content/en/api/csharp/messages.md index cbc1d51e50..8208bbadcf 100644 --- a/content/en/api/csharp/messages.md +++ b/content/en/api/csharp/messages.md @@ -2795,7 +2795,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -3536,6 +3536,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -3544,6 +3548,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -3552,6 +3560,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -3560,6 +3572,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -3568,10 +3584,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -4032,6 +4060,9 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co ### Example ```csharp +using System; +using Anthropic.Models.Messages; + MessageCreateParams parameters = new() { MaxTokens = 1024, @@ -6867,7 +6898,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -6886,6 +6917,9 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ ### Example ```csharp +using System; +using Anthropic.Models.Messages; + MessageCountTokensParams parameters = new() { Messages = @@ -12761,6 +12795,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -12771,6 +12809,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -12781,6 +12823,12 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` ### Cache Miss Reason @@ -12789,6 +12837,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -12797,6 +12849,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -12805,6 +12861,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -12813,6 +12873,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -12821,16 +12885,32 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Cache Miss System Changed - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -12841,6 +12921,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -12851,6 +12935,12 @@ Console.WriteLine(messageTokensCount); - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Citation Char Location @@ -18349,6 +18439,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -18357,6 +18451,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -18365,6 +18463,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -18373,6 +18475,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -18381,10 +18487,22 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` ### Diagnostics Param @@ -19620,6 +19738,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -19628,6 +19750,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -19636,6 +19762,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -19644,6 +19774,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -19652,10 +19786,22 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -24520,6 +24666,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -24528,6 +24678,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -24536,6 +24690,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -24544,6 +24702,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -24552,10 +24714,22 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -25549,6 +25723,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -25557,6 +25735,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -25565,6 +25747,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -25573,6 +25759,10 @@ Console.WriteLine(messageTokensCount); - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -25581,10 +25771,22 @@ Console.WriteLine(messageTokensCount); - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -37535,7 +37737,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -37644,6 +37846,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Messages; +using Anthropic.Models.Messages.Batches; + BatchCreateParams parameters = new() { Requests = @@ -37659,12 +37867,12 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, + Role = Messages::Role.User, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, - Container = new ContainerParams() + Model = Messages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, + Container = new Messages::ContainerParams() { ID = "id", Skills = @@ -37672,7 +37880,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = SkillParamsType.Anthropic, + Type = Messages::SkillParamsType.Anthropic, Version = "latest", }, ], @@ -37688,7 +37896,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -37707,13 +37915,13 @@ BatchCreateParams parameters = new() System = new( [ - new TextBlockParam() + new Messages::TextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new CitationCharLocationParam() + new Messages::CitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -37726,17 +37934,17 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new ThinkingConfigAdaptive() + Thinking = new Messages::ThinkingConfigAdaptive() { - Display = Display.Summarized + Display = Messages::Display.Summarized }, - ToolChoice = new ToolChoiceAuto() + ToolChoice = new Messages::ToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new Tool() + new Messages::Tool() { InputSchema = new() { @@ -37753,9 +37961,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::ToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -37767,7 +37975,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::Type.Custom, }, ], TopK = 5, @@ -37930,6 +38138,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Retrieve(parameters); @@ -38097,6 +38308,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Messages.Batches.List(parameters); @@ -38263,6 +38477,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Cancel(parameters); @@ -38336,6 +38553,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var deletedMessageBatch = await client.Messages.Batches.Delete(parameters); @@ -39095,6 +39315,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -39103,6 +39327,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -39111,6 +39339,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -39119,6 +39351,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -39127,10 +39363,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -39492,6 +39740,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl #### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var messageBatchIndividualResponse in client.Messages.Batches.ResultsStreaming(parameters)) diff --git a/content/en/api/csharp/messages/batches.md b/content/en/api/csharp/messages/batches.md index ad66ce15a8..9d0932ba8d 100644 --- a/content/en/api/csharp/messages/batches.md +++ b/content/en/api/csharp/messages/batches.md @@ -3103,7 +3103,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -3212,6 +3212,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Messages; +using Anthropic.Models.Messages.Batches; + BatchCreateParams parameters = new() { Requests = @@ -3227,12 +3233,12 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, + Role = Messages::Role.User, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, - Container = new ContainerParams() + Model = Messages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, + Container = new Messages::ContainerParams() { ID = "id", Skills = @@ -3240,7 +3246,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = SkillParamsType.Anthropic, + Type = Messages::SkillParamsType.Anthropic, Version = "latest", }, ], @@ -3256,7 +3262,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -3275,13 +3281,13 @@ BatchCreateParams parameters = new() System = new( [ - new TextBlockParam() + new Messages::TextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new CitationCharLocationParam() + new Messages::CitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -3294,17 +3300,17 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new ThinkingConfigAdaptive() + Thinking = new Messages::ThinkingConfigAdaptive() { - Display = Display.Summarized + Display = Messages::Display.Summarized }, - ToolChoice = new ToolChoiceAuto() + ToolChoice = new Messages::ToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new Tool() + new Messages::Tool() { InputSchema = new() { @@ -3321,9 +3327,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::ToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -3335,7 +3341,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::Type.Custom, }, ], TopK = 5, @@ -3498,6 +3504,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Retrieve(parameters); @@ -3665,6 +3674,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Messages.Batches.List(parameters); @@ -3831,6 +3843,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Cancel(parameters); @@ -3904,6 +3919,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var deletedMessageBatch = await client.Messages.Batches.Delete(parameters); @@ -4663,6 +4681,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -4671,6 +4693,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -4679,6 +4705,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -4687,6 +4717,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -4695,10 +4729,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -5060,6 +5106,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ### Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var messageBatchIndividualResponse in client.Messages.Batches.ResultsStreaming(parameters)) @@ -5979,6 +6028,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -5987,6 +6040,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -5995,6 +6052,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -6003,6 +6064,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -6011,10 +6076,22 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -7112,6 +7189,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -7120,6 +7201,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -7128,6 +7213,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -7136,6 +7225,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -7144,10 +7237,22 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -8207,6 +8312,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -8215,6 +8324,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -8223,6 +8336,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -8231,6 +8348,10 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -8239,10 +8360,22 @@ await foreach (var messageBatchIndividualResponse in client.Messages.Batches.Res - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` diff --git a/content/en/api/csharp/messages/batches/cancel.md b/content/en/api/csharp/messages/batches/cancel.md index dfb7a756f3..bee93ba584 100644 --- a/content/en/api/csharp/messages/batches/cancel.md +++ b/content/en/api/csharp/messages/batches/cancel.md @@ -130,6 +130,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchCancelParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Cancel(parameters); diff --git a/content/en/api/csharp/messages/batches/create.md b/content/en/api/csharp/messages/batches/create.md index eac8d59ae4..6affdf7f78 100644 --- a/content/en/api/csharp/messages/batches/create.md +++ b/content/en/api/csharp/messages/batches/create.md @@ -3101,7 +3101,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `string userProfileID` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `string workspaceID` (header parameter) @@ -3210,6 +3210,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using System.Collections.Generic; +using System.Text.Json; +using Messages = Anthropic.Models.Messages; +using Anthropic.Models.Messages.Batches; + BatchCreateParams parameters = new() { Requests = @@ -3225,12 +3231,12 @@ BatchCreateParams parameters = new() new() { Content = "Hello, world", - Role = Role.User, + Role = Messages::Role.User, }, ], - Model = Model.ClaudeOpus5_5, - CacheControl = new() { Ttl = Ttl.Ttl5m }, - Container = new ContainerParams() + Model = Messages::Model.ClaudeOpus5_5, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, + Container = new Messages::ContainerParams() { ID = "id", Skills = @@ -3238,7 +3244,7 @@ BatchCreateParams parameters = new() new() { SkillID = "pdf", - Type = SkillParamsType.Anthropic, + Type = Messages::SkillParamsType.Anthropic, Version = "latest", }, ], @@ -3254,7 +3260,7 @@ BatchCreateParams parameters = new() }, OutputConfig = new() { - Effort = Effort.Low, + Effort = Messages::Effort.Low, Format = new() { Schema = new Dictionary() @@ -3273,13 +3279,13 @@ BatchCreateParams parameters = new() System = new( [ - new TextBlockParam() + new Messages::TextBlockParam() { Text = "Today's date is 2024-06-01.", - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, Citations = [ - new CitationCharLocationParam() + new Messages::CitationCharLocationParam() { CitedText = "The grass is green. The sky is blue.", DocumentIndex = 0, @@ -3292,17 +3298,17 @@ BatchCreateParams parameters = new() ] ), Temperature = 1, - Thinking = new ThinkingConfigAdaptive() + Thinking = new Messages::ThinkingConfigAdaptive() { - Display = Display.Summarized + Display = Messages::Display.Summarized }, - ToolChoice = new ToolChoiceAuto() + ToolChoice = new Messages::ToolChoiceAuto() { DisableParallelToolUse = true }, Tools = [ - new Tool() + new Messages::Tool() { InputSchema = new() { @@ -3319,9 +3325,9 @@ BatchCreateParams parameters = new() Name = "name", AllowedCallers = [ - AllowedCaller.Direct + Messages::ToolAllowedCaller.Direct ], - CacheControl = new() { Ttl = Ttl.Ttl5m }, + CacheControl = new() { Ttl = Messages::Ttl.Ttl5m }, DeferLoading = true, Description = "Get the current weather in a given location", EagerInputStreaming = true, @@ -3333,7 +3339,7 @@ BatchCreateParams parameters = new() }, ], Strict = true, - Type = Type.Custom, + Type = Messages::Type.Custom, }, ], TopK = 5, diff --git a/content/en/api/csharp/messages/batches/delete.md b/content/en/api/csharp/messages/batches/delete.md index fb61308495..d31f3772d8 100644 --- a/content/en/api/csharp/messages/batches/delete.md +++ b/content/en/api/csharp/messages/batches/delete.md @@ -46,6 +46,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchDeleteParams parameters = new() { MessageBatchID = "message_batch_id" }; var deletedMessageBatch = await client.Messages.Batches.Delete(parameters); diff --git a/content/en/api/csharp/messages/batches/list.md b/content/en/api/csharp/messages/batches/list.md index f16433133b..6636455df9 100644 --- a/content/en/api/csharp/messages/batches/list.md +++ b/content/en/api/csharp/messages/batches/list.md @@ -140,6 +140,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchListParams parameters = new(); var page = await client.Messages.Batches.List(parameters); diff --git a/content/en/api/csharp/messages/batches/results.md b/content/en/api/csharp/messages/batches/results.md index 16e5abbbf9..567aec93ca 100644 --- a/content/en/api/csharp/messages/batches/results.md +++ b/content/en/api/csharp/messages/batches/results.md @@ -746,6 +746,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -754,6 +758,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -762,6 +770,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -770,6 +782,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -778,10 +794,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -1143,6 +1171,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchResultsParams parameters = new() { MessageBatchID = "message_batch_id" }; await foreach (var messageBatchIndividualResponse in client.Messages.Batches.ResultsStreaming(parameters)) diff --git a/content/en/api/csharp/messages/batches/retrieve.md b/content/en/api/csharp/messages/batches/retrieve.md index 0d6cc370f5..7a80da735d 100644 --- a/content/en/api/csharp/messages/batches/retrieve.md +++ b/content/en/api/csharp/messages/batches/retrieve.md @@ -128,6 +128,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl ## Example ```csharp +using System; +using Anthropic.Models.Messages.Batches; + BatchRetrieveParams parameters = new() { MessageBatchID = "message_batch_id" }; var messageBatch = await client.Messages.Batches.Retrieve(parameters); diff --git a/content/en/api/csharp/messages/count_tokens.md b/content/en/api/csharp/messages/count_tokens.md index 00019b0df1..606d768011 100644 --- a/content/en/api/csharp/messages/count_tokens.md +++ b/content/en/api/csharp/messages/count_tokens.md @@ -2747,7 +2747,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -2766,6 +2766,9 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ ## Example ```csharp +using System; +using Anthropic.Models.Messages; + MessageCountTokensParams parameters = new() { Messages = diff --git a/content/en/api/csharp/messages/create.md b/content/en/api/csharp/messages/create.md index 7077839538..764f071b26 100644 --- a/content/en/api/csharp/messages/create.md +++ b/content/en/api/csharp/messages/create.md @@ -2793,7 +2793,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `string userProfileID` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `string workspaceID` (header parameter) @@ -3534,6 +3534,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "model_changed"` - `required long CacheMissedInputTokens` @@ -3542,6 +3546,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "system_changed"` - `required long CacheMissedInputTokens` @@ -3550,6 +3558,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "tools_changed"` - `required long CacheMissedInputTokens` @@ -3558,6 +3570,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "messages_changed"` - `required long CacheMissedInputTokens` @@ -3566,10 +3582,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=csharp#cache-miss-reason-types) to learn what to change for each reason. + - `JsonElement Type = "unavailable"` - `required Model Model` @@ -4030,6 +4058,9 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co ## Example ```csharp +using System; +using Anthropic.Models.Messages; + MessageCreateParams parameters = new() { MaxTokens = 1024, diff --git a/content/en/api/csharp/models.md b/content/en/api/csharp/models.md index 516d347618..0bd25c454f 100644 --- a/content/en/api/csharp/models.md +++ b/content/en/api/csharp/models.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ### Returns - `class ModelInfo` @@ -360,6 +362,9 @@ The Models API response can be used to determine which models are available for ### Example ```csharp +using System; +using Anthropic.Models.Models; + ModelListParams parameters = new(); var page = await client.Models.List(parameters); @@ -601,6 +606,8 @@ The Models API response can be used to determine information about a specific mo - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ### Returns - `class ModelInfo` @@ -800,6 +807,9 @@ The Models API response can be used to determine information about a specific mo ### Example ```csharp +using System; +using Anthropic.Models.Models; + ModelRetrieveParams parameters = new() { ModelID = "model_id" }; var modelInfo = await client.Models.Retrieve(parameters); diff --git a/content/en/api/csharp/models/list.md b/content/en/api/csharp/models/list.md index 728443107a..b3bc049d50 100644 --- a/content/en/api/csharp/models/list.md +++ b/content/en/api/csharp/models/list.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ## Returns - `class ModelInfo` @@ -358,6 +360,9 @@ The Models API response can be used to determine which models are available for ## Example ```csharp +using System; +using Anthropic.Models.Models; + ModelListParams parameters = new(); var page = await client.Models.List(parameters); diff --git a/content/en/api/csharp/models/retrieve.md b/content/en/api/csharp/models/retrieve.md index a9f0cc9e53..dfcd6a6f80 100644 --- a/content/en/api/csharp/models/retrieve.md +++ b/content/en/api/csharp/models/retrieve.md @@ -135,6 +135,8 @@ The Models API response can be used to determine information about a specific mo - `TelemetryDestinations2026_08_11("telemetry-destinations-2026-08-11")` + - `Webhooks2026_10_07("webhooks-2026-10-07")` + ## Returns - `class ModelInfo` @@ -334,6 +336,9 @@ The Models API response can be used to determine information about a specific mo ## Example ```csharp +using System; +using Anthropic.Models.Models; + ModelRetrieveParams parameters = new() { ModelID = "model_id" }; var modelInfo = await client.Models.Retrieve(parameters); diff --git a/content/en/api/go/beta.md b/content/en/api/go/beta.md index fab14d07f3..fd2fe14bb0 100644 --- a/content/en/api/go/beta.md +++ b/content/en/api/go/beta.md @@ -113,6 +113,8 @@ url: https://platform.claude.com/docs/en/api/go/beta - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Beta API Error - `type BetaAPIError` @@ -585,6 +587,8 @@ The Models API response can be used to determine which models are available for - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1065,6 +1069,8 @@ The Models API response can be used to determine information about a specific mo - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5282,9 +5288,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -8498,6 +8506,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -8508,6 +8520,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -8518,6 +8534,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -8528,6 +8548,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -8538,12 +8562,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -13335,9 +13371,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -17080,8 +17118,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -17130,7 +17182,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -17138,6 +17194,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -17657,9 +17719,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -17965,6 +18029,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18269,6 +18335,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18566,6 +18634,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18860,6 +18930,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19046,6 +19118,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22236,6 +22310,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -22246,6 +22324,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -22256,6 +22338,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -22266,6 +22352,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -22276,12 +22366,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -23937,6 +24039,8 @@ Create Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25005,6 +25109,8 @@ List Agents - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26057,6 +26163,8 @@ Get Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27874,6 +27982,8 @@ Update Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28921,6 +29031,8 @@ Archive Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29978,6 +30090,8 @@ List Agent Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31142,6 +31256,8 @@ Create a new environment with the specified configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31490,6 +31606,8 @@ List environments with pagination support. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31829,6 +31947,8 @@ Retrieve a specific environment by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32283,6 +32403,8 @@ Update an existing environment's configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32621,6 +32743,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32801,6 +32925,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33145,6 +33271,8 @@ Retrieve detailed information about a specific work item. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33423,6 +33551,8 @@ Long poll for work items in the queue. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `AnthropicWorkerID param.Opt[string] Optional` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -33687,6 +33817,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWork` @@ -33957,6 +34089,8 @@ Record a heartbeat for a work item to maintain the lease. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWorkHeartbeatResponse` @@ -34166,6 +34300,8 @@ Stop a work item, initiating graceful or forced shutdown. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34443,6 +34579,8 @@ List work items in an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWork` @@ -34712,6 +34850,8 @@ Update work item metadata with merge semantics. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34981,6 +35121,8 @@ Get statistics about the work queue for an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -36284,6 +36426,8 @@ Create Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -37873,6 +38017,8 @@ List Sessions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -39370,6 +39516,8 @@ Get Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -40887,6 +41035,8 @@ Update Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -42382,6 +42532,8 @@ Delete Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -42556,6 +42708,8 @@ Archive Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -44179,6 +44333,8 @@ List Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -47652,6 +47808,8 @@ Send Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -48293,6 +48451,8 @@ Stream Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51447,6 +51607,8 @@ Add Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51654,6 +51816,8 @@ List Session Resources - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51947,6 +52111,8 @@ Get Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52237,6 +52403,8 @@ Update Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52522,6 +52690,8 @@ Delete Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52724,6 +52894,8 @@ List Session Threads - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53815,6 +53987,8 @@ Get Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54903,6 +55077,8 @@ Archive Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -55999,6 +56175,8 @@ List Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -59122,6 +59300,8 @@ Stream Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -62644,6 +62824,8 @@ Create Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63431,6 +63613,8 @@ List Deployments - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64176,6 +64360,8 @@ Get Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65292,6 +65478,8 @@ Update Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66036,6 +66224,8 @@ Archive Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66780,6 +66970,8 @@ Run Deployment Now - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67186,6 +67378,8 @@ Pause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67930,6 +68124,8 @@ Unpause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68718,6 +68914,8 @@ List Deployment Runs - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69125,6 +69323,8 @@ Get Deployment Run - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69539,6 +69739,8 @@ Create a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69758,6 +69960,8 @@ List Vaults - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69970,6 +70174,8 @@ Retrieve a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70191,6 +70397,8 @@ Update a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70402,6 +70610,8 @@ Delete a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70580,6 +70790,8 @@ Archive a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70969,6 +71181,8 @@ Create a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71325,6 +71539,8 @@ List Credentials - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71668,6 +71884,8 @@ Retrieve a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72148,6 +72366,8 @@ Update a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72488,6 +72708,8 @@ Delete a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72672,6 +72894,8 @@ Archive a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73012,6 +73236,8 @@ Validate an MCP OAuth Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73182,13 +73408,13 @@ func main() { ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `client.Beta.MemoryStores.New(ctx, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters @@ -73196,19 +73422,25 @@ Create a memory store - `Name string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Description param.Opt[string] Optional` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Metadata map[string, string] Optional` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Betas []AnthropicBeta Optional` (header parameter) @@ -73316,6 +73548,8 @@ Create a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73332,27 +73566,33 @@ Create a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -73360,7 +73600,9 @@ Create a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -73408,13 +73650,13 @@ func main() { } ``` -### List memory stores +### List Memory Stores `client.Beta.MemoryStores.List(ctx, params) (*PageCursor[BetaManagedAgentsMemoryStore], error)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters @@ -73422,13 +73664,13 @@ List memory stores - `CreatedAtGte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `CreatedAtLte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -73444,7 +73686,7 @@ List memory stores - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -73552,6 +73794,8 @@ List memory stores - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73568,27 +73812,33 @@ List memory stores - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -73596,7 +73846,9 @@ List memory stores - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -73645,19 +73897,19 @@ func main() { } ``` -### Retrieve a memory store +### Retrieve a Memory Store `client.Beta.MemoryStores.Get(ctx, memoryStoreID, query) (*BetaManagedAgentsMemoryStore, error)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `query BetaMemoryStoreGetParams` @@ -73767,6 +74019,8 @@ Retrieve a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73783,27 +74037,33 @@ Retrieve a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -73811,7 +74071,9 @@ Retrieve a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -73861,35 +74123,41 @@ func main() { } ``` -### Update a memory store +### Update a Memory Store `client.Beta.MemoryStores.Update(ctx, memoryStoreID, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params BetaMemoryStoreUpdateParams` - `Description param.Opt[string] Optional` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Metadata map[string, string] Optional` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Name param.Opt[string] Optional` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -73999,6 +74267,8 @@ Update a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74015,27 +74285,33 @@ Update a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -74043,7 +74319,9 @@ Update a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74093,19 +74371,21 @@ func main() { } ``` -### Delete a memory store +### Delete a Memory Store `client.Beta.MemoryStores.Delete(ctx, memoryStoreID, body) (*BetaManagedAgentsDeletedMemoryStore, error)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `body BetaMemoryStoreDeleteParams` @@ -74215,6 +74495,8 @@ Delete a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74271,19 +74553,21 @@ func main() { } ``` -### Archive a memory store +### Archive a Memory Store `client.Beta.MemoryStores.Archive(ctx, memoryStoreID, body) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `body BetaMemoryStoreArchiveParams` @@ -74393,6 +74677,8 @@ Archive a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74409,27 +74695,33 @@ Archive a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -74437,7 +74729,9 @@ Archive a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74489,13 +74783,13 @@ func main() { ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `client.Beta.MemoryStores.Memories.New(ctx, memoryStoreID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -74507,17 +74801,23 @@ Create a memory - `Content param.Opt[string]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `Path string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -74625,6 +74925,8 @@ Create a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74635,13 +74937,19 @@ Create a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -74649,7 +74957,7 @@ Create a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -74665,7 +74973,11 @@ Create a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -74673,13 +74985,17 @@ Create a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -74730,13 +75046,13 @@ func main() { } ``` -### List memories +### List Memories `client.Beta.MemoryStores.Memories.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryListItemUnion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -74748,27 +75064,35 @@ List memories - `Depth param.Opt[int64] Optional` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Limit param.Opt[int64] Optional` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `PathPrefix param.Opt[string] Optional` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Betas []AnthropicBeta Optional` (header parameter) @@ -74876,6 +75200,8 @@ List memories - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74886,17 +75212,23 @@ List memories - `type BetaManagedAgentsMemoryListItemUnion interface{…}` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -74904,7 +75236,7 @@ List memories - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -74920,7 +75252,11 @@ List memories - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -74928,17 +75264,23 @@ List memories - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` @@ -74997,13 +75339,13 @@ func main() { } ``` -### Retrieve a memory +### Retrieve a Memory `client.Beta.MemoryStores.Memories.Get(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -75019,7 +75361,9 @@ Retrieve a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -75127,6 +75471,8 @@ Retrieve a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75137,13 +75483,19 @@ Retrieve a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -75151,7 +75503,7 @@ Retrieve a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75167,7 +75519,11 @@ Retrieve a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -75175,13 +75531,17 @@ Retrieve a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75231,13 +75591,13 @@ func main() { } ``` -### Update a memory +### Update a Memory `client.Beta.MemoryStores.Memories.Update(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -75253,7 +75613,9 @@ Update a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Content param.Opt[string] Optional` @@ -75261,13 +75623,17 @@ Update a memory - `Path param.Opt[string] Optional` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Precondition BetaManagedAgentsPreconditionParam Optional` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `Betas []AnthropicBeta Optional` (header parameter) @@ -75375,6 +75741,8 @@ Update a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75385,13 +75753,19 @@ Update a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -75399,7 +75773,7 @@ Update a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75415,7 +75789,11 @@ Update a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -75423,13 +75801,17 @@ Update a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75479,13 +75861,13 @@ func main() { } ``` -### Delete a memory +### Delete a Memory `client.Beta.MemoryStores.Memories.Delete(ctx, memoryID, params) (*BetaManagedAgentsDeletedMemory, error)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -75611,6 +75993,8 @@ Delete a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75621,7 +76005,11 @@ Delete a memory - `type BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about how long versions are kept. - `Type BetaManagedAgentsDeletedMemoryType` @@ -75671,13 +76059,13 @@ func main() { ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `client.Beta.MemoryStores.MemoryVersions.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryVersion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -75705,7 +76093,9 @@ List memory versions - `Limit param.Opt[int64] Optional` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -75713,7 +76103,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Operation BetaManagedAgentsMemoryVersionOperation Optional` (query parameter) @@ -75733,7 +76123,9 @@ List memory versions - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -75841,6 +76233,8 @@ List memory versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75851,7 +76245,13 @@ List memory versions - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -75867,7 +76267,9 @@ List memory versions - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -75905,7 +76307,11 @@ List memory versions - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -75961,7 +76367,11 @@ List memory versions - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -76029,13 +76439,13 @@ func main() { } ``` -### Retrieve a memory version +### Retrieve a Memory Version `client.Beta.MemoryStores.MemoryVersions.Get(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -76051,7 +76461,9 @@ Retrieve a memory version - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -76159,6 +76571,8 @@ Retrieve a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76169,7 +76583,13 @@ Retrieve a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -76185,7 +76605,9 @@ Retrieve a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -76223,7 +76645,11 @@ Retrieve a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -76279,7 +76705,11 @@ Retrieve a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -76344,13 +76774,13 @@ func main() { } ``` -### Redact a memory version +### Redact a Memory Version `client.Beta.MemoryStores.MemoryVersions.Redact(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -76470,6 +76900,8 @@ Redact a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76480,7 +76912,13 @@ Redact a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -76496,7 +76934,9 @@ Redact a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -76534,7 +76974,11 @@ Redact a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -76590,7 +77034,11 @@ Redact a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -76787,6 +77235,8 @@ Upload File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77043,6 +77493,8 @@ List Files - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77284,6 +77736,8 @@ Download File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77445,6 +77899,8 @@ Get File Metadata - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77685,6 +78141,8 @@ Delete File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77877,6 +78335,8 @@ Create Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78139,6 +78599,8 @@ List Skills - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78385,6 +78847,8 @@ Get Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78630,6 +79094,8 @@ Delete Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78824,6 +79290,8 @@ Create Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79054,6 +79522,8 @@ List Skill Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79279,6 +79749,8 @@ Download a skill version's content as a zip archive. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79450,6 +79922,8 @@ Get Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79672,6 +80146,8 @@ Delete Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79763,17 +80239,17 @@ Create User Profile - `ExternalID param.Opt[string] Optional` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -79789,7 +80265,7 @@ Create User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -79893,6 +80369,8 @@ Create User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79925,6 +80403,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -79941,13 +80423,13 @@ Create User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -79959,11 +80441,11 @@ Create User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -80017,14 +80499,10 @@ Create User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```go @@ -80057,6 +80535,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80068,15 +80547,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -80130,7 +80608,7 @@ List User Profiles - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -80234,6 +80712,8 @@ List User Profiles - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80266,6 +80746,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80282,13 +80766,13 @@ List User Profiles - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -80300,11 +80784,11 @@ List User Profiles - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -80358,14 +80842,10 @@ List User Profiles - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```go @@ -80400,6 +80880,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80411,15 +80892,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -80444,7 +80924,7 @@ Get User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -80548,6 +81028,8 @@ Get User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80580,6 +81062,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80596,13 +81082,13 @@ Get User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -80614,11 +81100,11 @@ Get User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -80672,14 +81158,10 @@ Get User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```go @@ -80716,6 +81198,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80727,15 +81210,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -80769,17 +81251,17 @@ Update User Profile - `ExternalID param.Opt[string] Optional` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -80795,7 +81277,7 @@ Update User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -80899,6 +81381,8 @@ Update User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80931,6 +81415,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80947,13 +81435,13 @@ Update User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -80965,11 +81453,11 @@ Update User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -81023,14 +81511,10 @@ Update User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```go @@ -81067,6 +81551,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81078,37 +81563,36 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` -### Create Enrollment URL +### Delete User Profile -`client.Beta.UserProfiles.NewEnrollmentURL(ctx, userProfileID, body) (*BetaUserProfileEnrollmentURL, error)` +`client.Beta.UserProfiles.Delete(ctx, userProfileID, body) (*BetaDeletedUserProfile, error)` -**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` +**DELETE** `/v1/user_profiles/{user_profile_id}` -Create Enrollment URL +Delete User Profile #### Parameters - `userProfileID string` (path parameter) - The ID of the user profile to create an enrollment URL for (`uprof_...`). + The ID of the user profile to delete (`uprof_...`). -- `body BetaUserProfileNewEnrollmentURLParams` +- `body BetaUserProfileDeleteParams` - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -81212,6 +81696,8 @@ Create Enrollment URL - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81220,23 +81706,15 @@ Create Enrollment URL #### Returns -- `type BetaUserProfileEnrollmentURL` +- `type BetaDeletedUserProfile` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + - `Type UserProfileDeleted` - - `Type BetaUserProfileEnrollmentURLType` + Object type. Always `user_profile_deleted`. - Object type. Always `enrollment_url`. - - - `ExpiresAt Time` - - When this enrollment URL expires, in RFC 3339 format. - - format: date-time - - - `URL string` + - `ID string` - Enrollment URL to send to the end user. Valid until `expires_at`. + Identifier of the deleted user profile, prefixed `uprof_`. #### Example @@ -81255,15 +81733,15 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - betaUserProfileEnrollmentURL, err := client.Beta.UserProfiles.NewEnrollmentURL( + betaDeletedUserProfile, err := client.Beta.UserProfiles.Delete( context.TODO(), "uprof_011CZkZCu8hGbp5mYRQgUmz9", - anthropic.BetaUserProfileNewEnrollmentURLParams{}, + anthropic.BetaUserProfileDeleteParams{}, ) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", betaUserProfileEnrollmentURL.ExpiresAt) + fmt.Printf("%+v\n", betaDeletedUserProfile.ID) } ``` @@ -81271,113 +81749,225 @@ func main() { ```json { - "expires_at": "2026-03-15T10:15:00Z", - "type": "enrollment_url", - "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` -## Beta › Dreams +### Create Enrollment URL -### Create a Dream +`client.Beta.UserProfiles.NewEnrollmentURL(ctx, userProfileID, body) (*BetaUserProfileEnrollmentURL, error)` -`client.Beta.Dreams.New(ctx, params) (*BetaDream, error)` +**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` -**POST** `/v1/dreams` +Create Enrollment URL -Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. +#### Parameters -By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. +- `userProfileID string` (path parameter) -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#create-a-dream) to learn more about creating dreams. + The ID of the user profile to create an enrollment URL for (`uprof_...`). -#### Parameters +- `body BetaUserProfileNewEnrollmentURLParams` -- `params BetaDreamNewParams` + - `Betas []AnthropicBeta Optional` (header parameter) - - `Inputs []BetaDreamInputUnionParam` + Optional header to specify the beta version(s) you want to use. - The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` - - `type BetaDreamMemoryStoreInput` + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` - The memory store that a dream reads, given as an entry in `inputs`. + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` - - `Type BetaDreamMemoryStoreInputType` + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` - - `MemoryStoreID string` + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` - The ID of the memory store for the dream to read (`memstore_...`). + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` - The memory store must be in the same workspace as the dream and must not be archived. + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` - minLength: 1 + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` - - `type BetaDreamSessionsInput` + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` - The sessions that a dream reads, given as an entry in `inputs`. + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` - - `Type BetaDreamSessionsInputType` + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` - - `SessionIDs []string` + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists all the limits on a dream. + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` - - `Model BetaDreamNewParamsModelUnion` + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` - The model that runs a dream, given as a model ID or as an object with `id` and `speed`. + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` - In the object form, `speed` can only be `standard`. + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists the supported models. + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` - - `string` + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` - - `type BetaDreamModelConfigParam` + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` - The object form of `model` in a request to create a dream. + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` - - `ID string` + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` - The ID of the model to run the dream with. + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` - The ID can be 1 to 256 characters long. + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists the supported models. + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` - minLength: 1, maxLength: 256 + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` - - `Speed BetaDreamModelConfigParamSpeed Optional` + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` - How fast the model generates output for the dream. Defaults to `standard`. + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` - Dreams accept only `standard`. + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` - - `const BetaDreamModelConfigParamSpeedStandard BetaDreamModelConfigParamSpeed = "standard"` + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` - - `const BetaDreamModelConfigParamSpeedFast BetaDreamModelConfigParamSpeed = "fast"` + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` - - `Instructions param.Opt[string] Optional` + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` - Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#steer-with-instructions) for what kinds of instructions work well. + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` - minLength: 1, maxLength: 4096 + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` - - `OutputBehavior BetaOutputBehaviorUnionParam Optional` + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` - Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + + - `WorkspaceID param.Opt[string] Optional` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `type BetaUserProfileEnrollmentURL` + + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. + + - `Type BetaUserProfileEnrollmentURLType` + + Object type. Always `enrollment_url`. + + - `ExpiresAt Time` + + When this enrollment URL expires, in RFC 3339 format. + + format: date-time + + - `URL string` + + Enrollment URL to send to the end user. Valid until `expires_at`. + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaUserProfileEnrollmentURL, err := client.Beta.UserProfiles.NewEnrollmentURL( + context.TODO(), + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + anthropic.BetaUserProfileNewEnrollmentURLParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaUserProfileEnrollmentURL.ExpiresAt) +} +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "enrollment_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + +## Beta › User Profiles › Action URLs + +### Create Action URL + +`client.Beta.UserProfiles.ActionURLs.New(ctx, userProfileID, params) (*BetaUserProfileActionURL, error)` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `params BetaUserProfileActionURLNewParams` + + - `Action BetaUserProfileActionUnionParam` + + The action that the person who opens the URL takes. - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -81481,6 +82071,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81489,59 +82081,334 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `type BetaDream` +- `type BetaUserProfileActionURL` - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + A URL to give to the person who takes the requested action. - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + - `Type UserProfileActionURL` - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + Object type. Always `user_profile_action_url`. - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#how-it-works) for what a dream reads and produces. + - `ExpiresAt Time` - - `Type BetaDreamType` + When the URL stops working, in RFC 3339 format. - - `ID string` + format: date-time - The unique ID of the dream (`drm_...`). + - `URL string` - - `ArchivedAt Time` + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. +#### Example - format: date-time +```go +package main - - `CreatedAt Time` +import ( + "context" + "fmt" - When the dream was created, in RFC 3339. + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) - Lists of dreams are sorted by this time, newest first. +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaUserProfileActionURL, err := client.Beta.UserProfiles.ActionURLs.New( + context.TODO(), + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + anthropic.BetaUserProfileActionURLNewParams{ + Action: anthropic.BetaUserProfileActionUnionParam{ + OfEnrollEndUser: &anthropic.BetaUserProfileEnrollEndUserActionParam{}, + }, + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaUserProfileActionURL.ExpiresAt) +} +``` - format: date-time +##### Response (200) - - `EndedAt Time` +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. +## Beta › Dreams - format: date-time +### Create a Dream - - `Error BetaDreamError` +`client.Beta.Dreams.New(ctx, params) (*BetaDream, error)` - Why the dream failed, or `null` if `status` isn't `failed`. +**POST** `/v1/dreams` - - `Type string` +Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. - A code for why the dream failed, such as `timeout` or `internal_error`. +By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#errors) lists common error codes and when they occur. +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#create-a-dream) to learn more about creating dreams. - - `Message string` +#### Parameters - A human-readable explanation of why the dream failed. +- `params BetaDreamNewParams` - - `Inputs []BetaDreamInputUnion` + - `Inputs []BetaDreamInputUnionParam` - The sources that the dream reads, from the request that created it. + The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. + + - `type BetaDreamMemoryStoreInput` + + The memory store that a dream reads, given as an entry in `inputs`. + + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + + - `Type BetaDreamMemoryStoreInputType` + + - `MemoryStoreID string` + + The ID of the memory store for the dream to read (`memstore_...`). + + The memory store must be in the same workspace as the dream and must not be archived. + + minLength: 1 + + - `type BetaDreamSessionsInput` + + The sessions that a dream reads, given as an entry in `inputs`. + + - `Type BetaDreamSessionsInputType` + + - `SessionIDs []string` + + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists all the limits on a dream. + + - `Model BetaDreamNewParamsModelUnion` + + The model that runs a dream, given as a model ID or as an object with `id` and `speed`. + + In the object form, `speed` can only be `standard`. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists the supported models. + + - `string` + + - `type BetaDreamModelConfigParam` + + The object form of `model` in a request to create a dream. + + - `ID string` + + The ID of the model to run the dream with. + + The ID can be 1 to 256 characters long. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#limits) lists the supported models. + + minLength: 1, maxLength: 256 + + - `Speed BetaDreamModelConfigParamSpeed Optional` + + How fast the model generates output for the dream. Defaults to `standard`. + + Dreams accept only `standard`. + + - `const BetaDreamModelConfigParamSpeedStandard BetaDreamModelConfigParamSpeed = "standard"` + + - `const BetaDreamModelConfigParamSpeedFast BetaDreamModelConfigParamSpeed = "fast"` + + - `Instructions param.Opt[string] Optional` + + Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#steer-with-instructions) for what kinds of instructions work well. + + minLength: 1, maxLength: 4096 + + - `OutputBehavior BetaOutputBehaviorUnionParam Optional` + + Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + + - `WorkspaceID param.Opt[string] Optional` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `type BetaDream` + + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#how-it-works) for what a dream reads and produces. + + - `Type BetaDreamType` + + - `ID string` + + The unique ID of the dream (`drm_...`). + + - `ArchivedAt Time` + + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. + + format: date-time + + - `CreatedAt Time` + + When the dream was created, in RFC 3339. + + Lists of dreams are sorted by this time, newest first. + + format: date-time + + - `EndedAt Time` + + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. + + format: date-time + + - `Error BetaDreamError` + + Why the dream failed, or `null` if `status` isn't `failed`. + + - `Type string` + + A code for why the dream failed, such as `timeout` or `internal_error`. + + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=go#errors) lists common error codes and when they occur. + + - `Message string` + + A human-readable explanation of why the dream failed. + + - `Inputs []BetaDreamInputUnion` + + The sources that the dream reads, from the request that created it. - `type BetaDreamMemoryStoreInput` @@ -81974,6 +82841,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82404,6 +83273,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82833,6 +83704,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83262,6 +84135,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83693,6 +84568,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83893,6 +84770,8 @@ Fetches a tunnel by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84107,6 +84986,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84312,6 +85193,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84516,6 +85399,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84707,6 +85592,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84900,6 +85787,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85117,6 +86006,8 @@ Fetches a tunnel certificate by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85344,6 +86235,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85564,6 +86457,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -87524,6 +88419,8 @@ matched as the JWT's `iss` claim and is not fetched. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationIssuer` @@ -87857,6 +88754,8 @@ Archived issuers are excluded unless `include_archived=true`. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationIssuer` @@ -88180,6 +89079,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationIssuer` @@ -88585,6 +89486,8 @@ session. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationIssuer` @@ -88912,6 +89815,8 @@ issuer cannot be changed), or recreate them against another issuer. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationIssuer` @@ -89294,6 +90199,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRule` @@ -89643,6 +90550,8 @@ unless `include_archived=true`. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRule` @@ -89972,6 +90881,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRule` @@ -90360,6 +91271,8 @@ Console session. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRule` @@ -90696,6 +91609,8 @@ other scopes require a Console session. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRule` @@ -91039,6 +91954,8 @@ other scopes require a Console session. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRuleWorkspace` @@ -91253,6 +92170,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaFederationRuleWorkspace` @@ -91463,6 +92382,8 @@ Console session. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaOrganizationFederationRuleWorkspaceRemoveResponse` @@ -92209,6 +93130,8 @@ accounts. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccount` @@ -92455,6 +93378,8 @@ archived service accounts. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccount` @@ -92690,6 +93615,8 @@ Retrieve a service account by its ID (`svac_...`). - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccount` @@ -92943,6 +93870,8 @@ interactive credential (a user OAuth token or a Console session). - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccount` @@ -93182,6 +94111,8 @@ those rules first or change their target to another service account. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccount` @@ -93433,6 +94364,8 @@ rejected. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -93664,6 +94597,8 @@ page to recover. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -93885,6 +94820,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaOrganizationServiceAccountWorkspaceRemoveResponse` @@ -94719,6 +95656,8 @@ Create Workspace - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaWorkspace` @@ -95658,6 +96597,290 @@ func main() { } ``` +### Set Workspace Rate Limits + +`client.Beta.Organization.Workspaces.RateLimits.Update(ctx, rateLimitID, params) (*BetaWorkspaceRateLimit, error)` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `rateLimitID string` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `params BetaOrganizationWorkspaceRateLimitUpdateParams` + + - `WorkspaceID string` (path parameter) + + The ID of the workspace. + + - `Limits []BetaWorkspaceRateLimitUpdateValueParam` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `Type BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `const BetaWorkspaceRateLimitTypeFastItpmca BetaWorkspaceRateLimitType = "fast_itpmca"` + + - `const BetaWorkspaceRateLimitTypeFastOtpm BetaWorkspaceRateLimitType = "fast_otpm"` + + - `const BetaWorkspaceRateLimitTypeInputTokensPerMinute BetaWorkspaceRateLimitType = "input_tokens_per_minute"` + + - `const BetaWorkspaceRateLimitTypeInputTokensPerMinuteCacheAware BetaWorkspaceRateLimitType = "input_tokens_per_minute_cache_aware"` + + - `const BetaWorkspaceRateLimitTypeOutputTokensPerMinute BetaWorkspaceRateLimitType = "output_tokens_per_minute"` + + - `const BetaWorkspaceRateLimitTypeRequestsPerMinute BetaWorkspaceRateLimitType = "requests_per_minute"` + + - `const BetaWorkspaceRateLimitTypeTokensPerDay BetaWorkspaceRateLimitType = "tokens_per_day"` + + - `const BetaWorkspaceRateLimitTypeTokensPerMinute BetaWorkspaceRateLimitType = "tokens_per_minute"` + + - `const BetaWorkspaceRateLimitTypeToolUsesPerSecond BetaWorkspaceRateLimitType = "tool_uses_per_second"` + + - `Value int64` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `type BetaWorkspaceRateLimit` + + - `Type WorkspaceRateLimit` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `Group BetaWorkspaceRateLimitGroupUnion` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `type BetaOrganizationRateLimitModelGroup` + + - `Type ModelGroup` + + Always `model_group`: a family of models. + + default: model_group + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `DisplayName string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `type BetaOrganizationRateLimitBatchGroup` + + - `Type Batch` + + Always `batch`: the Message Batches API. + + default: batch + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `type BetaOrganizationRateLimitTokenCountGroup` + + - `Type TokenCount` + + Always `token_count`: the Token Count API. + + default: token_count + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `type BetaOrganizationRateLimitFilesGroup` + + - `Type Files` + + Always `files`: the Files API. + + default: files + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `type BetaOrganizationRateLimitSkillsGroup` + + - `Type Skills` + + Always `skills`: the Skills API. + + default: skills + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `type BetaOrganizationRateLimitWebSearchGroup` + + - `Type WebSearch` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `ID string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `Limits []BetaWorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `Type string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `OrgLimit int64` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `Source BetaWorkspaceRateLimitValueSourceUnion` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `type BetaWorkspaceRateLimitWorkspaceSource` + + - `Type Workspace` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `type BetaWorkspaceRateLimitOrganizationSource` + + - `Type Organization` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `Value int64` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `Models []string` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `RateLimitID string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `WorkspaceID string` + + ID of the Workspace this entry applies to. + + - `GroupType BetaWorkspaceRateLimitGroupType` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `const BetaWorkspaceRateLimitGroupTypeBatch BetaWorkspaceRateLimitGroupType = "batch"` + + - `const BetaWorkspaceRateLimitGroupTypeFiles BetaWorkspaceRateLimitGroupType = "files"` + + - `const BetaWorkspaceRateLimitGroupTypeModelGroup BetaWorkspaceRateLimitGroupType = "model_group"` + + - `const BetaWorkspaceRateLimitGroupTypeSkills BetaWorkspaceRateLimitGroupType = "skills"` + + - `const BetaWorkspaceRateLimitGroupTypeTokenCount BetaWorkspaceRateLimitGroupType = "token_count"` + + - `const BetaWorkspaceRateLimitGroupTypeWebSearch BetaWorkspaceRateLimitGroupType = "web_search"` + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaWorkspaceRateLimit, err := client.Beta.Organization.Workspaces.RateLimits.Update( + context.TODO(), + "rate_limit_id", + anthropic.BetaOrganizationWorkspaceRateLimitUpdateParams{ + WorkspaceID: "workspace_id", + Limits: []anthropic.BetaWorkspaceRateLimitUpdateValueParam{anthropic.BetaWorkspaceRateLimitUpdateValueParam{ + Type: anthropic.BetaWorkspaceRateLimitTypeFastItpmca, + Value: anthropic.Int(0), + }}, + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaWorkspaceRateLimit.RateLimitID) +} +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -96295,6 +97518,8 @@ omitted from the results. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -96521,6 +97746,8 @@ accounts cannot be added and are rejected. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -96739,6 +97966,8 @@ account returns 404. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -96960,6 +98189,8 @@ rejected. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaServiceAccountWorkspaceMember` @@ -97177,6 +98408,8 @@ membership. Archived workspaces return 400. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaOrganizationWorkspaceServiceAccountRemoveResponse` @@ -97300,7 +98533,7 @@ the remaining entries. - `ID string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `Group BetaOrganizationRateLimitGroupUnion` @@ -99797,7 +101030,7 @@ func main() { ### Get Token Usage Over Time -`client.Beta.Organization.Analytics.UsageReport.List(ctx, query) (*PageCursor[BetaAnalyticsUsageReportTimeBucket], error)` +`client.Beta.Organization.Analytics.UsageReport.List(ctx, query) (*ReportPageCursor[BetaAnalyticsUsageReportTimeBucket], error)` **GET** `/v1/organizations/analytics/usage_report` @@ -100159,7 +101392,7 @@ func main() { ### Get Per-User Token Usage -`client.Beta.Organization.Analytics.UserUsageReport.List(ctx, query) (*PageCursor[BetaAnalyticsUsageUsersItem], error)` +`client.Beta.Organization.Analytics.UserUsageReport.List(ctx, query) (*ReportPageCursor[BetaAnalyticsUsageUsersItem], error)` **GET** `/v1/organizations/analytics/user_usage_report` @@ -100577,7 +101810,7 @@ func main() { ### Get Cost Over Time -`client.Beta.Organization.Analytics.CostReport.List(ctx, query) (*PageCursor[BetaAnalyticsCostReportTimeBucket], error)` +`client.Beta.Organization.Analytics.CostReport.List(ctx, query) (*ReportPageCursor[BetaAnalyticsCostReportTimeBucket], error)` **GET** `/v1/organizations/analytics/cost_report` @@ -100940,7 +102173,7 @@ func main() { ### Get Per-User Cost -`client.Beta.Organization.Analytics.UserCostReport.List(ctx, query) (*PageCursor[BetaAnalyticsCostUsersItem], error)` +`client.Beta.Organization.Analytics.UserCostReport.List(ctx, query) (*ReportPageCursor[BetaAnalyticsCostUsersItem], error)` **GET** `/v1/organizations/analytics/user_cost_report` @@ -101518,6 +102751,8 @@ Anthropic account team. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSpendLimit` @@ -102095,6 +103330,8 @@ organizations only, not for Claude Console organizations. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSpendLimit` @@ -105301,6 +106538,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPlugin` @@ -105704,6 +106943,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPlugin` @@ -106127,6 +107368,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPlugin` @@ -106588,6 +107831,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPlugin` @@ -106999,6 +108244,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaDeletedPlugin` @@ -107208,6 +108455,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginVersion` @@ -107561,6 +108810,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginVersion` @@ -107902,6 +109153,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginVersion` @@ -108256,6 +109509,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaOrganizationPluginVersionDownloadResponse interface{…}` @@ -108450,286 +109705,290 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` -#### Returns - -- `type BetaPluginInstallationSetting` - - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. - - - `Type PluginInstallationSetting` - - Always `plugin_installation_setting`. - - default: plugin_installation_setting - - - `CreatedAt Time` - - When the target was first given a setting for this Plugin. - - format: date-time - - - `InstallationPreference BetaPluginInstallationSettingInstallationPreference` - - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `const BetaPluginInstallationSettingInstallationPreferenceAutoInstall BetaPluginInstallationSettingInstallationPreference = "auto_install"` - - - `const BetaPluginInstallationSettingInstallationPreferenceAvailable BetaPluginInstallationSettingInstallationPreference = "available"` - - - `const BetaPluginInstallationSettingInstallationPreferenceNotAvailable BetaPluginInstallationSettingInstallationPreference = "not_available"` - - - `const BetaPluginInstallationSettingInstallationPreferenceRequired BetaPluginInstallationSettingInstallationPreference = "required"` - - - `PluginID string` - - The Plugin's ID. - - - `Target BetaPluginInstallationSettingTargetUnion` - - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - - - `type BetaPluginTargetOrganization` - - - `Type Organization` - - Every member of the organization. - - default: organization - - - `type BetaPluginTargetRBACGroup` - - - `Type RBACGroup` - - An RBAC Group. - - default: rbac_group - - - `RBACGroupID string` - - The RBAC Group's ID. - - - `type BetaPluginTargetOrganizationMember` - - - `Type OrganizationMember` - - One member of the organization. - - default: organization_member - - - `UserID string` - - The member's User ID. - - - `UpdatedAt Time` - - When its setting last changed. - - format: date-time - -#### Example - -```go -package main - -import ( - "context" - "fmt" - - "github.com/anthropics/anthropic-sdk-go" - "github.com/anthropics/anthropic-sdk-go/option" -) - -func main() { - client := anthropic.NewClient( - option.WithAPIKey("my-anthropic-api-key"), - ) - page, err := client.Beta.Organization.Plugins.InstallationSettings.List( - context.TODO(), - "plugin_id", - anthropic.BetaOrganizationPluginInstallationSettingListParams{}, - ) - if err != nil { - panic(err.Error()) - } - fmt.Printf("%+v\n", page) -} -``` - -##### Response (200) - -```json -{ - "data": [ - { - "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` - -### Set Plugin Installation Setting - -`client.Beta.Organization.Plugins.InstallationSettings.Set(ctx, target, params) (*BetaPluginInstallationSetting, error)` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. - -Writing the value a target already holds of its own changes nothing. - -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. - -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `target string` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - -- `params BetaOrganizationPluginInstallationSettingSetParams` - - - `PluginID string` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - - - `InstallationPreference BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceAutoInstall BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "auto_install"` - - - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceAvailable BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "available"` - - - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceNotAvailable BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "not_available"` - - - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceRequired BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "required"` - - - `Betas []AnthropicBeta Optional` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` - - - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` - - - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` - - - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` - - - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` - - - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` - - - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` - - - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` - - - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` - - - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` - - - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` - - - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` - - - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` - - - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` - - - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` - - - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` - - - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` - - - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` - - - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` - - - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` - - - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` - - - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` - - - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` - - - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` - - - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` - - - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` - - - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` - - - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` - - - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` - - - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` - - - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` - - - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` - - - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` - - - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` - - - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` - - - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` - - - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` - - - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` - - - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` - - - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` - - - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` - - - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` - - - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` - - - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` - - - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` - - - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` - - - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` - - - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` - - - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` - - - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` - - - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaPluginInstallationSetting` + + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. + + - `Type PluginInstallationSetting` + + Always `plugin_installation_setting`. + + default: plugin_installation_setting + + - `CreatedAt Time` + + When the target was first given a setting for this Plugin. + + format: date-time + + - `InstallationPreference BetaPluginInstallationSettingInstallationPreference` + + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `const BetaPluginInstallationSettingInstallationPreferenceAutoInstall BetaPluginInstallationSettingInstallationPreference = "auto_install"` + + - `const BetaPluginInstallationSettingInstallationPreferenceAvailable BetaPluginInstallationSettingInstallationPreference = "available"` + + - `const BetaPluginInstallationSettingInstallationPreferenceNotAvailable BetaPluginInstallationSettingInstallationPreference = "not_available"` + + - `const BetaPluginInstallationSettingInstallationPreferenceRequired BetaPluginInstallationSettingInstallationPreference = "required"` + + - `PluginID string` + + The Plugin's ID. + + - `Target BetaPluginInstallationSettingTargetUnion` + + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + + - `type BetaPluginTargetOrganization` + + - `Type Organization` + + Every member of the organization. + + default: organization + + - `type BetaPluginTargetRBACGroup` + + - `Type RBACGroup` + + An RBAC Group. + + default: rbac_group + + - `RBACGroupID string` + + The RBAC Group's ID. + + - `type BetaPluginTargetOrganizationMember` + + - `Type OrganizationMember` + + One member of the organization. + + default: organization_member + + - `UserID string` + + The member's User ID. + + - `UpdatedAt Time` + + When its setting last changed. + + format: date-time + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + page, err := client.Beta.Organization.Plugins.InstallationSettings.List( + context.TODO(), + "plugin_id", + anthropic.BetaOrganizationPluginInstallationSettingListParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", page) +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` + +### Set Plugin Installation Setting + +`client.Beta.Organization.Plugins.InstallationSettings.Set(ctx, target, params) (*BetaPluginInstallationSetting, error)` + +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` + +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. + +Writing the value a target already holds of its own changes nothing. + +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `target string` (path parameter) + + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. + +- `params BetaOrganizationPluginInstallationSettingSetParams` + + - `PluginID string` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + + - `InstallationPreference BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference` + + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. + + - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceAutoInstall BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "auto_install"` + + - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceAvailable BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "available"` + + - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceNotAvailable BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "not_available"` + + - `const BetaOrganizationPluginInstallationSettingSetParamsInstallationPreferenceRequired BetaOrganizationPluginInstallationSettingSetParamsInstallationPreference = "required"` + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` #### Returns @@ -109002,6 +110261,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaDeletedPluginInstallationSetting` @@ -109261,6 +110522,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginShare` @@ -109538,6 +110801,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginMarketplace` @@ -109817,6 +111082,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginMarketplace` @@ -110108,6 +111375,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaPluginMarketplace` @@ -110407,280 +111676,284 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` -#### Returns - -- `type BetaPluginMarketplaceValidationReport` - - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. - - - `Type PluginMarketplaceValidationReport` - - Always `plugin_marketplace_validation_report`. - - default: plugin_marketplace_validation_report - - - `CommitSha string` - - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - - - `ManifestError string` - - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - - - `ManifestErrorCode string` - - A stable identifier for `manifest_error`; null when that is. - - - `PluginErrors []BetaPluginMarketplaceValidationPluginError` - - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - - `Error string` - - Why the plugin would be skipped by a synchronization. - - - `ErrorCode string` - - A stable identifier for the reason — the value to branch on. - - - `Name string` - - The plugin's name, as its entry in marketplace.json declares it. - - - `PluginWarnings []BetaPluginMarketplaceValidationPluginWarnings` - - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - - - `Name string` - - The plugin's name, as its entry in marketplace.json declares it. - - - `Warnings []BetaPluginMarketplaceValidationPluginWarning` - - The parts of the plugin a synchronization would leave out. - - - `ErrorCode string` - - A stable identifier for the kind of warning. - - - `Message string` - - What would be left out, and why. - - - `Ref string` - - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. - - - `TotalPluginCount int64` - - How many plugins marketplace.json declares; 0 when it could not be read. - - - `Valid bool` - - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. - -#### Example - -```go -package main - -import ( - "context" - "fmt" - - "github.com/anthropics/anthropic-sdk-go" - "github.com/anthropics/anthropic-sdk-go/option" -) - -func main() { - client := anthropic.NewClient( - option.WithAPIKey("my-anthropic-api-key"), - ) - betaPluginMarketplaceValidationReport, err := client.Beta.Organization.PluginMarketplaces.ValidateRepository(context.TODO(), anthropic.BetaOrganizationPluginMarketplaceValidateRepositoryParams{ - RepositoryURL: "https://github.com/example-org/example-marketplace", - }) - if err != nil { - panic(err.Error()) - } - fmt.Printf("%+v\n", betaPluginMarketplaceValidationReport.Valid) -} -``` - -##### Response (200) - -```json -{ - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ - { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] - } - ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false -} -``` - -### Validate Plugin Marketplace Archive - -`client.Beta.Organization.PluginMarketplaces.ValidateArchive(ctx, params) (*BetaPluginMarketplaceValidationReport, error)` - -**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - -Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace -directory, would synchronize into claude.ai, without connecting or storing it. - -To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. - -Nothing is recorded on the Compliance API activity feed. - -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=go#validate-marketplace-content) -in the Plugins API guide. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `params BetaOrganizationPluginMarketplaceValidateArchiveParams` - - - `Archive Reader` - - A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. - - format: binary - - - `Betas []AnthropicBeta Optional` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` - - - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` - - - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` - - - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` - - - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` - - - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` - - - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` - - - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` - - - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` - - - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` - - - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` - - - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` - - - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` - - - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` - - - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` - - - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` - - - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` - - - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` - - - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` - - - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` - - - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` - - - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` - - - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` - - - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` - - - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` - - - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` - - - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` - - - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` - - - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` - - - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` - - - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` - - - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` - - - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` - - - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` - - - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` - - - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` - - - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` - - - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` - - - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` - - - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` - - - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` - - - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` - - - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` - - - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` - - - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` - - - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` - - - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` - - - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` - - - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` - - - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` - - - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaPluginMarketplaceValidationReport` + + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. + + - `Type PluginMarketplaceValidationReport` + + Always `plugin_marketplace_validation_report`. + + default: plugin_marketplace_validation_report + + - `CommitSha string` + + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + + - `ManifestError string` + + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + + - `ManifestErrorCode string` + + A stable identifier for `manifest_error`; null when that is. + + - `PluginErrors []BetaPluginMarketplaceValidationPluginError` + + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + + - `Error string` + + Why the plugin would be skipped by a synchronization. + + - `ErrorCode string` + + A stable identifier for the reason — the value to branch on. + + - `Name string` + + The plugin's name, as its entry in marketplace.json declares it. + + - `PluginWarnings []BetaPluginMarketplaceValidationPluginWarnings` + + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + + - `Name string` + + The plugin's name, as its entry in marketplace.json declares it. + + - `Warnings []BetaPluginMarketplaceValidationPluginWarning` + + The parts of the plugin a synchronization would leave out. + + - `ErrorCode string` + + A stable identifier for the kind of warning. + + - `Message string` + + What would be left out, and why. + + - `Ref string` + + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + + - `TotalPluginCount int64` + + How many plugins marketplace.json declares; 0 when it could not be read. + + - `Valid bool` + + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaPluginMarketplaceValidationReport, err := client.Beta.Organization.PluginMarketplaces.ValidateRepository(context.TODO(), anthropic.BetaOrganizationPluginMarketplaceValidateRepositoryParams{ + RepositoryURL: "https://github.com/example-org/example-marketplace", + }) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaPluginMarketplaceValidationReport.Valid) +} +``` + +##### Response (200) + +```json +{ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ + { + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" + } + ], + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false +} +``` + +### Validate Plugin Marketplace Archive + +`client.Beta.Organization.PluginMarketplaces.ValidateArchive(ctx, params) (*BetaPluginMarketplaceValidationReport, error)` + +**POST** `/v1/organizations/plugin_marketplaces/validate_archive` + +Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace +directory, would synchronize into claude.ai, without connecting or storing it. + +To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. + +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. + +Nothing is recorded on the Compliance API activity feed. + +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=go#validate-marketplace-content) +in the Plugins API guide. + +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params BetaOrganizationPluginMarketplaceValidateArchiveParams` + + - `Archive Reader` + + A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. + + format: binary + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` #### Returns @@ -110972,6 +112245,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaTelemetryDestination` @@ -111341,6 +112616,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaTelemetryDestination` @@ -111698,6 +112975,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaTelemetryDestination` @@ -112096,6 +113375,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaTelemetryDestination` @@ -112454,17 +113735,1308 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaDeletedTelemetryDestination` + + Confirmation that a destination was deleted. + + - `Type TelemetryDestinationDeleted` + + - `ID string` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaDeletedTelemetryDestination, err := client.Beta.Organization.TelemetryDestinations.Delete( + context.TODO(), + "destination_id", + anthropic.BetaOrganizationTelemetryDestinationDeleteParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaDeletedTelemetryDestination.ID) +} +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +`client.Beta.Organization.TelemetryDestinations.Test(ctx, destinationID, body) (*BetaTelemetryDestinationTestResponse, error)` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Parameters + +- `destinationID string` (path parameter) + + ID of the destination to test (starts with `tdst_`). + +- `body BetaOrganizationTelemetryDestinationTestParams` + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaTelemetryDestinationTestResponse` + + The result of one test span sent to a destination. + + - `Type TelemetryDestinationTest` + + - `Result BetaTelemetryDestinationTestResultUnion` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `type BetaTelemetryDestinationTestSuccess` + + The destination answered the test span with a 2xx status. + + - `Type Success` + + - `type BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `Type Failure` + + - `Error string` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaTelemetryDestinationTestResponse, err := client.Beta.Organization.TelemetryDestinations.Test( + context.TODO(), + "destination_id", + anthropic.BetaOrganizationTelemetryDestinationTestParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaTelemetryDestinationTestResponse.Result) +} +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +`client.Beta.Organization.TelemetryDestinations.Workspaces.List(ctx, destinationID, params) (*PageCursor[BetaTelemetryDestinationWorkspace], error)` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destinationID string` (path parameter) + + ID of the destination (`tdst_...`). + +- `params BetaOrganizationTelemetryDestinationWorkspaceListParams` + + - `Limit param.Opt[int64] Optional` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + + - `Page param.Opt[string] Optional` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `Type TelemetryDestinationWorkspace` + + - `CreatedAt Time` + + Time the workspace was added to the list. + + format: date-time + + - `TelemetryDestinationID string` + + ID of the telemetry destination (`tdst_...`). + + - `WorkspaceID string` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + page, err := client.Beta.Organization.TelemetryDestinations.Workspaces.List( + context.TODO(), + "destination_id", + anthropic.BetaOrganizationTelemetryDestinationWorkspaceListParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", page) +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +`client.Beta.Organization.TelemetryDestinations.Workspaces.Add(ctx, workspaceID, params) (*BetaTelemetryDestinationWorkspace, error)` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `workspaceID string` (path parameter) + + ID of the workspace to add (`wrkspc_...`). + +- `params BetaOrganizationTelemetryDestinationWorkspaceAddParams` + + - `DestinationID string` (path parameter) + + ID of the destination (`tdst_...`). + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `Type TelemetryDestinationWorkspace` + + - `CreatedAt Time` + + Time the workspace was added to the list. + + format: date-time + + - `TelemetryDestinationID string` + + ID of the telemetry destination (`tdst_...`). + + - `WorkspaceID string` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaTelemetryDestinationWorkspace, err := client.Beta.Organization.TelemetryDestinations.Workspaces.Add( + context.TODO(), + "workspace_id", + anthropic.BetaOrganizationTelemetryDestinationWorkspaceAddParams{ + DestinationID: "destination_id", + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaTelemetryDestinationWorkspace.TelemetryDestinationID) +} +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`client.Beta.Organization.TelemetryDestinations.Workspaces.Remove(ctx, workspaceID, params) (*BetaDeletedTelemetryDestinationWorkspace, error)` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `workspaceID string` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). + +- `params BetaOrganizationTelemetryDestinationWorkspaceRemoveParams` + + - `DestinationID string` (path parameter) + + ID of the destination (`tdst_...`). + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaDeletedTelemetryDestinationWorkspace` + + Confirmation that a workspace was removed from a destination's list. + + - `Type TelemetryDestinationWorkspaceDeleted` + + - `TelemetryDestinationID string` + + ID of the telemetry destination (`tdst_...`). + + - `WorkspaceID string` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaDeletedTelemetryDestinationWorkspace, err := client.Beta.Organization.TelemetryDestinations.Workspaces.Remove( + context.TODO(), + "workspace_id", + anthropic.BetaOrganizationTelemetryDestinationWorkspaceRemoveParams{ + DestinationID: "destination_id", + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaDeletedTelemetryDestinationWorkspace.TelemetryDestinationID) +} +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`client.Beta.Organization.Webhooks.New(ctx, params) (*BetaNewOrganizationWebhookEndpoint, error)` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params BetaOrganizationWebhookNewParams` + + - `EnabledEvents []string` + + The event types to deliver to the endpoint. Must list at least one. + + - `const BetaOrganizationWebhookNewParamsEnabledEventUserProfileEnforcementActionOpened BetaOrganizationWebhookNewParamsEnabledEvent = "user_profile.enforcement_action_opened"` + + - `const BetaOrganizationWebhookNewParamsEnabledEventUserProfileEnforcementActionResolved BetaOrganizationWebhookNewParamsEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `URL string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + + - `Description param.Opt[string] Optional` + + Notes about the endpoint. + + - `Name param.Opt[string] Optional` + + A short label for the endpoint. + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + +#### Returns + +- `type BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `ID string` + + ID of the webhook endpoint. + + - `CreatedAt Time` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `Description string` + + Notes about the endpoint. An empty string when none were given. + + - `DisabledReason string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `EnabledEvents []string` + + The event types delivered to the endpoint. + + - `const BetaNewOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionOpened BetaNewOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_opened"` + + - `const BetaNewOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionResolved BetaNewOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `Name string` + + A short label for the endpoint. An empty string when none was given. + + - `SigningSecret string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `State BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `const BetaOrganizationWebhookEndpointStateDisabled BetaOrganizationWebhookEndpointState = "disabled"` + + - `const BetaOrganizationWebhookEndpointStateEnabled BetaOrganizationWebhookEndpointState = "enabled"` + + - `UpdatedAt Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `URL string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaNewOrganizationWebhookEndpoint, err := client.Beta.Organization.Webhooks.New(context.TODO(), anthropic.BetaOrganizationWebhookNewParams{ + EnabledEvents: []string{"user_profile.enforcement_action_opened"}, + URL: "x", + }) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaNewOrganizationWebhookEndpoint.ID) +} +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`client.Beta.Organization.Webhooks.List(ctx, params) (*Page[BetaOrganizationWebhookEndpoint], error)` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params BetaOrganizationWebhookListParams` + + - `AfterID param.Opt[string] Optional` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + + - `BeforeID param.Opt[string] Optional` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + + - `Limit param.Opt[int64] Optional` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + + - `Order BetaOrganizationWebhookListParamsOrder Optional` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `const BetaOrganizationWebhookListParamsOrderAsc BetaOrganizationWebhookListParamsOrder = "asc"` + + - `const BetaOrganizationWebhookListParamsOrderDesc BetaOrganizationWebhookListParamsOrder = "desc"` + + - `Betas []AnthropicBeta Optional` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns -- `type BetaDeletedTelemetryDestination` +- `type BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `Type TelemetryDestinationDeleted` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `ID string` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `CreatedAt Time` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `Description string` + + Notes about the endpoint. An empty string when none were given. + + - `DisabledReason string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `EnabledEvents []string` + + The event types delivered to the endpoint. + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionOpened BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_opened"` + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionResolved BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `Name string` + + A short label for the endpoint. An empty string when none was given. + + - `State BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `const BetaOrganizationWebhookEndpointStateDisabled BetaOrganizationWebhookEndpointState = "disabled"` + + - `const BetaOrganizationWebhookEndpointStateEnabled BetaOrganizationWebhookEndpointState = "enabled"` + + - `UpdatedAt Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `URL string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112483,15 +115055,11 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - betaDeletedTelemetryDestination, err := client.Beta.Organization.TelemetryDestinations.Delete( - context.TODO(), - "destination_id", - anthropic.BetaOrganizationTelemetryDestinationDeleteParams{}, - ) + page, err := client.Beta.Organization.Webhooks.List(context.TODO(), anthropic.BetaOrganizationWebhookListParams{}) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", betaDeletedTelemetryDestination.ID) + fmt.Printf("%+v\n", page) } ``` @@ -112499,30 +115067,50 @@ func main() { ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`client.Beta.Organization.TelemetryDestinations.Test(ctx, destinationID, body) (*BetaTelemetryDestinationTestResponse, error)` +`client.Beta.Organization.Webhooks.Get(ctx, webhookEndpointID, query) (*BetaOrganizationWebhookEndpoint, error)` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destinationID string` (path parameter) +- `webhookEndpointID string` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. -- `body BetaOrganizationTelemetryDestinationTestParams` + maxLength: 2048 + +- `query BetaOrganizationWebhookGetParams` - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -112626,33 +115214,62 @@ Send one test span, named `anthropic.test`, to the destination with its register - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns -- `type BetaTelemetryDestinationTestResponse` +- `type BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `Type TelemetryDestinationTest` + - `ID string` - - `Result BetaTelemetryDestinationTestResultUnion` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `CreatedAt Time` - - `type BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `Type Success` + - `Description string` - - `type BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `DisabledReason string` - - `Type Failure` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `Error string` + - `EnabledEvents []string` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionOpened BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_opened"` + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionResolved BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `Name string` + + A short label for the endpoint. An empty string when none was given. + + - `State BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `const BetaOrganizationWebhookEndpointStateDisabled BetaOrganizationWebhookEndpointState = "disabled"` + + - `const BetaOrganizationWebhookEndpointStateEnabled BetaOrganizationWebhookEndpointState = "enabled"` + + - `UpdatedAt Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `URL string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112671,15 +115288,15 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - betaTelemetryDestinationTestResponse, err := client.Beta.Organization.TelemetryDestinations.Test( + betaOrganizationWebhookEndpoint, err := client.Beta.Organization.Webhooks.Get( context.TODO(), - "destination_id", - anthropic.BetaOrganizationTelemetryDestinationTestParams{}, + "webhook_endpoint_id", + anthropic.BetaOrganizationWebhookGetParams{}, ) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", betaTelemetryDestinationTestResponse.Result) + fmt.Printf("%+v\n", betaOrganizationWebhookEndpoint.ID) } ``` @@ -112687,48 +115304,73 @@ func main() { ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +`client.Beta.Organization.Webhooks.Update(ctx, webhookEndpointID, params) (*BetaOrganizationWebhookEndpoint, error)` -`client.Beta.Organization.TelemetryDestinations.Workspaces.List(ctx, destinationID, params) (*PageCursor[BetaTelemetryDestinationWorkspace], error)` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +#### Parameters -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +- `webhookEndpointID string` (path parameter) -#### Parameters + ID of the webhook endpoint. -- `destinationID string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `params BetaOrganizationWebhookUpdateParams` -- `params BetaOrganizationTelemetryDestinationWorkspaceListParams` + - `Description param.Opt[string] Optional` - - `Limit param.Opt[int64] Optional` (query parameter) + Notes about the endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. + - `EnabledEvents []string Optional` - format: int32 + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. - - `Page param.Opt[string] Optional` (query parameter) + - `const BetaOrganizationWebhookUpdateParamsEnabledEventUserProfileEnforcementActionOpened BetaOrganizationWebhookUpdateParamsEnabledEvent = "user_profile.enforcement_action_opened"` - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `const BetaOrganizationWebhookUpdateParamsEnabledEventUserProfileEnforcementActionResolved BetaOrganizationWebhookUpdateParamsEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `Name param.Opt[string] Optional` + + A short label for the endpoint. + + - `State BetaOrganizationWebhookUpdateParamsState Optional` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `const BetaOrganizationWebhookUpdateParamsStateDisabled BetaOrganizationWebhookUpdateParamsState = "disabled"` + + - `const BetaOrganizationWebhookUpdateParamsStateEnabled BetaOrganizationWebhookUpdateParamsState = "enabled"` + + - `URL param.Opt[string] Optional` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -112832,29 +115474,62 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns -- `type BetaTelemetryDestinationWorkspace` +- `type BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `ID string` - - `Type TelemetryDestinationWorkspace` + ID of the webhook endpoint. - `CreatedAt Time` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `TelemetryDestinationID string` + - `Description string` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `WorkspaceID string` + - `DisabledReason string` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `EnabledEvents []string` + + The event types delivered to the endpoint. + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionOpened BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_opened"` + + - `const BetaOrganizationWebhookEndpointEnabledEventUserProfileEnforcementActionResolved BetaOrganizationWebhookEndpointEnabledEvent = "user_profile.enforcement_action_resolved"` + + - `Name string` + + A short label for the endpoint. An empty string when none was given. + + - `State BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `const BetaOrganizationWebhookEndpointStateDisabled BetaOrganizationWebhookEndpointState = "disabled"` + + - `const BetaOrganizationWebhookEndpointStateEnabled BetaOrganizationWebhookEndpointState = "enabled"` + + - `UpdatedAt Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `URL string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112873,15 +115548,15 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - page, err := client.Beta.Organization.TelemetryDestinations.Workspaces.List( + betaOrganizationWebhookEndpoint, err := client.Beta.Organization.Webhooks.Update( context.TODO(), - "destination_id", - anthropic.BetaOrganizationTelemetryDestinationWorkspaceListParams{}, + "webhook_endpoint_id", + anthropic.BetaOrganizationWebhookUpdateParams{}, ) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", page) + fmt.Printf("%+v\n", betaOrganizationWebhookEndpoint.ID) } ``` @@ -112889,47 +115564,43 @@ func main() { ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace +### Delete Organization Webhook Endpoint -`client.Beta.Organization.TelemetryDestinations.Workspaces.Add(ctx, workspaceID, params) (*BetaTelemetryDestinationWorkspace, error)` +`client.Beta.Organization.Webhooks.Delete(ctx, webhookEndpointID, body) (*BetaDeletedOrganizationWebhookEndpoint, error)` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Add one workspace to a destination's workspace list. +Delete an organization webhook endpoint. -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. - -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `workspaceID string` (path parameter) - - ID of the workspace to add (`wrkspc_...`). +- `webhookEndpointID string` (path parameter) -- `params BetaOrganizationTelemetryDestinationWorkspaceAddParams` + ID of the webhook endpoint. - - `DestinationID string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `body BetaOrganizationWebhookDeleteParams` - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -113033,29 +115704,23 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` -#### Returns - -- `type BetaTelemetryDestinationWorkspace` - - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` - - `Type TelemetryDestinationWorkspace` +#### Returns - - `CreatedAt Time` +- `type BetaDeletedOrganizationWebhookEndpoint` - Time the workspace was added to the list. + A deleted organization webhook endpoint. - format: date-time + - `Type WebhookEndpointDeleted` - - `TelemetryDestinationID string` + Always `webhook_endpoint_deleted`. - ID of the telemetry destination (`tdst_...`). + default: webhook_endpoint_deleted - - `WorkspaceID string` + - `ID string` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example @@ -113074,17 +115739,15 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - betaTelemetryDestinationWorkspace, err := client.Beta.Organization.TelemetryDestinations.Workspaces.Add( + betaDeletedOrganizationWebhookEndpoint, err := client.Beta.Organization.Webhooks.Delete( context.TODO(), - "workspace_id", - anthropic.BetaOrganizationTelemetryDestinationWorkspaceAddParams{ - DestinationID: "destination_id", - }, + "webhook_endpoint_id", + anthropic.BetaOrganizationWebhookDeleteParams{}, ) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", betaTelemetryDestinationWorkspace.TelemetryDestinationID) + fmt.Printf("%+v\n", betaDeletedOrganizationWebhookEndpoint.ID) } ``` @@ -113092,42 +115755,35 @@ func main() { ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace +### Regenerate Organization Webhook Endpoint Signing Secret -`client.Beta.Organization.TelemetryDestinations.Workspaces.Remove(ctx, workspaceID, params) (*BetaDeletedTelemetryDestinationWorkspace, error)` +`client.Beta.Organization.Webhooks.RegenerateSigningSecret(ctx, webhookEndpointID, body) (*BetaOrganizationWebhookEndpointSigningSecret, error)` -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Remove one workspace from a destination's workspace list. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. - -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=go#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `workspaceID string` (path parameter) +- `webhookEndpointID string` (path parameter) - ID of the workspace to remove (`wrkspc_...`). + ID of the webhook endpoint. -- `params BetaOrganizationTelemetryDestinationWorkspaceRemoveParams` - - - `DestinationID string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `body BetaOrganizationWebhookRegenerateSigningSecretParams` - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -113231,21 +115887,17 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` -#### Returns - -- `type BetaDeletedTelemetryDestinationWorkspace` - - Confirmation that a workspace was removed from a destination's list. + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` - - `Type TelemetryDestinationWorkspaceDeleted` +#### Returns - - `TelemetryDestinationID string` +- `type BetaOrganizationWebhookEndpointSigningSecret` - ID of the telemetry destination (`tdst_...`). + An organization webhook endpoint's new signing secret. - - `WorkspaceID string` + - `SigningSecret string` - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example @@ -113264,17 +115916,15 @@ func main() { client := anthropic.NewClient( option.WithAPIKey("my-anthropic-api-key"), ) - betaDeletedTelemetryDestinationWorkspace, err := client.Beta.Organization.TelemetryDestinations.Workspaces.Remove( + betaOrganizationWebhookEndpointSigningSecret, err := client.Beta.Organization.Webhooks.RegenerateSigningSecret( context.TODO(), - "workspace_id", - anthropic.BetaOrganizationTelemetryDestinationWorkspaceRemoveParams{ - DestinationID: "destination_id", - }, + "webhook_endpoint_id", + anthropic.BetaOrganizationWebhookRegenerateSigningSecretParams{}, ) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", betaDeletedTelemetryDestinationWorkspace.TelemetryDestinationID) + fmt.Printf("%+v\n", betaOrganizationWebhookEndpointSigningSecret.SigningSecret) } ``` @@ -113282,8 +115932,6 @@ func main() { ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/go/beta/agents.md b/content/en/api/go/beta/agents.md index eb3a552f20..52990c5221 100644 --- a/content/en/api/go/beta/agents.md +++ b/content/en/api/go/beta/agents.md @@ -889,6 +889,8 @@ Create Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1957,6 +1959,8 @@ List Agents - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3009,6 +3013,8 @@ Get Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4826,6 +4832,8 @@ Update Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5873,6 +5881,8 @@ Archive Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13306,6 +13316,8 @@ List Agent Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/archive.md b/content/en/api/go/beta/agents/archive.md index 20f7ce0012..e6b98b54f7 100644 --- a/content/en/api/go/beta/agents/archive.md +++ b/content/en/api/go/beta/agents/archive.md @@ -125,6 +125,8 @@ Archive Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/create.md b/content/en/api/go/beta/agents/create.md index cca8feda96..8ad5933811 100644 --- a/content/en/api/go/beta/agents/create.md +++ b/content/en/api/go/beta/agents/create.md @@ -887,6 +887,8 @@ Create Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/list.md b/content/en/api/go/beta/agents/list.md index bdd49d3f21..50eba6f9ff 100644 --- a/content/en/api/go/beta/agents/list.md +++ b/content/en/api/go/beta/agents/list.md @@ -147,6 +147,8 @@ List Agents - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/retrieve.md b/content/en/api/go/beta/agents/retrieve.md index 3a7a3e9cbf..b28ba3f1db 100644 --- a/content/en/api/go/beta/agents/retrieve.md +++ b/content/en/api/go/beta/agents/retrieve.md @@ -131,6 +131,8 @@ Get Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/update.md b/content/en/api/go/beta/agents/update.md index 963f7ab402..d48bcad053 100644 --- a/content/en/api/go/beta/agents/update.md +++ b/content/en/api/go/beta/agents/update.md @@ -897,6 +897,8 @@ Update Agent - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/versions.md b/content/en/api/go/beta/agents/versions.md index 86b93fa48a..492a8e2f8f 100644 --- a/content/en/api/go/beta/agents/versions.md +++ b/content/en/api/go/beta/agents/versions.md @@ -137,6 +137,8 @@ List Agent Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/agents/versions/list.md b/content/en/api/go/beta/agents/versions/list.md index 15161b4ff4..2e8ac3d5b9 100644 --- a/content/en/api/go/beta/agents/versions/list.md +++ b/content/en/api/go/beta/agents/versions/list.md @@ -135,6 +135,8 @@ List Agent Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployment_runs.md b/content/en/api/go/beta/deployment_runs.md index e4ec318090..7325615765 100644 --- a/content/en/api/go/beta/deployment_runs.md +++ b/content/en/api/go/beta/deployment_runs.md @@ -169,6 +169,8 @@ List Deployment Runs - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -576,6 +578,8 @@ Get Deployment Run - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployment_runs/list.md b/content/en/api/go/beta/deployment_runs/list.md index c1882a58e6..d8b34a02cd 100644 --- a/content/en/api/go/beta/deployment_runs/list.md +++ b/content/en/api/go/beta/deployment_runs/list.md @@ -167,6 +167,8 @@ List Deployment Runs - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployment_runs/retrieve.md b/content/en/api/go/beta/deployment_runs/retrieve.md index 35f515c0c6..b36fb6e15d 100644 --- a/content/en/api/go/beta/deployment_runs/retrieve.md +++ b/content/en/api/go/beta/deployment_runs/retrieve.md @@ -125,6 +125,8 @@ Get Deployment Run - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments.md b/content/en/api/go/beta/deployments.md index d868c814e8..754c725813 100644 --- a/content/en/api/go/beta/deployments.md +++ b/content/en/api/go/beta/deployments.md @@ -495,6 +495,8 @@ Create Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1282,6 +1284,8 @@ List Deployments - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2027,6 +2031,8 @@ Get Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3143,6 +3149,8 @@ Update Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3887,6 +3895,8 @@ Archive Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4631,6 +4641,8 @@ Run Deployment Now - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5037,6 +5049,8 @@ Pause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5781,6 +5795,8 @@ Unpause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/archive.md b/content/en/api/go/beta/deployments/archive.md index f37ba99faa..81d6919d02 100644 --- a/content/en/api/go/beta/deployments/archive.md +++ b/content/en/api/go/beta/deployments/archive.md @@ -125,6 +125,8 @@ Archive Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/create.md b/content/en/api/go/beta/deployments/create.md index eb08f69ff2..1e468da6b5 100644 --- a/content/en/api/go/beta/deployments/create.md +++ b/content/en/api/go/beta/deployments/create.md @@ -493,6 +493,8 @@ Create Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/list.md b/content/en/api/go/beta/deployments/list.md index fc2f9e7ce0..76d504b00e 100644 --- a/content/en/api/go/beta/deployments/list.md +++ b/content/en/api/go/beta/deployments/list.md @@ -155,6 +155,8 @@ List Deployments - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/pause.md b/content/en/api/go/beta/deployments/pause.md index 90bde8f480..f4c71612c1 100644 --- a/content/en/api/go/beta/deployments/pause.md +++ b/content/en/api/go/beta/deployments/pause.md @@ -125,6 +125,8 @@ Pause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/retrieve.md b/content/en/api/go/beta/deployments/retrieve.md index 33e5640b87..001c6e4e17 100644 --- a/content/en/api/go/beta/deployments/retrieve.md +++ b/content/en/api/go/beta/deployments/retrieve.md @@ -125,6 +125,8 @@ Get Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/run.md b/content/en/api/go/beta/deployments/run.md index 50e96d0aa9..e7b1fc3b70 100644 --- a/content/en/api/go/beta/deployments/run.md +++ b/content/en/api/go/beta/deployments/run.md @@ -125,6 +125,8 @@ Run Deployment Now - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/unpause.md b/content/en/api/go/beta/deployments/unpause.md index 4048aafae6..a249130516 100644 --- a/content/en/api/go/beta/deployments/unpause.md +++ b/content/en/api/go/beta/deployments/unpause.md @@ -125,6 +125,8 @@ Unpause Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/deployments/update.md b/content/en/api/go/beta/deployments/update.md index b6a537f6ed..0d4597705e 100644 --- a/content/en/api/go/beta/deployments/update.md +++ b/content/en/api/go/beta/deployments/update.md @@ -497,6 +497,8 @@ Update Deployment - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments.md b/content/en/api/go/beta/environments.md index bb10a208ea..2117e19b5e 100644 --- a/content/en/api/go/beta/environments.md +++ b/content/en/api/go/beta/environments.md @@ -239,6 +239,8 @@ Create a new environment with the specified configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -587,6 +589,8 @@ List environments with pagination support. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -926,6 +930,8 @@ Retrieve a specific environment by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1380,6 +1386,8 @@ Update an existing environment's configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1718,6 +1726,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1898,6 +1908,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2705,6 +2717,8 @@ Retrieve detailed information about a specific work item. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2983,6 +2997,8 @@ Long poll for work items in the queue. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `AnthropicWorkerID param.Opt[string] Optional` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3247,6 +3263,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWork` @@ -3517,6 +3535,8 @@ Record a heartbeat for a work item to maintain the lease. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWorkHeartbeatResponse` @@ -3726,6 +3746,8 @@ Stop a work item, initiating graceful or forced shutdown. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4003,6 +4025,8 @@ List work items in an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + #### Returns - `type BetaSelfHostedWork` @@ -4272,6 +4296,8 @@ Update work item metadata with merge semantics. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4541,6 +4567,8 @@ Get statistics about the work queue for an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/archive.md b/content/en/api/go/beta/environments/archive.md index 5af4b8864c..fac55ccfe2 100644 --- a/content/en/api/go/beta/environments/archive.md +++ b/content/en/api/go/beta/environments/archive.md @@ -123,6 +123,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/create.md b/content/en/api/go/beta/environments/create.md index d92e6969f0..68f63dfdb0 100644 --- a/content/en/api/go/beta/environments/create.md +++ b/content/en/api/go/beta/environments/create.md @@ -237,6 +237,8 @@ Create a new environment with the specified configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/delete.md b/content/en/api/go/beta/environments/delete.md index 5552266179..7e6ed27d15 100644 --- a/content/en/api/go/beta/environments/delete.md +++ b/content/en/api/go/beta/environments/delete.md @@ -123,6 +123,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/list.md b/content/en/api/go/beta/environments/list.md index 89576b74d0..ab39c136e9 100644 --- a/content/en/api/go/beta/environments/list.md +++ b/content/en/api/go/beta/environments/list.md @@ -135,6 +135,8 @@ List environments with pagination support. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/retrieve.md b/content/en/api/go/beta/environments/retrieve.md index 443ff94c7e..1b7eefcef3 100644 --- a/content/en/api/go/beta/environments/retrieve.md +++ b/content/en/api/go/beta/environments/retrieve.md @@ -123,6 +123,8 @@ Retrieve a specific environment by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/update.md b/content/en/api/go/beta/environments/update.md index 76d98fe1a1..1fc1580f45 100644 --- a/content/en/api/go/beta/environments/update.md +++ b/content/en/api/go/beta/environments/update.md @@ -239,6 +239,8 @@ Update an existing environment's configuration. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/work.md b/content/en/api/go/beta/environments/work.md index b7d1a03525..17a7b3803f 100644 --- a/content/en/api/go/beta/environments/work.md +++ b/content/en/api/go/beta/environments/work.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -407,6 +409,8 @@ Long poll for work items in the queue. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `AnthropicWorkerID param.Opt[string] Optional` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -671,6 +675,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type BetaSelfHostedWork` @@ -941,6 +947,8 @@ Record a heartbeat for a work item to maintain the lease. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type BetaSelfHostedWorkHeartbeatResponse` @@ -1150,6 +1158,8 @@ Stop a work item, initiating graceful or forced shutdown. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1427,6 +1437,8 @@ List work items in an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type BetaSelfHostedWork` @@ -1696,6 +1708,8 @@ Update work item metadata with merge semantics. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1965,6 +1979,8 @@ Get statistics about the work queue for an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/work/ack.md b/content/en/api/go/beta/environments/work/ack.md index ff37473de9..c1693d6385 100644 --- a/content/en/api/go/beta/environments/work/ack.md +++ b/content/en/api/go/beta/environments/work/ack.md @@ -127,6 +127,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type BetaSelfHostedWork` diff --git a/content/en/api/go/beta/environments/work/heartbeat.md b/content/en/api/go/beta/environments/work/heartbeat.md index 9da9afb49a..fb8466d3c8 100644 --- a/content/en/api/go/beta/environments/work/heartbeat.md +++ b/content/en/api/go/beta/environments/work/heartbeat.md @@ -135,6 +135,8 @@ Record a heartbeat for a work item to maintain the lease. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type BetaSelfHostedWorkHeartbeatResponse` diff --git a/content/en/api/go/beta/environments/work/list.md b/content/en/api/go/beta/environments/work/list.md index ff990205c0..9eae0b9b7a 100644 --- a/content/en/api/go/beta/environments/work/list.md +++ b/content/en/api/go/beta/environments/work/list.md @@ -135,6 +135,8 @@ List work items in an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type BetaSelfHostedWork` diff --git a/content/en/api/go/beta/environments/work/poll.md b/content/en/api/go/beta/environments/work/poll.md index aa0b664364..f7a17de048 100644 --- a/content/en/api/go/beta/environments/work/poll.md +++ b/content/en/api/go/beta/environments/work/poll.md @@ -137,6 +137,8 @@ Long poll for work items in the queue. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `AnthropicWorkerID param.Opt[string] Optional` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/go/beta/environments/work/retrieve.md b/content/en/api/go/beta/environments/work/retrieve.md index 0434aa4864..f7b6957baa 100644 --- a/content/en/api/go/beta/environments/work/retrieve.md +++ b/content/en/api/go/beta/environments/work/retrieve.md @@ -127,6 +127,8 @@ Retrieve detailed information about a specific work item. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/work/stats.md b/content/en/api/go/beta/environments/work/stats.md index b5bd85d32c..4a348b4408 100644 --- a/content/en/api/go/beta/environments/work/stats.md +++ b/content/en/api/go/beta/environments/work/stats.md @@ -123,6 +123,8 @@ Get statistics about the work queue for an environment. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/work/stop.md b/content/en/api/go/beta/environments/work/stop.md index 92bafabb48..d8421303f7 100644 --- a/content/en/api/go/beta/environments/work/stop.md +++ b/content/en/api/go/beta/environments/work/stop.md @@ -131,6 +131,8 @@ Stop a work item, initiating graceful or forced shutdown. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/environments/work/update.md b/content/en/api/go/beta/environments/work/update.md index bc55d2b3bf..8ca7ecea41 100644 --- a/content/en/api/go/beta/environments/work/update.md +++ b/content/en/api/go/beta/environments/work/update.md @@ -131,6 +131,8 @@ Update work item metadata with merge semantics. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files.md b/content/en/api/go/beta/files.md index a59c9faf3e..da0fb20b81 100644 --- a/content/en/api/go/beta/files.md +++ b/content/en/api/go/beta/files.md @@ -135,6 +135,8 @@ Upload File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -391,6 +393,8 @@ List Files - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -632,6 +636,8 @@ Download File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -793,6 +799,8 @@ Get File Metadata - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1033,6 +1041,8 @@ Delete File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files/delete.md b/content/en/api/go/beta/files/delete.md index 56377cd760..fc25a331ab 100644 --- a/content/en/api/go/beta/files/delete.md +++ b/content/en/api/go/beta/files/delete.md @@ -125,6 +125,8 @@ Delete File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files/download.md b/content/en/api/go/beta/files/download.md index 744c9b5a5b..9ea6c38e20 100644 --- a/content/en/api/go/beta/files/download.md +++ b/content/en/api/go/beta/files/download.md @@ -125,6 +125,8 @@ Download File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files/list.md b/content/en/api/go/beta/files/list.md index 5dd5c5c9aa..1f891a23ec 100644 --- a/content/en/api/go/beta/files/list.md +++ b/content/en/api/go/beta/files/list.md @@ -141,6 +141,8 @@ List Files - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files/retrieve_metadata.md b/content/en/api/go/beta/files/retrieve_metadata.md index ae249424d8..e55f253350 100644 --- a/content/en/api/go/beta/files/retrieve_metadata.md +++ b/content/en/api/go/beta/files/retrieve_metadata.md @@ -125,6 +125,8 @@ Get File Metadata - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/files/upload.md b/content/en/api/go/beta/files/upload.md index de497d0439..b5b1af1e06 100644 --- a/content/en/api/go/beta/files/upload.md +++ b/content/en/api/go/beta/files/upload.md @@ -133,6 +133,8 @@ Upload File - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/memory_stores.md b/content/en/api/go/beta/memory_stores.md index 66b3485b61..e90261681b 100644 --- a/content/en/api/go/beta/memory_stores.md +++ b/content/en/api/go/beta/memory_stores.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/go/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `client.Beta.MemoryStores.New(ctx, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters @@ -19,19 +19,25 @@ Create a memory store - `Name string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Description param.Opt[string] Optional` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Metadata map[string, string] Optional` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Betas []AnthropicBeta Optional` (header parameter) @@ -139,6 +145,8 @@ Create a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,27 +163,33 @@ Create a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -183,7 +197,9 @@ Create a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -231,13 +247,13 @@ func main() { } ``` -## List memory stores +## List Memory Stores `client.Beta.MemoryStores.List(ctx, params) (*PageCursor[BetaManagedAgentsMemoryStore], error)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters @@ -245,13 +261,13 @@ List memory stores - `CreatedAtGte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `CreatedAtLte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -267,7 +283,7 @@ List memory stores - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -375,6 +391,8 @@ List memory stores - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -391,27 +409,33 @@ List memory stores - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -419,7 +443,9 @@ List memory stores - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -468,19 +494,19 @@ func main() { } ``` -## Retrieve a memory store +## Retrieve a Memory Store `client.Beta.MemoryStores.Get(ctx, memoryStoreID, query) (*BetaManagedAgentsMemoryStore, error)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `query BetaMemoryStoreGetParams` @@ -590,6 +616,8 @@ Retrieve a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -606,27 +634,33 @@ Retrieve a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -634,7 +668,9 @@ Retrieve a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -684,35 +720,41 @@ func main() { } ``` -## Update a memory store +## Update a Memory Store `client.Beta.MemoryStores.Update(ctx, memoryStoreID, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params BetaMemoryStoreUpdateParams` - `Description param.Opt[string] Optional` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Metadata map[string, string] Optional` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Name param.Opt[string] Optional` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -822,6 +864,8 @@ Update a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -838,27 +882,33 @@ Update a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -866,7 +916,9 @@ Update a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -916,19 +968,21 @@ func main() { } ``` -## Delete a memory store +## Delete a Memory Store `client.Beta.MemoryStores.Delete(ctx, memoryStoreID, body) (*BetaManagedAgentsDeletedMemoryStore, error)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `body BetaMemoryStoreDeleteParams` @@ -1038,6 +1092,8 @@ Delete a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1094,19 +1150,21 @@ func main() { } ``` -## Archive a memory store +## Archive a Memory Store `client.Beta.MemoryStores.Archive(ctx, memoryStoreID, body) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `body BetaMemoryStoreArchiveParams` @@ -1216,6 +1274,8 @@ Archive a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1232,27 +1292,33 @@ Archive a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -1260,7 +1326,9 @@ Archive a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1334,27 +1402,33 @@ func main() { - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -1362,19 +1436,21 @@ func main() { - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `client.Beta.MemoryStores.Memories.New(ctx, memoryStoreID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1386,17 +1462,23 @@ Create a memory - `Content param.Opt[string]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `Path string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -1504,6 +1586,8 @@ Create a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1514,13 +1598,19 @@ Create a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -1528,7 +1618,7 @@ Create a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1544,7 +1634,11 @@ Create a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -1552,13 +1646,17 @@ Create a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1609,13 +1707,13 @@ func main() { } ``` -### List memories +### List Memories `client.Beta.MemoryStores.Memories.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryListItemUnion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1627,27 +1725,35 @@ List memories - `Depth param.Opt[int64] Optional` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Limit param.Opt[int64] Optional` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `PathPrefix param.Opt[string] Optional` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Betas []AnthropicBeta Optional` (header parameter) @@ -1755,6 +1861,8 @@ List memories - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1765,17 +1873,23 @@ List memories - `type BetaManagedAgentsMemoryListItemUnion interface{…}` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -1783,7 +1897,7 @@ List memories - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1799,7 +1913,11 @@ List memories - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -1807,17 +1925,23 @@ List memories - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` @@ -1876,13 +2000,13 @@ func main() { } ``` -### Retrieve a memory +### Retrieve a Memory `client.Beta.MemoryStores.Memories.Get(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1898,7 +2022,9 @@ Retrieve a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -2006,6 +2132,8 @@ Retrieve a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2016,13 +2144,19 @@ Retrieve a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -2030,7 +2164,7 @@ Retrieve a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2046,7 +2180,11 @@ Retrieve a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -2054,13 +2192,17 @@ Retrieve a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2110,13 +2252,13 @@ func main() { } ``` -### Update a memory +### Update a Memory `client.Beta.MemoryStores.Memories.Update(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -2132,7 +2274,9 @@ Update a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Content param.Opt[string] Optional` @@ -2140,13 +2284,17 @@ Update a memory - `Path param.Opt[string] Optional` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Precondition BetaManagedAgentsPreconditionParam Optional` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `Betas []AnthropicBeta Optional` (header parameter) @@ -2254,6 +2402,8 @@ Update a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2264,13 +2414,19 @@ Update a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -2278,7 +2434,7 @@ Update a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2294,7 +2450,11 @@ Update a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -2302,13 +2462,17 @@ Update a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2358,13 +2522,13 @@ func main() { } ``` -### Delete a memory +### Delete a Memory `client.Beta.MemoryStores.Memories.Delete(ctx, memoryID, params) (*BetaManagedAgentsDeletedMemory, error)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2490,6 +2654,8 @@ Delete a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2500,7 +2666,11 @@ Delete a memory - `type BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about how long versions are kept. - `Type BetaManagedAgentsDeletedMemoryType` @@ -2550,13 +2720,13 @@ func main() { ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `client.Beta.MemoryStores.MemoryVersions.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryVersion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2584,7 +2754,9 @@ List memory versions - `Limit param.Opt[int64] Optional` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2592,7 +2764,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Operation BetaManagedAgentsMemoryVersionOperation Optional` (query parameter) @@ -2612,7 +2784,9 @@ List memory versions - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -2720,6 +2894,8 @@ List memory versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2730,7 +2906,13 @@ List memory versions - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -2746,7 +2928,9 @@ List memory versions - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -2784,7 +2968,11 @@ List memory versions - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -2840,7 +3028,11 @@ List memory versions - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -2908,13 +3100,13 @@ func main() { } ``` -### Retrieve a memory version +### Retrieve a Memory Version `client.Beta.MemoryStores.MemoryVersions.Get(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2930,7 +3122,9 @@ Retrieve a memory version - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -3038,6 +3232,8 @@ Retrieve a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3048,7 +3244,13 @@ Retrieve a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -3064,7 +3266,9 @@ Retrieve a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -3102,7 +3306,11 @@ Retrieve a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -3158,7 +3366,11 @@ Retrieve a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -3223,13 +3435,13 @@ func main() { } ``` -### Redact a memory version +### Redact a Memory Version `client.Beta.MemoryStores.MemoryVersions.Redact(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3349,6 +3561,8 @@ Redact a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3359,7 +3573,13 @@ Redact a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -3375,7 +3595,9 @@ Redact a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -3413,7 +3635,11 @@ Redact a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -3469,7 +3695,11 @@ Redact a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/go/beta/memory_stores/archive.md b/content/en/api/go/beta/memory_stores/archive.md index b776cec98e..48c9c5112d 100644 --- a/content/en/api/go/beta/memory_stores/archive.md +++ b/content/en/api/go/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `client.Beta.MemoryStores.Archive(ctx, memoryStoreID, body) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `body BetaMemoryStoreArchiveParams` @@ -125,6 +127,8 @@ Archive a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +145,33 @@ Archive a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -169,7 +179,9 @@ Archive a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/go/beta/memory_stores/create.md b/content/en/api/go/beta/memory_stores/create.md index 6c42a45f1a..46a44bd4de 100644 --- a/content/en/api/go/beta/memory_stores/create.md +++ b/content/en/api/go/beta/memory_stores/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `client.Beta.MemoryStores.New(ctx, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters @@ -17,19 +17,25 @@ Create a memory store - `Name string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Description param.Opt[string] Optional` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Metadata map[string, string] Optional` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Betas []AnthropicBeta Optional` (header parameter) @@ -137,6 +143,8 @@ Create a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,27 +161,33 @@ Create a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -181,7 +195,9 @@ Create a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/go/beta/memory_stores/delete.md b/content/en/api/go/beta/memory_stores/delete.md index 0bcbc307b7..f64623069d 100644 --- a/content/en/api/go/beta/memory_stores/delete.md +++ b/content/en/api/go/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `client.Beta.MemoryStores.Delete(ctx, memoryStoreID, body) (*BetaManagedAgentsDeletedMemoryStore, error)` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `body BetaMemoryStoreDeleteParams` @@ -125,6 +127,8 @@ Delete a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/memory_stores/list.md b/content/en/api/go/beta/memory_stores/list.md index 9bf82131c8..c74084deb5 100644 --- a/content/en/api/go/beta/memory_stores/list.md +++ b/content/en/api/go/beta/memory_stores/list.md @@ -1,15 +1,15 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `client.Beta.MemoryStores.List(ctx, params) (*PageCursor[BetaManagedAgentsMemoryStore], error)` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters @@ -17,13 +17,13 @@ List memory stores - `CreatedAtGte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `CreatedAtLte param.Opt[Time] Optional` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -39,7 +39,7 @@ List memory stores - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -147,6 +147,8 @@ List memory stores - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,27 +165,33 @@ List memory stores - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -191,7 +199,9 @@ List memory stores - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/go/beta/memory_stores/memories.md b/content/en/api/go/beta/memory_stores/memories.md index e9b98826ea..8be6fcf4cc 100644 --- a/content/en/api/go/beta/memory_stores/memories.md +++ b/content/en/api/go/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `client.Beta.MemoryStores.Memories.New(ctx, memoryStoreID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -23,17 +23,23 @@ Create a memory - `Content param.Opt[string]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `Path string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -141,6 +147,8 @@ Create a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,13 +159,19 @@ Create a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -165,7 +179,7 @@ Create a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -181,7 +195,11 @@ Create a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -189,13 +207,17 @@ Create a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -246,13 +268,13 @@ func main() { } ``` -## List memories +## List Memories `client.Beta.MemoryStores.Memories.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryListItemUnion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -264,27 +286,35 @@ List memories - `Depth param.Opt[int64] Optional` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Limit param.Opt[int64] Optional` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `PathPrefix param.Opt[string] Optional` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Betas []AnthropicBeta Optional` (header parameter) @@ -392,6 +422,8 @@ List memories - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -402,17 +434,23 @@ List memories - `type BetaManagedAgentsMemoryListItemUnion interface{…}` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -420,7 +458,7 @@ List memories - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -436,7 +474,11 @@ List memories - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -444,17 +486,23 @@ List memories - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` @@ -513,13 +561,13 @@ func main() { } ``` -## Retrieve a memory +## Retrieve a Memory `client.Beta.MemoryStores.Memories.Get(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -535,7 +583,9 @@ Retrieve a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -643,6 +693,8 @@ Retrieve a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -653,13 +705,19 @@ Retrieve a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -667,7 +725,7 @@ Retrieve a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -683,7 +741,11 @@ Retrieve a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -691,13 +753,17 @@ Retrieve a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -747,13 +813,13 @@ func main() { } ``` -## Update a memory +## Update a Memory `client.Beta.MemoryStores.Memories.Update(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -769,7 +835,9 @@ Update a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Content param.Opt[string] Optional` @@ -777,13 +845,17 @@ Update a memory - `Path param.Opt[string] Optional` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Precondition BetaManagedAgentsPreconditionParam Optional` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `Betas []AnthropicBeta Optional` (header parameter) @@ -891,6 +963,8 @@ Update a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -901,13 +975,19 @@ Update a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -915,7 +995,7 @@ Update a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -931,7 +1011,11 @@ Update a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -939,13 +1023,17 @@ Update a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -995,13 +1083,13 @@ func main() { } ``` -## Delete a memory +## Delete a Memory `client.Beta.MemoryStores.Memories.Delete(ctx, memoryID, params) (*BetaManagedAgentsDeletedMemory, error)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1127,6 +1215,8 @@ Delete a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1137,7 +1227,11 @@ Delete a memory - `type BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about how long versions are kept. - `Type BetaManagedAgentsDeletedMemoryType` @@ -1199,7 +1293,9 @@ func main() { - `type BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `Type BetaManagedAgentsContentSha256PreconditionType` @@ -1211,7 +1307,11 @@ func main() { - `type BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about how long versions are kept. - `Type BetaManagedAgentsDeletedMemoryType` @@ -1329,7 +1429,7 @@ func main() { - `type BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1359,13 +1459,19 @@ func main() { - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -1373,7 +1479,7 @@ func main() { - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1389,7 +1495,11 @@ func main() { - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -1397,29 +1507,39 @@ func main() { - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `type BetaManagedAgentsMemoryListItemUnion interface{…}` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -1427,7 +1547,7 @@ func main() { - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1443,7 +1563,11 @@ func main() { - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -1451,17 +1575,23 @@ func main() { - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` @@ -1473,7 +1603,7 @@ func main() { - `type BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1513,7 +1643,9 @@ func main() { - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` @@ -1525,7 +1657,9 @@ func main() { - `type BetaManagedAgentsMemoryView string` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `const BetaManagedAgentsMemoryViewBasic BetaManagedAgentsMemoryView = "basic"` diff --git a/content/en/api/go/beta/memory_stores/memories/create.md b/content/en/api/go/beta/memory_stores/memories/create.md index 4fcf81a4ae..30ce52e0fa 100644 --- a/content/en/api/go/beta/memory_stores/memories/create.md +++ b/content/en/api/go/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `client.Beta.MemoryStores.Memories.New(ctx, memoryStoreID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -21,17 +21,23 @@ Create a memory - `Content param.Opt[string]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `Path string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -139,6 +145,8 @@ Create a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -149,13 +157,19 @@ Create a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -163,7 +177,7 @@ Create a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -179,7 +193,11 @@ Create a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -187,13 +205,17 @@ Create a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/go/beta/memory_stores/memories/delete.md b/content/en/api/go/beta/memory_stores/memories/delete.md index e6f3761d73..a9b42fabd1 100644 --- a/content/en/api/go/beta/memory_stores/memories/delete.md +++ b/content/en/api/go/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `client.Beta.MemoryStores.Memories.Delete(ctx, memoryID, params) (*BetaManagedAgentsDeletedMemory, error)` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -135,6 +135,8 @@ Delete a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,11 @@ Delete a memory - `type BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=go) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about how long versions are kept. - `Type BetaManagedAgentsDeletedMemoryType` diff --git a/content/en/api/go/beta/memory_stores/memories/list.md b/content/en/api/go/beta/memory_stores/memories/list.md index 35bcb05e8e..98a98452a7 100644 --- a/content/en/api/go/beta/memory_stores/memories/list.md +++ b/content/en/api/go/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/list --- -# List memories +# List Memories `client.Beta.MemoryStores.Memories.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryListItemUnion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -21,27 +21,35 @@ List memories - `Depth param.Opt[int64] Optional` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Limit param.Opt[int64] Optional` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Page param.Opt[string] Optional` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `PathPrefix param.Opt[string] Optional` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Betas []AnthropicBeta Optional` (header parameter) @@ -149,6 +157,8 @@ List memories - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,17 +169,23 @@ List memories - `type BetaManagedAgentsMemoryListItemUnion interface{…}` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -177,7 +193,7 @@ List memories - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -193,7 +209,11 @@ List memories - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -201,17 +221,23 @@ List memories - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `type BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=go) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type BetaManagedAgentsMemoryPrefixType` diff --git a/content/en/api/go/beta/memory_stores/memories/retrieve.md b/content/en/api/go/beta/memory_stores/memories/retrieve.md index fdb7fa7486..962d2052ab 100644 --- a/content/en/api/go/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/go/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `client.Beta.MemoryStores.Memories.Get(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,13 +147,19 @@ Retrieve a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -157,7 +167,7 @@ Retrieve a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -173,7 +183,11 @@ Retrieve a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -181,13 +195,17 @@ Retrieve a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/go/beta/memory_stores/memories/update.md b/content/en/api/go/beta/memory_stores/memories/update.md index 334a92aae4..21e46d8dbe 100644 --- a/content/en/api/go/beta/memory_stores/memories/update.md +++ b/content/en/api/go/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `client.Beta.MemoryStores.Memories.Update(ctx, memoryID, params) (*BetaManagedAgentsMemory, error)` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -25,7 +25,9 @@ Update a memory - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Content param.Opt[string] Optional` @@ -33,13 +35,17 @@ Update a memory - `Path param.Opt[string] Optional` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Precondition BetaManagedAgentsPreconditionParam Optional` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `Betas []AnthropicBeta Optional` (header parameter) @@ -147,6 +153,8 @@ Update a memory - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,13 +165,19 @@ Update a memory - `type BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#view-and-edit-memories) to learn more about working with memories. - `Type BetaManagedAgentsMemoryType` - `ID string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `ContentSha256 string` @@ -171,7 +185,7 @@ Update a memory - `ContentSizeBytes int64` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -187,7 +201,11 @@ Update a memory - `MemoryVersionID string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Path string` @@ -195,13 +213,17 @@ Update a memory - `UpdatedAt Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Content string Optional` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/go/beta/memory_stores/memory_versions.md b/content/en/api/go/beta/memory_stores/memory_versions.md index 172578f026..92b5da319e 100644 --- a/content/en/api/go/beta/memory_stores/memory_versions.md +++ b/content/en/api/go/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versio # Memory Versions -## List memory versions +## List Memory Versions `client.Beta.MemoryStores.MemoryVersions.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryVersion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -39,7 +39,9 @@ List memory versions - `Limit param.Opt[int64] Optional` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -47,7 +49,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Operation BetaManagedAgentsMemoryVersionOperation Optional` (query parameter) @@ -67,7 +69,9 @@ List memory versions - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -175,6 +179,8 @@ List memory versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -185,7 +191,13 @@ List memory versions - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -201,7 +213,9 @@ List memory versions - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -239,7 +253,11 @@ List memory versions - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -295,7 +313,11 @@ List memory versions - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -363,13 +385,13 @@ func main() { } ``` -## Retrieve a memory version +## Retrieve a Memory Version `client.Beta.MemoryStores.MemoryVersions.Get(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -385,7 +407,9 @@ Retrieve a memory version - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -493,6 +517,8 @@ Retrieve a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -503,7 +529,13 @@ Retrieve a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -519,7 +551,9 @@ Retrieve a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -557,7 +591,11 @@ Retrieve a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -613,7 +651,11 @@ Retrieve a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -678,13 +720,13 @@ func main() { } ``` -## Redact a memory version +## Redact a Memory Version `client.Beta.MemoryStores.MemoryVersions.Redact(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -804,6 +846,8 @@ Redact a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -814,7 +858,13 @@ Redact a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -830,7 +880,9 @@ Redact a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -868,7 +920,11 @@ Redact a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -924,7 +980,11 @@ Redact a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -1063,7 +1123,13 @@ func main() { - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -1079,7 +1145,9 @@ func main() { - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -1117,7 +1185,11 @@ func main() { - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -1173,7 +1245,11 @@ func main() { - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time @@ -1185,7 +1261,9 @@ func main() { - `type BetaManagedAgentsMemoryVersionOperation string` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `const BetaManagedAgentsMemoryVersionOperationCreated BetaManagedAgentsMemoryVersionOperation = "created"` diff --git a/content/en/api/go/beta/memory_stores/memory_versions/list.md b/content/en/api/go/beta/memory_stores/memory_versions/list.md index f36d3a7599..bd6984aa45 100644 --- a/content/en/api/go/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/go/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `client.Beta.MemoryStores.MemoryVersions.List(ctx, memoryStoreID, params) (*PageCursor[BetaManagedAgentsMemoryVersion], error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -37,7 +37,9 @@ List memory versions - `Limit param.Opt[int64] Optional` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Operation BetaManagedAgentsMemoryVersionOperation Optional` (query parameter) @@ -65,7 +67,9 @@ List memory versions - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -173,6 +177,8 @@ List memory versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -183,7 +189,13 @@ List memory versions - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -199,7 +211,9 @@ List memory versions - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -237,7 +251,11 @@ List memory versions - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -293,7 +311,11 @@ List memory versions - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/go/beta/memory_stores/memory_versions/redact.md b/content/en/api/go/beta/memory_stores/memory_versions/redact.md index 21fc4ef3a9..035b467b87 100644 --- a/content/en/api/go/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/go/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `client.Beta.MemoryStores.MemoryVersions.Redact(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -129,6 +129,8 @@ Redact a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,7 +141,13 @@ Redact a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -155,7 +163,9 @@ Redact a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -193,7 +203,11 @@ Redact a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -249,7 +263,11 @@ Redact a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/go/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/go/beta/memory_stores/memory_versions/retrieve.md index aa047baa31..8088ab3460 100644 --- a/content/en/api/go/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/go/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `client.Beta.MemoryStores.MemoryVersions.Get(ctx, memoryVersionID, params) (*BetaManagedAgentsMemoryVersion, error)` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory version - `View BetaManagedAgentsMemoryView Optional` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Betas []AnthropicBeta Optional` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,7 +147,13 @@ Retrieve a memory version - `type BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#audit-memory-changes) to learn more about memory versions. - `Type BetaManagedAgentsMemoryVersionType` @@ -159,7 +169,9 @@ Retrieve a memory version - `MemoryID string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=go) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `MemoryStoreID string` @@ -197,7 +209,11 @@ Retrieve a memory version - `CreatedBy BetaManagedAgentsActorUnion Optional` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=go) to learn more about where the change came from. - `type BetaManagedAgentsSessionActor` @@ -253,7 +269,11 @@ Retrieve a memory version - `RedactedAt Time Optional` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=go). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/go/beta/memory_stores/retrieve.md b/content/en/api/go/beta/memory_stores/retrieve.md index e5eebd954a..8b8546658a 100644 --- a/content/en/api/go/beta/memory_stores/retrieve.md +++ b/content/en/api/go/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `client.Beta.MemoryStores.Get(ctx, memoryStoreID, query) (*BetaManagedAgentsMemoryStore, error)` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `query BetaMemoryStoreGetParams` @@ -125,6 +125,8 @@ Retrieve a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +143,33 @@ Retrieve a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -169,7 +177,9 @@ Retrieve a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/go/beta/memory_stores/update.md b/content/en/api/go/beta/memory_stores/update.md index b23ae8cf10..5aa5af948c 100644 --- a/content/en/api/go/beta/memory_stores/update.md +++ b/content/en/api/go/beta/memory_stores/update.md @@ -1,37 +1,43 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/go/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `client.Beta.MemoryStores.Update(ctx, memoryStoreID, params) (*BetaManagedAgentsMemoryStore, error)` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `memoryStoreID string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params BetaMemoryStoreUpdateParams` - `Description param.Opt[string] Optional` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Metadata map[string, string] Optional` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Name param.Opt[string] Optional` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -141,6 +147,8 @@ Update a memory store - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,27 +165,33 @@ Update a memory store - `ID string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `ArchivedAt Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=go#archive-a-store) to learn more about archiving. format: date-time - `CreatedAt Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `Description string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata map[string, string]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `Name string` @@ -185,7 +199,9 @@ Update a memory store - `UpdatedAt Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/go/beta/messages.md b/content/en/api/go/beta/messages.md index f38c7c6e7a..c8faad3915 100644 --- a/content/en/api/go/beta/messages.md +++ b/content/en/api/go/beta/messages.md @@ -3867,9 +3867,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -7083,6 +7085,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -7093,6 +7099,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -7103,6 +7113,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -7113,6 +7127,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -7123,12 +7141,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -11920,9 +11950,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -18507,6 +18539,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -18519,6 +18555,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -18531,6 +18571,12 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found @@ -18541,6 +18587,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -18551,6 +18601,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -18561,6 +18615,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -18571,6 +18629,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -18581,12 +18643,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -18595,6 +18669,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -18607,6 +18685,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -18619,6 +18701,12 @@ func main() { - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -33651,6 +33739,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -33661,6 +33753,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -33671,6 +33767,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -33681,6 +33781,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -33691,12 +33795,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -34673,8 +34789,22 @@ func main() { - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34723,7 +34853,11 @@ func main() { - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -34731,6 +34865,12 @@ func main() { - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -34925,8 +35065,22 @@ func main() { - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34975,7 +35129,11 @@ func main() { - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -34983,6 +35141,12 @@ func main() { - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -39399,6 +39563,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -39409,6 +39577,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -39419,6 +39591,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -39429,6 +39605,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -39439,12 +39619,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -51388,6 +51580,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -51398,6 +51594,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -51408,6 +51608,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -51418,6 +51622,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -51428,12 +51636,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -55231,6 +55451,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -55241,6 +55465,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -55251,6 +55479,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -55261,6 +55493,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -55271,12 +55507,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -80783,8 +81031,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -80833,7 +81095,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -80841,6 +81107,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -81360,9 +81632,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -81668,6 +81942,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81972,6 +82248,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82269,6 +82547,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82563,6 +82843,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82749,6 +83031,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85939,6 +86223,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -85949,6 +86237,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -85959,6 +86251,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -85969,6 +86265,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -85979,12 +86279,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/beta/messages/batches.md b/content/en/api/go/beta/messages/batches.md index f4e10c86d4..e6546f42b0 100644 --- a/content/en/api/go/beta/messages/batches.md +++ b/content/en/api/go/beta/messages/batches.md @@ -3668,8 +3668,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3718,7 +3732,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -3726,6 +3744,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -4245,9 +4269,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -4553,6 +4579,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4857,6 +4885,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5154,6 +5184,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5448,6 +5480,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5634,6 +5668,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8824,6 +8860,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -8834,6 +8874,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -8844,6 +8888,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -8854,6 +8902,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -8864,12 +8916,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -13075,6 +13139,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -13085,6 +13153,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -13095,6 +13167,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -13105,6 +13181,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -13115,12 +13195,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -17074,6 +17166,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -17084,6 +17180,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -17094,6 +17194,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -17104,6 +17208,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -17114,12 +17222,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -21025,6 +21145,10 @@ func main() { - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -21035,6 +21159,10 @@ func main() { - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -21045,6 +21173,10 @@ func main() { - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -21055,6 +21187,10 @@ func main() { - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -21065,12 +21201,24 @@ func main() { - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/beta/messages/batches/cancel.md b/content/en/api/go/beta/messages/batches/cancel.md index 33b65b486d..3b0ab14058 100644 --- a/content/en/api/go/beta/messages/batches/cancel.md +++ b/content/en/api/go/beta/messages/batches/cancel.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/messages/batches/create.md b/content/en/api/go/beta/messages/batches/create.md index 2dec7155bf..d0ece4a46c 100644 --- a/content/en/api/go/beta/messages/batches/create.md +++ b/content/en/api/go/beta/messages/batches/create.md @@ -3666,8 +3666,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `MaxTokens int64 Optional` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=go#naming-your-own-fallback-models) to learn more about fallback entries. + - `OutputConfig BetaOutputConfigParam Optional` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Effort BetaOutputConfigEffort Optional` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3716,7 +3730,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Speed BetaFallbackParamSpeed Optional` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `const BetaFallbackParamSpeedStandard BetaFallbackParamSpeed = "standard"` @@ -3724,6 +3742,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Thinking BetaFallbackParamThinkingUnion Optional` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `type BetaThinkingConfigEnabledParam` - `Type Enabled` @@ -4243,9 +4267,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) diff --git a/content/en/api/go/beta/messages/batches/delete.md b/content/en/api/go/beta/messages/batches/delete.md index 1b1bcf81b1..d0e0ab2a8e 100644 --- a/content/en/api/go/beta/messages/batches/delete.md +++ b/content/en/api/go/beta/messages/batches/delete.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/messages/batches/list.md b/content/en/api/go/beta/messages/batches/list.md index c675e82cd8..179c964022 100644 --- a/content/en/api/go/beta/messages/batches/list.md +++ b/content/en/api/go/beta/messages/batches/list.md @@ -139,6 +139,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/messages/batches/results.md b/content/en/api/go/beta/messages/batches/results.md index 8fa6b4c02e..e81c70cd76 100644 --- a/content/en/api/go/beta/messages/batches/results.md +++ b/content/en/api/go/beta/messages/batches/results.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3319,6 +3321,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -3329,6 +3335,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -3339,6 +3349,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -3349,6 +3363,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -3359,12 +3377,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/beta/messages/batches/retrieve.md b/content/en/api/go/beta/messages/batches/retrieve.md index caa1e92d53..f5f1d99691 100644 --- a/content/en/api/go/beta/messages/batches/retrieve.md +++ b/content/en/api/go/beta/messages/batches/retrieve.md @@ -127,6 +127,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/messages/count_tokens.md b/content/en/api/go/beta/messages/count_tokens.md index bbd464a783..8d56d4f6eb 100644 --- a/content/en/api/go/beta/messages/count_tokens.md +++ b/content/en/api/go/beta/messages/count_tokens.md @@ -3732,9 +3732,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) diff --git a/content/en/api/go/beta/messages/create.md b/content/en/api/go/beta/messages/create.md index 67b87047b7..e8a7c8a137 100644 --- a/content/en/api/go/beta/messages/create.md +++ b/content/en/api/go/beta/messages/create.md @@ -3865,9 +3865,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -7081,6 +7083,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -7091,6 +7097,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -7101,6 +7111,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -7111,6 +7125,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -7121,12 +7139,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/beta/models.md b/content/en/api/go/beta/models.md index 7c83e0bc65..7228ff9877 100644 --- a/content/en/api/go/beta/models.md +++ b/content/en/api/go/beta/models.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -633,6 +635,8 @@ The Models API response can be used to determine information about a specific mo - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/models/list.md b/content/en/api/go/beta/models/list.md index 5466fa897a..f39b8ea421 100644 --- a/content/en/api/go/beta/models/list.md +++ b/content/en/api/go/beta/models/list.md @@ -151,6 +151,8 @@ The Models API response can be used to determine which models are available for - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/models/retrieve.md b/content/en/api/go/beta/models/retrieve.md index 6819cc5ea9..65e2d5d4cd 100644 --- a/content/en/api/go/beta/models/retrieve.md +++ b/content/en/api/go/beta/models/retrieve.md @@ -127,6 +127,8 @@ The Models API response can be used to determine information about a specific mo - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions.md b/content/en/api/go/beta/sessions.md index 4339ff5a48..9217c0a32a 100644 --- a/content/en/api/go/beta/sessions.md +++ b/content/en/api/go/beta/sessions.md @@ -1227,6 +1227,8 @@ Create Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2816,6 +2818,8 @@ List Sessions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4313,6 +4317,8 @@ Get Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5830,6 +5836,8 @@ Update Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7325,6 +7333,8 @@ Delete Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7499,6 +7509,8 @@ Archive Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19278,6 +19290,8 @@ List Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22751,6 +22765,8 @@ Send Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23392,6 +23408,8 @@ Stream Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26546,6 +26564,8 @@ Add Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26753,6 +26773,8 @@ List Session Resources - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27046,6 +27068,8 @@ Get Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27336,6 +27360,8 @@ Update Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27621,6 +27647,8 @@ Delete Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27823,6 +27851,8 @@ List Session Threads - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28914,6 +28944,8 @@ Get Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30002,6 +30034,8 @@ Archive Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31098,6 +31132,8 @@ List Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34221,6 +34257,8 @@ Stream Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/archive.md b/content/en/api/go/beta/sessions/archive.md index c7d561f517..71d89551ed 100644 --- a/content/en/api/go/beta/sessions/archive.md +++ b/content/en/api/go/beta/sessions/archive.md @@ -123,6 +123,8 @@ Archive Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/create.md b/content/en/api/go/beta/sessions/create.md index 57c79a0b56..0c3d6f709d 100644 --- a/content/en/api/go/beta/sessions/create.md +++ b/content/en/api/go/beta/sessions/create.md @@ -1225,6 +1225,8 @@ Create Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/delete.md b/content/en/api/go/beta/sessions/delete.md index 3044d33db2..002f2a2699 100644 --- a/content/en/api/go/beta/sessions/delete.md +++ b/content/en/api/go/beta/sessions/delete.md @@ -123,6 +123,8 @@ Delete Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/events.md b/content/en/api/go/beta/sessions/events.md index 979375ed61..18cf65db50 100644 --- a/content/en/api/go/beta/sessions/events.md +++ b/content/en/api/go/beta/sessions/events.md @@ -251,6 +251,8 @@ List Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3724,6 +3726,8 @@ Send Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4365,6 +4369,8 @@ Stream Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/events/list.md b/content/en/api/go/beta/sessions/events/list.md index 8ba2ee092e..09a51d05e2 100644 --- a/content/en/api/go/beta/sessions/events/list.md +++ b/content/en/api/go/beta/sessions/events/list.md @@ -249,6 +249,8 @@ List Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/events/send.md b/content/en/api/go/beta/sessions/events/send.md index 82014659ef..f52bce9b49 100644 --- a/content/en/api/go/beta/sessions/events/send.md +++ b/content/en/api/go/beta/sessions/events/send.md @@ -485,6 +485,8 @@ Send Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/events/stream.md b/content/en/api/go/beta/sessions/events/stream.md index 723ac531de..8570aef702 100644 --- a/content/en/api/go/beta/sessions/events/stream.md +++ b/content/en/api/go/beta/sessions/events/stream.md @@ -131,6 +131,8 @@ Stream Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/list.md b/content/en/api/go/beta/sessions/list.md index 2c77981d1b..47b1c1be2a 100644 --- a/content/en/api/go/beta/sessions/list.md +++ b/content/en/api/go/beta/sessions/list.md @@ -205,6 +205,8 @@ List Sessions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources.md b/content/en/api/go/beta/sessions/resources.md index e5b8c7d7ae..c416b41444 100644 --- a/content/en/api/go/beta/sessions/resources.md +++ b/content/en/api/go/beta/sessions/resources.md @@ -129,6 +129,8 @@ Add Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -336,6 +338,8 @@ List Session Resources - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -629,6 +633,8 @@ Get Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -919,6 +925,8 @@ Update Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1204,6 +1212,8 @@ Delete Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources/add.md b/content/en/api/go/beta/sessions/resources/add.md index d07b366d80..c2ae56ccea 100644 --- a/content/en/api/go/beta/sessions/resources/add.md +++ b/content/en/api/go/beta/sessions/resources/add.md @@ -127,6 +127,8 @@ Add Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources/delete.md b/content/en/api/go/beta/sessions/resources/delete.md index 178adc2c5a..ac9197520c 100644 --- a/content/en/api/go/beta/sessions/resources/delete.md +++ b/content/en/api/go/beta/sessions/resources/delete.md @@ -125,6 +125,8 @@ Delete Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources/list.md b/content/en/api/go/beta/sessions/resources/list.md index e73fcfcbfb..ea468a89e4 100644 --- a/content/en/api/go/beta/sessions/resources/list.md +++ b/content/en/api/go/beta/sessions/resources/list.md @@ -133,6 +133,8 @@ List Session Resources - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources/retrieve.md b/content/en/api/go/beta/sessions/resources/retrieve.md index fc8fa76753..32a1f4c825 100644 --- a/content/en/api/go/beta/sessions/resources/retrieve.md +++ b/content/en/api/go/beta/sessions/resources/retrieve.md @@ -125,6 +125,8 @@ Get Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/resources/update.md b/content/en/api/go/beta/sessions/resources/update.md index 631a2536bd..efa6e6cf3f 100644 --- a/content/en/api/go/beta/sessions/resources/update.md +++ b/content/en/api/go/beta/sessions/resources/update.md @@ -131,6 +131,8 @@ Update Session Resource - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/retrieve.md b/content/en/api/go/beta/sessions/retrieve.md index 4d3770845a..95db033b82 100644 --- a/content/en/api/go/beta/sessions/retrieve.md +++ b/content/en/api/go/beta/sessions/retrieve.md @@ -123,6 +123,8 @@ Get Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads.md b/content/en/api/go/beta/sessions/threads.md index 88a19c6adf..5e86287871 100644 --- a/content/en/api/go/beta/sessions/threads.md +++ b/content/en/api/go/beta/sessions/threads.md @@ -149,6 +149,8 @@ List Session Threads - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1240,6 +1242,8 @@ Get Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2328,6 +2332,8 @@ Archive Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7968,6 +7974,8 @@ List Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11091,6 +11099,8 @@ Stream Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/archive.md b/content/en/api/go/beta/sessions/threads/archive.md index 961d5fe69d..84d37f0050 100644 --- a/content/en/api/go/beta/sessions/threads/archive.md +++ b/content/en/api/go/beta/sessions/threads/archive.md @@ -125,6 +125,8 @@ Archive Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/events.md b/content/en/api/go/beta/sessions/threads/events.md index 9133f091e2..ac3edbd1fa 100644 --- a/content/en/api/go/beta/sessions/threads/events.md +++ b/content/en/api/go/beta/sessions/threads/events.md @@ -133,6 +133,8 @@ List Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3256,6 +3258,8 @@ Stream Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/events/list.md b/content/en/api/go/beta/sessions/threads/events/list.md index dd62c84035..29461d6bb2 100644 --- a/content/en/api/go/beta/sessions/threads/events/list.md +++ b/content/en/api/go/beta/sessions/threads/events/list.md @@ -131,6 +131,8 @@ List Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/events/stream.md b/content/en/api/go/beta/sessions/threads/events/stream.md index 9d1c39642c..22a92f5ffd 100644 --- a/content/en/api/go/beta/sessions/threads/events/stream.md +++ b/content/en/api/go/beta/sessions/threads/events/stream.md @@ -133,6 +133,8 @@ Stream Session Thread Events - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/list.md b/content/en/api/go/beta/sessions/threads/list.md index c7e9b08061..f58cb00701 100644 --- a/content/en/api/go/beta/sessions/threads/list.md +++ b/content/en/api/go/beta/sessions/threads/list.md @@ -147,6 +147,8 @@ List Session Threads - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/threads/retrieve.md b/content/en/api/go/beta/sessions/threads/retrieve.md index dadce92cae..9bdf16b6b7 100644 --- a/content/en/api/go/beta/sessions/threads/retrieve.md +++ b/content/en/api/go/beta/sessions/threads/retrieve.md @@ -125,6 +125,8 @@ Get Session Thread - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/sessions/update.md b/content/en/api/go/beta/sessions/update.md index a17f3f5428..48c1c9c494 100644 --- a/content/en/api/go/beta/sessions/update.md +++ b/content/en/api/go/beta/sessions/update.md @@ -145,6 +145,8 @@ Update Session - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills.md b/content/en/api/go/beta/skills.md index adc00c8687..414394f27f 100644 --- a/content/en/api/go/beta/skills.md +++ b/content/en/api/go/beta/skills.md @@ -135,6 +135,8 @@ Create Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -397,6 +399,8 @@ List Skills - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -643,6 +647,8 @@ Get Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -888,6 +894,8 @@ Delete Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1195,6 +1203,8 @@ Create Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1425,6 +1435,8 @@ List Skill Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1650,6 +1662,8 @@ Download a skill version's content as a zip archive. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1821,6 +1835,8 @@ Get Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2043,6 +2059,8 @@ Delete Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/create.md b/content/en/api/go/beta/skills/create.md index c257339cd6..8079284065 100644 --- a/content/en/api/go/beta/skills/create.md +++ b/content/en/api/go/beta/skills/create.md @@ -133,6 +133,8 @@ Create Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/delete.md b/content/en/api/go/beta/skills/delete.md index 736aa08487..86091edf3e 100644 --- a/content/en/api/go/beta/skills/delete.md +++ b/content/en/api/go/beta/skills/delete.md @@ -127,6 +127,8 @@ Delete Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/list.md b/content/en/api/go/beta/skills/list.md index 19de371975..77cf6afcf0 100644 --- a/content/en/api/go/beta/skills/list.md +++ b/content/en/api/go/beta/skills/list.md @@ -144,6 +144,8 @@ List Skills - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/retrieve.md b/content/en/api/go/beta/skills/retrieve.md index 45c20e94f9..e9d5d9b0da 100644 --- a/content/en/api/go/beta/skills/retrieve.md +++ b/content/en/api/go/beta/skills/retrieve.md @@ -127,6 +127,8 @@ Get Skill - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions.md b/content/en/api/go/beta/skills/versions.md index 646f59b52c..916dc093ca 100644 --- a/content/en/api/go/beta/skills/versions.md +++ b/content/en/api/go/beta/skills/versions.md @@ -135,6 +135,8 @@ Create Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -365,6 +367,8 @@ List Skill Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -590,6 +594,8 @@ Download a skill version's content as a zip archive. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -761,6 +767,8 @@ Get Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -983,6 +991,8 @@ Delete Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions/create.md b/content/en/api/go/beta/skills/versions/create.md index 3afc4af64b..42579d718f 100644 --- a/content/en/api/go/beta/skills/versions/create.md +++ b/content/en/api/go/beta/skills/versions/create.md @@ -133,6 +133,8 @@ Create Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions/delete.md b/content/en/api/go/beta/skills/versions/delete.md index 9dc7e57bcc..7e82a453b6 100644 --- a/content/en/api/go/beta/skills/versions/delete.md +++ b/content/en/api/go/beta/skills/versions/delete.md @@ -133,6 +133,8 @@ Delete Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions/download.md b/content/en/api/go/beta/skills/versions/download.md index 2477a6828e..77efb27b5f 100644 --- a/content/en/api/go/beta/skills/versions/download.md +++ b/content/en/api/go/beta/skills/versions/download.md @@ -133,6 +133,8 @@ Download a skill version's content as a zip archive. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions/list.md b/content/en/api/go/beta/skills/versions/list.md index f833be8add..33a93d24b5 100644 --- a/content/en/api/go/beta/skills/versions/list.md +++ b/content/en/api/go/beta/skills/versions/list.md @@ -139,6 +139,8 @@ List Skill Versions - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/skills/versions/retrieve.md b/content/en/api/go/beta/skills/versions/retrieve.md index b324bd76f6..8c8a652c7b 100644 --- a/content/en/api/go/beta/skills/versions/retrieve.md +++ b/content/en/api/go/beta/skills/versions/retrieve.md @@ -133,6 +133,8 @@ Get Skill Version - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels.md b/content/en/api/go/beta/tunnels.md index a06ff07c9c..a1c5e74b80 100644 --- a/content/en/api/go/beta/tunnels.md +++ b/content/en/api/go/beta/tunnels.md @@ -131,6 +131,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -331,6 +333,8 @@ Fetches a tunnel by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -545,6 +549,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -750,6 +756,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -954,6 +962,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1145,6 +1155,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1388,6 +1400,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1605,6 +1619,8 @@ Fetches a tunnel certificate by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1832,6 +1848,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2052,6 +2070,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/archive.md b/content/en/api/go/beta/tunnels/archive.md index 36cd6a86c3..5b5b949881 100644 --- a/content/en/api/go/beta/tunnels/archive.md +++ b/content/en/api/go/beta/tunnels/archive.md @@ -127,6 +127,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/certificates.md b/content/en/api/go/beta/tunnels/certificates.md index 7c16b79f8a..20319aefa8 100644 --- a/content/en/api/go/beta/tunnels/certificates.md +++ b/content/en/api/go/beta/tunnels/certificates.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -352,6 +354,8 @@ Fetches a tunnel certificate by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -579,6 +583,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -799,6 +805,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/certificates/archive.md b/content/en/api/go/beta/tunnels/certificates/archive.md index 1599614c12..62d3ccff87 100644 --- a/content/en/api/go/beta/tunnels/certificates/archive.md +++ b/content/en/api/go/beta/tunnels/certificates/archive.md @@ -131,6 +131,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/certificates/create.md b/content/en/api/go/beta/tunnels/certificates/create.md index e8ab01ef37..f26e2c8f71 100644 --- a/content/en/api/go/beta/tunnels/certificates/create.md +++ b/content/en/api/go/beta/tunnels/certificates/create.md @@ -133,6 +133,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/certificates/list.md b/content/en/api/go/beta/tunnels/certificates/list.md index 21505765a0..49d04d76ae 100644 --- a/content/en/api/go/beta/tunnels/certificates/list.md +++ b/content/en/api/go/beta/tunnels/certificates/list.md @@ -141,6 +141,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/certificates/retrieve.md b/content/en/api/go/beta/tunnels/certificates/retrieve.md index 4a0acbf918..a5989533ad 100644 --- a/content/en/api/go/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/go/beta/tunnels/certificates/retrieve.md @@ -131,6 +131,8 @@ Fetches a tunnel certificate by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/create.md b/content/en/api/go/beta/tunnels/create.md index cd6ddf162f..052ccaf605 100644 --- a/content/en/api/go/beta/tunnels/create.md +++ b/content/en/api/go/beta/tunnels/create.md @@ -129,6 +129,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/list.md b/content/en/api/go/beta/tunnels/list.md index d6b8a9f7a3..48244d5697 100644 --- a/content/en/api/go/beta/tunnels/list.md +++ b/content/en/api/go/beta/tunnels/list.md @@ -137,6 +137,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/retrieve.md b/content/en/api/go/beta/tunnels/retrieve.md index 166a5f85ed..5845169d1a 100644 --- a/content/en/api/go/beta/tunnels/retrieve.md +++ b/content/en/api/go/beta/tunnels/retrieve.md @@ -127,6 +127,8 @@ Fetches a tunnel by ID. - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/reveal_token.md b/content/en/api/go/beta/tunnels/reveal_token.md index 0cb881b3fe..ed9ea73880 100644 --- a/content/en/api/go/beta/tunnels/reveal_token.md +++ b/content/en/api/go/beta/tunnels/reveal_token.md @@ -127,6 +127,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/tunnels/rotate_token.md b/content/en/api/go/beta/tunnels/rotate_token.md index 39d690b755..9bbbdae158 100644 --- a/content/en/api/go/beta/tunnels/rotate_token.md +++ b/content/en/api/go/beta/tunnels/rotate_token.md @@ -133,6 +133,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/user_profiles.md b/content/en/api/go/beta/user_profiles.md index 700cb5399f..8930a7c78f 100644 --- a/content/en/api/go/beta/user_profiles.md +++ b/content/en/api/go/beta/user_profiles.md @@ -31,17 +31,17 @@ Create User Profile - `ExternalID param.Opt[string] Optional` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -57,7 +57,7 @@ Create User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -161,6 +161,8 @@ Create User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -193,6 +195,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -209,13 +215,13 @@ Create User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -227,11 +233,11 @@ Create User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -285,14 +291,10 @@ Create User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```go @@ -325,6 +327,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -336,15 +339,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -398,7 +400,7 @@ List User Profiles - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -502,6 +504,8 @@ List User Profiles - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -534,6 +538,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -550,13 +558,13 @@ List User Profiles - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -568,11 +576,11 @@ List User Profiles - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -626,14 +634,10 @@ List User Profiles - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```go @@ -668,6 +672,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -679,15 +684,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -712,7 +716,7 @@ Get User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -816,6 +820,8 @@ Get User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -848,6 +854,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -864,13 +874,13 @@ Get User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -882,11 +892,11 @@ Get User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -940,14 +950,10 @@ Get User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```go @@ -984,6 +990,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -995,15 +1002,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1037,17 +1043,17 @@ Update User Profile - `ExternalID param.Opt[string] Optional` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1063,7 +1069,7 @@ Update User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -1167,6 +1173,8 @@ Update User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1199,6 +1207,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1215,13 +1227,13 @@ Update User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -1233,11 +1245,11 @@ Update User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -1291,14 +1303,10 @@ Update User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```go @@ -1335,6 +1343,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1346,15 +1355,194 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`client.Beta.UserProfiles.Delete(ctx, userProfileID, body) (*BetaDeletedUserProfile, error)` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `userProfileID string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `body BetaUserProfileDeleteParams` + + - `Betas []AnthropicBeta Optional` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + + - `WorkspaceID param.Opt[string] Optional` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `type BetaDeletedUserProfile` + + - `Type UserProfileDeleted` + + Object type. Always `user_profile_deleted`. + + - `ID string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaDeletedUserProfile, err := client.Beta.UserProfiles.Delete( + context.TODO(), + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + anthropic.BetaUserProfileDeleteParams{}, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaDeletedUserProfile.ID) +} +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1376,7 +1564,7 @@ Create Enrollment URL - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -1480,6 +1668,8 @@ Create Enrollment URL - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1490,7 +1680,7 @@ Create Enrollment URL - `type BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type BetaUserProfileEnrollmentURLType` @@ -1547,6 +1737,18 @@ func main() { ## Domain types +### Beta Deleted User Profile + +- `type BetaDeletedUserProfile` + + - `Type UserProfileDeleted` + + Object type. Always `user_profile_deleted`. + + - `ID string` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `type BetaUserProfile` @@ -1573,6 +1775,10 @@ func main() { Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1589,13 +1795,13 @@ func main() { - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -1607,11 +1813,11 @@ func main() { - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -1665,19 +1871,15 @@ func main() { - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `type BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type BetaUserProfileEnrollmentURLType` @@ -1824,3 +2026,202 @@ func main() { - `const BetaUserProfileTrustGrantStatusPending BetaUserProfileTrustGrantStatus = "pending"` - `const BetaUserProfileTrustGrantStatusRejected BetaUserProfileTrustGrantStatus = "rejected"` + +## User Profiles › Action URLs + +### Create Action URL + +`client.Beta.UserProfiles.ActionURLs.New(ctx, userProfileID, params) (*BetaUserProfileActionURL, error)` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `params BetaUserProfileActionURLNewParams` + + - `Action BetaUserProfileActionUnionParam` + + The action that the person who opens the URL takes. + + - `Betas []AnthropicBeta Optional` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` + + - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"` + + - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"` + + - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"` + + - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"` + + - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"` + + - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"` + + - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"` + + - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"` + + - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"` + + - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"` + + - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"` + + - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"` + + - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"` + + - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"` + + - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"` + + - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"` + + - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"` + + - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"` + + - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"` + + - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"` + + - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"` + + - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"` + + - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"` + + - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"` + + - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"` + + - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"` + + - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"` + + - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"` + + - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"` + + - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"` + + - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"` + + - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"` + + - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"` + + - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"` + + - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"` + + - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"` + + - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"` + + - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"` + + - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"` + + - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"` + + - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"` + + - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"` + + - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"` + + - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"` + + - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"` + + - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"` + + - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"` + + - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"` + + - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + + - `WorkspaceID param.Opt[string] Optional` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `type BetaUserProfileActionURL` + + A URL to give to the person who takes the requested action. + + - `Type UserProfileActionURL` + + Object type. Always `user_profile_action_url`. + + - `ExpiresAt Time` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `URL string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```go +package main + +import ( + "context" + "fmt" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/option" +) + +func main() { + client := anthropic.NewClient( + option.WithAPIKey("my-anthropic-api-key"), + ) + betaUserProfileActionURL, err := client.Beta.UserProfiles.ActionURLs.New( + context.TODO(), + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + anthropic.BetaUserProfileActionURLNewParams{ + Action: anthropic.BetaUserProfileActionUnionParam{ + OfEnrollEndUser: &anthropic.BetaUserProfileEnrollEndUserActionParam{}, + }, + }, + ) + if err != nil { + panic(err.Error()) + } + fmt.Printf("%+v\n", betaUserProfileActionURL.ExpiresAt) +} +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/go/beta/user_profiles/create.md b/content/en/api/go/beta/user_profiles/create.md index 6bd74d8c44..f036fb9611 100644 --- a/content/en/api/go/beta/user_profiles/create.md +++ b/content/en/api/go/beta/user_profiles/create.md @@ -29,17 +29,17 @@ Create User Profile - `ExternalID param.Opt[string] Optional` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -55,7 +55,7 @@ Create User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -159,6 +159,8 @@ Create User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -191,6 +193,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -207,13 +213,13 @@ Create User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -225,11 +231,11 @@ Create User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -283,14 +289,10 @@ Create User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```go @@ -323,6 +325,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -334,14 +337,13 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/go/beta/user_profiles/create_enrollment_url.md b/content/en/api/go/beta/user_profiles/create_enrollment_url.md index 7a13d98612..17975548d1 100644 --- a/content/en/api/go/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/go/beta/user_profiles/create_enrollment_url.md @@ -21,7 +21,7 @@ Create Enrollment URL - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -125,6 +125,8 @@ Create Enrollment URL - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,7 +137,7 @@ Create Enrollment URL - `type BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type BetaUserProfileEnrollmentURLType` diff --git a/content/en/api/go/beta/user_profiles/list.md b/content/en/api/go/beta/user_profiles/list.md index 1da2246506..b28bb7f682 100644 --- a/content/en/api/go/beta/user_profiles/list.md +++ b/content/en/api/go/beta/user_profiles/list.md @@ -53,7 +53,7 @@ List User Profiles - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -157,6 +157,8 @@ List User Profiles - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -189,6 +191,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -205,13 +211,13 @@ List User Profiles - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -223,11 +229,11 @@ List User Profiles - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -281,14 +287,10 @@ List User Profiles - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```go @@ -323,6 +325,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -334,15 +337,14 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/go/beta/user_profiles/retrieve.md b/content/en/api/go/beta/user_profiles/retrieve.md index c7c65aef4e..7d379ce7a4 100644 --- a/content/en/api/go/beta/user_profiles/retrieve.md +++ b/content/en/api/go/beta/user_profiles/retrieve.md @@ -21,7 +21,7 @@ Get User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -125,6 +125,8 @@ Get User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -173,13 +179,13 @@ Get User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -191,11 +197,11 @@ Get User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -249,14 +255,10 @@ Get User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```go @@ -293,6 +295,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -304,14 +307,13 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/go/beta/user_profiles/update.md b/content/en/api/go/beta/user_profiles/update.md index 4de4932063..317902bea5 100644 --- a/content/en/api/go/beta/user_profiles/update.md +++ b/content/en/api/go/beta/user_profiles/update.md @@ -33,17 +33,17 @@ Update User Profile - `ExternalID param.Opt[string] Optional` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `ExternalUserDetails BetaUserProfileExternalUserDetailsParams Optional` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `ExternalUserOnboardedAt param.Opt[Time] Optional` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -59,7 +59,7 @@ Update User Profile - `Betas []AnthropicBeta Optional` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"` @@ -163,6 +163,8 @@ Update User Profile - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -195,6 +197,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Name string` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants map[string, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -211,13 +217,13 @@ Update User Profile - `UpdatedAt Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `AccessType BetaUserProfileAccessType Optional` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `const BetaUserProfileAccessTypeApplication BetaUserProfileAccessType = "application"` @@ -229,11 +235,11 @@ Update User Profile - `ExternalID string Optional` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `ExternalUserDetails BetaUserProfileExternalUserDetails Optional` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `AccountStatus BetaUserProfileExternalUserDetailsAccountStatus` @@ -287,14 +293,10 @@ Update User Profile - `ExternalUserOnboardedAt Time Optional` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Name string Optional` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```go @@ -331,6 +333,7 @@ func main() { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -342,14 +345,13 @@ func main() { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/go/beta/vaults.md b/content/en/api/go/beta/vaults.md index 29819e6ce7..d1c9c94162 100644 --- a/content/en/api/go/beta/vaults.md +++ b/content/en/api/go/beta/vaults.md @@ -133,6 +133,8 @@ Create a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -352,6 +354,8 @@ List Vaults - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -564,6 +568,8 @@ Retrieve a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -785,6 +791,8 @@ Update a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -996,6 +1004,8 @@ Delete a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1174,6 +1184,8 @@ Archive a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1615,6 +1627,8 @@ Create a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1971,6 +1985,8 @@ List Credentials - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2314,6 +2330,8 @@ Retrieve a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2794,6 +2812,8 @@ Update a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3134,6 +3154,8 @@ Delete a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3318,6 +3340,8 @@ Archive a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3658,6 +3682,8 @@ Validate an MCP OAuth Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/archive.md b/content/en/api/go/beta/vaults/archive.md index f557db4436..6039f22b54 100644 --- a/content/en/api/go/beta/vaults/archive.md +++ b/content/en/api/go/beta/vaults/archive.md @@ -125,6 +125,8 @@ Archive a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/create.md b/content/en/api/go/beta/vaults/create.md index ceb16a6bf2..7de5a8f207 100644 --- a/content/en/api/go/beta/vaults/create.md +++ b/content/en/api/go/beta/vaults/create.md @@ -131,6 +131,8 @@ Create a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials.md b/content/en/api/go/beta/vaults/credentials.md index 185b72b206..2f0968c2d8 100644 --- a/content/en/api/go/beta/vaults/credentials.md +++ b/content/en/api/go/beta/vaults/credentials.md @@ -303,6 +303,8 @@ Create a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -659,6 +661,8 @@ List Credentials - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1002,6 +1006,8 @@ Retrieve a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1482,6 +1488,8 @@ Update a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1822,6 +1830,8 @@ Delete a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2006,6 +2016,8 @@ Archive a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2346,6 +2358,8 @@ Validate an MCP OAuth Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/archive.md b/content/en/api/go/beta/vaults/credentials/archive.md index ca816d0201..398119b2a9 100644 --- a/content/en/api/go/beta/vaults/credentials/archive.md +++ b/content/en/api/go/beta/vaults/credentials/archive.md @@ -129,6 +129,8 @@ Archive a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/create.md b/content/en/api/go/beta/vaults/credentials/create.md index ac0c5a5da6..1ebdcb5c72 100644 --- a/content/en/api/go/beta/vaults/credentials/create.md +++ b/content/en/api/go/beta/vaults/credentials/create.md @@ -301,6 +301,8 @@ Create a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/delete.md b/content/en/api/go/beta/vaults/credentials/delete.md index 12a22f5511..d5370b5d33 100644 --- a/content/en/api/go/beta/vaults/credentials/delete.md +++ b/content/en/api/go/beta/vaults/credentials/delete.md @@ -129,6 +129,8 @@ Delete a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/list.md b/content/en/api/go/beta/vaults/credentials/list.md index 9c92e7ec1e..1d4c069ea5 100644 --- a/content/en/api/go/beta/vaults/credentials/list.md +++ b/content/en/api/go/beta/vaults/credentials/list.md @@ -139,6 +139,8 @@ List Credentials - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/go/beta/vaults/credentials/mcp_oauth_validate.md index e03c04613e..391b4b0cc5 100644 --- a/content/en/api/go/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/go/beta/vaults/credentials/mcp_oauth_validate.md @@ -129,6 +129,8 @@ Validate an MCP OAuth Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/retrieve.md b/content/en/api/go/beta/vaults/credentials/retrieve.md index b1443487cd..d4f9441093 100644 --- a/content/en/api/go/beta/vaults/credentials/retrieve.md +++ b/content/en/api/go/beta/vaults/credentials/retrieve.md @@ -129,6 +129,8 @@ Retrieve a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/credentials/update.md b/content/en/api/go/beta/vaults/credentials/update.md index e6f1be5408..239ebda3ff 100644 --- a/content/en/api/go/beta/vaults/credentials/update.md +++ b/content/en/api/go/beta/vaults/credentials/update.md @@ -269,6 +269,8 @@ Update a Credential - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/delete.md b/content/en/api/go/beta/vaults/delete.md index e595c048e9..f641c7eff5 100644 --- a/content/en/api/go/beta/vaults/delete.md +++ b/content/en/api/go/beta/vaults/delete.md @@ -125,6 +125,8 @@ Delete a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/list.md b/content/en/api/go/beta/vaults/list.md index 8af96430a7..da45dcc1d9 100644 --- a/content/en/api/go/beta/vaults/list.md +++ b/content/en/api/go/beta/vaults/list.md @@ -135,6 +135,8 @@ List Vaults - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/retrieve.md b/content/en/api/go/beta/vaults/retrieve.md index 0d83d1a930..e4c7b482d1 100644 --- a/content/en/api/go/beta/vaults/retrieve.md +++ b/content/en/api/go/beta/vaults/retrieve.md @@ -125,6 +125,8 @@ Retrieve a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/vaults/update.md b/content/en/api/go/beta/vaults/update.md index 56dfbd1658..889f352b9e 100644 --- a/content/en/api/go/beta/vaults/update.md +++ b/content/en/api/go/beta/vaults/update.md @@ -135,6 +135,8 @@ Update a Vault - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + - `WorkspaceID param.Opt[string] Optional` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/go/beta/webhooks.md b/content/en/api/go/beta/webhooks.md index 85e9ff42c7..df09f731d3 100644 --- a/content/en/api/go/beta/webhooks.md +++ b/content/en/api/go/beta/webhooks.md @@ -821,6 +821,34 @@ url: https://platform.claude.com/docs/en/api/go/beta/webhooks - `WorkspaceID string` + - `type BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `Type UserProfileEnforcementActionOpened` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + + - `type BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `Type UserProfileEnforcementActionResolved` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + ### Beta Webhook Event Data - `type BetaWebhookEventDataUnion interface{…}` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/go/beta/webhooks - `WorkspaceID string` + - `type BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `Type UserProfileEnforcementActionOpened` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + + - `type BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `Type UserProfileEnforcementActionResolved` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + ### Beta Webhook Memory Store Archived Event Data - `type BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/go/beta/webhooks - `WorkspaceID string` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `type BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `Type UserProfileEnforcementActionOpened` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `type BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `Type UserProfileEnforcementActionResolved` + + - `ID string` + + ID of the user profile the enforcement action is on. + + - `EnforcementActionID string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `OrganizationID string` + ### Beta Webhook Vault Archived Event Data - `type BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/go/completions.md b/content/en/api/go/completions.md index 59c1398f8c..b7298cbf4f 100644 --- a/content/en/api/go/completions.md +++ b/content/en/api/go/completions.md @@ -221,6 +221,8 @@ Future models and features will not be compatible with Text Completions. See our - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type Completion` diff --git a/content/en/api/go/completions/create.md b/content/en/api/go/completions/create.md index a7fb4acc95..abb16a380c 100644 --- a/content/en/api/go/completions/create.md +++ b/content/en/api/go/completions/create.md @@ -219,6 +219,8 @@ Future models and features will not be compatible with Text Completions. See our - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type Completion` diff --git a/content/en/api/go/messages.md b/content/en/api/go/messages.md index f8fb8462f6..04321c65b7 100644 --- a/content/en/api/go/messages.md +++ b/content/en/api/go/messages.md @@ -2789,7 +2789,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -3616,6 +3616,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -3626,6 +3630,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -3636,6 +3644,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -3646,6 +3658,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -3656,12 +3672,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -6995,7 +7023,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -13043,6 +13071,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -13055,6 +13087,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -13067,6 +13103,12 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found @@ -13077,6 +13119,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -13087,6 +13133,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -13097,6 +13147,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -13107,6 +13161,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -13117,12 +13175,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -13131,6 +13201,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -13143,6 +13217,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -13155,6 +13233,12 @@ func main() { - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -18861,6 +18945,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -18871,6 +18959,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -18881,6 +18973,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -18891,6 +18987,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -18901,12 +19001,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -20240,6 +20352,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -20250,6 +20366,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -20260,6 +20380,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -20270,6 +20394,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -20280,12 +20408,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -25464,6 +25604,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -25474,6 +25618,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -25484,6 +25632,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -25494,6 +25646,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -25504,12 +25660,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -26599,6 +26767,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -26609,6 +26781,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -26619,6 +26795,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -26629,6 +26809,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -26639,12 +26823,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -38825,7 +39021,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -40493,6 +40689,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -40503,6 +40703,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -40513,6 +40717,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -40523,6 +40731,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -40533,12 +40745,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/messages/batches.md b/content/en/api/go/messages/batches.md index cc9ffce346..aa69623e53 100644 --- a/content/en/api/go/messages/batches.md +++ b/content/en/api/go/messages/batches.md @@ -3097,7 +3097,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -4765,6 +4765,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -4775,6 +4779,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -4785,6 +4793,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -4795,6 +4807,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -4805,12 +4821,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -6308,6 +6336,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -6318,6 +6350,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -6328,6 +6364,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -6338,6 +6378,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -6348,12 +6392,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -7599,6 +7655,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -7609,6 +7669,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -7619,6 +7683,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -7629,6 +7697,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -7639,12 +7711,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable @@ -8842,6 +8926,10 @@ func main() { - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -8852,6 +8940,10 @@ func main() { - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -8862,6 +8954,10 @@ func main() { - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -8872,6 +8968,10 @@ func main() { - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -8882,12 +8982,24 @@ func main() { - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/messages/batches/create.md b/content/en/api/go/messages/batches/create.md index 10ca912746..4db16ba36a 100644 --- a/content/en/api/go/messages/batches/create.md +++ b/content/en/api/go/messages/batches/create.md @@ -3095,7 +3095,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `WorkspaceID param.Opt[string] Optional` (header parameter) diff --git a/content/en/api/go/messages/batches/results.md b/content/en/api/go/messages/batches/results.md index e798182f6a..f44a976954 100644 --- a/content/en/api/go/messages/batches/results.md +++ b/content/en/api/go/messages/batches/results.md @@ -834,6 +834,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -844,6 +848,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -854,6 +862,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -864,6 +876,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -874,12 +890,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/messages/count_tokens.md b/content/en/api/go/messages/count_tokens.md index 8eee49f894..f58533030d 100644 --- a/content/en/api/go/messages/count_tokens.md +++ b/content/en/api/go/messages/count_tokens.md @@ -2743,7 +2743,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) diff --git a/content/en/api/go/messages/create.md b/content/en/api/go/messages/create.md index 72064e84bd..df98d9abd5 100644 --- a/content/en/api/go/messages/create.md +++ b/content/en/api/go/messages/create.md @@ -2787,7 +2787,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `UserProfileID param.Opt[string] Optional` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `WorkspaceID param.Opt[string] Optional` (header parameter) @@ -3614,6 +3614,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ModelChanged` default: model_changed @@ -3624,6 +3628,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type SystemChanged` default: system_changed @@ -3634,6 +3642,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type ToolsChanged` default: tools_changed @@ -3644,6 +3656,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type MessagesChanged` default: messages_changed @@ -3654,12 +3670,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `type CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type PreviousMessageNotFound` default: previous_message_not_found - `type CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=go#cache-miss-reason-types) to learn what to change for each reason. + - `Type Unavailable` default: unavailable diff --git a/content/en/api/go/models.md b/content/en/api/go/models.md index 2f0c327b5c..38cc2c7a30 100644 --- a/content/en/api/go/models.md +++ b/content/en/api/go/models.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type ModelInfo` @@ -618,6 +620,8 @@ The Models API response can be used to determine information about a specific mo - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ### Returns - `type ModelInfo` diff --git a/content/en/api/go/models/list.md b/content/en/api/go/models/list.md index 67e028dbea..149ec07654 100644 --- a/content/en/api/go/models/list.md +++ b/content/en/api/go/models/list.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type ModelInfo` diff --git a/content/en/api/go/models/retrieve.md b/content/en/api/go/models/retrieve.md index ea75fffa79..d27f8d1fc1 100644 --- a/content/en/api/go/models/retrieve.md +++ b/content/en/api/go/models/retrieve.md @@ -135,6 +135,8 @@ The Models API response can be used to determine information about a specific mo - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"` + - `const AnthropicBetaWebhooks2026_10_07 AnthropicBeta = "webhooks-2026-10-07"` + ## Returns - `type ModelInfo` diff --git a/content/en/api/java/beta.md b/content/en/api/java/beta.md index bc8812d842..f12a8a7e3f 100644 --- a/content/en/api/java/beta.md +++ b/content/en/api/java/beta.md @@ -113,6 +113,8 @@ url: https://platform.claude.com/docs/en/api/java/beta - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Beta API Error - `class BetaApiError` @@ -477,6 +479,8 @@ The Models API response can be used to determine which models are available for - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -949,6 +953,8 @@ The Models API response can be used to determine information about a specific mo - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1414,9 +1420,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -8258,6 +8266,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -8266,6 +8278,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -8274,6 +8290,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -8282,6 +8302,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -8290,10 +8314,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -9446,9 +9482,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -13252,9 +13290,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -16913,8 +16953,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -16963,7 +17017,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -16971,6 +17029,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` @@ -17663,6 +17727,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -17947,6 +18013,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18228,6 +18296,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18502,6 +18572,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18678,6 +18750,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -21748,6 +21822,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -21756,6 +21834,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -21764,6 +21846,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -21772,6 +21858,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -21780,10 +21870,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -22597,6 +22699,8 @@ Create Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -24433,6 +24537,8 @@ List Agents - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25481,6 +25587,8 @@ Get Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26518,6 +26626,8 @@ Update Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28333,6 +28443,8 @@ Archive Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29382,6 +29494,8 @@ List Agent Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30422,6 +30536,8 @@ Create a new environment with the specified configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30877,6 +30993,8 @@ List environments with pagination support. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31208,6 +31326,8 @@ Retrieve a specific environment by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31534,6 +31654,8 @@ Update an existing environment's configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31974,6 +32096,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32144,6 +32268,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32476,6 +32602,8 @@ Retrieve detailed information about a specific work item. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32746,6 +32874,8 @@ Long poll for work items in the queue. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional anthropicWorkerId` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -33001,6 +33131,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -33263,6 +33395,8 @@ Record a heartbeat for a work item to maintain the lease. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -33460,6 +33594,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33734,6 +33870,8 @@ List work items in an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -33989,6 +34127,8 @@ Update work item metadata with merge semantics. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34254,6 +34394,8 @@ Get statistics about the work queue for an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34441,6 +34583,8 @@ Create Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -37124,6 +37268,8 @@ List Sessions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -38617,6 +38763,8 @@ Get Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -40104,6 +40252,8 @@ Update Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41613,6 +41763,8 @@ Delete Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41779,6 +41931,8 @@ Archive Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43394,6 +43548,8 @@ List Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -46497,6 +46653,8 @@ Send Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -47490,6 +47648,8 @@ Stream Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -50630,6 +50790,8 @@ Add Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -50836,6 +50998,8 @@ List Session Resources - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51121,6 +51285,8 @@ Get Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51399,6 +51565,8 @@ Update Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51684,6 +51852,8 @@ Delete Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -51880,6 +52050,8 @@ List Session Threads - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52963,6 +53135,8 @@ Get Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54045,6 +54219,8 @@ Archive Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -55135,6 +55311,8 @@ List Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -58252,6 +58430,8 @@ Stream Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -61394,6 +61574,8 @@ Create Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -62544,6 +62726,8 @@ List Deployments - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63285,6 +63469,8 @@ Get Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64021,6 +64207,8 @@ Update Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65129,6 +65317,8 @@ Archive Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65865,6 +66055,8 @@ Run Deployment Now - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66263,6 +66455,8 @@ Pause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66999,6 +67193,8 @@ Unpause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67779,6 +67975,8 @@ List Deployment Runs - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68182,6 +68380,8 @@ Get Deployment Run - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68578,6 +68778,8 @@ Create a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68804,6 +69006,8 @@ List Vaults - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69012,6 +69216,8 @@ Retrieve a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69215,6 +69421,8 @@ Update a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69428,6 +69636,8 @@ Delete a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69598,6 +69808,8 @@ Archive a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69803,6 +70015,8 @@ Create a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70328,6 +70542,8 @@ List Credentials - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70663,6 +70879,8 @@ Retrieve a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70997,6 +71215,8 @@ Update a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71471,6 +71691,8 @@ Delete a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71649,6 +71871,8 @@ Archive a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71983,6 +72207,8 @@ Validate an MCP OAuth Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72147,13 +72373,13 @@ public final class Main { ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters @@ -72265,6 +72491,8 @@ Create a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72273,19 +72501,25 @@ Create a memory store - `String name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Optional description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Optional metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. #### Returns @@ -72297,27 +72531,33 @@ Create a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -72325,7 +72565,9 @@ Create a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -72370,13 +72612,13 @@ public final class Main { } ``` -### List memory stores +### List Memory Stores `MemoryStoreListPage beta().memoryStores().list(params = MemoryStoreListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters @@ -72384,13 +72626,13 @@ List memory stores - `Optional createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `Optional createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -72406,7 +72648,7 @@ List memory stores - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional> betas` (header parameter) @@ -72514,6 +72756,8 @@ List memory stores - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72530,27 +72774,33 @@ List memory stores - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -72558,7 +72808,9 @@ List memory stores - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -72603,13 +72855,13 @@ public final class Main { } ``` -### Retrieve a memory store +### Retrieve a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().retrieve(params = MemoryStoreRetrieveParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters @@ -72617,7 +72869,7 @@ Retrieve a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `Optional> betas` (header parameter) @@ -72725,6 +72977,8 @@ Retrieve a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72741,27 +72995,33 @@ Retrieve a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -72769,7 +73029,9 @@ Retrieve a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -72811,13 +73073,13 @@ public final class Main { } ``` -### Update a memory store +### Update a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().update(params = MemoryStoreUpdateParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters @@ -72825,7 +73087,9 @@ Update a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `Optional> betas` (header parameter) @@ -72933,6 +73197,8 @@ Update a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72941,17 +73207,21 @@ Update a memory store - `Optional description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Optional metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Optional name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -72965,27 +73235,33 @@ Update a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -72993,7 +73269,9 @@ Update a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -73035,13 +73313,13 @@ public final class Main { } ``` -### Delete a memory store +### Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore beta().memoryStores().delete(params = MemoryStoreDeleteParams.none(), requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters @@ -73049,7 +73327,9 @@ Delete a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `Optional> betas` (header parameter) @@ -73157,6 +73437,8 @@ Delete a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73205,13 +73487,13 @@ public final class Main { } ``` -### Archive a memory store +### Archive a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().archive(params = MemoryStoreArchiveParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters @@ -73219,7 +73501,9 @@ Archive a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `Optional> betas` (header parameter) @@ -73327,6 +73611,8 @@ Archive a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73343,27 +73629,33 @@ Archive a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -73371,7 +73663,9 @@ Archive a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -73415,13 +73709,13 @@ public final class Main { ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -73433,7 +73727,9 @@ Create a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -73541,6 +73837,8 @@ Create a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73549,11 +73847,15 @@ Create a memory - `Optional content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `String path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -73561,13 +73863,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -73575,7 +73883,7 @@ Create a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73591,7 +73899,11 @@ Create a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -73599,13 +73911,17 @@ Create a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -73650,13 +73966,13 @@ public final class Main { } ``` -### List memories +### List Memories `MemoryListPage beta().memoryStores().memories().list(params = MemoryListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -73668,27 +73984,35 @@ List memories - `Optional depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Optional limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `Optional view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Optional> betas` (header parameter) @@ -73796,6 +74120,8 @@ List memories - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73806,17 +74132,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -73824,7 +74156,7 @@ List memories - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -73840,7 +74172,11 @@ List memories - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -73848,17 +74184,23 @@ List memories - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` @@ -73909,13 +74251,13 @@ public final class Main { } ``` -### Retrieve a memory +### Retrieve a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -73931,7 +74273,9 @@ Retrieve a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -74039,6 +74383,8 @@ Retrieve a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74049,13 +74395,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -74063,7 +74415,7 @@ Retrieve a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -74079,7 +74431,11 @@ Retrieve a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -74087,13 +74443,17 @@ Retrieve a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -74137,13 +74497,13 @@ public final class Main { } ``` -### Update a memory +### Update a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().update(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -74159,7 +74519,9 @@ Update a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -74267,6 +74629,8 @@ Update a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74279,25 +74643,35 @@ Update a memory - `Optional path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Optional precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. #### Returns - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -74305,7 +74679,7 @@ Update a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -74321,7 +74695,11 @@ Update a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -74329,13 +74707,17 @@ Update a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -74379,13 +74761,13 @@ public final class Main { } ``` -### Delete a memory +### Delete a Memory `BetaManagedAgentsDeletedMemory beta().memoryStores().memories().delete(params, requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -74511,6 +74893,8 @@ Delete a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74521,7 +74905,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about how long versions are kept. - `Type type` @@ -74565,13 +74953,13 @@ public final class Main { ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `MemoryVersionListPage beta().memoryStores().memoryVersions().list(params = MemoryVersionListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -74599,7 +74987,9 @@ List memory versions - `Optional limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -74607,7 +74997,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Optional operation` (query parameter) @@ -74627,7 +75017,9 @@ List memory versions - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -74735,6 +75127,8 @@ List memory versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74745,7 +75139,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -74761,7 +75161,9 @@ List memory versions - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -74799,7 +75201,11 @@ List memory versions - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -74855,7 +75261,11 @@ List memory versions - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -74915,13 +75325,13 @@ public final class Main { } ``` -### Retrieve a memory version +### Retrieve a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -74937,7 +75347,9 @@ Retrieve a memory version - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -75045,6 +75457,8 @@ Retrieve a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75055,7 +75469,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -75071,7 +75491,9 @@ Retrieve a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -75109,7 +75531,11 @@ Retrieve a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -75165,7 +75591,11 @@ Retrieve a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -75224,13 +75654,13 @@ public final class Main { } ``` -### Redact a memory version +### Redact a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().redact(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -75350,6 +75780,8 @@ Redact a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75360,7 +75792,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -75376,7 +75814,9 @@ Redact a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -75414,7 +75854,11 @@ Redact a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -75470,7 +75914,11 @@ Redact a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -75649,6 +76097,8 @@ Upload File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75911,6 +76361,8 @@ List Files - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76146,6 +76598,8 @@ Download File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76295,6 +76749,8 @@ Get File Metadata - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76525,6 +76981,8 @@ Delete File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76695,6 +77153,8 @@ Create Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76963,6 +77423,8 @@ List Skills - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77203,6 +77665,8 @@ Get Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77438,6 +77902,8 @@ Delete Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77616,6 +78082,8 @@ Create Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77843,6 +78311,8 @@ List Skill Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78058,6 +78528,8 @@ Download a skill version's content as a zip archive. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78219,6 +78691,8 @@ Get Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78433,6 +78907,8 @@ Delete Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78504,7 +78980,7 @@ Create User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -78608,6 +79084,8 @@ Create User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78628,17 +79106,17 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -78678,6 +79156,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -78694,13 +79176,13 @@ Create User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -78712,11 +79194,11 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -78770,14 +79252,10 @@ Create User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```java @@ -78806,6 +79284,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -78817,15 +79296,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -78879,7 +79357,7 @@ List User Profiles - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -78983,6 +79461,8 @@ List User Profiles - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79015,6 +79495,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -79031,13 +79515,13 @@ List User Profiles - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -79049,11 +79533,11 @@ List User Profiles - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -79107,14 +79591,10 @@ List User Profiles - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```java @@ -79145,6 +79625,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -79156,15 +79637,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -79189,7 +79669,7 @@ Get User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -79293,6 +79773,8 @@ Get User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79325,6 +79807,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -79341,13 +79827,13 @@ Get User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -79359,11 +79845,11 @@ Get User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -79417,14 +79903,10 @@ Get User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```java @@ -79453,6 +79935,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -79464,15 +79947,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -79494,7 +79976,7 @@ Update User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -79598,6 +80080,8 @@ Update User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79618,17 +80102,17 @@ Update User Profile - `Optional externalId` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `Optional externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -79668,6 +80152,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -79684,13 +80172,13 @@ Update User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -79702,11 +80190,11 @@ Update User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -79760,14 +80248,10 @@ Update User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```java @@ -79796,6 +80280,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -79807,15 +80292,186 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +`BetaDeletedUserProfile beta().userProfiles().delete(params = UserProfileDeleteParams.none(), requestOptions = RequestOptions.none())` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Parameters + +- `UserProfileDeleteParams params` + + - `Optional userProfileId` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + + - `Optional> betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `Optional workspaceId` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaDeletedUserProfile` + + - `JsonValue type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `String id` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.userprofiles.BetaDeletedUserProfile; +import com.anthropic.models.beta.userprofiles.UserProfileDeleteParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + BetaDeletedUserProfile betaDeletedUserProfile = client.beta().userProfiles().delete("uprof_011CZkZCu8hGbp5mYRQgUmz9"); + } +} +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -79837,7 +80493,7 @@ Create Enrollment URL - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -79941,6 +80597,8 @@ Create Enrollment URL - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79951,7 +80609,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type type` @@ -79998,6 +80656,198 @@ public final class Main { } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +`BetaUserProfileActionUrl beta().userProfiles().actionUrls().create(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `ActionUrlCreateParams params` + + - `Optional userProfileId` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + + - `Optional> betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `Optional workspaceId` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + + - `BetaUserProfileEnrollEndUserAction action` + + The action that the person who opens the URL takes. + +#### Returns + +- `class BetaUserProfileActionUrl` + + A URL to give to the person who takes the requested action. + + - `JsonValue type = "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `LocalDateTime expiresAt` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `String url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.userprofiles.actionurls.ActionUrlCreateParams; +import com.anthropic.models.beta.userprofiles.actionurls.BetaUserProfileActionUrl; +import com.anthropic.models.beta.userprofiles.actionurls.BetaUserProfileEnrollEndUserAction; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + ActionUrlCreateParams params = ActionUrlCreateParams.builder() + .userProfileId("uprof_011CZkZCu8hGbp5mYRQgUmz9") + .action(BetaUserProfileEnrollEndUserAction.builder().build()) + .build(); + BetaUserProfileActionUrl betaUserProfileActionUrl = client.beta().userProfiles().actionUrls().create(params); + } +} +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -80122,6 +80972,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80685,6 +81537,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81111,6 +81965,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81532,6 +82388,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81953,6 +82811,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82370,6 +83230,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82572,6 +83434,8 @@ Fetches a tunnel by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82778,6 +83642,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82979,6 +83845,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83175,6 +84043,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83352,6 +84222,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83537,6 +84409,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83754,6 +84628,8 @@ Fetches a tunnel certificate by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83975,6 +84851,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84187,6 +85065,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85970,6 +86850,8 @@ matched as the JWT's `iss` claim and is not fetched. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String issuerUrl` The `iss` claim value to match against. @@ -86370,6 +87252,8 @@ Archived issuers are excluded unless `include_archived=true`. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -86687,6 +87571,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -87006,6 +87892,8 @@ session. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional checkJti` Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. @@ -87399,6 +88287,8 @@ issuer cannot be changed), or recreate them against another issuer. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationIssuer` @@ -87723,6 +88613,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String issuerId` Tagged ID of the federation issuer. @@ -88115,6 +89007,8 @@ unless `include_archived=true`. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -88438,6 +89332,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -88772,6 +89668,8 @@ Console session. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional appliesToAllWorkspaces` When true, enables this rule for every workspace in the org (including workspaces created later). Setting `false` is rejected with 400 if no workspace would remain enabled; a rule with only a legacy `workspace_id` binding continues to mint. @@ -89142,6 +90040,8 @@ other scopes require a Console session. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRule` @@ -89471,6 +90371,8 @@ other scopes require a Console session. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String workspaceId` Tagged ID of the workspace to enable this rule for. @@ -89681,6 +90583,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaFederationRuleWorkspace` @@ -89881,6 +90785,8 @@ Console session. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class WorkspaceRemoveResponse` @@ -90580,6 +91486,8 @@ accounts. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String name` Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. @@ -90841,6 +91749,8 @@ archived service accounts. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -91070,6 +91980,8 @@ Retrieve a service account by its ID (`svac_...`). - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -91299,6 +92211,8 @@ interactive credential (a user OAuth token or a Console session). - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional description` Replaces the description. Omit to leave unchanged; send `null` to clear (the field is stored as an empty string). @@ -91542,6 +92456,8 @@ those rules first or change their target to another service account. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccount` @@ -91775,6 +92691,8 @@ rejected. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String workspaceId` Tagged workspace ID to add the service account to. @@ -92007,6 +92925,8 @@ page to recover. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -92218,6 +93138,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class WorkspaceRemoveResponse` @@ -92982,6 +93904,8 @@ Create Workspace - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String name` Name of the Workspace. @@ -93906,6 +94830,268 @@ public final class Main { } ``` +### Set Workspace Rate Limits + +`BetaWorkspaceRateLimit beta().organization().workspaces().rateLimits().update(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `RateLimitUpdateParams params` + + - `String workspaceId` (path parameter) + + The ID of the workspace. + + - `Optional rateLimitId` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + + - `List limits` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `BetaWorkspaceRateLimitType type` + + Rate limiter type. + + - `FAST_ITPMCA("fast_itpmca")` + + - `FAST_OTPM("fast_otpm")` + + - `INPUT_TOKENS_PER_MINUTE("input_tokens_per_minute")` + + - `INPUT_TOKENS_PER_MINUTE_CACHE_AWARE("input_tokens_per_minute_cache_aware")` + + - `OUTPUT_TOKENS_PER_MINUTE("output_tokens_per_minute")` + + - `REQUESTS_PER_MINUTE("requests_per_minute")` + + - `TOKENS_PER_DAY("tokens_per_day")` + + - `TOKENS_PER_MINUTE("tokens_per_minute")` + + - `TOOL_USES_PER_SECOND("tool_uses_per_second")` + + - `Optional value` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `JsonValue type = "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `Group group` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `JsonValue type = "model_group"` + + Always `model_group`: a family of models. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `String displayName` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `JsonValue type = "batch"` + + Always `batch`: the Message Batches API. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `JsonValue type = "token_count"` + + Always `token_count`: the Token Count API. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `JsonValue type = "files"` + + Always `files`: the Files API. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `JsonValue type = "skills"` + + Always `skills`: the Skills API. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `JsonValue type = "web_search"` + + Always `web_search`: the Messages API web search tool. + + - `String id` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `List limits` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `String type` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `Optional orgLimit` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `Source source` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `class BetaWorkspaceRateLimitWorkspaceSource` + + - `JsonValue type = "workspace"` + + Always `workspace`: a workspace-level override is stored. + + - `class BetaWorkspaceRateLimitOrganizationSource` + + - `JsonValue type = "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + - `long value` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `Optional> models` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `String rateLimitId` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `String workspaceId` + + ID of the Workspace this entry applies to. + + - `GroupType groupType` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `BATCH("batch")` + + - `FILES("files")` + + - `MODEL_GROUP("model_group")` + + - `SKILLS("skills")` + + - `TOKEN_COUNT("token_count")` + + - `WEB_SEARCH("web_search")` + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.workspaces.ratelimits.BetaWorkspaceRateLimit; +import com.anthropic.models.beta.organization.workspaces.ratelimits.BetaWorkspaceRateLimitType; +import com.anthropic.models.beta.organization.workspaces.ratelimits.BetaWorkspaceRateLimitUpdateValue; +import com.anthropic.models.beta.organization.workspaces.ratelimits.RateLimitUpdateParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + RateLimitUpdateParams params = RateLimitUpdateParams.builder() + .workspaceId("workspace_id") + .rateLimitId("rate_limit_id") + .addLimit(BetaWorkspaceRateLimitUpdateValue.builder() + .type(BetaWorkspaceRateLimitType.FAST_ITPMCA) + .value(0L) + .build()) + .build(); + BetaWorkspaceRateLimit betaWorkspaceRateLimit = client.beta().organization().workspaces().rateLimits().update(params); + } +} +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -94503,6 +95689,8 @@ omitted from the results. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -94711,6 +95899,8 @@ accounts cannot be added and are rejected. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String serviceAccountId` Tagged service account ID to add. @@ -94930,6 +96120,8 @@ account returns 404. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -95139,6 +96331,8 @@ rejected. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `BetaNoBillingWorkspaceRole workspaceRole` New role for the service account in this workspace. @@ -95353,6 +96547,8 @@ membership. Archived workspaces return 400. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class ServiceAccountRemoveResponse` @@ -95466,7 +96662,7 @@ the remaining entries. - `String id` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `Group group` @@ -99562,6 +100758,8 @@ Anthropic account team. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional amount` Limit amount as a non-negative integer decimal string in the minor unit of the organization's billing currency (cents for USD): "50000" is $500.00. `null` sets an explicit no-limit override for this scope and `period` only — each period resolves independently, so caps for other periods still apply. @@ -100132,6 +101330,8 @@ organizations only, not for Claude Console organizations. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSpendLimit` @@ -103085,6 +104285,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `List files` The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. @@ -103488,6 +104690,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -103889,6 +105093,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String servedVersionId` Serve this version of the Plugin (prefixed `pluginver_`) and pin the served version to it; `latest` is not accepted. @@ -104338,6 +105544,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPlugin` @@ -104735,6 +105943,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaDeletedPlugin` @@ -104924,6 +106134,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `List files` The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. @@ -105274,6 +106486,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginVersion` @@ -105601,6 +106815,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginVersion` @@ -105943,6 +107159,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Example ```java @@ -106127,270 +107345,274 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaPluginInstallationSetting` - - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. - - - `JsonValue type = "plugin_installation_setting"` - - Always `plugin_installation_setting`. - - - `LocalDateTime createdAt` - - When the target was first given a setting for this Plugin. - - format: date-time - - - `InstallationPreference installationPreference` - - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `AUTO_INSTALL("auto_install")` - - - `AVAILABLE("available")` - - - `NOT_AVAILABLE("not_available")` - - - `REQUIRED("required")` - - - `String pluginId` - - The Plugin's ID. - - - `Target target` - - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - - - `class BetaPluginTargetOrganization` - - - `JsonValue type = "organization"` - - Every member of the organization. - - - `class BetaPluginTargetRbacGroup` - - - `JsonValue type = "rbac_group"` - - An RBAC Group. - - - `String rbacGroupId` - - The RBAC Group's ID. - - - `class BetaPluginTargetOrganizationMember` - - - `JsonValue type = "organization_member"` - - One member of the organization. - - - `String userId` - - The member's User ID. - - - `LocalDateTime updatedAt` - - When its setting last changed. - - format: date-time - -#### Example - -```java -package com.anthropic.example; - -import com.anthropic.client.AnthropicClient; -import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.plugins.installationsettings.InstallationSettingListPage; -import com.anthropic.models.beta.organization.plugins.installationsettings.InstallationSettingListParams; - -public final class Main { - private Main() {} - - public static void main(String[] args) { - AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - - InstallationSettingListPage page = client.beta().organization().plugins().installationSettings().list("plugin_id"); - } -} -``` - -##### Response (200) - -```json -{ - "data": [ - { - "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` - -### Set Plugin Installation Setting - -`BetaPluginInstallationSetting beta().organization().plugins().installationSettings().set(params, requestOptions = RequestOptions.none())` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. - -Writing the value a target already holds of its own changes nothing. - -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. - -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `InstallationSettingSetParams params` - - - `String pluginId` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - - - `Optional target` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - - - `Optional> betas` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` - - - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` - - - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` - - - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` - - - `PDFS_2024_09_25("pdfs-2024-09-25")` - - - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` - - - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` - - - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` - - - `FILES_API_2025_04_14("files-api-2025-04-14")` - - - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` - - - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` - - - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` - - - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` - - - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` - - - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` - - - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` - - - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` - - - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` - - - `SKILLS_2025_10_02("skills-2025-10-02")` - - - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` - - - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` - - - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` - - - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` - - - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` - - - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` - - - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` - - - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` - - - `DREAMING_2026_04_21("dreaming-2026-04-21")` - - - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` - - - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` - - - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` - - - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` - - - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` - - - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` - - - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` - - - `COMPACT_2026_01_12("compact-2026-01-12")` - - - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` - - - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` - - - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` - - - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` - - - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` - - - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` - - - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` - - - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` - - - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` - - - `COMPACT_2026_09_04("compact-2026-09-04")` - - - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` - - - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` - - - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` - - - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` - - - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` - - - `InstallationPreference installationPreference` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `AUTO_INSTALL("auto_install")` - - - `AVAILABLE("available")` - - - `NOT_AVAILABLE("not_available")` - - - `REQUIRED("required")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaPluginInstallationSetting` + + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. + + - `JsonValue type = "plugin_installation_setting"` + + Always `plugin_installation_setting`. + + - `LocalDateTime createdAt` + + When the target was first given a setting for this Plugin. + + format: date-time + + - `InstallationPreference installationPreference` + + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `AUTO_INSTALL("auto_install")` + + - `AVAILABLE("available")` + + - `NOT_AVAILABLE("not_available")` + + - `REQUIRED("required")` + + - `String pluginId` + + The Plugin's ID. + + - `Target target` + + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + + - `class BetaPluginTargetOrganization` + + - `JsonValue type = "organization"` + + Every member of the organization. + + - `class BetaPluginTargetRbacGroup` + + - `JsonValue type = "rbac_group"` + + An RBAC Group. + + - `String rbacGroupId` + + The RBAC Group's ID. + + - `class BetaPluginTargetOrganizationMember` + + - `JsonValue type = "organization_member"` + + One member of the organization. + + - `String userId` + + The member's User ID. + + - `LocalDateTime updatedAt` + + When its setting last changed. + + format: date-time + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.plugins.installationsettings.InstallationSettingListPage; +import com.anthropic.models.beta.organization.plugins.installationsettings.InstallationSettingListParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + InstallationSettingListPage page = client.beta().organization().plugins().installationSettings().list("plugin_id"); + } +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` + +### Set Plugin Installation Setting + +`BetaPluginInstallationSetting beta().organization().plugins().installationSettings().set(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` + +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. + +Writing the value a target already holds of its own changes nothing. + +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `InstallationSettingSetParams params` + + - `String pluginId` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + + - `Optional target` (path parameter) + + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `InstallationPreference installationPreference` + + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. + + - `AUTO_INSTALL("auto_install")` + + - `AVAILABLE("available")` + + - `NOT_AVAILABLE("not_available")` + + - `REQUIRED("required")` #### Returns @@ -106649,6 +107871,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaDeletedPluginInstallationSetting` @@ -106894,6 +108118,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginShare` @@ -107155,6 +108381,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginMarketplace` @@ -107424,6 +108652,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaPluginMarketplace` @@ -107689,6 +108919,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `DefaultInstallationPreference defaultInstallationPreference` The organization-wide installation setting every Plugin in the marketplace without one of its own gets: one of `required`, `auto_install`, `available`, `not_available`. Once set it can be changed but not removed. @@ -107976,6 +109208,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String repositoryUrl` The `https://` URL of a public repository on github.com that holds the marketplace. A URL longer than 2,048 characters, on any other host or scheme, with a port other than 443 or 80, with credentials in it, or that does not name exactly `owner/repo` (a trailing `.git` or `/` is accepted) is a 400. A private or missing repository is reported in the response, not refused. @@ -108252,6 +109486,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String archive` A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. @@ -108510,6 +109746,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `String endpointUrl` The base URL of your collector's OTLP/HTTP endpoint, for example `https://gateway.example.com`. @@ -108907,358 +110145,362 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaTelemetryDestination` - - An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - - - `JsonValue type = "telemetry_destination"` - - - `String id` - - The unique ID of the destination (`tdst_...`). - - - `LocalDateTime createdAt` - - Time the destination was created. - - format: date-time - - - `BetaTelemetryDestinationDeliveryHealth deliveryHealth` - - The most recent delivery results for this destination. - - - `Optional lastError` - - A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - - `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#delivery-errors) to learn the likely cause of each error. - - - `Optional lastErrorAt` - - Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - - format: date-time - - - `Optional lastSuccessAt` - - Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - - format: date-time - - - `Optional displayName` - - Human-readable name for the destination. Null when none was set. - - - `String endpointUrl` - - The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - - The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - - `List headerNames` - - Names of the registered request headers. Header values are write-only and are never returned. - - - `BetaTelemetryDestinationState state` - - Whether the destination receives deliveries. - - - `class BetaTelemetryDestinationStateEnabled` - - The telemetry destination receives the spans of the workspaces that it covers. - - - `JsonValue type = "enabled"` - - - `class BetaTelemetryDestinationStateDisabled` - - The API doesn't deliver anything to the telemetry destination. - - Spans produced while it is disabled aren't delivered later. - - - `JsonValue type = "disabled"` - - - `BetaTelemetryDestinationDisabledReason reason` - - Whether a caller or the API disabled the destination and, when the API did, why. Read-only. - - - `class BetaTelemetryDestinationDisabledReasonCaller` - - A caller disabled the destination with an update that set `state` to `disabled`. - - - `JsonValue type = "caller"` - - - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` - - The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. - - - `JsonValue type = "sustained_failure"` - - - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` - - The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. - - - `JsonValue type = "invalid_address"` - - - `class BetaTelemetryDestinationDisabledReasonRedirect` - - The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. - - - `JsonValue type = "redirect"` - - - `BetaTelemetryDestinationTraces traces` - - The destination's settings for the traces it receives. - - - `BetaTelemetryDestinationContentMode contentMode` - - What the exported spans contain. - - - `METADATA_ONLY("metadata_only")` - - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. - - - `CONTENT("content")` - - The spans contain the same metadata as `metadata_only`, plus message and tool content. - - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. - - - `boolean enabled` - - Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. - - - `Optional endpointUrl` - - The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. - - When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. - - - `Optional maxContentBytes` - - The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. - - Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. - - format: int32 - - - `LocalDateTime updatedAt` - - Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. - - An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. - - format: date-time - - - `BetaTelemetryDestinationWorkspaces workspaces` - - Which of the organization's workspaces the destination covers. - - - `class BetaTelemetryDestinationWorkspacesAll` - - The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. - - - `JsonValue type = "all"` - - - `class BetaTelemetryDestinationWorkspacesInclude` - - The destination covers the workspaces on its list, and no others. - - - `JsonValue type = "include"` - - - `class BetaTelemetryDestinationWorkspacesExclude` - - The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. - - - `JsonValue type = "exclude"` - -#### Example - -```java -package com.anthropic.example; - -import com.anthropic.client.AnthropicClient; -import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationListPage; -import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationListParams; - -public final class Main { - private Main() {} - - public static void main(String[] args) { - AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - - TelemetryDestinationListPage page = client.beta().organization().telemetryDestinations().list(); - } -} -``` - -##### Response (200) - -```json -{ - "data": [ - { - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "delivery_health": { - "last_error": "last_error", - "last_error_at": "2019-12-27T18:11:19.117Z", - "last_success_at": "2019-12-27T18:11:19.117Z" - }, - "display_name": "display_name", - "endpoint_url": "endpoint_url", - "header_names": [ - "string" - ], - "state": { - "type": "enabled" - }, - "traces": { - "content_mode": "metadata_only", - "enabled": true, - "endpoint_url": "endpoint_url", - "max_content_bytes": 0 - }, - "type": "telemetry_destination", - "updated_at": "2019-12-27T18:11:19.117Z", - "workspaces": { - "type": "all" - } - } - ], - "next_page": "next_page" -} -``` - -### Retrieve a Telemetry Destination - -`BetaTelemetryDestination beta().organization().telemetryDestinations().retrieve(params = TelemetryDestinationRetrieveParams.none(), requestOptions = RequestOptions.none())` - -**GET** `/v1/organizations/telemetry_destinations/{destination_id}` - -Read a destination's configuration, state, and most recent delivery results. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#delivery-and-health) to learn how the API delivers spans and when it disables a destination. - -#### Parameters - -- `TelemetryDestinationRetrieveParams params` - - - `Optional destinationId` (path parameter) - - ID of the destination (`tdst_...`). - - - `Optional> betas` (header parameter) - - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - - - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` - - - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` - - - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` - - - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` - - - `PDFS_2024_09_25("pdfs-2024-09-25")` - - - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` - - - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` - - - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` - - - `FILES_API_2025_04_14("files-api-2025-04-14")` - - - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` - - - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` - - - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` - - - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` - - - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` - - - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` - - - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` - - - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` - - - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` - - - `SKILLS_2025_10_02("skills-2025-10-02")` - - - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` - - - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` - - - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` - - - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` - - - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` - - - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` - - - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` - - - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` - - - `DREAMING_2026_04_21("dreaming-2026-04-21")` - - - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` - - - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` - - - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` - - - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` - - - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` - - - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` - - - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` - - - `COMPACT_2026_01_12("compact-2026-01-12")` - - - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` - - - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` - - - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` - - - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` - - - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` - - - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` - - - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` - - - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` - - - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` - - - `COMPACT_2026_09_04("compact-2026-09-04")` - - - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` - - - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` - - - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` - - - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` - - - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestination` + + An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. + + - `JsonValue type = "telemetry_destination"` + + - `String id` + + The unique ID of the destination (`tdst_...`). + + - `LocalDateTime createdAt` + + Time the destination was created. + + format: date-time + + - `BetaTelemetryDestinationDeliveryHealth deliveryHealth` + + The most recent delivery results for this destination. + + - `Optional lastError` + + A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. + + Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. + + `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. + + See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#delivery-errors) to learn the likely cause of each error. + + - `Optional lastErrorAt` + + Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. + + format: date-time + + - `Optional lastSuccessAt` + + Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. + + format: date-time + + - `Optional displayName` + + Human-readable name for the destination. Null when none was set. + + - `String endpointUrl` + + The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. + + The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. + + - `List headerNames` + + Names of the registered request headers. Header values are write-only and are never returned. + + - `BetaTelemetryDestinationState state` + + Whether the destination receives deliveries. + + - `class BetaTelemetryDestinationStateEnabled` + + The telemetry destination receives the spans of the workspaces that it covers. + + - `JsonValue type = "enabled"` + + - `class BetaTelemetryDestinationStateDisabled` + + The API doesn't deliver anything to the telemetry destination. + + Spans produced while it is disabled aren't delivered later. + + - `JsonValue type = "disabled"` + + - `BetaTelemetryDestinationDisabledReason reason` + + Whether a caller or the API disabled the destination and, when the API did, why. Read-only. + + - `class BetaTelemetryDestinationDisabledReasonCaller` + + A caller disabled the destination with an update that set `state` to `disabled`. + + - `JsonValue type = "caller"` + + - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` + + The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. + + - `JsonValue type = "sustained_failure"` + + - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` + + The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + + - `JsonValue type = "invalid_address"` + + - `class BetaTelemetryDestinationDisabledReasonRedirect` + + The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + + - `JsonValue type = "redirect"` + + - `BetaTelemetryDestinationTraces traces` + + The destination's settings for the traces it receives. + + - `BetaTelemetryDestinationContentMode contentMode` + + What the exported spans contain. + + - `METADATA_ONLY("metadata_only")` + + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + + - `CONTENT("content")` + + The spans contain the same metadata as `metadata_only`, plus message and tool content. + + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + + - `boolean enabled` + + Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + + - `Optional endpointUrl` + + The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + + When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + + - `Optional maxContentBytes` + + The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + + Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + + format: int32 + + - `LocalDateTime updatedAt` + + Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + + An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + + format: date-time + + - `BetaTelemetryDestinationWorkspaces workspaces` + + Which of the organization's workspaces the destination covers. + + - `class BetaTelemetryDestinationWorkspacesAll` + + The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + + - `JsonValue type = "all"` + + - `class BetaTelemetryDestinationWorkspacesInclude` + + The destination covers the workspaces on its list, and no others. + + - `JsonValue type = "include"` + + - `class BetaTelemetryDestinationWorkspacesExclude` + + The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + + - `JsonValue type = "exclude"` + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationListPage; +import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationListParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + TelemetryDestinationListPage page = client.beta().organization().telemetryDestinations().list(); + } +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "delivery_health": { + "last_error": "last_error", + "last_error_at": "2019-12-27T18:11:19.117Z", + "last_success_at": "2019-12-27T18:11:19.117Z" + }, + "display_name": "display_name", + "endpoint_url": "endpoint_url", + "header_names": [ + "string" + ], + "state": { + "type": "enabled" + }, + "traces": { + "content_mode": "metadata_only", + "enabled": true, + "endpoint_url": "endpoint_url", + "max_content_bytes": 0 + }, + "type": "telemetry_destination", + "updated_at": "2019-12-27T18:11:19.117Z", + "workspaces": { + "type": "all" + } + } + ], + "next_page": "next_page" +} +``` + +### Retrieve a Telemetry Destination + +`BetaTelemetryDestination beta().organization().telemetryDestinations().retrieve(params = TelemetryDestinationRetrieveParams.none(), requestOptions = RequestOptions.none())` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}` + +Read a destination's configuration, state, and most recent delivery results. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#delivery-and-health) to learn how the API delivers spans and when it disables a destination. + +#### Parameters + +- `TelemetryDestinationRetrieveParams params` + + - `Optional destinationId` (path parameter) + + ID of the destination (`tdst_...`). + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` #### Returns @@ -109612,6 +110854,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional displayName` New human-readable name, 1 to 255 characters. Null clears it. @@ -110000,17 +111244,1269 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaDeletedTelemetryDestination` + + Confirmation that a destination was deleted. + + - `JsonValue type = "telemetry_destination_deleted"` + + - `String id` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.BetaDeletedTelemetryDestination; +import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationDeleteParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + BetaDeletedTelemetryDestination betaDeletedTelemetryDestination = client.beta().organization().telemetryDestinations().delete("destination_id"); + } +} +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +`BetaTelemetryDestinationTestResponse beta().organization().telemetryDestinations().test(params = TelemetryDestinationTestParams.none(), requestOptions = RequestOptions.none())` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Parameters + +- `TelemetryDestinationTestParams params` + + - `Optional destinationId` (path parameter) + + ID of the destination to test (starts with `tdst_`). + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationTestResponse` + + The result of one test span sent to a destination. + + - `JsonValue type = "telemetry_destination_test"` + + - `BetaTelemetryDestinationTestResult result` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `class BetaTelemetryDestinationTestSuccess` + + The destination answered the test span with a 2xx status. + + - `JsonValue type = "success"` + + - `class BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `JsonValue type = "failure"` + + - `String error` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.BetaTelemetryDestinationTestResponse; +import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationTestParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + BetaTelemetryDestinationTestResponse betaTelemetryDestinationTestResponse = client.beta().organization().telemetryDestinations().test("destination_id"); + } +} +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +`WorkspaceListPage beta().organization().telemetryDestinations().workspaces().list(params = WorkspaceListParams.none(), requestOptions = RequestOptions.none())` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceListParams params` + + - `Optional destinationId` (path parameter) + + ID of the destination (`tdst_...`). + + - `Optional limit` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + + - `Optional page` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `JsonValue type = "telemetry_destination_workspace"` + + - `LocalDateTime createdAt` + + Time the workspace was added to the list. + + format: date-time + + - `String telemetryDestinationId` + + ID of the telemetry destination (`tdst_...`). + + - `String workspaceId` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceListPage; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceListParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + WorkspaceListPage page = client.beta().organization().telemetryDestinations().workspaces().list("destination_id"); + } +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +`BetaTelemetryDestinationWorkspace beta().organization().telemetryDestinations().workspaces().add(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceAddParams params` + + - `String destinationId` (path parameter) + + ID of the destination (`tdst_...`). + + - `Optional workspaceId` (path parameter) + + ID of the workspace to add (`wrkspc_...`). + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `JsonValue type = "telemetry_destination_workspace"` + + - `LocalDateTime createdAt` + + Time the workspace was added to the list. + + format: date-time + + - `String telemetryDestinationId` + + ID of the telemetry destination (`tdst_...`). + + - `String workspaceId` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.BetaTelemetryDestinationWorkspace; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceAddParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + WorkspaceAddParams params = WorkspaceAddParams.builder() + .destinationId("destination_id") + .workspaceId("workspace_id") + .build(); + BetaTelemetryDestinationWorkspace betaTelemetryDestinationWorkspace = client.beta().organization().telemetryDestinations().workspaces().add(params); + } +} +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`BetaDeletedTelemetryDestinationWorkspace beta().organization().telemetryDestinations().workspaces().remove(params, requestOptions = RequestOptions.none())` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `WorkspaceRemoveParams params` + + - `String destinationId` (path parameter) + + ID of the destination (`tdst_...`). + + - `Optional workspaceId` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + +#### Returns + +- `class BetaDeletedTelemetryDestinationWorkspace` + + Confirmation that a workspace was removed from a destination's list. + + - `JsonValue type = "telemetry_destination_workspace_deleted"` + + - `String telemetryDestinationId` + + ID of the telemetry destination (`tdst_...`). + + - `String workspaceId` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.BetaDeletedTelemetryDestinationWorkspace; +import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceRemoveParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + WorkspaceRemoveParams params = WorkspaceRemoveParams.builder() + .destinationId("destination_id") + .workspaceId("workspace_id") + .build(); + BetaDeletedTelemetryDestinationWorkspace betaDeletedTelemetryDestinationWorkspace = client.beta().organization().telemetryDestinations().workspaces().remove(params); + } +} +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`BetaNewOrganizationWebhookEndpoint beta().organization().webhooks().create(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `WebhookCreateParams params` + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `List enabledEvents` + + The event types to deliver to the endpoint. Must list at least one. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `String url` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + + - `Optional description` + + Notes about the endpoint. + + - `Optional name` + + A short label for the endpoint. + +#### Returns + +- `class BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `String id` + + ID of the webhook endpoint. + + - `LocalDateTime createdAt` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `String description` + + Notes about the endpoint. An empty string when none were given. + + - `String disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `List enabledEvents` + + The event types delivered to the endpoint. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `String name` + + A short label for the endpoint. An empty string when none was given. + + - `String signingSecret` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `BetaOrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `DISABLED("disabled")` + + - `ENABLED("enabled")` + + - `LocalDateTime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `String url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.organization.webhooks.BetaNewOrganizationWebhookEndpoint; +import com.anthropic.models.beta.organization.webhooks.WebhookCreateParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + WebhookCreateParams params = WebhookCreateParams.builder() + .addEnabledEvent(WebhookCreateParams.EnabledEvent.USER_PROFILE_ENFORCEMENT_ACTION_OPENED) + .url("x") + .build(); + BetaNewOrganizationWebhookEndpoint betaNewOrganizationWebhookEndpoint = client.beta().organization().webhooks().create(params); + } +} +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`WebhookListPage beta().organization().webhooks().list(params = WebhookListParams.none(), requestOptions = RequestOptions.none())` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `WebhookListParams params` + + - `Optional afterId` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + + - `Optional beforeId` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + + - `Optional limit` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + + - `Optional order` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `ASC("asc")` + + - `DESC("desc")` + + - `Optional> betas` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns -- `class BetaDeletedTelemetryDestination` +- `class BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `JsonValue type = "telemetry_destination_deleted"` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `String id` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `LocalDateTime createdAt` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `String description` + + Notes about the endpoint. An empty string when none were given. + + - `String disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `List enabledEvents` + + The event types delivered to the endpoint. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `String name` + + A short label for the endpoint. An empty string when none was given. + + - `BetaOrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `DISABLED("disabled")` + + - `ENABLED("enabled")` + + - `LocalDateTime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `String url` + + The HTTPS URL that deliveries are sent to. #### Example @@ -110019,8 +112515,8 @@ package com.anthropic.example; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.BetaDeletedTelemetryDestination; -import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationDeleteParams; +import com.anthropic.models.beta.organization.webhooks.WebhookListPage; +import com.anthropic.models.beta.organization.webhooks.WebhookListParams; public final class Main { private Main() {} @@ -110028,7 +112524,7 @@ public final class Main { public static void main(String[] args) { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - BetaDeletedTelemetryDestination betaDeletedTelemetryDestination = client.beta().organization().telemetryDestinations().delete("destination_id"); + WebhookListPage page = client.beta().organization().webhooks().list(); } } ``` @@ -110037,30 +112533,50 @@ public final class Main { ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`BetaTelemetryDestinationTestResponse beta().organization().telemetryDestinations().test(params = TelemetryDestinationTestParams.none(), requestOptions = RequestOptions.none())` +`BetaOrganizationWebhookEndpoint beta().organization().webhooks().retrieve(params = WebhookRetrieveParams.none(), requestOptions = RequestOptions.none())` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `TelemetryDestinationTestParams params` +- `WebhookRetrieveParams params` - - `Optional destinationId` (path parameter) + - `Optional webhookEndpointId` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. + + maxLength: 2048 - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -110164,33 +112680,62 @@ Send one test span, named `anthropic.test`, to the destination with its register - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns -- `class BetaTelemetryDestinationTestResponse` +- `class BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `JsonValue type = "telemetry_destination_test"` + - `String id` - - `BetaTelemetryDestinationTestResult result` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `LocalDateTime createdAt` - - `class BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `JsonValue type = "success"` + - `String description` - - `class BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `String disabledReason` - - `JsonValue type = "failure"` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `String error` + - `List enabledEvents` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `String name` + + A short label for the endpoint. An empty string when none was given. + + - `BetaOrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `DISABLED("disabled")` + + - `ENABLED("enabled")` + + - `LocalDateTime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `String url` + + The HTTPS URL that deliveries are sent to. #### Example @@ -110199,8 +112744,8 @@ package com.anthropic.example; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.BetaTelemetryDestinationTestResponse; -import com.anthropic.models.beta.organization.telemetrydestinations.TelemetryDestinationTestParams; +import com.anthropic.models.beta.organization.webhooks.BetaOrganizationWebhookEndpoint; +import com.anthropic.models.beta.organization.webhooks.WebhookRetrieveParams; public final class Main { private Main() {} @@ -110208,7 +112753,7 @@ public final class Main { public static void main(String[] args) { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - BetaTelemetryDestinationTestResponse betaTelemetryDestinationTestResponse = client.beta().organization().telemetryDestinations().test("destination_id"); + BetaOrganizationWebhookEndpoint betaOrganizationWebhookEndpoint = client.beta().organization().webhooks().retrieve("webhook_endpoint_id"); } } ``` @@ -110217,48 +112762,43 @@ public final class Main { ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces - -### List Telemetry Destination Workspaces - -`WorkspaceListPage beta().organization().telemetryDestinations().workspaces().list(params = WorkspaceListParams.none(), requestOptions = RequestOptions.none())` +### Update Organization Webhook Endpoint -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +`BetaOrganizationWebhookEndpoint beta().organization().webhooks().update(params = WebhookUpdateParams.none(), requestOptions = RequestOptions.none())` -List the workspaces on a destination's workspace list, newest entry first. +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +Update an organization webhook endpoint. Only the fields you send are changed. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `WorkspaceListParams params` +- `WebhookUpdateParams params` - - `Optional destinationId` (path parameter) - - ID of the destination (`tdst_...`). + - `Optional webhookEndpointId` (path parameter) - - `Optional limit` (query parameter) + ID of the webhook endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. - - format: int32 - - - `Optional page` (query parameter) - - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + maxLength: 2048 - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -110362,29 +112902,92 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `Optional description` + + Notes about the endpoint. + + - `Optional> enabledEvents` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `Optional name` + + A short label for the endpoint. + + - `Optional state` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `DISABLED("disabled")` + + - `ENABLED("enabled")` + + - `Optional url` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + #### Returns -- `class BetaTelemetryDestinationWorkspace` +- `class BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `String id` - - `JsonValue type = "telemetry_destination_workspace"` + ID of the webhook endpoint. - `LocalDateTime createdAt` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `String telemetryDestinationId` + - `String description` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `String workspaceId` + - `String disabledReason` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `List enabledEvents` + + The event types delivered to the endpoint. + + - `USER_PROFILE_ENFORCEMENT_ACTION_OPENED("user_profile.enforcement_action_opened")` + + - `USER_PROFILE_ENFORCEMENT_ACTION_RESOLVED("user_profile.enforcement_action_resolved")` + + - `String name` + + A short label for the endpoint. An empty string when none was given. + + - `BetaOrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `DISABLED("disabled")` + + - `ENABLED("enabled")` + + - `LocalDateTime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `String url` + + The HTTPS URL that deliveries are sent to. #### Example @@ -110393,8 +112996,8 @@ package com.anthropic.example; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceListPage; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceListParams; +import com.anthropic.models.beta.organization.webhooks.BetaOrganizationWebhookEndpoint; +import com.anthropic.models.beta.organization.webhooks.WebhookUpdateParams; public final class Main { private Main() {} @@ -110402,7 +113005,7 @@ public final class Main { public static void main(String[] args) { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - WorkspaceListPage page = client.beta().organization().telemetryDestinations().workspaces().list("destination_id"); + BetaOrganizationWebhookEndpoint betaOrganizationWebhookEndpoint = client.beta().organization().webhooks().update("webhook_endpoint_id"); } } ``` @@ -110411,47 +113014,43 @@ public final class Main { ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace +### Delete Organization Webhook Endpoint -`BetaTelemetryDestinationWorkspace beta().organization().telemetryDestinations().workspaces().add(params, requestOptions = RequestOptions.none())` +`BetaDeletedOrganizationWebhookEndpoint beta().organization().webhooks().delete(params = WebhookDeleteParams.none(), requestOptions = RequestOptions.none())` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Add one workspace to a destination's workspace list. +Delete an organization webhook endpoint. -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. - -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `WorkspaceAddParams params` - - - `String destinationId` (path parameter) +- `WebhookDeleteParams params` - ID of the destination (`tdst_...`). + - `Optional webhookEndpointId` (path parameter) - - `Optional workspaceId` (path parameter) + ID of the webhook endpoint. - ID of the workspace to add (`wrkspc_...`). + maxLength: 2048 - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -110555,29 +113154,21 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaTelemetryDestinationWorkspace` - - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` - - `JsonValue type = "telemetry_destination_workspace"` +#### Returns - - `LocalDateTime createdAt` +- `class BetaDeletedOrganizationWebhookEndpoint` - Time the workspace was added to the list. + A deleted organization webhook endpoint. - format: date-time - - - `String telemetryDestinationId` + - `JsonValue type = "webhook_endpoint_deleted"` - ID of the telemetry destination (`tdst_...`). + Always `webhook_endpoint_deleted`. - - `String workspaceId` + - `String id` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example @@ -110586,8 +113177,8 @@ package com.anthropic.example; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.BetaTelemetryDestinationWorkspace; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceAddParams; +import com.anthropic.models.beta.organization.webhooks.BetaDeletedOrganizationWebhookEndpoint; +import com.anthropic.models.beta.organization.webhooks.WebhookDeleteParams; public final class Main { private Main() {} @@ -110595,11 +113186,7 @@ public final class Main { public static void main(String[] args) { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - WorkspaceAddParams params = WorkspaceAddParams.builder() - .destinationId("destination_id") - .workspaceId("workspace_id") - .build(); - BetaTelemetryDestinationWorkspace betaTelemetryDestinationWorkspace = client.beta().organization().telemetryDestinations().workspaces().add(params); + BetaDeletedOrganizationWebhookEndpoint betaDeletedOrganizationWebhookEndpoint = client.beta().organization().webhooks().delete("webhook_endpoint_id"); } } ``` @@ -110608,42 +113195,35 @@ public final class Main { ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace +### Regenerate Organization Webhook Endpoint Signing Secret -`BetaDeletedTelemetryDestinationWorkspace beta().organization().telemetryDestinations().workspaces().remove(params, requestOptions = RequestOptions.none())` +`BetaOrganizationWebhookEndpointSigningSecret beta().organization().webhooks().regenerateSigningSecret(params = WebhookRegenerateSigningSecretParams.none(), requestOptions = RequestOptions.none())` -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Remove one workspace from a destination's workspace list. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. - -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=java#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `WorkspaceRemoveParams params` - - - `String destinationId` (path parameter) +- `WebhookRegenerateSigningSecretParams params` - ID of the destination (`tdst_...`). + - `Optional webhookEndpointId` (path parameter) - - `Optional workspaceId` (path parameter) + ID of the webhook endpoint. - ID of the workspace to remove (`wrkspc_...`). + maxLength: 2048 - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -110747,21 +113327,17 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` -#### Returns - -- `class BetaDeletedTelemetryDestinationWorkspace` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` - Confirmation that a workspace was removed from a destination's list. +#### Returns - - `JsonValue type = "telemetry_destination_workspace_deleted"` +- `class BetaOrganizationWebhookEndpointSigningSecret` - - `String telemetryDestinationId` + An organization webhook endpoint's new signing secret. - ID of the telemetry destination (`tdst_...`). + - `String signingSecret` - - `String workspaceId` - - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example @@ -110770,8 +113346,8 @@ package com.anthropic.example; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.BetaDeletedTelemetryDestinationWorkspace; -import com.anthropic.models.beta.organization.telemetrydestinations.workspaces.WorkspaceRemoveParams; +import com.anthropic.models.beta.organization.webhooks.BetaOrganizationWebhookEndpointSigningSecret; +import com.anthropic.models.beta.organization.webhooks.WebhookRegenerateSigningSecretParams; public final class Main { private Main() {} @@ -110779,11 +113355,7 @@ public final class Main { public static void main(String[] args) { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - WorkspaceRemoveParams params = WorkspaceRemoveParams.builder() - .destinationId("destination_id") - .workspaceId("workspace_id") - .build(); - BetaDeletedTelemetryDestinationWorkspace betaDeletedTelemetryDestinationWorkspace = client.beta().organization().telemetryDestinations().workspaces().remove(params); + BetaOrganizationWebhookEndpointSigningSecret betaOrganizationWebhookEndpointSigningSecret = client.beta().organization().webhooks().regenerateSigningSecret("webhook_endpoint_id"); } } ``` @@ -110792,8 +113364,6 @@ public final class Main { ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/java/beta/agents.md b/content/en/api/java/beta/agents.md index 14cc6cba1a..43cbd4a482 100644 --- a/content/en/api/java/beta/agents.md +++ b/content/en/api/java/beta/agents.md @@ -123,6 +123,8 @@ Create Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1959,6 +1961,8 @@ List Agents - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3007,6 +3011,8 @@ Get Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4044,6 +4050,8 @@ Update Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5859,6 +5867,8 @@ Archive Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13284,6 +13294,8 @@ List Agent Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/archive.md b/content/en/api/java/beta/agents/archive.md index ad49f2698f..11c82e10ff 100644 --- a/content/en/api/java/beta/agents/archive.md +++ b/content/en/api/java/beta/agents/archive.md @@ -125,6 +125,8 @@ Archive Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/create.md b/content/en/api/java/beta/agents/create.md index 80b3148d3a..499d998c62 100644 --- a/content/en/api/java/beta/agents/create.md +++ b/content/en/api/java/beta/agents/create.md @@ -121,6 +121,8 @@ Create Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/list.md b/content/en/api/java/beta/agents/list.md index df82a63743..591a41a6ec 100644 --- a/content/en/api/java/beta/agents/list.md +++ b/content/en/api/java/beta/agents/list.md @@ -147,6 +147,8 @@ List Agents - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/retrieve.md b/content/en/api/java/beta/agents/retrieve.md index 5ba127acf8..f993efa067 100644 --- a/content/en/api/java/beta/agents/retrieve.md +++ b/content/en/api/java/beta/agents/retrieve.md @@ -131,6 +131,8 @@ Get Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/update.md b/content/en/api/java/beta/agents/update.md index 6915e79939..dfaa40307a 100644 --- a/content/en/api/java/beta/agents/update.md +++ b/content/en/api/java/beta/agents/update.md @@ -125,6 +125,8 @@ Update Agent - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/versions.md b/content/en/api/java/beta/agents/versions.md index 31f3f826ed..7e6f9d5b1d 100644 --- a/content/en/api/java/beta/agents/versions.md +++ b/content/en/api/java/beta/agents/versions.md @@ -137,6 +137,8 @@ List Agent Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/agents/versions/list.md b/content/en/api/java/beta/agents/versions/list.md index 260c2db190..c773e1f2bc 100644 --- a/content/en/api/java/beta/agents/versions/list.md +++ b/content/en/api/java/beta/agents/versions/list.md @@ -135,6 +135,8 @@ List Agent Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployment_runs.md b/content/en/api/java/beta/deployment_runs.md index 412f1c1c37..1d248c1cd4 100644 --- a/content/en/api/java/beta/deployment_runs.md +++ b/content/en/api/java/beta/deployment_runs.md @@ -169,6 +169,8 @@ List Deployment Runs - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -572,6 +574,8 @@ Get Deployment Run - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployment_runs/list.md b/content/en/api/java/beta/deployment_runs/list.md index 346906040b..4134e42c2e 100644 --- a/content/en/api/java/beta/deployment_runs/list.md +++ b/content/en/api/java/beta/deployment_runs/list.md @@ -167,6 +167,8 @@ List Deployment Runs - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployment_runs/retrieve.md b/content/en/api/java/beta/deployment_runs/retrieve.md index 807a740810..aa5965a791 100644 --- a/content/en/api/java/beta/deployment_runs/retrieve.md +++ b/content/en/api/java/beta/deployment_runs/retrieve.md @@ -125,6 +125,8 @@ Get Deployment Run - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments.md b/content/en/api/java/beta/deployments.md index 22ba03baea..305345f401 100644 --- a/content/en/api/java/beta/deployments.md +++ b/content/en/api/java/beta/deployments.md @@ -123,6 +123,8 @@ Create Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1273,6 +1275,8 @@ List Deployments - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2014,6 +2018,8 @@ Get Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2750,6 +2756,8 @@ Update Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3858,6 +3866,8 @@ Archive Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4594,6 +4604,8 @@ Run Deployment Now - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4992,6 +5004,8 @@ Pause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5728,6 +5742,8 @@ Unpause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/archive.md b/content/en/api/java/beta/deployments/archive.md index 7a28e51656..989c105979 100644 --- a/content/en/api/java/beta/deployments/archive.md +++ b/content/en/api/java/beta/deployments/archive.md @@ -125,6 +125,8 @@ Archive Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/create.md b/content/en/api/java/beta/deployments/create.md index 0cd38344d4..fc3b62a08b 100644 --- a/content/en/api/java/beta/deployments/create.md +++ b/content/en/api/java/beta/deployments/create.md @@ -121,6 +121,8 @@ Create Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/list.md b/content/en/api/java/beta/deployments/list.md index 3d716e06f0..eb6960a0f8 100644 --- a/content/en/api/java/beta/deployments/list.md +++ b/content/en/api/java/beta/deployments/list.md @@ -155,6 +155,8 @@ List Deployments - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/pause.md b/content/en/api/java/beta/deployments/pause.md index 491465ba09..2b6c59438b 100644 --- a/content/en/api/java/beta/deployments/pause.md +++ b/content/en/api/java/beta/deployments/pause.md @@ -125,6 +125,8 @@ Pause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/retrieve.md b/content/en/api/java/beta/deployments/retrieve.md index 4a849187f7..3067414e71 100644 --- a/content/en/api/java/beta/deployments/retrieve.md +++ b/content/en/api/java/beta/deployments/retrieve.md @@ -125,6 +125,8 @@ Get Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/run.md b/content/en/api/java/beta/deployments/run.md index e752daa8b0..b21559a258 100644 --- a/content/en/api/java/beta/deployments/run.md +++ b/content/en/api/java/beta/deployments/run.md @@ -125,6 +125,8 @@ Run Deployment Now - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/unpause.md b/content/en/api/java/beta/deployments/unpause.md index 36561f33d3..02e71e0012 100644 --- a/content/en/api/java/beta/deployments/unpause.md +++ b/content/en/api/java/beta/deployments/unpause.md @@ -125,6 +125,8 @@ Unpause Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/deployments/update.md b/content/en/api/java/beta/deployments/update.md index ded1ec7cdd..4b1404fa00 100644 --- a/content/en/api/java/beta/deployments/update.md +++ b/content/en/api/java/beta/deployments/update.md @@ -125,6 +125,8 @@ Update Deployment - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments.md b/content/en/api/java/beta/environments.md index 511ce4425a..3d3abed26e 100644 --- a/content/en/api/java/beta/environments.md +++ b/content/en/api/java/beta/environments.md @@ -123,6 +123,8 @@ Create a new environment with the specified configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -578,6 +580,8 @@ List environments with pagination support. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -909,6 +913,8 @@ Retrieve a specific environment by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1235,6 +1241,8 @@ Update an existing environment's configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1675,6 +1683,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1845,6 +1855,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2626,6 +2638,8 @@ Retrieve detailed information about a specific work item. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2896,6 +2910,8 @@ Long poll for work items in the queue. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional anthropicWorkerId` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3151,6 +3167,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -3413,6 +3431,8 @@ Record a heartbeat for a work item to maintain the lease. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -3610,6 +3630,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3884,6 +3906,8 @@ List work items in an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + #### Returns - `class BetaSelfHostedWork` @@ -4139,6 +4163,8 @@ Update work item metadata with merge semantics. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4404,6 +4430,8 @@ Get statistics about the work queue for an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/archive.md b/content/en/api/java/beta/environments/archive.md index 7157f4a7ab..e808b7d73a 100644 --- a/content/en/api/java/beta/environments/archive.md +++ b/content/en/api/java/beta/environments/archive.md @@ -123,6 +123,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/create.md b/content/en/api/java/beta/environments/create.md index e53de67fd2..ac1c112b08 100644 --- a/content/en/api/java/beta/environments/create.md +++ b/content/en/api/java/beta/environments/create.md @@ -121,6 +121,8 @@ Create a new environment with the specified configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/delete.md b/content/en/api/java/beta/environments/delete.md index 3ff1e6bbaa..9d726718e9 100644 --- a/content/en/api/java/beta/environments/delete.md +++ b/content/en/api/java/beta/environments/delete.md @@ -123,6 +123,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/list.md b/content/en/api/java/beta/environments/list.md index bc8357f721..7447d52f46 100644 --- a/content/en/api/java/beta/environments/list.md +++ b/content/en/api/java/beta/environments/list.md @@ -135,6 +135,8 @@ List environments with pagination support. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/retrieve.md b/content/en/api/java/beta/environments/retrieve.md index 06dbc5c3a5..43adef50f0 100644 --- a/content/en/api/java/beta/environments/retrieve.md +++ b/content/en/api/java/beta/environments/retrieve.md @@ -123,6 +123,8 @@ Retrieve a specific environment by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/update.md b/content/en/api/java/beta/environments/update.md index 3bcd930d7d..410ff4fde7 100644 --- a/content/en/api/java/beta/environments/update.md +++ b/content/en/api/java/beta/environments/update.md @@ -123,6 +123,8 @@ Update an existing environment's configuration. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/work.md b/content/en/api/java/beta/environments/work.md index d9670683c7..0e924c9a95 100644 --- a/content/en/api/java/beta/environments/work.md +++ b/content/en/api/java/beta/environments/work.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -399,6 +401,8 @@ Long poll for work items in the queue. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional anthropicWorkerId` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -654,6 +658,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWork` @@ -916,6 +922,8 @@ Record a heartbeat for a work item to maintain the lease. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -1113,6 +1121,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1387,6 +1397,8 @@ List work items in an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Returns - `class BetaSelfHostedWork` @@ -1642,6 +1654,8 @@ Update work item metadata with merge semantics. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1907,6 +1921,8 @@ Get statistics about the work queue for an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/work/ack.md b/content/en/api/java/beta/environments/work/ack.md index c123f0bd8d..a7bb2b42da 100644 --- a/content/en/api/java/beta/environments/work/ack.md +++ b/content/en/api/java/beta/environments/work/ack.md @@ -127,6 +127,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/java/beta/environments/work/heartbeat.md b/content/en/api/java/beta/environments/work/heartbeat.md index 6cfb36db9b..f284dd8369 100644 --- a/content/en/api/java/beta/environments/work/heartbeat.md +++ b/content/en/api/java/beta/environments/work/heartbeat.md @@ -135,6 +135,8 @@ Record a heartbeat for a work item to maintain the lease. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWorkHeartbeatResponse` diff --git a/content/en/api/java/beta/environments/work/list.md b/content/en/api/java/beta/environments/work/list.md index f4483e6187..29b8af125d 100644 --- a/content/en/api/java/beta/environments/work/list.md +++ b/content/en/api/java/beta/environments/work/list.md @@ -135,6 +135,8 @@ List work items in an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/java/beta/environments/work/poll.md b/content/en/api/java/beta/environments/work/poll.md index 5c06a938bf..8bd2aae5d8 100644 --- a/content/en/api/java/beta/environments/work/poll.md +++ b/content/en/api/java/beta/environments/work/poll.md @@ -137,6 +137,8 @@ Long poll for work items in the queue. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional anthropicWorkerId` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/java/beta/environments/work/retrieve.md b/content/en/api/java/beta/environments/work/retrieve.md index df828cef24..03a34d7430 100644 --- a/content/en/api/java/beta/environments/work/retrieve.md +++ b/content/en/api/java/beta/environments/work/retrieve.md @@ -127,6 +127,8 @@ Retrieve detailed information about a specific work item. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/work/stats.md b/content/en/api/java/beta/environments/work/stats.md index f23ed51ab4..7beba6ea5c 100644 --- a/content/en/api/java/beta/environments/work/stats.md +++ b/content/en/api/java/beta/environments/work/stats.md @@ -123,6 +123,8 @@ Get statistics about the work queue for an environment. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/work/stop.md b/content/en/api/java/beta/environments/work/stop.md index 401dad5bcf..f2a3a135cf 100644 --- a/content/en/api/java/beta/environments/work/stop.md +++ b/content/en/api/java/beta/environments/work/stop.md @@ -127,6 +127,8 @@ Stop a work item, initiating graceful or forced shutdown. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/environments/work/update.md b/content/en/api/java/beta/environments/work/update.md index 784ec9ddd8..e52194c9c7 100644 --- a/content/en/api/java/beta/environments/work/update.md +++ b/content/en/api/java/beta/environments/work/update.md @@ -127,6 +127,8 @@ Update work item metadata with merge semantics. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files.md b/content/en/api/java/beta/files.md index 87688c7d68..088b851528 100644 --- a/content/en/api/java/beta/files.md +++ b/content/en/api/java/beta/files.md @@ -123,6 +123,8 @@ Upload File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -385,6 +387,8 @@ List Files - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -620,6 +624,8 @@ Download File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -769,6 +775,8 @@ Get File Metadata - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -999,6 +1007,8 @@ Delete File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files/delete.md b/content/en/api/java/beta/files/delete.md index 84f1070bca..a79d4d8d4b 100644 --- a/content/en/api/java/beta/files/delete.md +++ b/content/en/api/java/beta/files/delete.md @@ -125,6 +125,8 @@ Delete File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files/download.md b/content/en/api/java/beta/files/download.md index dd54dbaa85..441073cd72 100644 --- a/content/en/api/java/beta/files/download.md +++ b/content/en/api/java/beta/files/download.md @@ -125,6 +125,8 @@ Download File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files/list.md b/content/en/api/java/beta/files/list.md index 0436a3006f..f3ceb75262 100644 --- a/content/en/api/java/beta/files/list.md +++ b/content/en/api/java/beta/files/list.md @@ -141,6 +141,8 @@ List Files - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files/retrieve_metadata.md b/content/en/api/java/beta/files/retrieve_metadata.md index b7da8cda12..2397b9999c 100644 --- a/content/en/api/java/beta/files/retrieve_metadata.md +++ b/content/en/api/java/beta/files/retrieve_metadata.md @@ -125,6 +125,8 @@ Get File Metadata - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/files/upload.md b/content/en/api/java/beta/files/upload.md index a5fd1a56d8..3005fe0edf 100644 --- a/content/en/api/java/beta/files/upload.md +++ b/content/en/api/java/beta/files/upload.md @@ -121,6 +121,8 @@ Upload File - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/memory_stores.md b/content/en/api/java/beta/memory_stores.md index bd6895fc4e..69871750b5 100644 --- a/content/en/api/java/beta/memory_stores.md +++ b/content/en/api/java/beta/memory_stores.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/java/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters @@ -123,6 +123,8 @@ Create a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -131,19 +133,25 @@ Create a memory store - `String name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Optional description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Optional metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. ### Returns @@ -155,27 +163,33 @@ Create a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -183,7 +197,9 @@ Create a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -228,13 +244,13 @@ public final class Main { } ``` -## List memory stores +## List Memory Stores `MemoryStoreListPage beta().memoryStores().list(params = MemoryStoreListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters @@ -242,13 +258,13 @@ List memory stores - `Optional createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `Optional createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -264,7 +280,7 @@ List memory stores - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional> betas` (header parameter) @@ -372,6 +388,8 @@ List memory stores - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -388,27 +406,33 @@ List memory stores - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -416,7 +440,9 @@ List memory stores - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -461,13 +487,13 @@ public final class Main { } ``` -## Retrieve a memory store +## Retrieve a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().retrieve(params = MemoryStoreRetrieveParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters @@ -475,7 +501,7 @@ Retrieve a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `Optional> betas` (header parameter) @@ -583,6 +609,8 @@ Retrieve a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -599,27 +627,33 @@ Retrieve a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -627,7 +661,9 @@ Retrieve a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -669,13 +705,13 @@ public final class Main { } ``` -## Update a memory store +## Update a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().update(params = MemoryStoreUpdateParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters @@ -683,7 +719,9 @@ Update a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `Optional> betas` (header parameter) @@ -791,6 +829,8 @@ Update a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -799,17 +839,21 @@ Update a memory store - `Optional description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Optional metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Optional name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -823,27 +867,33 @@ Update a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -851,7 +901,9 @@ Update a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -893,13 +945,13 @@ public final class Main { } ``` -## Delete a memory store +## Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore beta().memoryStores().delete(params = MemoryStoreDeleteParams.none(), requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters @@ -907,7 +959,9 @@ Delete a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `Optional> betas` (header parameter) @@ -1015,6 +1069,8 @@ Delete a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1063,13 +1119,13 @@ public final class Main { } ``` -## Archive a memory store +## Archive a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().archive(params = MemoryStoreArchiveParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters @@ -1077,7 +1133,9 @@ Archive a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `Optional> betas` (header parameter) @@ -1185,6 +1243,8 @@ Archive a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1201,27 +1261,33 @@ Archive a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -1229,7 +1295,9 @@ Archive a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1295,27 +1363,33 @@ public final class Main { - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -1323,19 +1397,21 @@ public final class Main { - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1347,7 +1423,9 @@ Create a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -1455,6 +1533,8 @@ Create a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1463,11 +1543,15 @@ Create a memory - `Optional content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `String path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -1475,13 +1559,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -1489,7 +1579,7 @@ Create a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1505,7 +1595,11 @@ Create a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -1513,13 +1607,17 @@ Create a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1564,13 +1662,13 @@ public final class Main { } ``` -### List memories +### List Memories `MemoryListPage beta().memoryStores().memories().list(params = MemoryListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1582,27 +1680,35 @@ List memories - `Optional depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Optional limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `Optional view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Optional> betas` (header parameter) @@ -1710,6 +1816,8 @@ List memories - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1720,17 +1828,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -1738,7 +1852,7 @@ List memories - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1754,7 +1868,11 @@ List memories - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -1762,17 +1880,23 @@ List memories - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` @@ -1823,13 +1947,13 @@ public final class Main { } ``` -### Retrieve a memory +### Retrieve a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1845,7 +1969,9 @@ Retrieve a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -1953,6 +2079,8 @@ Retrieve a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1963,13 +2091,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -1977,7 +2111,7 @@ Retrieve a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1993,7 +2127,11 @@ Retrieve a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -2001,13 +2139,17 @@ Retrieve a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2051,13 +2193,13 @@ public final class Main { } ``` -### Update a memory +### Update a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().update(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -2073,7 +2215,9 @@ Update a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -2181,6 +2325,8 @@ Update a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2193,25 +2339,35 @@ Update a memory - `Optional path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Optional precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. #### Returns - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -2219,7 +2375,7 @@ Update a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2235,7 +2391,11 @@ Update a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -2243,13 +2403,17 @@ Update a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2293,13 +2457,13 @@ public final class Main { } ``` -### Delete a memory +### Delete a Memory `BetaManagedAgentsDeletedMemory beta().memoryStores().memories().delete(params, requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2425,6 +2589,8 @@ Delete a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2435,7 +2601,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about how long versions are kept. - `Type type` @@ -2479,13 +2649,13 @@ public final class Main { ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `MemoryVersionListPage beta().memoryStores().memoryVersions().list(params = MemoryVersionListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2513,7 +2683,9 @@ List memory versions - `Optional limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2521,7 +2693,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Optional operation` (query parameter) @@ -2541,7 +2713,9 @@ List memory versions - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -2649,6 +2823,8 @@ List memory versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2659,7 +2835,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -2675,7 +2857,9 @@ List memory versions - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -2713,7 +2897,11 @@ List memory versions - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -2769,7 +2957,11 @@ List memory versions - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -2829,13 +3021,13 @@ public final class Main { } ``` -### Retrieve a memory version +### Retrieve a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2851,7 +3043,9 @@ Retrieve a memory version - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -2959,6 +3153,8 @@ Retrieve a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2969,7 +3165,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -2985,7 +3187,9 @@ Retrieve a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -3023,7 +3227,11 @@ Retrieve a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3079,7 +3287,11 @@ Retrieve a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -3138,13 +3350,13 @@ public final class Main { } ``` -### Redact a memory version +### Redact a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().redact(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3264,6 +3476,8 @@ Redact a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3274,7 +3488,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -3290,7 +3510,9 @@ Redact a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -3328,7 +3550,11 @@ Redact a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3384,7 +3610,11 @@ Redact a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/java/beta/memory_stores/archive.md b/content/en/api/java/beta/memory_stores/archive.md index 9352a22efc..7dba651ffd 100644 --- a/content/en/api/java/beta/memory_stores/archive.md +++ b/content/en/api/java/beta/memory_stores/archive.md @@ -1,15 +1,15 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().archive(params = MemoryStoreArchiveParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters @@ -17,7 +17,9 @@ Archive a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `Optional> betas` (header parameter) @@ -125,6 +127,8 @@ Archive a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +145,33 @@ Archive a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -169,7 +179,9 @@ Archive a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/java/beta/memory_stores/create.md b/content/en/api/java/beta/memory_stores/create.md index 543cbe4f0f..326fbcaf66 100644 --- a/content/en/api/java/beta/memory_stores/create.md +++ b/content/en/api/java/beta/memory_stores/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters @@ -121,6 +121,8 @@ Create a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -129,19 +131,25 @@ Create a memory store - `String name` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `Optional description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `Optional metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. ## Returns @@ -153,27 +161,33 @@ Create a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -181,7 +195,9 @@ Create a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/java/beta/memory_stores/delete.md b/content/en/api/java/beta/memory_stores/delete.md index c0c73fd2f4..725acf0318 100644 --- a/content/en/api/java/beta/memory_stores/delete.md +++ b/content/en/api/java/beta/memory_stores/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `BetaManagedAgentsDeletedMemoryStore beta().memoryStores().delete(params = MemoryStoreDeleteParams.none(), requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters @@ -17,7 +17,9 @@ Delete a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `Optional> betas` (header parameter) @@ -125,6 +127,8 @@ Delete a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/memory_stores/list.md b/content/en/api/java/beta/memory_stores/list.md index 8890959e29..1f5d853131 100644 --- a/content/en/api/java/beta/memory_stores/list.md +++ b/content/en/api/java/beta/memory_stores/list.md @@ -1,15 +1,15 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `MemoryStoreListPage beta().memoryStores().list(params = MemoryStoreListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters @@ -17,13 +17,13 @@ List memory stores - `Optional createdAtGte` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `Optional createdAtLte` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -39,7 +39,7 @@ List memory stores - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional> betas` (header parameter) @@ -147,6 +147,8 @@ List memory stores - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,27 +165,33 @@ List memory stores - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -191,7 +199,9 @@ List memory stores - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/java/beta/memory_stores/memories.md b/content/en/api/java/beta/memory_stores/memories.md index ff9fde4d98..e1c5e99d2d 100644 --- a/content/en/api/java/beta/memory_stores/memories.md +++ b/content/en/api/java/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -23,7 +23,9 @@ Create a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -131,6 +133,8 @@ Create a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,11 +143,15 @@ Create a memory - `Optional content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `String path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -151,13 +159,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -165,7 +179,7 @@ Create a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -181,7 +195,11 @@ Create a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -189,13 +207,17 @@ Create a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -240,13 +262,13 @@ public final class Main { } ``` -## List memories +## List Memories `MemoryListPage beta().memoryStores().memories().list(params = MemoryListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -258,27 +280,35 @@ List memories - `Optional depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Optional limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `Optional view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Optional> betas` (header parameter) @@ -386,6 +416,8 @@ List memories - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -396,17 +428,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -414,7 +452,7 @@ List memories - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -430,7 +468,11 @@ List memories - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -438,17 +480,23 @@ List memories - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` @@ -499,13 +547,13 @@ public final class Main { } ``` -## Retrieve a memory +## Retrieve a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -521,7 +569,9 @@ Retrieve a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -629,6 +679,8 @@ Retrieve a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -639,13 +691,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -653,7 +711,7 @@ Retrieve a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -669,7 +727,11 @@ Retrieve a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -677,13 +739,17 @@ Retrieve a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -727,13 +793,13 @@ public final class Main { } ``` -## Update a memory +## Update a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().update(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -749,7 +815,9 @@ Update a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -857,6 +925,8 @@ Update a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -869,25 +939,35 @@ Update a memory - `Optional path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Optional precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. ### Returns - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -895,7 +975,7 @@ Update a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -911,7 +991,11 @@ Update a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -919,13 +1003,17 @@ Update a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -969,13 +1057,13 @@ public final class Main { } ``` -## Delete a memory +## Delete a Memory `BetaManagedAgentsDeletedMemory beta().memoryStores().memories().delete(params, requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1101,6 +1189,8 @@ Delete a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1111,7 +1201,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about how long versions are kept. - `Type type` @@ -1167,7 +1261,9 @@ public final class Main { - `class BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `Type type` @@ -1179,7 +1275,11 @@ public final class Main { - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about how long versions are kept. - `Type type` @@ -1261,7 +1361,7 @@ public final class Main { - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1291,13 +1391,19 @@ public final class Main { - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -1305,7 +1411,7 @@ public final class Main { - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1321,7 +1427,11 @@ public final class Main { - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -1329,29 +1439,39 @@ public final class Main { - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -1359,7 +1479,7 @@ public final class Main { - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1375,7 +1495,11 @@ public final class Main { - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -1383,17 +1507,23 @@ public final class Main { - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` @@ -1405,7 +1535,7 @@ public final class Main { - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1445,7 +1575,9 @@ public final class Main { - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` @@ -1457,7 +1589,9 @@ public final class Main { - `enum BetaManagedAgentsMemoryView` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `BASIC("basic")` diff --git a/content/en/api/java/beta/memory_stores/memories/create.md b/content/en/api/java/beta/memory_stores/memories/create.md index 620c61fc93..ffefedcea8 100644 --- a/content/en/api/java/beta/memory_stores/memories/create.md +++ b/content/en/api/java/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().create(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -21,7 +21,9 @@ Create a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -129,6 +131,8 @@ Create a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -137,11 +141,15 @@ Create a memory - `Optional content` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `String path` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 @@ -149,13 +157,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -163,7 +177,7 @@ Create a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -179,7 +193,11 @@ Create a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -187,13 +205,17 @@ Create a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/java/beta/memory_stores/memories/delete.md b/content/en/api/java/beta/memory_stores/memories/delete.md index 06d8d6ee42..7d03b5b779 100644 --- a/content/en/api/java/beta/memory_stores/memories/delete.md +++ b/content/en/api/java/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `BetaManagedAgentsDeletedMemory beta().memoryStores().memories().delete(params, requestOptions = RequestOptions.none())` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -135,6 +135,8 @@ Delete a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=java) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about how long versions are kept. - `Type type` diff --git a/content/en/api/java/beta/memory_stores/memories/list.md b/content/en/api/java/beta/memory_stores/memories/list.md index 6f943bc064..fa64f69edd 100644 --- a/content/en/api/java/beta/memory_stores/memories/list.md +++ b/content/en/api/java/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/list --- -# List memories +# List Memories `MemoryListPage beta().memoryStores().memories().list(params = MemoryListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -21,27 +21,35 @@ List memories - `Optional depth` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `Optional limit` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `Optional page` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `Optional pathPrefix` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `Optional view` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `Optional> betas` (header parameter) @@ -149,6 +157,8 @@ List memories - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,17 +169,23 @@ List memories - `class BetaManagedAgentsMemoryListItem: union` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -177,7 +193,7 @@ List memories - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -193,7 +209,11 @@ List memories - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -201,17 +221,23 @@ List memories - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=java) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `Type type` diff --git a/content/en/api/java/beta/memory_stores/memories/retrieve.md b/content/en/api/java/beta/memory_stores/memories/retrieve.md index db61e21b44..49cdab3a4a 100644 --- a/content/en/api/java/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/java/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,13 +147,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -157,7 +167,7 @@ Retrieve a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -173,7 +183,11 @@ Retrieve a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -181,13 +195,17 @@ Retrieve a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/java/beta/memory_stores/memories/update.md b/content/en/api/java/beta/memory_stores/memories/update.md index b09b13d7ba..452f0b431b 100644 --- a/content/en/api/java/beta/memory_stores/memories/update.md +++ b/content/en/api/java/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `BetaManagedAgentsMemory beta().memoryStores().memories().update(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -25,7 +25,9 @@ Update a memory - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -133,6 +135,8 @@ Update a memory - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,25 +149,35 @@ Update a memory - `Optional path` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `Optional precondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. ## Returns - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#view-and-edit-memories) to learn more about working with memories. - `Type type` - `String id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `String contentSha256` @@ -171,7 +185,7 @@ Update a memory - `long contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -187,7 +201,11 @@ Update a memory - `String memoryVersionId` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `String path` @@ -195,13 +213,17 @@ Update a memory - `LocalDateTime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `Optional content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/java/beta/memory_stores/memory_versions.md b/content/en/api/java/beta/memory_stores/memory_versions.md index 3a503d77ac..89d45ec745 100644 --- a/content/en/api/java/beta/memory_stores/memory_versions.md +++ b/content/en/api/java/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_vers # Memory Versions -## List memory versions +## List Memory Versions `MemoryVersionListPage beta().memoryStores().memoryVersions().list(params = MemoryVersionListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -39,7 +39,9 @@ List memory versions - `Optional limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -47,7 +49,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Optional operation` (query parameter) @@ -67,7 +69,9 @@ List memory versions - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -175,6 +179,8 @@ List memory versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -185,7 +191,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -201,7 +213,9 @@ List memory versions - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -239,7 +253,11 @@ List memory versions - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -295,7 +313,11 @@ List memory versions - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -355,13 +377,13 @@ public final class Main { } ``` -## Retrieve a memory version +## Retrieve a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -377,7 +399,9 @@ Retrieve a memory version - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -485,6 +509,8 @@ Retrieve a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -495,7 +521,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -511,7 +543,9 @@ Retrieve a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -549,7 +583,11 @@ Retrieve a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -605,7 +643,11 @@ Retrieve a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -664,13 +706,13 @@ public final class Main { } ``` -## Redact a memory version +## Redact a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().redact(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -790,6 +832,8 @@ Redact a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -800,7 +844,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -816,7 +866,9 @@ Redact a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -854,7 +906,11 @@ Redact a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -910,7 +966,11 @@ Redact a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -1043,7 +1103,13 @@ public final class Main { - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -1059,7 +1125,9 @@ public final class Main { - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -1097,7 +1165,11 @@ public final class Main { - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -1153,7 +1225,11 @@ public final class Main { - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time @@ -1165,7 +1241,9 @@ public final class Main { - `enum BetaManagedAgentsMemoryVersionOperation` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `CREATED("created")` diff --git a/content/en/api/java/beta/memory_stores/memory_versions/list.md b/content/en/api/java/beta/memory_stores/memory_versions/list.md index 42b63e742e..48e2a8072d 100644 --- a/content/en/api/java/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/java/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `MemoryVersionListPage beta().memoryStores().memoryVersions().list(params = MemoryVersionListParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -37,7 +37,9 @@ List memory versions - `Optional limit` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `Optional operation` (query parameter) @@ -65,7 +67,9 @@ List memory versions - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -173,6 +177,8 @@ List memory versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -183,7 +189,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -199,7 +211,9 @@ List memory versions - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -237,7 +251,11 @@ List memory versions - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -293,7 +311,11 @@ List memory versions - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/java/beta/memory_stores/memory_versions/redact.md b/content/en/api/java/beta/memory_stores/memory_versions/redact.md index 1e4bbb1ec4..71ffc1ff04 100644 --- a/content/en/api/java/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/java/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().redact(params, requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -129,6 +129,8 @@ Redact a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,7 +141,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -155,7 +163,9 @@ Redact a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -193,7 +203,11 @@ Redact a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -249,7 +263,11 @@ Redact a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/java/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/java/beta/memory_stores/memory_versions/retrieve.md index 854357305f..737a3f4f7f 100644 --- a/content/en/api/java/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/java/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `BetaManagedAgentsMemoryVersion beta().memoryStores().memoryVersions().retrieve(params, requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory version - `Optional view` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `Optional> betas` (header parameter) @@ -133,6 +135,8 @@ Retrieve a memory version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,7 +147,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#audit-memory-changes) to learn more about memory versions. - `Type type` @@ -159,7 +169,9 @@ Retrieve a memory version - `String memoryId` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=java) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `String memoryStoreId` @@ -197,7 +209,11 @@ Retrieve a memory version - `Optional createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=java) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -253,7 +269,11 @@ Retrieve a memory version - `Optional redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=java). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/java/beta/memory_stores/retrieve.md b/content/en/api/java/beta/memory_stores/retrieve.md index caa8f1ea01..65e5082ab8 100644 --- a/content/en/api/java/beta/memory_stores/retrieve.md +++ b/content/en/api/java/beta/memory_stores/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().retrieve(params = MemoryStoreRetrieveParams.none(), requestOptions = RequestOptions.none())` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters @@ -17,7 +17,7 @@ Retrieve a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `Optional> betas` (header parameter) @@ -125,6 +125,8 @@ Retrieve a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +143,33 @@ Retrieve a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -169,7 +177,9 @@ Retrieve a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/java/beta/memory_stores/update.md b/content/en/api/java/beta/memory_stores/update.md index 1592c204c3..e5f10e9bfe 100644 --- a/content/en/api/java/beta/memory_stores/update.md +++ b/content/en/api/java/beta/memory_stores/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/java/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `BetaManagedAgentsMemoryStore beta().memoryStores().update(params = MemoryStoreUpdateParams.none(), requestOptions = RequestOptions.none())` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters @@ -17,7 +17,9 @@ Update a memory store - `Optional memoryStoreId` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `Optional> betas` (header parameter) @@ -125,6 +127,8 @@ Update a memory store - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -133,17 +137,21 @@ Update a memory store - `Optional description` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `Optional metadata` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `Optional name` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -157,27 +165,33 @@ Update a memory store - `String id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `Optional archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=java#archive-a-store) to learn more about archiving. format: date-time - `LocalDateTime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `String description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `Metadata metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `String name` @@ -185,7 +199,9 @@ Update a memory store - `LocalDateTime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/java/beta/messages.md b/content/en/api/java/beta/messages.md index 79aa5ba076..9a576e33a0 100644 --- a/content/en/api/java/beta/messages.md +++ b/content/en/api/java/beta/messages.md @@ -127,9 +127,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -6971,6 +6973,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -6979,6 +6985,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -6987,6 +6997,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -6995,6 +7009,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -7003,10 +7021,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -8159,9 +8189,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -18192,6 +18224,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -18202,6 +18238,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -18212,6 +18252,12 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` ### Beta Cache Miss Reason @@ -18220,6 +18266,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -18228,6 +18278,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -18236,6 +18290,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -18244,6 +18302,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -18252,16 +18314,32 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Beta Cache Miss System Changed - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -18272,6 +18350,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -18282,6 +18364,12 @@ public final class Main { - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Beta Citation Char Location @@ -33052,6 +33140,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -33060,6 +33152,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -33068,6 +33164,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -33076,6 +33176,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -33084,10 +33188,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Beta Diagnostics Param @@ -34040,8 +34156,22 @@ public final class Main { - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34090,7 +34220,11 @@ public final class Main { - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -34098,6 +34232,12 @@ public final class Main { - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` @@ -34290,8 +34430,22 @@ public final class Main { - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34340,7 +34494,11 @@ public final class Main { - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -34348,6 +34506,12 @@ public final class Main { - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` @@ -38312,6 +38476,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -38320,6 +38488,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -38328,6 +38500,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -38336,6 +38512,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -38344,10 +38524,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -49953,6 +50145,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -49961,6 +50157,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -49969,6 +50169,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -49977,6 +50181,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -49985,10 +50193,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -53642,6 +53862,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -53650,6 +53874,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -53658,6 +53886,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -53666,6 +53898,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -53674,10 +53910,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -75380,9 +75628,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -79041,8 +79291,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -79091,7 +79355,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -79099,6 +79367,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` @@ -79791,6 +80065,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80075,6 +80351,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80356,6 +80634,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80630,6 +80910,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80806,6 +81088,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83876,6 +84160,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -83884,6 +84172,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -83892,6 +84184,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -83900,6 +84196,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -83908,10 +84208,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/beta/messages/batches.md b/content/en/api/java/beta/messages/batches.md index 101a36df09..a162f454e4 100644 --- a/content/en/api/java/beta/messages/batches.md +++ b/content/en/api/java/beta/messages/batches.md @@ -127,9 +127,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -3788,8 +3790,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3838,7 +3854,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -3846,6 +3866,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` @@ -4538,6 +4564,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4822,6 +4850,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5103,6 +5133,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5377,6 +5409,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5553,6 +5587,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8623,6 +8659,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -8631,6 +8671,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -8639,6 +8683,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -8647,6 +8695,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -8655,10 +8707,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -12610,6 +12674,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -12618,6 +12686,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -12626,6 +12698,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -12634,6 +12710,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -12642,10 +12722,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -16403,6 +16495,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -16411,6 +16507,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -16419,6 +16519,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -16427,6 +16531,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -16435,10 +16543,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -20158,6 +20278,10 @@ public final class Main { - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -20166,6 +20290,10 @@ public final class Main { - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -20174,6 +20302,10 @@ public final class Main { - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -20182,6 +20314,10 @@ public final class Main { - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -20190,10 +20326,22 @@ public final class Main { - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/beta/messages/batches/cancel.md b/content/en/api/java/beta/messages/batches/cancel.md index 2722995ea8..380ab7ed91 100644 --- a/content/en/api/java/beta/messages/batches/cancel.md +++ b/content/en/api/java/beta/messages/batches/cancel.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/messages/batches/create.md b/content/en/api/java/beta/messages/batches/create.md index cf7181a061..b86e7c759e 100644 --- a/content/en/api/java/beta/messages/batches/create.md +++ b/content/en/api/java/beta/messages/batches/create.md @@ -125,9 +125,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -3786,8 +3788,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=java#naming-your-own-fallback-models) to learn more about fallback entries. + - `Optional outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `Optional effort` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3836,7 +3852,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `STANDARD("standard")` @@ -3844,6 +3864,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `JsonValue type = "enabled"` diff --git a/content/en/api/java/beta/messages/batches/delete.md b/content/en/api/java/beta/messages/batches/delete.md index f37a8169a7..cb57c266d1 100644 --- a/content/en/api/java/beta/messages/batches/delete.md +++ b/content/en/api/java/beta/messages/batches/delete.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/messages/batches/list.md b/content/en/api/java/beta/messages/batches/list.md index d2c72f82a4..e6c5db7035 100644 --- a/content/en/api/java/beta/messages/batches/list.md +++ b/content/en/api/java/beta/messages/batches/list.md @@ -139,6 +139,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/messages/batches/results.md b/content/en/api/java/beta/messages/batches/results.md index e0ea1abde3..ddc261fdf8 100644 --- a/content/en/api/java/beta/messages/batches/results.md +++ b/content/en/api/java/beta/messages/batches/results.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3199,6 +3201,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -3207,6 +3213,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -3215,6 +3225,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -3223,6 +3237,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -3231,10 +3249,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/beta/messages/batches/retrieve.md b/content/en/api/java/beta/messages/batches/retrieve.md index 8ec71f4124..e54acbe409 100644 --- a/content/en/api/java/beta/messages/batches/retrieve.md +++ b/content/en/api/java/beta/messages/batches/retrieve.md @@ -127,6 +127,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/messages/count_tokens.md b/content/en/api/java/beta/messages/count_tokens.md index b4be9e5092..7dd24addad 100644 --- a/content/en/api/java/beta/messages/count_tokens.md +++ b/content/en/api/java/beta/messages/count_tokens.md @@ -125,9 +125,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) diff --git a/content/en/api/java/beta/messages/create.md b/content/en/api/java/beta/messages/create.md index 6e8966331e..7f2bdd2921 100644 --- a/content/en/api/java/beta/messages/create.md +++ b/content/en/api/java/beta/messages/create.md @@ -125,9 +125,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -6969,6 +6971,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -6977,6 +6983,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -6985,6 +6995,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -6993,6 +7007,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -7001,10 +7019,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/beta/models.md b/content/en/api/java/beta/models.md index 3c063e460e..67174b72ae 100644 --- a/content/en/api/java/beta/models.md +++ b/content/en/api/java/beta/models.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -625,6 +627,8 @@ The Models API response can be used to determine information about a specific mo - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/models/list.md b/content/en/api/java/beta/models/list.md index 3832efe5fe..2c6bcc8bb1 100644 --- a/content/en/api/java/beta/models/list.md +++ b/content/en/api/java/beta/models/list.md @@ -151,6 +151,8 @@ The Models API response can be used to determine which models are available for - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/models/retrieve.md b/content/en/api/java/beta/models/retrieve.md index 8802fd2a62..b75426bff9 100644 --- a/content/en/api/java/beta/models/retrieve.md +++ b/content/en/api/java/beta/models/retrieve.md @@ -127,6 +127,8 @@ The Models API response can be used to determine information about a specific mo - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions.md b/content/en/api/java/beta/sessions.md index b74f85135f..5a7cb11e8b 100644 --- a/content/en/api/java/beta/sessions.md +++ b/content/en/api/java/beta/sessions.md @@ -123,6 +123,8 @@ Create Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2806,6 +2808,8 @@ List Sessions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4299,6 +4303,8 @@ Get Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5786,6 +5792,8 @@ Update Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7295,6 +7303,8 @@ Delete Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7461,6 +7471,8 @@ Archive Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19238,6 +19250,8 @@ List Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22341,6 +22355,8 @@ Send Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23334,6 +23350,8 @@ Stream Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26474,6 +26492,8 @@ Add Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26680,6 +26700,8 @@ List Session Resources - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26965,6 +26987,8 @@ Get Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27243,6 +27267,8 @@ Update Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27528,6 +27554,8 @@ Delete Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27724,6 +27752,8 @@ List Session Threads - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28807,6 +28837,8 @@ Get Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29889,6 +29921,8 @@ Archive Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30979,6 +31013,8 @@ List Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34096,6 +34132,8 @@ Stream Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/archive.md b/content/en/api/java/beta/sessions/archive.md index b90c3983a2..c46f330fbe 100644 --- a/content/en/api/java/beta/sessions/archive.md +++ b/content/en/api/java/beta/sessions/archive.md @@ -123,6 +123,8 @@ Archive Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/create.md b/content/en/api/java/beta/sessions/create.md index 8598537357..845f29dcec 100644 --- a/content/en/api/java/beta/sessions/create.md +++ b/content/en/api/java/beta/sessions/create.md @@ -121,6 +121,8 @@ Create Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/delete.md b/content/en/api/java/beta/sessions/delete.md index a0b873a201..ac9a01dd50 100644 --- a/content/en/api/java/beta/sessions/delete.md +++ b/content/en/api/java/beta/sessions/delete.md @@ -123,6 +123,8 @@ Delete Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/events.md b/content/en/api/java/beta/sessions/events.md index 04982dc5f8..e07c141a9c 100644 --- a/content/en/api/java/beta/sessions/events.md +++ b/content/en/api/java/beta/sessions/events.md @@ -251,6 +251,8 @@ List Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3354,6 +3356,8 @@ Send Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4347,6 +4351,8 @@ Stream Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/events/list.md b/content/en/api/java/beta/sessions/events/list.md index 1abbf66fa7..ad55285aba 100644 --- a/content/en/api/java/beta/sessions/events/list.md +++ b/content/en/api/java/beta/sessions/events/list.md @@ -249,6 +249,8 @@ List Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/events/send.md b/content/en/api/java/beta/sessions/events/send.md index 78e2cb8c39..f7fabe4815 100644 --- a/content/en/api/java/beta/sessions/events/send.md +++ b/content/en/api/java/beta/sessions/events/send.md @@ -123,6 +123,8 @@ Send Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/events/stream.md b/content/en/api/java/beta/sessions/events/stream.md index 2949cf960b..c142e9f12d 100644 --- a/content/en/api/java/beta/sessions/events/stream.md +++ b/content/en/api/java/beta/sessions/events/stream.md @@ -131,6 +131,8 @@ Stream Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/list.md b/content/en/api/java/beta/sessions/list.md index 76901e5f46..e251d8c871 100644 --- a/content/en/api/java/beta/sessions/list.md +++ b/content/en/api/java/beta/sessions/list.md @@ -205,6 +205,8 @@ List Sessions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources.md b/content/en/api/java/beta/sessions/resources.md index 859001476c..9383a804e8 100644 --- a/content/en/api/java/beta/sessions/resources.md +++ b/content/en/api/java/beta/sessions/resources.md @@ -125,6 +125,8 @@ Add Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -331,6 +333,8 @@ List Session Resources - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -616,6 +620,8 @@ Get Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -894,6 +900,8 @@ Update Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1179,6 +1187,8 @@ Delete Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources/add.md b/content/en/api/java/beta/sessions/resources/add.md index 488723c86e..a41068c026 100644 --- a/content/en/api/java/beta/sessions/resources/add.md +++ b/content/en/api/java/beta/sessions/resources/add.md @@ -123,6 +123,8 @@ Add Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources/delete.md b/content/en/api/java/beta/sessions/resources/delete.md index 1fd9b25907..629fd6a91e 100644 --- a/content/en/api/java/beta/sessions/resources/delete.md +++ b/content/en/api/java/beta/sessions/resources/delete.md @@ -125,6 +125,8 @@ Delete Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources/list.md b/content/en/api/java/beta/sessions/resources/list.md index 126cfb708c..2ac4d093a1 100644 --- a/content/en/api/java/beta/sessions/resources/list.md +++ b/content/en/api/java/beta/sessions/resources/list.md @@ -133,6 +133,8 @@ List Session Resources - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources/retrieve.md b/content/en/api/java/beta/sessions/resources/retrieve.md index a1007d60b4..f588f9043c 100644 --- a/content/en/api/java/beta/sessions/resources/retrieve.md +++ b/content/en/api/java/beta/sessions/resources/retrieve.md @@ -125,6 +125,8 @@ Get Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/resources/update.md b/content/en/api/java/beta/sessions/resources/update.md index 114be87a6e..489f94401e 100644 --- a/content/en/api/java/beta/sessions/resources/update.md +++ b/content/en/api/java/beta/sessions/resources/update.md @@ -125,6 +125,8 @@ Update Session Resource - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/retrieve.md b/content/en/api/java/beta/sessions/retrieve.md index 822484ef36..918edba724 100644 --- a/content/en/api/java/beta/sessions/retrieve.md +++ b/content/en/api/java/beta/sessions/retrieve.md @@ -123,6 +123,8 @@ Get Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads.md b/content/en/api/java/beta/sessions/threads.md index 1e1671ec45..0e3f85e002 100644 --- a/content/en/api/java/beta/sessions/threads.md +++ b/content/en/api/java/beta/sessions/threads.md @@ -149,6 +149,8 @@ List Session Threads - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1232,6 +1234,8 @@ Get Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2314,6 +2318,8 @@ Archive Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7948,6 +7954,8 @@ List Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11065,6 +11073,8 @@ Stream Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/archive.md b/content/en/api/java/beta/sessions/threads/archive.md index bdb1ba8378..f7eaf56122 100644 --- a/content/en/api/java/beta/sessions/threads/archive.md +++ b/content/en/api/java/beta/sessions/threads/archive.md @@ -125,6 +125,8 @@ Archive Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/events.md b/content/en/api/java/beta/sessions/threads/events.md index bc991e45f2..f928360d61 100644 --- a/content/en/api/java/beta/sessions/threads/events.md +++ b/content/en/api/java/beta/sessions/threads/events.md @@ -133,6 +133,8 @@ List Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3250,6 +3252,8 @@ Stream Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/events/list.md b/content/en/api/java/beta/sessions/threads/events/list.md index 91232af58c..ef31e187c3 100644 --- a/content/en/api/java/beta/sessions/threads/events/list.md +++ b/content/en/api/java/beta/sessions/threads/events/list.md @@ -131,6 +131,8 @@ List Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/events/stream.md b/content/en/api/java/beta/sessions/threads/events/stream.md index a9c6f65a4f..18f55a8396 100644 --- a/content/en/api/java/beta/sessions/threads/events/stream.md +++ b/content/en/api/java/beta/sessions/threads/events/stream.md @@ -133,6 +133,8 @@ Stream Session Thread Events - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/list.md b/content/en/api/java/beta/sessions/threads/list.md index 84758419bd..fe598cdca0 100644 --- a/content/en/api/java/beta/sessions/threads/list.md +++ b/content/en/api/java/beta/sessions/threads/list.md @@ -147,6 +147,8 @@ List Session Threads - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/threads/retrieve.md b/content/en/api/java/beta/sessions/threads/retrieve.md index 5ece7252b9..d41c4d5688 100644 --- a/content/en/api/java/beta/sessions/threads/retrieve.md +++ b/content/en/api/java/beta/sessions/threads/retrieve.md @@ -125,6 +125,8 @@ Get Session Thread - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/sessions/update.md b/content/en/api/java/beta/sessions/update.md index 931b32dccc..658150081c 100644 --- a/content/en/api/java/beta/sessions/update.md +++ b/content/en/api/java/beta/sessions/update.md @@ -123,6 +123,8 @@ Update Session - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills.md b/content/en/api/java/beta/skills.md index 99f295b883..8bdb58cd6b 100644 --- a/content/en/api/java/beta/skills.md +++ b/content/en/api/java/beta/skills.md @@ -123,6 +123,8 @@ Create Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -391,6 +393,8 @@ List Skills - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -631,6 +635,8 @@ Get Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -866,6 +872,8 @@ Delete Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1153,6 +1161,8 @@ Create Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1380,6 +1390,8 @@ List Skill Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1595,6 +1607,8 @@ Download a skill version's content as a zip archive. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1756,6 +1770,8 @@ Get Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1970,6 +1986,8 @@ Delete Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/create.md b/content/en/api/java/beta/skills/create.md index 768b2804b7..ed414054a3 100644 --- a/content/en/api/java/beta/skills/create.md +++ b/content/en/api/java/beta/skills/create.md @@ -121,6 +121,8 @@ Create Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/delete.md b/content/en/api/java/beta/skills/delete.md index fe3ea96c90..9004e72d65 100644 --- a/content/en/api/java/beta/skills/delete.md +++ b/content/en/api/java/beta/skills/delete.md @@ -127,6 +127,8 @@ Delete Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/list.md b/content/en/api/java/beta/skills/list.md index c1517df9ce..8e59bcc3b6 100644 --- a/content/en/api/java/beta/skills/list.md +++ b/content/en/api/java/beta/skills/list.md @@ -144,6 +144,8 @@ List Skills - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/retrieve.md b/content/en/api/java/beta/skills/retrieve.md index 2edf61dffc..f16e040db1 100644 --- a/content/en/api/java/beta/skills/retrieve.md +++ b/content/en/api/java/beta/skills/retrieve.md @@ -127,6 +127,8 @@ Get Skill - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions.md b/content/en/api/java/beta/skills/versions.md index 78b1a24327..07398ad4a3 100644 --- a/content/en/api/java/beta/skills/versions.md +++ b/content/en/api/java/beta/skills/versions.md @@ -129,6 +129,8 @@ Create Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -356,6 +358,8 @@ List Skill Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -571,6 +575,8 @@ Download a skill version's content as a zip archive. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -732,6 +738,8 @@ Get Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -946,6 +954,8 @@ Delete Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions/create.md b/content/en/api/java/beta/skills/versions/create.md index ebbb2dcf4c..44a5eb782c 100644 --- a/content/en/api/java/beta/skills/versions/create.md +++ b/content/en/api/java/beta/skills/versions/create.md @@ -127,6 +127,8 @@ Create Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions/delete.md b/content/en/api/java/beta/skills/versions/delete.md index af04aba64f..cb3ed0116d 100644 --- a/content/en/api/java/beta/skills/versions/delete.md +++ b/content/en/api/java/beta/skills/versions/delete.md @@ -133,6 +133,8 @@ Delete Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions/download.md b/content/en/api/java/beta/skills/versions/download.md index 894d047a72..0fef6675b5 100644 --- a/content/en/api/java/beta/skills/versions/download.md +++ b/content/en/api/java/beta/skills/versions/download.md @@ -133,6 +133,8 @@ Download a skill version's content as a zip archive. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions/list.md b/content/en/api/java/beta/skills/versions/list.md index 5a1edc2ac5..24bb4bb578 100644 --- a/content/en/api/java/beta/skills/versions/list.md +++ b/content/en/api/java/beta/skills/versions/list.md @@ -139,6 +139,8 @@ List Skill Versions - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/skills/versions/retrieve.md b/content/en/api/java/beta/skills/versions/retrieve.md index 3e17291dee..5402fca647 100644 --- a/content/en/api/java/beta/skills/versions/retrieve.md +++ b/content/en/api/java/beta/skills/versions/retrieve.md @@ -133,6 +133,8 @@ Get Skill Version - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels.md b/content/en/api/java/beta/tunnels.md index bf7b95f0c7..c57d12510c 100644 --- a/content/en/api/java/beta/tunnels.md +++ b/content/en/api/java/beta/tunnels.md @@ -125,6 +125,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -327,6 +329,8 @@ Fetches a tunnel by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -533,6 +537,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -734,6 +740,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -930,6 +938,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1107,6 +1117,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1342,6 +1354,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1559,6 +1573,8 @@ Fetches a tunnel certificate by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1780,6 +1796,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1992,6 +2010,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/archive.md b/content/en/api/java/beta/tunnels/archive.md index 6d04e96138..b2aac5676a 100644 --- a/content/en/api/java/beta/tunnels/archive.md +++ b/content/en/api/java/beta/tunnels/archive.md @@ -127,6 +127,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/certificates.md b/content/en/api/java/beta/tunnels/certificates.md index 49535093d3..f7f5bcd55d 100644 --- a/content/en/api/java/beta/tunnels/certificates.md +++ b/content/en/api/java/beta/tunnels/certificates.md @@ -129,6 +129,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -346,6 +348,8 @@ Fetches a tunnel certificate by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -567,6 +571,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -779,6 +785,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/certificates/archive.md b/content/en/api/java/beta/tunnels/certificates/archive.md index dc4ccc0be9..70cc61cd35 100644 --- a/content/en/api/java/beta/tunnels/certificates/archive.md +++ b/content/en/api/java/beta/tunnels/certificates/archive.md @@ -131,6 +131,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/certificates/create.md b/content/en/api/java/beta/tunnels/certificates/create.md index d9ba6ad5a0..e0d2a48bf6 100644 --- a/content/en/api/java/beta/tunnels/certificates/create.md +++ b/content/en/api/java/beta/tunnels/certificates/create.md @@ -127,6 +127,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/certificates/list.md b/content/en/api/java/beta/tunnels/certificates/list.md index 1fe5b69c90..ef4eb4742a 100644 --- a/content/en/api/java/beta/tunnels/certificates/list.md +++ b/content/en/api/java/beta/tunnels/certificates/list.md @@ -141,6 +141,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/certificates/retrieve.md b/content/en/api/java/beta/tunnels/certificates/retrieve.md index ee863fb3d6..06d56f6c35 100644 --- a/content/en/api/java/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/java/beta/tunnels/certificates/retrieve.md @@ -131,6 +131,8 @@ Fetches a tunnel certificate by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/create.md b/content/en/api/java/beta/tunnels/create.md index 0350aa7044..61801f281a 100644 --- a/content/en/api/java/beta/tunnels/create.md +++ b/content/en/api/java/beta/tunnels/create.md @@ -123,6 +123,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/list.md b/content/en/api/java/beta/tunnels/list.md index 3ba8c71345..80dd206fa4 100644 --- a/content/en/api/java/beta/tunnels/list.md +++ b/content/en/api/java/beta/tunnels/list.md @@ -137,6 +137,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/retrieve.md b/content/en/api/java/beta/tunnels/retrieve.md index ba894c004a..56fa292c3d 100644 --- a/content/en/api/java/beta/tunnels/retrieve.md +++ b/content/en/api/java/beta/tunnels/retrieve.md @@ -127,6 +127,8 @@ Fetches a tunnel by ID. - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/reveal_token.md b/content/en/api/java/beta/tunnels/reveal_token.md index 5c3bd916bf..44f76edc06 100644 --- a/content/en/api/java/beta/tunnels/reveal_token.md +++ b/content/en/api/java/beta/tunnels/reveal_token.md @@ -127,6 +127,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/tunnels/rotate_token.md b/content/en/api/java/beta/tunnels/rotate_token.md index 9565e34d6b..b2d4905c82 100644 --- a/content/en/api/java/beta/tunnels/rotate_token.md +++ b/content/en/api/java/beta/tunnels/rotate_token.md @@ -127,6 +127,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/user_profiles.md b/content/en/api/java/beta/user_profiles.md index a46b4a6c84..ba20f858b0 100644 --- a/content/en/api/java/beta/user_profiles.md +++ b/content/en/api/java/beta/user_profiles.md @@ -19,7 +19,7 @@ Create User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -123,6 +123,8 @@ Create User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,17 +145,17 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -193,6 +195,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -209,13 +215,13 @@ Create User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -227,11 +233,11 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -285,14 +291,10 @@ Create User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```java @@ -321,6 +323,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -332,15 +335,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -394,7 +396,7 @@ List User Profiles - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -498,6 +500,8 @@ List User Profiles - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -530,6 +534,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -546,13 +554,13 @@ List User Profiles - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -564,11 +572,11 @@ List User Profiles - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -622,14 +630,10 @@ List User Profiles - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```java @@ -660,6 +664,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -671,15 +676,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -704,7 +708,7 @@ Get User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -808,6 +812,8 @@ Get User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -840,6 +846,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -856,13 +866,13 @@ Get User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -874,11 +884,11 @@ Get User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -932,14 +942,10 @@ Get User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```java @@ -968,6 +974,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -979,15 +986,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1009,7 +1015,7 @@ Update User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -1113,6 +1119,8 @@ Update User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1133,17 +1141,17 @@ Update User Profile - `Optional externalId` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `Optional externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1183,6 +1191,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1199,13 +1211,13 @@ Update User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -1217,11 +1229,11 @@ Update User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -1275,14 +1287,10 @@ Update User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```java @@ -1311,6 +1319,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1322,15 +1331,186 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`BetaDeletedUserProfile beta().userProfiles().delete(params = UserProfileDeleteParams.none(), requestOptions = RequestOptions.none())` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `UserProfileDeleteParams params` + + - `Optional userProfileId` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + + - `Optional> betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `Optional workspaceId` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `class BetaDeletedUserProfile` + + - `JsonValue type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `String id` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.userprofiles.BetaDeletedUserProfile; +import com.anthropic.models.beta.userprofiles.UserProfileDeleteParams; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + BetaDeletedUserProfile betaDeletedUserProfile = client.beta().userProfiles().delete("uprof_011CZkZCu8hGbp5mYRQgUmz9"); + } +} +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1352,7 +1532,7 @@ Create Enrollment URL - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -1456,6 +1636,8 @@ Create Enrollment URL - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1466,7 +1648,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type type` @@ -1515,6 +1697,18 @@ public final class Main { ## Domain types +### Beta Deleted User Profile + +- `class BetaDeletedUserProfile` + + - `JsonValue type = "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `String id` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `class BetaUserProfile` @@ -1541,6 +1735,10 @@ public final class Main { Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1557,13 +1755,13 @@ public final class Main { - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -1575,11 +1773,11 @@ public final class Main { - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -1633,19 +1831,15 @@ public final class Main { - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type type` @@ -1792,3 +1986,195 @@ public final class Main { - `PENDING("pending")` - `REJECTED("rejected")` + +## User Profiles › Action URLs + +### Create Action URL + +`BetaUserProfileActionUrl beta().userProfiles().actionUrls().create(params, requestOptions = RequestOptions.none())` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `ActionUrlCreateParams params` + + - `Optional userProfileId` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + + - `Optional> betas` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` + + - `PROMPT_CACHING_2024_07_31("prompt-caching-2024-07-31")` + + - `COMPUTER_USE_2024_10_22("computer-use-2024-10-22")` + + - `COMPUTER_USE_2025_01_24("computer-use-2025-01-24")` + + - `PDFS_2024_09_25("pdfs-2024-09-25")` + + - `TOKEN_COUNTING_2024_11_01("token-counting-2024-11-01")` + + - `TOKEN_EFFICIENT_TOOLS_2025_02_19("token-efficient-tools-2025-02-19")` + + - `OUTPUT_128K_2025_02_19("output-128k-2025-02-19")` + + - `FILES_API_2025_04_14("files-api-2025-04-14")` + + - `MCP_CLIENT_2025_04_04("mcp-client-2025-04-04")` + + - `MCP_CLIENT_2025_11_20("mcp-client-2025-11-20")` + + - `DEV_FULL_THINKING_2025_05_14("dev-full-thinking-2025-05-14")` + + - `INTERLEAVED_THINKING_2025_05_14("interleaved-thinking-2025-05-14")` + + - `CODE_EXECUTION_2025_05_22("code-execution-2025-05-22")` + + - `EXTENDED_CACHE_TTL_2025_04_11("extended-cache-ttl-2025-04-11")` + + - `CONTEXT_1M_2025_08_07("context-1m-2025-08-07")` + + - `CONTEXT_MANAGEMENT_2025_06_27("context-management-2025-06-27")` + + - `MODEL_CONTEXT_WINDOW_EXCEEDED_2025_08_26("model-context-window-exceeded-2025-08-26")` + + - `SKILLS_2025_10_02("skills-2025-10-02")` + + - `FAST_MODE_2026_02_01("fast-mode-2026-02-01")` + + - `OUTPUT_300K_2026_03_24("output-300k-2026-03-24")` + + - `USER_PROFILES_2026_03_24("user-profiles-2026-03-24")` + + - `USER_PROFILES_2026_08_18("user-profiles-2026-08-18")` + + - `USER_PROFILES_2026_09_04("user-profiles-2026-09-04")` + + - `ADVISOR_TOOL_2026_03_01("advisor-tool-2026-03-01")` + + - `MANAGED_AGENTS_2026_04_01("managed-agents-2026-04-01")` + + - `CACHE_DIAGNOSIS_2026_04_07("cache-diagnosis-2026-04-07")` + + - `DREAMING_2026_04_21("dreaming-2026-04-21")` + + - `THINKING_TOKEN_COUNT_2026_05_13("thinking-token-count-2026-05-13")` + + - `SERVER_SIDE_FALLBACK_2026_06_01("server-side-fallback-2026-06-01")` + + - `SERVER_SIDE_FALLBACK_2026_07_01("server-side-fallback-2026-07-01")` + + - `FALLBACK_CREDIT_2026_06_01("fallback-credit-2026-06-01")` + + - `FALLBACK_CREDIT_2026_07_01("fallback-credit-2026-07-01")` + + - `AGENT_MEMORY_2026_07_22("agent-memory-2026-07-22")` + + - `MID_CONVERSATION_TOOL_CHANGES_2026_07_01("mid-conversation-tool-changes-2026-07-01")` + + - `COMPACT_2026_01_12("compact-2026-01-12")` + + - `COMPUTER_USE_2025_11_24("computer-use-2025-11-24")` + + - `MCP_TUNNELS_2026_06_22("mcp-tunnels-2026-06-22")` + + - `STRUCTURED_OUTPUTS_2025_11_13("structured-outputs-2025-11-13")` + + - `TASK_BUDGETS_2026_03_13("task-budgets-2026-03-13")` + + - `THINKING_DISPLAY_UPDATES_2026_08_18("thinking-display-updates-2026-08-18")` + + - `CE_USER_MANAGEMENT_2026_07_13("ce-user-management-2026-07-13")` + + - `MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01("mid-conversation-output-config-2026-07-01")` + + - `THINKING_BINDING_CONTROLS_2026_08_01("thinking-binding-controls-2026-08-01")` + + - `MID_CONVERSATION_SYSTEM_CLEAR_AT_2026_08_21("mid-conversation-system-clear-at-2026-08-21")` + + - `COMPACT_2026_09_04("compact-2026-09-04")` + + - `INLINE_TOOLS_2026_09_15("inline-tools-2026-09-15")` + + - `MCP_CLIENT_2026_09_15("mcp-client-2026-09-15")` + + - `CE_PLUGINS_2026_09_01("ce-plugins-2026-09-01")` + + - `SPEND_LIMIT_READS_2026_09_26("spend-limit-reads-2026-09-26")` + + - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + + - `Optional workspaceId` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + + - `BetaUserProfileEnrollEndUserAction action` + + The action that the person who opens the URL takes. + +#### Returns + +- `class BetaUserProfileActionUrl` + + A URL to give to the person who takes the requested action. + + - `JsonValue type = "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `LocalDateTime expiresAt` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `String url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```java +package com.anthropic.example; + +import com.anthropic.client.AnthropicClient; +import com.anthropic.client.okhttp.AnthropicOkHttpClient; +import com.anthropic.models.beta.userprofiles.actionurls.ActionUrlCreateParams; +import com.anthropic.models.beta.userprofiles.actionurls.BetaUserProfileActionUrl; +import com.anthropic.models.beta.userprofiles.actionurls.BetaUserProfileEnrollEndUserAction; + +public final class Main { + private Main() {} + + public static void main(String[] args) { + AnthropicClient client = AnthropicOkHttpClient.fromEnv(); + + ActionUrlCreateParams params = ActionUrlCreateParams.builder() + .userProfileId("uprof_011CZkZCu8hGbp5mYRQgUmz9") + .action(BetaUserProfileEnrollEndUserAction.builder().build()) + .build(); + BetaUserProfileActionUrl betaUserProfileActionUrl = client.beta().userProfiles().actionUrls().create(params); + } +} +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/java/beta/user_profiles/create.md b/content/en/api/java/beta/user_profiles/create.md index 4b2f72bfa1..bd4a795c3d 100644 --- a/content/en/api/java/beta/user_profiles/create.md +++ b/content/en/api/java/beta/user_profiles/create.md @@ -17,7 +17,7 @@ Create User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -121,6 +121,8 @@ Create User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,17 +143,17 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -191,6 +193,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -207,13 +213,13 @@ Create User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -225,11 +231,11 @@ Create User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -283,14 +289,10 @@ Create User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```java @@ -319,6 +321,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -330,14 +333,13 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/java/beta/user_profiles/create_enrollment_url.md b/content/en/api/java/beta/user_profiles/create_enrollment_url.md index e1e51e446d..2c613eb9fc 100644 --- a/content/en/api/java/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/java/beta/user_profiles/create_enrollment_url.md @@ -21,7 +21,7 @@ Create Enrollment URL - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -125,6 +125,8 @@ Create Enrollment URL - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,7 +137,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentUrl` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `Type type` diff --git a/content/en/api/java/beta/user_profiles/list.md b/content/en/api/java/beta/user_profiles/list.md index 14231bf19b..d0641180cf 100644 --- a/content/en/api/java/beta/user_profiles/list.md +++ b/content/en/api/java/beta/user_profiles/list.md @@ -53,7 +53,7 @@ List User Profiles - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -157,6 +157,8 @@ List User Profiles - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -189,6 +191,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -205,13 +211,13 @@ List User Profiles - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -223,11 +229,11 @@ List User Profiles - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -281,14 +287,10 @@ List User Profiles - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```java @@ -319,6 +321,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -330,15 +333,14 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/java/beta/user_profiles/retrieve.md b/content/en/api/java/beta/user_profiles/retrieve.md index 1887d49b59..12ef051b4a 100644 --- a/content/en/api/java/beta/user_profiles/retrieve.md +++ b/content/en/api/java/beta/user_profiles/retrieve.md @@ -21,7 +21,7 @@ Get User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -125,6 +125,8 @@ Get User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -173,13 +179,13 @@ Get User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -191,11 +197,11 @@ Get User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -249,14 +255,10 @@ Get User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```java @@ -285,6 +287,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -296,14 +299,13 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/java/beta/user_profiles/update.md b/content/en/api/java/beta/user_profiles/update.md index 40fa16e864..2432ed8931 100644 --- a/content/en/api/java/beta/user_profiles/update.md +++ b/content/en/api/java/beta/user_profiles/update.md @@ -21,7 +21,7 @@ Update User Profile - `Optional> betas` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `MESSAGE_BATCHES_2024_09_24("message-batches-2024-09-24")` @@ -125,6 +125,8 @@ Update User Profile - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,17 +147,17 @@ Update User Profile - `Optional externalId` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `Optional externalUserOnboardedAt` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -195,6 +197,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `Optional name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `TrustGrants trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -211,13 +217,13 @@ Update User Profile - `LocalDateTime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `Optional accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `APPLICATION("application")` @@ -229,11 +235,11 @@ Update User Profile - `Optional externalId` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `Optional externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `Optional accountStatus` @@ -287,14 +293,10 @@ Update User Profile - `Optional externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `Optional name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```java @@ -323,6 +325,7 @@ public final class Main { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -334,14 +337,13 @@ public final class Main { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/java/beta/vaults.md b/content/en/api/java/beta/vaults.md index caac2a113f..205895fecd 100644 --- a/content/en/api/java/beta/vaults.md +++ b/content/en/api/java/beta/vaults.md @@ -123,6 +123,8 @@ Create a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -349,6 +351,8 @@ List Vaults - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -557,6 +561,8 @@ Retrieve a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -760,6 +766,8 @@ Update a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -973,6 +981,8 @@ Delete a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1143,6 +1153,8 @@ Archive a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1400,6 +1412,8 @@ Create a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1925,6 +1939,8 @@ List Credentials - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2260,6 +2276,8 @@ Retrieve a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2594,6 +2612,8 @@ Update a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3068,6 +3088,8 @@ Delete a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3246,6 +3268,8 @@ Archive a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3580,6 +3604,8 @@ Validate an MCP OAuth Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/archive.md b/content/en/api/java/beta/vaults/archive.md index 6cd774974f..0a8f94c286 100644 --- a/content/en/api/java/beta/vaults/archive.md +++ b/content/en/api/java/beta/vaults/archive.md @@ -125,6 +125,8 @@ Archive a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/create.md b/content/en/api/java/beta/vaults/create.md index 4d358c55bf..634b0aab75 100644 --- a/content/en/api/java/beta/vaults/create.md +++ b/content/en/api/java/beta/vaults/create.md @@ -121,6 +121,8 @@ Create a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials.md b/content/en/api/java/beta/vaults/credentials.md index ec14930741..3b1fe6ea67 100644 --- a/content/en/api/java/beta/vaults/credentials.md +++ b/content/en/api/java/beta/vaults/credentials.md @@ -127,6 +127,8 @@ Create a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -652,6 +654,8 @@ List Credentials - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -987,6 +991,8 @@ Retrieve a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1321,6 +1327,8 @@ Update a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1795,6 +1803,8 @@ Delete a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1973,6 +1983,8 @@ Archive a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2307,6 +2319,8 @@ Validate an MCP OAuth Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/archive.md b/content/en/api/java/beta/vaults/credentials/archive.md index ad41548504..740964c072 100644 --- a/content/en/api/java/beta/vaults/credentials/archive.md +++ b/content/en/api/java/beta/vaults/credentials/archive.md @@ -129,6 +129,8 @@ Archive a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/create.md b/content/en/api/java/beta/vaults/credentials/create.md index ea119c4a55..6e56ea487a 100644 --- a/content/en/api/java/beta/vaults/credentials/create.md +++ b/content/en/api/java/beta/vaults/credentials/create.md @@ -125,6 +125,8 @@ Create a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/delete.md b/content/en/api/java/beta/vaults/credentials/delete.md index ca39214a96..fee2574a76 100644 --- a/content/en/api/java/beta/vaults/credentials/delete.md +++ b/content/en/api/java/beta/vaults/credentials/delete.md @@ -129,6 +129,8 @@ Delete a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/list.md b/content/en/api/java/beta/vaults/credentials/list.md index 899373ecf2..94374b82d8 100644 --- a/content/en/api/java/beta/vaults/credentials/list.md +++ b/content/en/api/java/beta/vaults/credentials/list.md @@ -139,6 +139,8 @@ List Credentials - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/java/beta/vaults/credentials/mcp_oauth_validate.md index f96e5e8924..b87ea594b4 100644 --- a/content/en/api/java/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/java/beta/vaults/credentials/mcp_oauth_validate.md @@ -129,6 +129,8 @@ Validate an MCP OAuth Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/retrieve.md b/content/en/api/java/beta/vaults/credentials/retrieve.md index 5e7478e2a7..2ae7edb52e 100644 --- a/content/en/api/java/beta/vaults/credentials/retrieve.md +++ b/content/en/api/java/beta/vaults/credentials/retrieve.md @@ -129,6 +129,8 @@ Retrieve a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/credentials/update.md b/content/en/api/java/beta/vaults/credentials/update.md index 58a3e5b1db..1a5c7252f7 100644 --- a/content/en/api/java/beta/vaults/credentials/update.md +++ b/content/en/api/java/beta/vaults/credentials/update.md @@ -129,6 +129,8 @@ Update a Credential - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/delete.md b/content/en/api/java/beta/vaults/delete.md index bd201447e8..16e5308d95 100644 --- a/content/en/api/java/beta/vaults/delete.md +++ b/content/en/api/java/beta/vaults/delete.md @@ -125,6 +125,8 @@ Delete a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/list.md b/content/en/api/java/beta/vaults/list.md index 1a5f8c9018..3b20457890 100644 --- a/content/en/api/java/beta/vaults/list.md +++ b/content/en/api/java/beta/vaults/list.md @@ -135,6 +135,8 @@ List Vaults - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/retrieve.md b/content/en/api/java/beta/vaults/retrieve.md index 045a96b11c..45f4e9b8c8 100644 --- a/content/en/api/java/beta/vaults/retrieve.md +++ b/content/en/api/java/beta/vaults/retrieve.md @@ -125,6 +125,8 @@ Retrieve a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/vaults/update.md b/content/en/api/java/beta/vaults/update.md index b9f0a00eb8..d53f8c0bf4 100644 --- a/content/en/api/java/beta/vaults/update.md +++ b/content/en/api/java/beta/vaults/update.md @@ -125,6 +125,8 @@ Update a Vault - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional workspaceId` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/java/beta/webhooks.md b/content/en/api/java/beta/webhooks.md index bc26521724..aae2fffc1a 100644 --- a/content/en/api/java/beta/webhooks.md +++ b/content/en/api/java/beta/webhooks.md @@ -821,6 +821,34 @@ url: https://platform.claude.com/docs/en/api/java/beta/webhooks - `String workspaceId` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonValue type = "user_profile.enforcement_action_opened"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonValue type = "user_profile.enforcement_action_resolved"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + ### Beta Webhook Event Data - `class BetaWebhookEventData: union` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/java/beta/webhooks - `String workspaceId` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonValue type = "user_profile.enforcement_action_opened"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonValue type = "user_profile.enforcement_action_resolved"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + ### Beta Webhook Memory Store Archived Event Data - `class BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/java/beta/webhooks - `String workspaceId` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `JsonValue type = "user_profile.enforcement_action_opened"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `JsonValue type = "user_profile.enforcement_action_resolved"` + + - `String id` + + ID of the user profile the enforcement action is on. + + - `String enforcementActionId` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `String organizationId` + ### Beta Webhook Vault Archived Event Data - `class BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/java/completions.md b/content/en/api/java/completions.md index 8a08980dd9..5326d6d77b 100644 --- a/content/en/api/java/completions.md +++ b/content/en/api/java/completions.md @@ -185,6 +185,8 @@ Future models and features will not be compatible with Text Completions. See our - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional temperature` **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. diff --git a/content/en/api/java/completions/create.md b/content/en/api/java/completions/create.md index cf8b12b50f..4cce758e05 100644 --- a/content/en/api/java/completions/create.md +++ b/content/en/api/java/completions/create.md @@ -183,6 +183,8 @@ Future models and features will not be compatible with Text Completions. See our - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + - `Optional temperature` **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. diff --git a/content/en/api/java/messages.md b/content/en/api/java/messages.md index 6bbaf9dc60..ae22bd492f 100644 --- a/content/en/api/java/messages.md +++ b/content/en/api/java/messages.md @@ -23,7 +23,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -3536,6 +3536,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -3544,6 +3548,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -3552,6 +3560,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -3560,6 +3572,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -3568,10 +3584,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -4146,7 +4174,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -12771,6 +12799,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -12781,6 +12813,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -12791,6 +12827,12 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` ### Cache Miss Reason @@ -12799,6 +12841,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -12807,6 +12853,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -12815,6 +12865,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -12823,6 +12877,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -12831,16 +12889,32 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Cache Miss System Changed - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -12851,6 +12925,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -12861,6 +12939,12 @@ public final class Main { - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Citation Char Location @@ -18359,6 +18443,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -18367,6 +18455,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -18375,6 +18467,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -18383,6 +18479,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -18391,10 +18491,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` ### Diagnostics Param @@ -19630,6 +19742,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -19638,6 +19754,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -19646,6 +19766,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -19654,6 +19778,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -19662,10 +19790,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -24620,6 +24760,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -24628,6 +24772,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -24636,6 +24784,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -24644,6 +24796,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -24652,10 +24808,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -25649,6 +25817,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -25657,6 +25829,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -25665,6 +25841,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -25673,6 +25853,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -25681,10 +25865,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -34555,7 +34751,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -39128,6 +39324,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -39136,6 +39336,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -39144,6 +39348,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -39152,6 +39360,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -39160,10 +39372,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/messages/batches.md b/content/en/api/java/messages/batches.md index 3c9b557511..d595d5c140 100644 --- a/content/en/api/java/messages/batches.md +++ b/content/en/api/java/messages/batches.md @@ -23,7 +23,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) @@ -4596,6 +4596,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -4604,6 +4608,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -4612,6 +4620,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -4620,6 +4632,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -4628,10 +4644,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -5923,6 +5951,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -5931,6 +5963,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -5939,6 +5975,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -5947,6 +5987,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -5955,10 +5999,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -7056,6 +7112,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -7064,6 +7124,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -7072,6 +7136,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -7080,6 +7148,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -7088,10 +7160,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` @@ -8151,6 +8235,10 @@ public final class Main { - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -8159,6 +8247,10 @@ public final class Main { - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -8167,6 +8259,10 @@ public final class Main { - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -8175,6 +8271,10 @@ public final class Main { - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -8183,10 +8283,22 @@ public final class Main { - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/messages/batches/create.md b/content/en/api/java/messages/batches/create.md index a676d0ce8f..1598f14c64 100644 --- a/content/en/api/java/messages/batches/create.md +++ b/content/en/api/java/messages/batches/create.md @@ -21,7 +21,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `Optional userProfileId` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `Optional workspaceId` (header parameter) diff --git a/content/en/api/java/messages/batches/results.md b/content/en/api/java/messages/batches/results.md index e8318c968a..c607f21418 100644 --- a/content/en/api/java/messages/batches/results.md +++ b/content/en/api/java/messages/batches/results.md @@ -746,6 +746,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -754,6 +758,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -762,6 +770,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -770,6 +782,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -778,10 +794,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/messages/count_tokens.md b/content/en/api/java/messages/count_tokens.md index 9d4f9b3a07..968da2e7a3 100644 --- a/content/en/api/java/messages/count_tokens.md +++ b/content/en/api/java/messages/count_tokens.md @@ -21,7 +21,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) diff --git a/content/en/api/java/messages/create.md b/content/en/api/java/messages/create.md index 83443597d3..962b44aa2a 100644 --- a/content/en/api/java/messages/create.md +++ b/content/en/api/java/messages/create.md @@ -21,7 +21,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `Optional userProfileId` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `Optional workspaceId` (header parameter) @@ -3534,6 +3534,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "model_changed"` - `long cacheMissedInputTokens` @@ -3542,6 +3546,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "system_changed"` - `long cacheMissedInputTokens` @@ -3550,6 +3558,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "tools_changed"` - `long cacheMissedInputTokens` @@ -3558,6 +3570,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "messages_changed"` - `long cacheMissedInputTokens` @@ -3566,10 +3582,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "previous_message_not_found"` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=java#cache-miss-reason-types) to learn what to change for each reason. + - `JsonValue type = "unavailable"` - `Model model` diff --git a/content/en/api/java/models.md b/content/en/api/java/models.md index b0d7e0cf5d..2687d96e75 100644 --- a/content/en/api/java/models.md +++ b/content/en/api/java/models.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Returns - `class ModelInfo` @@ -610,6 +612,8 @@ The Models API response can be used to determine information about a specific mo - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ### Returns - `class ModelInfo` diff --git a/content/en/api/java/models/list.md b/content/en/api/java/models/list.md index 1ebf3f70a3..36ee5300ec 100644 --- a/content/en/api/java/models/list.md +++ b/content/en/api/java/models/list.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ## Returns - `class ModelInfo` diff --git a/content/en/api/java/models/retrieve.md b/content/en/api/java/models/retrieve.md index 0e3fd76dd2..3ff9be55c7 100644 --- a/content/en/api/java/models/retrieve.md +++ b/content/en/api/java/models/retrieve.md @@ -135,6 +135,8 @@ The Models API response can be used to determine information about a specific mo - `TELEMETRY_DESTINATIONS_2026_08_11("telemetry-destinations-2026-08-11")` + - `WEBHOOKS_2026_10_07("webhooks-2026-10-07")` + ## Returns - `class ModelInfo` diff --git a/content/en/api/messages.md b/content/en/api/messages.md index 6be79a7b88..43d1133127 100644 --- a/content/en/api/messages.md +++ b/content/en/api/messages.md @@ -25,7 +25,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -3880,6 +3880,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3890,6 +3894,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3900,6 +3908,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3910,6 +3922,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3920,12 +3936,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -4553,7 +4581,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -13534,6 +13562,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13546,6 +13578,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13558,6 +13594,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found @@ -13568,6 +13610,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13578,6 +13624,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13588,6 +13638,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13598,6 +13652,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13608,12 +13666,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -13622,6 +13692,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13634,6 +13708,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13646,6 +13724,12 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -19354,6 +19438,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19364,6 +19452,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19374,6 +19466,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19384,6 +19480,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19394,12 +19494,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -20733,6 +20845,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -20743,6 +20859,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -20753,6 +20873,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -20763,6 +20887,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -20773,12 +20901,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -25965,6 +26105,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -25975,6 +26119,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -25985,6 +26133,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -25995,6 +26147,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -26005,12 +26161,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -27102,6 +27270,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -27112,6 +27284,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -27122,6 +27298,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -27132,6 +27312,10 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -27142,12 +27326,24 @@ curl https://api.anthropic.com/v1/messages/count_tokens \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -36260,7 +36456,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -40951,6 +41147,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -40961,6 +41161,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -40971,6 +41175,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -40981,6 +41189,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -40991,12 +41203,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/messages/batches.md b/content/en/api/messages/batches.md index f7b390bde9..4a1f1fcae7 100644 --- a/content/en/api/messages/batches.md +++ b/content/en/api/messages/batches.md @@ -25,7 +25,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` @@ -4716,6 +4716,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -4726,6 +4730,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -4736,6 +4744,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -4746,6 +4758,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -4756,12 +4772,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -6237,6 +6265,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -6247,6 +6279,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -6257,6 +6293,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -6267,6 +6307,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -6277,12 +6321,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -7530,6 +7586,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7540,6 +7600,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7550,6 +7614,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7560,6 +7628,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7570,12 +7642,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -8775,6 +8859,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8785,6 +8873,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8795,6 +8887,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8805,6 +8901,10 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8815,12 +8915,24 @@ curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \ - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/messages/batches/create.md b/content/en/api/messages/batches/create.md index 9be342fe67..a3e0fa42c2 100644 --- a/content/en/api/messages/batches/create.md +++ b/content/en/api/messages/batches/create.md @@ -23,7 +23,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `"anthropic-workspace-id": optional string` diff --git a/content/en/api/messages/batches/results.md b/content/en/api/messages/batches/results.md index c37cec309b..7dba7f2511 100644 --- a/content/en/api/messages/batches/results.md +++ b/content/en/api/messages/batches/results.md @@ -838,6 +838,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -848,6 +852,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -858,6 +866,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -868,6 +880,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -878,12 +894,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/messages/count_tokens.md b/content/en/api/messages/count_tokens.md index 3345883290..d843cd300c 100644 --- a/content/en/api/messages/count_tokens.md +++ b/content/en/api/messages/count_tokens.md @@ -23,7 +23,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` diff --git a/content/en/api/messages/create.md b/content/en/api/messages/create.md index 43d1d81980..29343da1b2 100644 --- a/content/en/api/messages/create.md +++ b/content/en/api/messages/create.md @@ -23,7 +23,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"anthropic-user-profile-id": optional string` - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `"anthropic-workspace-id": optional string` @@ -3878,6 +3878,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissModelChanged object` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3888,6 +3892,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissSystemChanged object` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3898,6 +3906,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissToolsChanged object` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3908,6 +3920,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissMessagesChanged object` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3918,12 +3934,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `CacheMissPreviousMessageNotFound object` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `CacheMissUnavailable object` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=http#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/models.md b/content/en/api/models.md index ee8b739c65..a613e21a65 100644 --- a/content/en/api/models.md +++ b/content/en/api/models.md @@ -167,6 +167,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `data: array of ModelInfo` @@ -625,6 +627,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `ModelInfo object` diff --git a/content/en/api/models/list.md b/content/en/api/models/list.md index f849e8dcf1..8c09fe1b5f 100644 --- a/content/en/api/models/list.md +++ b/content/en/api/models/list.md @@ -165,6 +165,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `data: array of ModelInfo` diff --git a/content/en/api/models/retrieve.md b/content/en/api/models/retrieve.md index f5b09bde9c..49a2307ae4 100644 --- a/content/en/api/models/retrieve.md +++ b/content/en/api/models/retrieve.md @@ -141,6 +141,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `ModelInfo object` diff --git a/content/en/api/opentelemetry/spans.md b/content/en/api/opentelemetry/spans.md index 412a6b04f8..a07f783af4 100644 --- a/content/en/api/opentelemetry/spans.md +++ b/content/en/api/opentelemetry/spans.md @@ -135,7 +135,7 @@ The span has the [token usage attributes](https://platform.claude.com/docs/en/ap | `anthropic.message.stop_reason` | `string` | The response's [`stop_reason`](https://platform.claude.com/docs/en/api/messages#stop_reason), for example `end_turn`. | | `anthropic.response.service_tier` | `string` | The service tier that served the request: the response's [`usage.service_tier`](https://platform.claude.com/docs/en/api/messages#usage). See [how requests get assigned tiers](https://platform.claude.com/docs/en/api/service-tiers#how-requests-get-assigned-tiers). | | `error.type` | `string` | A failed request's [error type](https://platform.claude.com/docs/en/api/errors#http-errors), for example `rate_limit_error`.
**SDK:** Also the other values in [SDK spans for requests](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-resources-method).
**API:** `api_error` when the API ends the request without an error response. | -| `gen_ai.response.time_to_first_chunk` | `double` | Only on a streaming response's SDK span. The seconds from when the SDK first sent the request to the stream's first `content_block_delta` event, if it has one. | +| `gen_ai.response.time_to_first_chunk` | `double` | Only on a streaming response's spans. The seconds to the stream's first `content_block_delta` event, if it has one. | | `gen_ai.usage.reasoning.output_tokens` | `int` | The response's thinking tokens. They are part of the output tokens. Absent when the response's usage doesn't have details for the output tokens. | | `anthropic.usage.compaction.input_tokens` | `int` | Input tokens of the request's [compactions](https://platform.claude.com/docs/en/build-with-claude/compaction), including cache reads and writes. Not part of `gen_ai.usage.input_tokens`. Absent when the response has no compaction. | | `anthropic.usage.compaction.output_tokens` | `int` | Output tokens of the request's compactions. Not part of `gen_ai.usage.output_tokens`. Absent when the response has no compaction. | @@ -209,13 +209,14 @@ The same as [`anthropic.sessions.`](https://platform.claude.com/docs/en/ * The [`anthropic.sessions.events.send`](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-sessions-events-send) span for the request in which the event was sent, for a turn that started because of an event, for example a [`user.message`](https://platform.claude.com/docs/en/api/beta/sessions/events#beta_managed_agents_user_message_event) event. * The [`anthropic.sessions.update`](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-sessions-update) span, for a turn that resumes because the session budget was raised or removed through the request. * The `anthropic.session.turn` span for the turn of [the agent that the session runs](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) during which that agent started this turn, for a turn on another thread. - * None, for a turn that starts because an agent on another thread replied or finished its turn, such as an agent that the primary agent called. + * The `anthropic.session.turn` span for the turn that produced the reply, for a turn that starts because an agent on another thread replied, such as an agent that the primary agent called. + * None, for any other turn, such as a turn that starts because a [workflow run](https://platform.claude.com/docs/en/managed-agents/workflow-runs) ended. * **Children:** * An [`anthropic.model_request`](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-model-request) span for each model request in the turn. * A tool span each time the API runs a tool in the turn, except in the [cases listed in the tool span section](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-tool-use-anthropic-mcp-tool-use-and-anthropic-custom-tool-use). - * An `anthropic.session.turn` span for each turn that the agent that the session runs started on another thread during this turn. + * An `anthropic.session.turn` span for each turn on another thread that was started during this turn by the agent that the session runs, or by this turn's reply. * An [`anthropic.session.outcome_evaluation`](https://platform.claude.com/docs/en/api/opentelemetry/spans#anthropic-session-outcome-evaluation) span for each iteration of an outcome evaluation that this turn starts. A turn starts when its thread enters the `running` state and ends when the thread leaves it. @@ -304,7 +305,7 @@ The API doesn't emit a tool span in the following cases: | `gen_ai.tool.description` | `string` | Only on SDK spans. The description in the tool definition. Absent when the description is empty. | | `gen_ai.tool.type` | `string` | Only on SDK spans. `function` | | `gen_ai.tool.call.arguments` | `string` | Content A JSON string that follows the OpenTelemetry [`ToolCallArguments`](https://github.com/open-telemetry/semantic-conventions-genai/blob/e57c543b4889619eb2a05702471937db5119165d/model/gen-ai/gen-ai-tool-call-arguments.json) schema. The tool use's [`input`](https://platform.claude.com/docs/en/api/messages#tool_use_block). | -| `anthropic.tool_result.content` | `string` | Content A JSON string with an array of content blocks or with one object. The `content` of the tool result that goes back to the model. Also for an error result, except on Managed Agents when the connection to the MCP server failed.
**API:** On the Messages API, a string `content` becomes an array with one [`text`](https://platform.claude.com/docs/en/api/messages#text_block) block. | +| `anthropic.tool_result.content` | `string` | Content A JSON string with an array of content blocks. The `content` of the tool result that goes back to the model. Also for an error result, except on Managed Agents when the connection to the MCP server failed. A string `content` becomes an array with one [`text`](https://platform.claude.com/docs/en/api/messages#text_block) block.
**API:** On the Messages API, when a server tool's result `content` is one object, such as a `code_execution_result`, it becomes an array with that object. | ### `anthropic.compaction` diff --git a/content/en/api/organization.md b/content/en/api/organization.md index 2587062e06..1dd60f0800 100644 --- a/content/en/api/organization.md +++ b/content/en/api/organization.md @@ -7310,6 +7310,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +### Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +#### Body parameters + +- `limits: array of WorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: WorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `WorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `OrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `OrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of WorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: WorkspaceRateLimitWorkspaceSource or WorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `WorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `WorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Organization › Workspaces › Members ### List Workspace Members @@ -8316,7 +8588,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` diff --git a/content/en/api/organization/rate_limits.md b/content/en/api/organization/rate_limits.md index 56fd3e5de3..6c5d3370c9 100644 --- a/content/en/api/organization/rate_limits.md +++ b/content/en/api/organization/rate_limits.md @@ -75,7 +75,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` @@ -246,7 +246,7 @@ curl https://api.anthropic.com/v1/organizations/rate_limits \ - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` diff --git a/content/en/api/organization/rate_limits/list.md b/content/en/api/organization/rate_limits/list.md index 94910c79ea..3c6f3e4250 100644 --- a/content/en/api/organization/rate_limits/list.md +++ b/content/en/api/organization/rate_limits/list.md @@ -73,7 +73,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` diff --git a/content/en/api/organization/workspaces.md b/content/en/api/organization/workspaces.md index ece76647c4..75e7505636 100644 --- a/content/en/api/organization/workspaces.md +++ b/content/en/api/organization/workspaces.md @@ -1432,6 +1432,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +### Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +#### Body parameters + +- `limits: array of WorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: WorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `WorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `OrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `OrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of WorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: WorkspaceRateLimitWorkspaceSource or WorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `WorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `WorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Workspaces › Members ### List Workspace Members diff --git a/content/en/api/organization/workspaces/rate_limits.md b/content/en/api/organization/workspaces/rate_limits.md index 1f118c3510..52fc45e8f4 100644 --- a/content/en/api/organization/workspaces/rate_limits.md +++ b/content/en/api/organization/workspaces/rate_limits.md @@ -275,6 +275,278 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li } ``` +## Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +### Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +### Body parameters + +- `limits: array of WorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: WorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +### Returns + +- `WorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `OrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `OrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of WorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: WorkspaceRateLimitWorkspaceSource or WorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `WorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `WorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +### Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +#### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Domain types ### Workspace Rate Limit @@ -443,6 +715,62 @@ curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_li default: organization +### Workspace Rate Limit Type + +- `WorkspaceRateLimitType = "fast_itpmca" or "fast_otpm" or "input_tokens_per_minute" or 6 more` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + +### Workspace Rate Limit Update Value + +- `WorkspaceRateLimitUpdateValue object` + + - `type: WorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + ### Workspace Rate Limit Value - `WorkspaceRateLimitValue object` diff --git a/content/en/api/organization/workspaces/rate_limits/update.md b/content/en/api/organization/workspaces/rate_limits/update.md new file mode 100644 index 0000000000..6ee44e9b17 --- /dev/null +++ b/content/en/api/organization/workspaces/rate_limits/update.md @@ -0,0 +1,276 @@ +--- +title: Set Workspace Rate Limits +url: https://platform.claude.com/docs/en/api/organization/workspaces/rate_limits/update +--- + +# Set Workspace Rate Limits + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +## Path parameters + +- `workspace_id: string` + + The ID of the workspace. + +- `rate_limit_id: string` + + The `id` of the organization's rate-limit entry to set overrides for. + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +## Body parameters + +- `limits: array of WorkspaceRateLimitUpdateValue` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: WorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number or null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +## Returns + +- `WorkspaceRateLimit object` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: OrganizationRateLimitModelGroup or OrganizationRateLimitBatchGroup or OrganizationRateLimitTokenCountGroup or 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `OrganizationRateLimitModelGroup object` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `OrganizationRateLimitBatchGroup object` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitTokenCountGroup object` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitFilesGroup object` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitSkillsGroup object` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `OrganizationRateLimitWebSearchGroup object` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: array of WorkspaceRateLimitValue` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number or null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: WorkspaceRateLimitWorkspaceSource or WorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `WorkspaceRateLimitWorkspaceSource object` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `WorkspaceRateLimitOrganizationSource object` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: array of string or null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" or "files" or "model_group" or 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +## Example + +```bash +curl https://api.anthropic.com/v1/organizations/workspaces/$WORKSPACE_ID/rate_limits/$RATE_LIMIT_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "limits": [ + { + "type": "fast_itpmca", + "value": 0 + } + ] + }' +``` + +### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` diff --git a/content/en/api/php/beta.md b/content/en/api/php/beta.md index 045a7cab70..736cf27770 100644 --- a/content/en/api/php/beta.md +++ b/content/en/api/php/beta.md @@ -115,6 +115,8 @@ url: https://platform.claude.com/docs/en/api/php/beta - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Beta API Error - `class BetaAPIError` @@ -380,6 +382,9 @@ The Models API response can be used to determine which models are available for require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->models->list( @@ -594,6 +599,9 @@ The Models API response can be used to determine information about a specific mo require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaModelInfo = $client->beta->models->retrieve( @@ -971,7 +979,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -1241,6 +1249,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessage = $client->beta->messages->create( @@ -1650,7 +1663,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -1685,6 +1698,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageTokensCount = $client->beta->messages->countTokens( @@ -1815,7 +1833,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -1884,6 +1902,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->create( @@ -2120,6 +2143,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->retrieve( @@ -2253,6 +2279,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->messages->batches->list( @@ -2385,6 +2414,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->cancel( @@ -2468,6 +2500,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedMessageBatch = $client->beta->messages->batches->delete( @@ -2539,6 +2574,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatchIndividualResponse = $client @@ -2673,6 +2711,10 @@ Create Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->create( @@ -2916,6 +2958,9 @@ List Agents require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->list( @@ -3123,6 +3168,9 @@ Get Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->retrieve( @@ -3362,6 +3410,10 @@ Update Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->update( @@ -3596,6 +3648,9 @@ Archive Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->archive( @@ -3800,6 +3855,9 @@ List Agent Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->versions->list( @@ -4013,6 +4071,9 @@ Create a new environment with the specified configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->create( @@ -4181,6 +4242,9 @@ List environments with pagination support. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->list( @@ -4321,6 +4385,9 @@ Retrieve a specific environment by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->retrieve( @@ -4474,6 +4541,9 @@ Update an existing environment's configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->update( @@ -4597,6 +4667,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironmentDeleteResponse = $client->beta->environments->delete( @@ -4690,6 +4763,9 @@ Archive an environment by ID. Archived environments cannot be used to create new require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->archive( @@ -4841,6 +4917,9 @@ Retrieve detailed information about a specific work item. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->retrieve( @@ -4971,6 +5050,9 @@ Long poll for work items in the queue. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->poll( @@ -5092,6 +5174,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->ack( @@ -5187,6 +5272,9 @@ Record a heartbeat for a work item to maintain the lease. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkHeartbeatResponse = $client @@ -5311,6 +5399,9 @@ Stop a work item, initiating graceful or forced shutdown. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->stop( @@ -5440,6 +5531,9 @@ List work items in an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->work->list( @@ -5575,6 +5669,9 @@ Update work item metadata with merge semantics. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->update( @@ -5666,6 +5763,9 @@ Get statistics about the work queue for an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkQueueStats = $client->beta->environments->work->stats( @@ -5808,6 +5908,10 @@ Create Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->create( @@ -6177,6 +6281,9 @@ List Sessions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->list( @@ -6493,6 +6600,9 @@ Get Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->retrieve( @@ -6811,6 +6921,10 @@ Update Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->update( @@ -7091,6 +7205,9 @@ Delete Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedSession = $client->beta->sessions->delete( @@ -7198,6 +7315,9 @@ Archive Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->archive( @@ -8356,6 +8476,10 @@ List Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Events\ManagedAgentsSessionEventType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->events->list( @@ -8448,6 +8572,9 @@ Send Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSendSessionEvents = $client->beta->sessions->events->send( @@ -9424,6 +9551,10 @@ Stream Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionEvents = $client @@ -9517,6 +9648,9 @@ Add Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsFileResource = $client->beta->sessions->resources->add( @@ -9651,6 +9785,9 @@ List Session Resources require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->resources->list( @@ -9795,6 +9932,9 @@ Get Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->retrieve( @@ -9929,6 +10069,9 @@ Update Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->update( @@ -9998,6 +10141,9 @@ Delete Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeleteSessionResource = $client @@ -10118,6 +10264,10 @@ List Session Threads require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Threads\ManagedAgentsSessionThreadStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->list( @@ -10311,6 +10461,9 @@ Get Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->retrieve( @@ -10497,6 +10650,9 @@ Archive Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->archive( @@ -11525,6 +11681,9 @@ List Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->events->list( @@ -12512,6 +12671,10 @@ Stream Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionThreadEvents = $client @@ -12685,6 +12848,10 @@ Create Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->create( @@ -12915,6 +13082,10 @@ List Deployments require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Deployments\BetaManagedAgentsDeploymentStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deployments->list( @@ -13105,6 +13276,9 @@ Get Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->retrieve( @@ -13324,6 +13498,10 @@ Update Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->update( @@ -13531,6 +13709,9 @@ Archive Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->archive( @@ -13674,6 +13855,9 @@ Run Deployment Now require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deployments->run( @@ -13811,6 +13995,9 @@ Pause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->pause( @@ -13990,6 +14177,9 @@ Unpause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->unpause( @@ -14167,6 +14357,10 @@ List Deployment Runs require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\DeploymentRuns\BetaManagedAgentsTriggerType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deploymentRuns->list( @@ -14281,6 +14475,9 @@ Get Deployment Run require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deploymentRuns->retrieve( @@ -14384,6 +14581,9 @@ Create a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->create( @@ -14481,6 +14681,9 @@ List Vaults require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->list( @@ -14576,6 +14779,9 @@ Retrieve a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->retrieve( @@ -14672,6 +14878,9 @@ Update a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->update( @@ -14742,6 +14951,9 @@ Delete a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedVault = $client->beta->vaults->delete( @@ -14823,6 +15035,9 @@ Archive a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->archive( @@ -14933,6 +15148,9 @@ Create a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->create( @@ -15053,6 +15271,9 @@ List Credentials require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->credentials->list( @@ -15166,6 +15387,9 @@ Retrieve a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->retrieve( @@ -15284,6 +15508,9 @@ Update a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->update( @@ -15376,6 +15603,9 @@ Delete a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedCredential = $client @@ -15474,6 +15704,9 @@ Archive a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->archive( @@ -15576,6 +15809,9 @@ Validate an MCP OAuth Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredentialValidation = $client @@ -15625,27 +15861,33 @@ var_dump($betaManagedAgentsCredentialValidation); ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `$client->beta->memoryStores->create(string name, ?string description, ?array metadata, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#how-the-agent-accesses-memory) to learn more about how agents access memory stores. - `description?:optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. - `metadata?:optional array` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?:optional list` (header parameter) @@ -15665,23 +15907,29 @@ Create a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -15689,7 +15937,9 @@ Create a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. #### Example @@ -15698,6 +15948,9 @@ Create a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->create( @@ -15728,23 +15981,23 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -### List memory stores +### List Memory Stores `$client->beta->memoryStores->list(?\Datetime createdAtGte, ?\Datetime createdAtLte, ?bool includeArchived, ?int limit, ?string page, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters - `createdAtGte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). - `createdAtLte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). - `includeArchived?:optional bool` (query parameter) @@ -15756,7 +16009,7 @@ List memory stores - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?:optional list` (header parameter) @@ -15776,23 +16029,29 @@ List memory stores - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -15800,7 +16059,9 @@ List memory stores - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. #### Example @@ -15809,6 +16070,9 @@ List memory stores require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->list( @@ -15844,19 +16108,19 @@ var_dump($page); } ``` -### Retrieve a memory store +### Retrieve a Memory Store `$client->beta->memoryStores->retrieve(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas?:optional list` (header parameter) @@ -15876,23 +16140,29 @@ Retrieve a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -15900,7 +16170,9 @@ Retrieve a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. #### Example @@ -15909,6 +16181,9 @@ Retrieve a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->retrieve( @@ -15937,31 +16212,37 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -### Update a memory store +### Update a Memory Store `$client->beta->memoryStores->update(string memoryStoreID, ?string description, ?array metadata, ?string name, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description?:optional string` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. - `metadata?:optional array` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?:optional string` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. - `betas?:optional list` (header parameter) @@ -15981,23 +16262,29 @@ Update a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -16005,7 +16292,9 @@ Update a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. #### Example @@ -16014,6 +16303,9 @@ Update a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->update( @@ -16045,19 +16337,21 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -### Delete a memory store +### Delete a Memory Store `$client->beta->memoryStores->delete(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas?:optional list` (header parameter) @@ -16086,6 +16380,9 @@ Delete a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemoryStore = $client->beta->memoryStores->delete( @@ -16106,19 +16403,21 @@ var_dump($betaManagedAgentsDeletedMemoryStore); } ``` -### Archive a memory store +### Archive a Memory Store `$client->beta->memoryStores->archive(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas?:optional list` (header parameter) @@ -16138,23 +16437,29 @@ Archive a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -16162,7 +16467,9 @@ Archive a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. #### Example @@ -16171,6 +16478,9 @@ Archive a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->archive( @@ -16201,13 +16511,13 @@ var_dump($betaManagedAgentsMemoryStore); ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `$client->beta->memoryStores->memories->create(string memoryStoreID, ?string content, string path, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -16217,15 +16527,21 @@ Create a memory - `content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -16245,7 +16561,9 @@ Create a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -16253,7 +16571,7 @@ Create a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -16265,7 +16583,11 @@ Create a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -16273,11 +16595,15 @@ Create a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -16286,6 +16612,10 @@ Create a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->create( @@ -16317,13 +16647,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### List memories +### List Memories `$client->beta->memoryStores->memories->list(string memoryStoreID, ?int depth, ?int limit, ?string page, ?string pathPrefix, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -16333,23 +16663,31 @@ List memories - `depth?:optional int` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. - `limit?:optional int` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `pathPrefix?:optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `betas?:optional list` (header parameter) @@ -16371,7 +16709,9 @@ List memories - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -16379,7 +16719,7 @@ List memories - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -16391,7 +16731,11 @@ List memories - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -16399,11 +16743,15 @@ List memories - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class ManagedAgentsMemoryPrefix` @@ -16420,6 +16768,10 @@ List memories require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memories->list( @@ -16458,13 +16810,13 @@ var_dump($page); } ``` -### Retrieve a memory +### Retrieve a Memory `$client->beta->memoryStores->memories->retrieve(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -16478,7 +16830,9 @@ Retrieve a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -16498,7 +16852,9 @@ Retrieve a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -16506,7 +16862,7 @@ Retrieve a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -16518,7 +16874,11 @@ Retrieve a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -16526,11 +16886,15 @@ Retrieve a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -16539,6 +16903,10 @@ Retrieve a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->retrieve( @@ -16569,13 +16937,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### Update a memory +### Update a Memory `$client->beta->memoryStores->memories->update(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?string content, ?string path, ?ManagedAgentsPrecondition precondition, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -16589,7 +16957,9 @@ Update a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `content?:optional string` @@ -16597,11 +16967,15 @@ Update a memory - `path?:optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. - `precondition?:optional ManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `betas?:optional list` (header parameter) @@ -16621,7 +16995,9 @@ Update a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -16629,7 +17005,7 @@ Update a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -16641,7 +17017,11 @@ Update a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -16649,11 +17029,15 @@ Update a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -16662,6 +17046,10 @@ Update a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->update( @@ -16697,13 +17085,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### Delete a memory +### Delete a Memory `$client->beta->memoryStores->memories->delete(string memoryID, string memoryStoreID, ?string expectedContentSha256, ?list betas, ?string workspaceID): ManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -16748,6 +17136,9 @@ Delete a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemory = $client->beta->memoryStores->memories->delete( @@ -16772,13 +17163,13 @@ var_dump($betaManagedAgentsDeletedMemory); ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `$client->beta->memoryStores->memoryVersions->list(string memoryStoreID, ?string apiKeyID, ?\Datetime createdAtGte, ?\Datetime createdAtLte, ?int limit, ?string memoryID, ?ManagedAgentsMemoryVersionOperation operation, ?string page, ?string serviceAccountID, ?string sessionID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -16800,13 +17191,15 @@ List memory versions - `limit?:optional int` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. - `memoryID?:optional string` (query parameter) Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?:optional ManagedAgentsMemoryVersionOperation` (query parameter) @@ -16826,7 +17219,9 @@ List memory versions - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -16854,7 +17249,9 @@ List memory versions - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -16878,7 +17275,11 @@ List memory versions - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -16886,7 +17287,11 @@ List memory versions - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -16899,6 +17304,11 @@ List memory versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; +use Anthropic\Beta\MemoryStores\MemoryVersions\ManagedAgentsMemoryVersionOperation; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memoryVersions->list( @@ -16951,13 +17361,13 @@ var_dump($page); } ``` -### Retrieve a memory version +### Retrieve a Memory Version `$client->beta->memoryStores->memoryVersions->retrieve(string memoryVersionID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -16971,7 +17381,9 @@ Retrieve a memory version - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -16999,7 +17411,9 @@ Retrieve a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -17023,7 +17437,11 @@ Retrieve a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -17031,7 +17449,11 @@ Retrieve a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -17044,6 +17466,10 @@ Retrieve a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client @@ -17087,13 +17513,13 @@ var_dump($betaManagedAgentsMemoryVersion); } ``` -### Redact a memory version +### Redact a Memory Version `$client->beta->memoryStores->memoryVersions->redact(string memoryVersionID, string memoryStoreID, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -17131,7 +17557,9 @@ Redact a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -17155,7 +17583,11 @@ Redact a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -17163,7 +17595,11 @@ Redact a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -17176,6 +17612,9 @@ Redact a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client @@ -17299,6 +17738,10 @@ Upload File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->upload( @@ -17421,6 +17864,9 @@ List Files require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->files->list( @@ -17494,6 +17940,9 @@ Download File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->files->download( @@ -17580,6 +18029,9 @@ Get File Metadata require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->retrieveMetadata( @@ -17655,6 +18107,9 @@ Delete File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedFile = $client->beta->files->delete( @@ -17761,6 +18216,10 @@ Create Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->create( @@ -17886,6 +18345,9 @@ List Skills require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->list( @@ -17998,6 +18460,9 @@ Get Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->retrieve( @@ -18074,6 +18539,9 @@ Delete Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkill = $client->beta->skills->delete( @@ -18173,6 +18641,10 @@ Create Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->create( @@ -18283,6 +18755,9 @@ List Skill Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->versions->list( @@ -18357,6 +18832,9 @@ Download a skill version's content as a zip archive. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->skills->versions->download( @@ -18446,6 +18924,9 @@ Get Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->retrieve( @@ -18525,6 +19006,9 @@ Delete Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkillVersion = $client->beta->skills->versions->delete( @@ -18564,15 +19048,15 @@ Create User Profile - `externalID?:optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `externalUserOnboardedAt?:optional \Datetime` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -18584,7 +19068,7 @@ Create User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -18612,33 +19096,33 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. #### Example @@ -18647,23 +19131,26 @@ Create User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->create( accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ 'accountStatus' => 'active', - 'country' => 'country', + 'country' => 'US', 'emailHash' => 'x', - 'entityType' => 'individual', + 'entityType' => 'business', 'nameHash' => 'x', - 'onboardedAt' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), - 'referenceID' => 'x', + 'onboardedAt' => new \DateTimeImmutable('2024-11-02T08:15:00Z'), + 'referenceID' => 'user_12345', ], - externalUserOnboardedAt: new \DateTimeImmutable('2024-11-02T08:15:00Z'), + externalUserOnboardedAt: new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), metadata: [], - name: 'x', + name: 'Example User', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', ); @@ -18678,6 +19165,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -18689,15 +19177,14 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -18731,7 +19218,7 @@ List User Profiles - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -18759,33 +19246,33 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. #### Example @@ -18794,6 +19281,9 @@ List User Profiles require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->userProfiles->list( @@ -18817,6 +19307,7 @@ var_dump($page); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -18828,15 +19319,14 @@ var_dump($page); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -18859,7 +19349,7 @@ Get User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -18887,33 +19377,33 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. #### Example @@ -18922,6 +19412,9 @@ Get User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->retrieve( @@ -18940,6 +19433,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -18951,15 +19445,14 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -18983,15 +19476,15 @@ Update User Profile - `externalID?:optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `externalUserOnboardedAt?:optional \Datetime` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -19003,7 +19496,7 @@ Update User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -19031,33 +19524,33 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. #### Example @@ -19066,14 +19559,17 @@ Update User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->update( 'uprof_011CZkZCu8hGbp5mYRQgUmz9', accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ - 'accountStatus' => 'active', + 'accountStatus' => 'suspended', 'country' => 'country', 'emailHash' => 'x', 'entityType' => 'individual', @@ -19098,6 +19594,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -19109,15 +19606,80 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +`$client->beta->userProfiles->delete(string userProfileID, ?list betas, ?string workspaceID): BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `betas?:optional list` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `workspaceID?:optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaDeletedUserProfile` + + - `"user_profile_deleted" type` + + Object type. Always `user_profile_deleted`. + + - `string id` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```php +beta->userProfiles->delete( + 'uprof_011CZkZCu8hGbp5mYRQgUmz9', + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], + workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', +); + +var_dump($betaDeletedUserProfile); +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -19137,7 +19699,7 @@ Create Enrollment URL - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -19168,6 +19730,9 @@ Create Enrollment URL require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfileEnrollmentURL = $client @@ -19192,6 +19757,84 @@ var_dump($betaUserProfileEnrollmentURL); } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +`$client->beta->userProfiles->actionURLs->create(string userProfileID, UserProfileEnrollEndUserAction action, ?list betas, ?string workspaceID): UserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `action: UserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes. + +- `betas?:optional list` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `workspaceID?:optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class UserProfileActionURL` + + - `"user_profile_action_url" type` + + Object type. Always `user_profile_action_url`. + + - `\Datetime expiresAt` + + When the URL stops working, in RFC 3339 format. + + - `string url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```php +beta->userProfiles->actionURLs->create( + 'uprof_011CZkZCu8hGbp5mYRQgUmz9', + action: ['type' => 'enroll_end_user'], + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], + workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', +); + +var_dump($betaUserProfileActionURL); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -19321,6 +19964,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDream = $client->beta->dreams->create( @@ -19512,6 +20158,10 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Dreams\BetaDreamStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->dreams->list( @@ -19686,6 +20336,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDream = $client->beta->dreams->retrieve( @@ -19850,6 +20503,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDream = $client->beta->dreams->cancel( @@ -20014,6 +20670,9 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDream = $client->beta->dreams->archive( @@ -20130,6 +20789,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->create( @@ -20213,6 +20875,9 @@ Fetches a tunnel by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->retrieve( @@ -20304,6 +20969,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->list( @@ -20394,6 +21062,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->archive( @@ -20465,6 +21136,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->revealToken( @@ -20537,6 +21211,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->rotateToken( @@ -20628,6 +21305,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->create( @@ -20721,6 +21401,9 @@ Fetches a tunnel certificate by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->retrieve( @@ -20822,6 +21505,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->certificates->list( @@ -20922,6 +21608,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->archive( @@ -20983,6 +21672,8 @@ Retrieve information about the organization associated with the authenticated AP require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaOrganization = $client->beta->organization->retrieve(); @@ -21101,6 +21792,8 @@ List API Keys require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->apiKeys->list( @@ -21224,6 +21917,8 @@ Retrieve information about a single API key in your organization, looked up by i require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaAPIKey = $client->beta->organization->apiKeys->retrieve('api_key_id'); @@ -21341,6 +22036,8 @@ Update API Key require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaAPIKey = $client->beta->organization->apiKeys->update( @@ -21438,6 +22135,8 @@ Create an external key config owned by the caller's organization. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaExternalKey = $client->beta->organization->externalKeys->create( @@ -21536,6 +22235,8 @@ Results are ordered by creation time (newest first). Use the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->externalKeys->list(limit: 1, page: 'page'); @@ -21621,6 +22322,8 @@ Retrieve a single external key config in the caller's organization by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaExternalKey = $client->beta->organization->externalKeys->retrieve( @@ -21719,6 +22422,8 @@ encrypted data requires the original key identity to decrypt. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaExternalKey = $client->beta->organization->externalKeys->update( @@ -21791,6 +22496,8 @@ The request is rejected if any workspace still references this config. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $externalKey = $client->beta->organization->externalKeys->delete( @@ -21849,6 +22556,8 @@ message if it failed or timed out. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->organization->externalKeys->validate( @@ -21985,6 +22694,9 @@ matched as the JWT's `iss` claim and is not fetched. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationIssuer = $client @@ -22141,6 +22853,9 @@ Archived issuers are excluded unless `include_archived=true`. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->federation->issuers->list( @@ -22277,6 +22992,9 @@ Retrieve a federation issuer by its ID (`fdis_...`). require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationIssuer = $client @@ -22441,6 +23159,9 @@ session. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationIssuer = $client @@ -22590,6 +23311,9 @@ issuer cannot be changed), or recreate them against another issuer. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationIssuer = $client @@ -22795,6 +23519,9 @@ manage rules whose `oauth_scope` is `workspace:developer` or require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationRule = $client->beta->organization->federation->rules->create( @@ -22993,6 +23720,9 @@ unless `include_archived=true`. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->federation->rules->list( @@ -23162,6 +23892,9 @@ Retrieve a federation rule by its ID (`fdrl_...`). require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationRule = $client->beta->organization->federation->rules->retrieve( @@ -23374,6 +24107,9 @@ Console session. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationRule = $client->beta->organization->federation->rules->update( @@ -23561,6 +24297,9 @@ other scopes require a Console session. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationRule = $client->beta->organization->federation->rules->archive( @@ -23680,6 +24419,9 @@ other scopes require a Console session. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFederationRuleWorkspace = $client @@ -23779,6 +24521,9 @@ rules with `applies_to_all_workspaces` or a legacy single require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->federation->rules->workspaces->list( @@ -23859,6 +24604,9 @@ Console session. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $workspace = $client->beta->organization->federation->rules->workspaces->remove( @@ -23957,6 +24705,8 @@ On plans that draw members from a finite pool of purchased seats, the invite aut require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaOrganizationInvite = $client->beta->organization->invites->create( @@ -24073,6 +24823,8 @@ List the organization's invites. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->invites->list( @@ -24175,6 +24927,8 @@ Retrieve an invite by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaOrganizationInvite = $client->beta->organization->invites->retrieve( @@ -24237,6 +24991,8 @@ Delete a pending invite. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $invite = $client->beta->organization->invites->delete('invite_id'); @@ -24344,6 +25100,9 @@ accounts. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccount = $client->beta->organization->serviceAccounts->create( @@ -24463,6 +25222,9 @@ archived service accounts. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->serviceAccounts->list( @@ -24571,6 +25333,9 @@ Retrieve a service account by its ID (`svac_...`). require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccount = $client->beta->organization->serviceAccounts->retrieve( @@ -24684,6 +25449,9 @@ interactive credential (a user OAuth token or a Console session). require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccount = $client->beta->organization->serviceAccounts->update( @@ -24792,6 +25560,9 @@ those rules first or change their target to another service account. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccount = $client->beta->organization->serviceAccounts->archive( @@ -24889,6 +25660,10 @@ rejected. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\Workspaces\NoBillingWorkspaceRole; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccountWorkspaceMember = $client @@ -24996,6 +25771,9 @@ page to recover. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->serviceAccounts->workspaces->list( @@ -25079,6 +25857,9 @@ to the implicit `workspace_user` membership. Archived workspaces return require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $workspace = $client->beta->organization->serviceAccounts->workspaces->remove( @@ -25175,6 +25956,8 @@ List the organization's members. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->users->list( @@ -25259,6 +26042,8 @@ Retrieve a member of the organization by user ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaOrganizationUser = $client->beta->organization->users->retrieve('user_id'); @@ -25336,6 +26121,8 @@ Update a member's organization role. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaOrganizationUser = $client->beta->organization->users->update( @@ -25393,6 +26180,8 @@ Remove a member from the organization. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $user = $client->beta->organization->users->remove('user_id'); @@ -25522,6 +26311,8 @@ List Workspaces require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->workspaces->list( @@ -25683,6 +26474,9 @@ Create Workspace require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspace = $client->beta->organization->workspaces->create( @@ -25812,6 +26606,8 @@ Get Workspace require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspace = $client->beta->organization->workspaces->retrieve( @@ -25960,6 +26756,8 @@ Update Workspace require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspace = $client->beta->organization->workspaces->update( @@ -26085,6 +26883,8 @@ Archive Workspace require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspace = $client->beta->organization->workspaces->archive( @@ -26205,6 +27005,8 @@ the remaining entries. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->workspaces->rateLimits->list( @@ -26252,6 +27054,127 @@ var_dump($page); } ``` +### Set Workspace Rate Limits + +`$client->beta->organization->workspaces->rateLimits->update(string rateLimitID, string workspaceID, list limits): BetaWorkspaceRateLimit` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `workspaceID: string` (path parameter) + + The ID of the workspace. + +- `rateLimitID: string` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `limits: list` + + Limits to set or clear. Unspecified limit types are unchanged. + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `"workspace_rate_limit" type` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `Group group` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `list limits` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `?list models` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `string rateLimitID` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `string workspaceID` + + ID of the Workspace this entry applies to. + + - `GroupType groupType` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + +#### Example + +```php +beta + ->organization + ->workspaces + ->rateLimits + ->update( + 'rate_limit_id', + workspaceID: 'workspace_id', + limits: [['type' => BetaWorkspaceRateLimitType::FAST_ITPMCA, 'value' => 0]], +); + +var_dump($betaWorkspaceRateLimit); +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -26313,6 +27236,8 @@ List Workspace Members require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->workspaces->members->list( @@ -26391,6 +27316,9 @@ Create Workspace Member require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Workspaces\NoBillingWorkspaceRole; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspaceMember = $client->beta->organization->workspaces->members->add( @@ -26460,6 +27388,8 @@ Get Workspace Member require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspaceMember = $client @@ -26534,6 +27464,9 @@ Update Workspace Member require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Workspaces\WorkspaceRole; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaWorkspaceMember = $client->beta->organization->workspaces->members->update( @@ -26599,6 +27532,8 @@ Delete Workspace Member require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $member = $client->beta->organization->workspaces->members->remove( @@ -26690,6 +27625,9 @@ omitted from the results. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->workspaces->serviceAccounts->list( @@ -26790,6 +27728,10 @@ accounts cannot be added and are rejected. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\Workspaces\NoBillingWorkspaceRole; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccountWorkspaceMember = $client @@ -26884,6 +27826,9 @@ account returns 404. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccountWorkspaceMember = $client @@ -26981,6 +27926,10 @@ rejected. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\Workspaces\NoBillingWorkspaceRole; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaServiceAccountWorkspaceMember = $client @@ -27062,6 +28011,9 @@ membership. Archived workspaces return 400. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $serviceAccount = $client @@ -27136,7 +28088,7 @@ the remaining entries. - `string id` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `Group group` @@ -27163,6 +28115,8 @@ the remaining entries. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->rateLimits->list( @@ -27233,6 +28187,8 @@ organization reads the state inherited from the parent's configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaComplianceSettings = $client @@ -27299,6 +28255,8 @@ compliance settings. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaComplianceSettings = $client @@ -27503,6 +28461,8 @@ Enterprise plan. Requires an API key with the `read:analytics` scope. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->summaries->list( @@ -27713,6 +28673,8 @@ the `read:analytics` scope. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->users->list( @@ -28006,6 +28968,8 @@ plan. Requires an API key with the `read:analytics` scope. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->apps->chat->projects->list( @@ -28186,6 +29150,8 @@ organizations on a Claude Enterprise plan. Requires an API key with the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->connectors->list( @@ -28377,6 +29343,8 @@ range-rollup mode like `/skills`. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->plugins->list( @@ -28562,6 +29530,8 @@ on a Claude Enterprise plan. Requires an API key with the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->skills->list( @@ -28720,6 +29690,8 @@ can be broken out per product, per member, or per RBAC group via require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->artifacts->list( @@ -28758,7 +29730,7 @@ var_dump($page); ### Get Token Usage Over Time -`$client->beta->organization->analytics->usageReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): PageCursor` +`$client->beta->organization->analytics->usageReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): ReportPageCursor` **GET** `/v1/organizations/analytics/usage_report` @@ -28860,6 +29832,12 @@ key with the `read:analytics` scope. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Analytics\AnalyticsClaudeTagCategory; +use Anthropic\Beta\Organization\Analytics\AnalyticsContextWindow; +use Anthropic\Beta\Organization\Analytics\AnalyticsInferenceGeoFilter; +use Anthropic\Beta\Organization\Analytics\AnalyticsProductFilter; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->usageReport->list( @@ -28929,7 +29907,7 @@ var_dump($page); ### Get Per-User Token Usage -`$client->beta->organization->analytics->userUsageReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?bool excludeDeletedUsers, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?Order order, ?OrderBy orderBy, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): PageCursor` +`$client->beta->organization->analytics->userUsageReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?bool excludeDeletedUsers, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?Order order, ?OrderBy orderBy, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): ReportPageCursor` **GET** `/v1/organizations/analytics/user_usage_report` @@ -29116,6 +30094,12 @@ organizations on a Claude Enterprise plan. Requires an API key with the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Analytics\AnalyticsClaudeTagCategory; +use Anthropic\Beta\Organization\Analytics\AnalyticsContextWindow; +use Anthropic\Beta\Organization\Analytics\AnalyticsInferenceGeoFilter; +use Anthropic\Beta\Organization\Analytics\AnalyticsProductFilter; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->userUsageReport->list( @@ -29193,7 +30177,7 @@ var_dump($page); ### Get Cost Over Time -`$client->beta->organization->analytics->costReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): PageCursor` +`$client->beta->organization->analytics->costReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): ReportPageCursor` **GET** `/v1/organizations/analytics/cost_report` @@ -29295,6 +30279,12 @@ Requires an API key with the `read:analytics` scope. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Analytics\AnalyticsClaudeTagCategory; +use Anthropic\Beta\Organization\Analytics\AnalyticsContextWindow; +use Anthropic\Beta\Organization\Analytics\AnalyticsInferenceGeoFilter; +use Anthropic\Beta\Organization\Analytics\AnalyticsProductFilter; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->costReport->list( @@ -29359,7 +30349,7 @@ var_dump($page); ### Get Per-User Cost -`$client->beta->organization->analytics->userCostReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?bool excludeDeletedUsers, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?Order order, ?OrderBy orderBy, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): PageCursor` +`$client->beta->organization->analytics->userCostReport->list(\Datetime startingAt, ?BucketWidth bucketWidth, ?list claudeTagCategories, ?list claudeTagUserIDs, ?list contextWindows, ?\Datetime endingAt, ?bool excludeDeletedUsers, ?list groupBy, ?list inferenceGeos, ?int limit, ?list models, ?Order order, ?OrderBy orderBy, ?string page, ?list products, ?list rbacGroupIDs, ?list slackChannelIDs, ?list speeds, ?list userIDs): ReportPageCursor` **GET** `/v1/organizations/analytics/user_cost_report` @@ -29542,6 +30532,12 @@ organizations on a Claude Enterprise plan. Requires an API key with the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\Analytics\AnalyticsClaudeTagCategory; +use Anthropic\Beta\Organization\Analytics\AnalyticsContextWindow; +use Anthropic\Beta\Organization\Analytics\AnalyticsInferenceGeoFilter; +use Anthropic\Beta\Organization\Analytics\AnalyticsProductFilter; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->analytics->userCostReport->list( @@ -29690,6 +30686,10 @@ Anthropic account team. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\SpendLimits\SpendLimitPeriod; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSpendLimit = $client->beta->organization->spendLimits->set( @@ -29782,6 +30782,8 @@ Retrieve a spend limit by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSpendLimit = $client->beta->organization->spendLimits->retrieve( @@ -29846,6 +30848,8 @@ workspace limits through the API is in an early access preview. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $spendLimit = $client->beta->organization->spendLimits->delete( @@ -29944,6 +30948,9 @@ organizations only, not for Claude Console organizations. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->spendLimits->list( @@ -30051,6 +31058,8 @@ organizations. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->spendLimits->effective->list( @@ -30154,6 +31163,9 @@ Requests whose requester is no longer a member are excluded. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\SpendLimits\IncreaseRequests\BetaSpendLimitIncreaseRequestStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->spendLimits->increaseRequests->list( @@ -30268,6 +31280,8 @@ requester at the request's period. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSpendLimitIncreaseRequest = $client @@ -30391,6 +31405,9 @@ the member was blocked on. Anthropic emails the requester unless require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\Organization\SpendLimits\SpendLimitPeriod; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->organization->spendLimits->increaseRequests->approve( @@ -30516,6 +31533,8 @@ Idempotent on `denied`; denying an already-`approved` request returns require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSpendLimitIncreaseRequest = $client @@ -30636,6 +31655,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaRBACGroup = $client->beta->organization->rbacGroups->create( @@ -30729,6 +31750,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->rbacGroups->list( @@ -30820,6 +31843,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaRBACGroup = $client->beta->organization->rbacGroups->retrieve( @@ -30909,6 +31934,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaRBACGroup = $client->beta->organization->rbacGroups->update( @@ -30974,6 +32001,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $rbacGroup = $client->beta->organization->rbacGroups->delete('rbac_group_id'); @@ -31053,6 +32082,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->rbacGroups->members->list( @@ -31134,6 +32165,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaRBACGroupMember = $client->beta->organization->rbacGroups->members->add( @@ -31199,6 +32232,8 @@ The RBAC Groups API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $member = $client->beta->organization->rbacGroups->members->remove( @@ -31284,6 +32319,8 @@ The RBAC Roles API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->rbacRoles->list( @@ -31367,6 +32404,8 @@ The RBAC Roles API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaRBACRole = $client->beta->organization->rbacRoles->retrieve( @@ -31462,6 +32501,8 @@ The RBAC Roles API is available to Claude Enterprise organizations only. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->rbacRoles->permissions->list( @@ -31639,6 +32680,10 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPlugin = $client->beta->organization->plugins->create( @@ -31812,6 +32857,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPlugin = $client->beta->organization->plugins->retrieve( @@ -32002,6 +33050,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPlugin = $client->beta->organization->plugins->update( @@ -32214,6 +33265,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->plugins->list( @@ -32332,6 +33386,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedPlugin = $client->beta->organization->plugins->delete( @@ -32460,6 +33517,10 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginVersion = $client->beta->organization->plugins->versions->create( @@ -32607,6 +33668,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->plugins->versions->list( @@ -32747,6 +33811,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginVersion = $client->beta->organization->plugins->versions->retrieve( @@ -32849,6 +33916,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->organization->plugins->versions->download( @@ -32945,6 +34015,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->plugins->installationSettings->list( @@ -33056,6 +34129,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginInstallationSetting = $client @@ -33153,6 +34229,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedPluginInstallationSetting = $client @@ -33259,6 +34338,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->plugins->shares->list( @@ -33392,6 +34474,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->pluginMarketplaces->list( @@ -33507,6 +34592,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginMarketplace = $client @@ -33623,6 +34711,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginMarketplace = $client @@ -33745,6 +34836,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginMarketplaceValidationReport = $client @@ -33876,6 +34970,10 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaPluginMarketplaceValidationReport = $client @@ -34029,6 +35127,10 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\TelemetryDestinations\TelemetryDestinationContentMode; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTelemetryDestination = $client @@ -34172,6 +35274,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->telemetryDestinations->list( @@ -34299,6 +35404,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTelemetryDestination = $client @@ -34462,6 +35570,10 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Organization\TelemetryDestinations\TelemetryDestinationContentMode; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTelemetryDestination = $client @@ -34559,6 +35671,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedTelemetryDestination = $client @@ -34616,6 +35731,9 @@ Send one test span, named `anthropic.test`, to the destination with its register require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTelemetryDestinationTestResponse = $client @@ -34695,6 +35813,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->organization->telemetryDestinations->workspaces->list( @@ -34776,6 +35897,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTelemetryDestinationWorkspace = $client @@ -34852,6 +35976,9 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedTelemetryDestinationWorkspace = $client @@ -34877,3 +36004,610 @@ var_dump($betaDeletedTelemetryDestinationWorkspace); "workspace_id": "workspace_id" } ``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`$client->beta->organization->webhooks->create(list enabledEvents, string url, ?string description, ?string name, ?list betas): NewOrganizationWebhookEndpoint` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `enabledEvents: list` + + The event types to deliver to the endpoint. Must list at least one. + +- `url: string` + + The HTTPS URL that deliveries are sent to. + +- `description?:optional string` + + Notes about the endpoint. + +- `name?:optional string` + + A short label for the endpoint. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class NewOrganizationWebhookEndpoint` + + - `string id` + + ID of the webhook endpoint. + + - `\Datetime createdAt` + + When the endpoint was created, in RFC 3339 format. + + - `string description` + + Notes about the endpoint. An empty string when none were given. + + - `string disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `list enabledEvents` + + The event types delivered to the endpoint. + + - `string name` + + A short label for the endpoint. An empty string when none was given. + + - `string signingSecret` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `OrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `\Datetime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + - `string url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```php +beta + ->organization + ->webhooks + ->create( + enabledEvents: ['user_profile.enforcement_action_opened'], + url: 'x', + description: 'description', + name: 'name', + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], +); + +var_dump($betaNewOrganizationWebhookEndpoint); +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`$client->beta->organization->webhooks->list(?string afterID, ?string beforeID, ?int limit, ?Order order, ?list betas): Page` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `afterID?:optional string` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `beforeID?:optional string` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit?:optional int` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0 + +- `order?:optional Order` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class OrganizationWebhookEndpoint` + + - `string id` + + ID of the webhook endpoint. + + - `\Datetime createdAt` + + When the endpoint was created, in RFC 3339 format. + + - `string description` + + Notes about the endpoint. An empty string when none were given. + + - `string disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `list enabledEvents` + + The event types delivered to the endpoint. + + - `string name` + + A short label for the endpoint. An empty string when none was given. + + - `OrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `\Datetime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + - `string url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```php +beta->organization->webhooks->list( + afterID: 'after_id', + beforeID: 'before_id', + limit: 0, + order: 'asc', + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], +); + +var_dump($page); +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" +} +``` + +### Get Organization Webhook Endpoint + +`$client->beta->organization->webhooks->retrieve(string webhookEndpointID, ?list betas): OrganizationWebhookEndpoint` + +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `webhookEndpointID: string` (path parameter) + + ID of the webhook endpoint. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class OrganizationWebhookEndpoint` + + - `string id` + + ID of the webhook endpoint. + + - `\Datetime createdAt` + + When the endpoint was created, in RFC 3339 format. + + - `string description` + + Notes about the endpoint. An empty string when none were given. + + - `string disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `list enabledEvents` + + The event types delivered to the endpoint. + + - `string name` + + A short label for the endpoint. An empty string when none was given. + + - `OrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `\Datetime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + - `string url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```php +beta + ->organization + ->webhooks + ->retrieve( + 'webhook_endpoint_id', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24] +); + +var_dump($betaOrganizationWebhookEndpoint); +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Update Organization Webhook Endpoint + +`$client->beta->organization->webhooks->update(string webhookEndpointID, ?string description, ?list enabledEvents, ?string name, ?State state, ?string url, ?list betas): OrganizationWebhookEndpoint` + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Update an organization webhook endpoint. Only the fields you send are changed. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `webhookEndpointID: string` (path parameter) + + ID of the webhook endpoint. + +- `description?:optional string` + + Notes about the endpoint. + +- `enabledEvents?:optional list` + + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. + +- `name?:optional string` + + A short label for the endpoint. + +- `state?:optional State` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + +- `url?:optional string` + + The HTTPS URL that deliveries are sent to. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class OrganizationWebhookEndpoint` + + - `string id` + + ID of the webhook endpoint. + + - `\Datetime createdAt` + + When the endpoint was created, in RFC 3339 format. + + - `string description` + + Notes about the endpoint. An empty string when none were given. + + - `string disabledReason` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `list enabledEvents` + + The event types delivered to the endpoint. + + - `string name` + + A short label for the endpoint. An empty string when none was given. + + - `OrganizationWebhookEndpointState state` + + Whether deliveries are sent to the endpoint. + + - `\Datetime updatedAt` + + When the endpoint was last changed, in RFC 3339 format. + + - `string url` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```php +beta + ->organization + ->webhooks + ->update( + 'webhook_endpoint_id', + description: 'description', + enabledEvents: ['user_profile.enforcement_action_opened'], + name: 'name', + state: 'disabled', + url: 'x', + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], +); + +var_dump($betaOrganizationWebhookEndpoint); +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### Delete Organization Webhook Endpoint + +`$client->beta->organization->webhooks->delete(string webhookEndpointID, ?list betas): DeletedOrganizationWebhookEndpoint` + +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` + +Delete an organization webhook endpoint. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `webhookEndpointID: string` (path parameter) + + ID of the webhook endpoint. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class DeletedOrganizationWebhookEndpoint` + + - `"webhook_endpoint_deleted" type` + + Always `webhook_endpoint_deleted`. + + - `string id` + + ID of the deleted webhook endpoint. + +#### Example + +```php +beta + ->organization + ->webhooks + ->delete( + 'webhook_endpoint_id', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24] +); + +var_dump($betaDeletedOrganizationWebhookEndpoint); +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "webhook_endpoint_deleted" +} +``` + +### Regenerate Organization Webhook Endpoint Signing Secret + +`$client->beta->organization->webhooks->regenerateSigningSecret(string webhookEndpointID, ?list betas): OrganizationWebhookEndpointSigningSecret` + +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` + +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `webhookEndpointID: string` (path parameter) + + ID of the webhook endpoint. + +- `betas?:optional list` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + +#### Returns + +- `class OrganizationWebhookEndpointSigningSecret` + + - `string signingSecret` + + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. + +#### Example + +```php +beta + ->organization + ->webhooks + ->regenerateSigningSecret( + 'webhook_endpoint_id', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24] +); + +var_dump($betaOrganizationWebhookEndpointSigningSecret); +``` + +##### Response (200) + +```json +{ + "signing_secret": "signing_secret" +} +``` diff --git a/content/en/api/php/beta/agents.md b/content/en/api/php/beta/agents.md index d55680c047..9a366b2770 100644 --- a/content/en/api/php/beta/agents.md +++ b/content/en/api/php/beta/agents.md @@ -122,6 +122,10 @@ Create Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->create( @@ -365,6 +369,9 @@ List Agents require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->list( @@ -572,6 +579,9 @@ Get Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->retrieve( @@ -811,6 +821,10 @@ Update Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->update( @@ -1045,6 +1059,9 @@ Archive Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->archive( @@ -3087,6 +3104,9 @@ List Agent Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->versions->list( diff --git a/content/en/api/php/beta/agents/archive.md b/content/en/api/php/beta/agents/archive.md index 1e27ff616a..3d187faecf 100644 --- a/content/en/api/php/beta/agents/archive.md +++ b/content/en/api/php/beta/agents/archive.md @@ -84,6 +84,9 @@ Archive Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->archive( diff --git a/content/en/api/php/beta/agents/create.md b/content/en/api/php/beta/agents/create.md index 0d306c83fc..0f1a438706 100644 --- a/content/en/api/php/beta/agents/create.md +++ b/content/en/api/php/beta/agents/create.md @@ -120,6 +120,10 @@ Create Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->create( diff --git a/content/en/api/php/beta/agents/list.md b/content/en/api/php/beta/agents/list.md index faeb6c1acd..db5d460003 100644 --- a/content/en/api/php/beta/agents/list.md +++ b/content/en/api/php/beta/agents/list.md @@ -100,6 +100,9 @@ List Agents require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->list( diff --git a/content/en/api/php/beta/agents/retrieve.md b/content/en/api/php/beta/agents/retrieve.md index 53d0d7de37..af18db218d 100644 --- a/content/en/api/php/beta/agents/retrieve.md +++ b/content/en/api/php/beta/agents/retrieve.md @@ -88,6 +88,9 @@ Get Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->retrieve( diff --git a/content/en/api/php/beta/agents/update.md b/content/en/api/php/beta/agents/update.md index e8ba785341..58817708b4 100644 --- a/content/en/api/php/beta/agents/update.md +++ b/content/en/api/php/beta/agents/update.md @@ -128,6 +128,10 @@ Update Agent require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Agents\BetaManagedAgentsModel; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsAgent = $client->beta->agents->update( diff --git a/content/en/api/php/beta/agents/versions.md b/content/en/api/php/beta/agents/versions.md index 34c947b51c..4652a21136 100644 --- a/content/en/api/php/beta/agents/versions.md +++ b/content/en/api/php/beta/agents/versions.md @@ -94,6 +94,9 @@ List Agent Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->versions->list( diff --git a/content/en/api/php/beta/agents/versions/list.md b/content/en/api/php/beta/agents/versions/list.md index aa37e264f9..9630f386d2 100644 --- a/content/en/api/php/beta/agents/versions/list.md +++ b/content/en/api/php/beta/agents/versions/list.md @@ -92,6 +92,9 @@ List Agent Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->agents->versions->list( diff --git a/content/en/api/php/beta/deployment_runs.md b/content/en/api/php/beta/deployment_runs.md index a6e06953d6..e4e97a3384 100644 --- a/content/en/api/php/beta/deployment_runs.md +++ b/content/en/api/php/beta/deployment_runs.md @@ -102,6 +102,10 @@ List Deployment Runs require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\DeploymentRuns\BetaManagedAgentsTriggerType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deploymentRuns->list( @@ -216,6 +220,9 @@ Get Deployment Run require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deploymentRuns->retrieve( diff --git a/content/en/api/php/beta/deployment_runs/list.md b/content/en/api/php/beta/deployment_runs/list.md index 0cf5324f4e..f5ad6ec46a 100644 --- a/content/en/api/php/beta/deployment_runs/list.md +++ b/content/en/api/php/beta/deployment_runs/list.md @@ -100,6 +100,10 @@ List Deployment Runs require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\DeploymentRuns\BetaManagedAgentsTriggerType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deploymentRuns->list( diff --git a/content/en/api/php/beta/deployment_runs/retrieve.md b/content/en/api/php/beta/deployment_runs/retrieve.md index 75d3a72c23..70c190feb3 100644 --- a/content/en/api/php/beta/deployment_runs/retrieve.md +++ b/content/en/api/php/beta/deployment_runs/retrieve.md @@ -68,6 +68,9 @@ Get Deployment Run require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deploymentRuns->retrieve( diff --git a/content/en/api/php/beta/deployments.md b/content/en/api/php/beta/deployments.md index 15540032aa..34a0d6ded5 100644 --- a/content/en/api/php/beta/deployments.md +++ b/content/en/api/php/beta/deployments.md @@ -142,6 +142,10 @@ Create Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->create( @@ -372,6 +376,10 @@ List Deployments require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Deployments\BetaManagedAgentsDeploymentStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deployments->list( @@ -562,6 +570,9 @@ Get Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->retrieve( @@ -781,6 +792,10 @@ Update Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->update( @@ -988,6 +1003,9 @@ Archive Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->archive( @@ -1131,6 +1149,9 @@ Run Deployment Now require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deployments->run( @@ -1268,6 +1289,9 @@ Pause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->pause( @@ -1447,6 +1471,9 @@ Unpause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->unpause( diff --git a/content/en/api/php/beta/deployments/archive.md b/content/en/api/php/beta/deployments/archive.md index f9b40d9f8f..6190dca4a6 100644 --- a/content/en/api/php/beta/deployments/archive.md +++ b/content/en/api/php/beta/deployments/archive.md @@ -104,6 +104,9 @@ Archive Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->archive( diff --git a/content/en/api/php/beta/deployments/create.md b/content/en/api/php/beta/deployments/create.md index 4ac523e59f..7209460fbe 100644 --- a/content/en/api/php/beta/deployments/create.md +++ b/content/en/api/php/beta/deployments/create.md @@ -140,6 +140,10 @@ Create Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->create( diff --git a/content/en/api/php/beta/deployments/list.md b/content/en/api/php/beta/deployments/list.md index 251fee146a..18ccdee888 100644 --- a/content/en/api/php/beta/deployments/list.md +++ b/content/en/api/php/beta/deployments/list.md @@ -128,6 +128,10 @@ List Deployments require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Deployments\BetaManagedAgentsDeploymentStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->deployments->list( diff --git a/content/en/api/php/beta/deployments/pause.md b/content/en/api/php/beta/deployments/pause.md index 6e3ebfa752..db0808f604 100644 --- a/content/en/api/php/beta/deployments/pause.md +++ b/content/en/api/php/beta/deployments/pause.md @@ -104,6 +104,9 @@ Pause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->pause( diff --git a/content/en/api/php/beta/deployments/retrieve.md b/content/en/api/php/beta/deployments/retrieve.md index 2da8effbc7..1e6560f879 100644 --- a/content/en/api/php/beta/deployments/retrieve.md +++ b/content/en/api/php/beta/deployments/retrieve.md @@ -104,6 +104,9 @@ Get Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->retrieve( diff --git a/content/en/api/php/beta/deployments/run.md b/content/en/api/php/beta/deployments/run.md index 1302155a6d..5697656194 100644 --- a/content/en/api/php/beta/deployments/run.md +++ b/content/en/api/php/beta/deployments/run.md @@ -68,6 +68,9 @@ Run Deployment Now require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeploymentRun = $client->beta->deployments->run( diff --git a/content/en/api/php/beta/deployments/unpause.md b/content/en/api/php/beta/deployments/unpause.md index 3e42fcb53d..38a780c943 100644 --- a/content/en/api/php/beta/deployments/unpause.md +++ b/content/en/api/php/beta/deployments/unpause.md @@ -104,6 +104,9 @@ Unpause Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->unpause( diff --git a/content/en/api/php/beta/deployments/update.md b/content/en/api/php/beta/deployments/update.md index eb50dc565f..3149928b55 100644 --- a/content/en/api/php/beta/deployments/update.md +++ b/content/en/api/php/beta/deployments/update.md @@ -144,6 +144,10 @@ Update Deployment require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeployment = $client->beta->deployments->update( diff --git a/content/en/api/php/beta/environments.md b/content/en/api/php/beta/environments.md index 213c9a8eb1..c93101c965 100644 --- a/content/en/api/php/beta/environments.md +++ b/content/en/api/php/beta/environments.md @@ -96,6 +96,9 @@ Create a new environment with the specified configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->create( @@ -264,6 +267,9 @@ List environments with pagination support. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->list( @@ -404,6 +410,9 @@ Retrieve a specific environment by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->retrieve( @@ -557,6 +566,9 @@ Update an existing environment's configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->update( @@ -680,6 +692,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironmentDeleteResponse = $client->beta->environments->delete( @@ -773,6 +788,9 @@ Archive an environment by ID. Archived environments cannot be used to create new require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->archive( @@ -1142,6 +1160,9 @@ Retrieve detailed information about a specific work item. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->retrieve( @@ -1272,6 +1293,9 @@ Long poll for work items in the queue. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->poll( @@ -1393,6 +1417,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->ack( @@ -1488,6 +1515,9 @@ Record a heartbeat for a work item to maintain the lease. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkHeartbeatResponse = $client @@ -1612,6 +1642,9 @@ Stop a work item, initiating graceful or forced shutdown. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->stop( @@ -1741,6 +1774,9 @@ List work items in an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->work->list( @@ -1876,6 +1912,9 @@ Update work item metadata with merge semantics. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->update( @@ -1967,6 +2006,9 @@ Get statistics about the work queue for an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkQueueStats = $client->beta->environments->work->stats( diff --git a/content/en/api/php/beta/environments/archive.md b/content/en/api/php/beta/environments/archive.md index 76d22fbff6..28862b51c3 100644 --- a/content/en/api/php/beta/environments/archive.md +++ b/content/en/api/php/beta/environments/archive.md @@ -76,6 +76,9 @@ Archive an environment by ID. Archived environments cannot be used to create new require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->archive( diff --git a/content/en/api/php/beta/environments/create.md b/content/en/api/php/beta/environments/create.md index f8acbb303f..926b080ea9 100644 --- a/content/en/api/php/beta/environments/create.md +++ b/content/en/api/php/beta/environments/create.md @@ -94,6 +94,9 @@ Create a new environment with the specified configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->create( diff --git a/content/en/api/php/beta/environments/delete.md b/content/en/api/php/beta/environments/delete.md index 5332ad3da7..1bae17b9de 100644 --- a/content/en/api/php/beta/environments/delete.md +++ b/content/en/api/php/beta/environments/delete.md @@ -44,6 +44,9 @@ Delete an environment by ID. Returns a confirmation of the deletion. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironmentDeleteResponse = $client->beta->environments->delete( diff --git a/content/en/api/php/beta/environments/list.md b/content/en/api/php/beta/environments/list.md index 6c26708c76..8fe2193ad4 100644 --- a/content/en/api/php/beta/environments/list.md +++ b/content/en/api/php/beta/environments/list.md @@ -90,6 +90,9 @@ List environments with pagination support. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->list( diff --git a/content/en/api/php/beta/environments/retrieve.md b/content/en/api/php/beta/environments/retrieve.md index dd4584b304..1659252bb4 100644 --- a/content/en/api/php/beta/environments/retrieve.md +++ b/content/en/api/php/beta/environments/retrieve.md @@ -76,6 +76,9 @@ Retrieve a specific environment by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->retrieve( diff --git a/content/en/api/php/beta/environments/update.md b/content/en/api/php/beta/environments/update.md index 23f35ec80b..24179910c2 100644 --- a/content/en/api/php/beta/environments/update.md +++ b/content/en/api/php/beta/environments/update.md @@ -96,6 +96,9 @@ Update an existing environment's configuration. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaEnvironment = $client->beta->environments->update( diff --git a/content/en/api/php/beta/environments/work.md b/content/en/api/php/beta/environments/work.md index 2eb63cc857..cbdc193f15 100644 --- a/content/en/api/php/beta/environments/work.md +++ b/content/en/api/php/beta/environments/work.md @@ -94,6 +94,9 @@ Retrieve detailed information about a specific work item. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->retrieve( @@ -224,6 +227,9 @@ Long poll for work items in the queue. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->poll( @@ -345,6 +351,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->ack( @@ -440,6 +449,9 @@ Record a heartbeat for a work item to maintain the lease. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkHeartbeatResponse = $client @@ -564,6 +576,9 @@ Stop a work item, initiating graceful or forced shutdown. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->stop( @@ -693,6 +708,9 @@ List work items in an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->work->list( @@ -828,6 +846,9 @@ Update work item metadata with merge semantics. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->update( @@ -919,6 +940,9 @@ Get statistics about the work queue for an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkQueueStats = $client->beta->environments->work->stats( diff --git a/content/en/api/php/beta/environments/work/ack.md b/content/en/api/php/beta/environments/work/ack.md index 5d3e497943..47b7110423 100644 --- a/content/en/api/php/beta/environments/work/ack.md +++ b/content/en/api/php/beta/environments/work/ack.md @@ -86,6 +86,9 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->ack( diff --git a/content/en/api/php/beta/environments/work/heartbeat.md b/content/en/api/php/beta/environments/work/heartbeat.md index b98920e69c..c09fe9d535 100644 --- a/content/en/api/php/beta/environments/work/heartbeat.md +++ b/content/en/api/php/beta/environments/work/heartbeat.md @@ -62,6 +62,9 @@ Record a heartbeat for a work item to maintain the lease. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkHeartbeatResponse = $client diff --git a/content/en/api/php/beta/environments/work/list.md b/content/en/api/php/beta/environments/work/list.md index d01b650b06..5b59d82794 100644 --- a/content/en/api/php/beta/environments/work/list.md +++ b/content/en/api/php/beta/environments/work/list.md @@ -94,6 +94,9 @@ List work items in an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->environments->work->list( diff --git a/content/en/api/php/beta/environments/work/poll.md b/content/en/api/php/beta/environments/work/poll.md index 43e9345187..0e443991a3 100644 --- a/content/en/api/php/beta/environments/work/poll.md +++ b/content/en/api/php/beta/environments/work/poll.md @@ -96,6 +96,9 @@ Long poll for work items in the queue. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->poll( diff --git a/content/en/api/php/beta/environments/work/retrieve.md b/content/en/api/php/beta/environments/work/retrieve.md index 9d84b2cd66..5279daf20b 100644 --- a/content/en/api/php/beta/environments/work/retrieve.md +++ b/content/en/api/php/beta/environments/work/retrieve.md @@ -92,6 +92,9 @@ Retrieve detailed information about a specific work item. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->retrieve( diff --git a/content/en/api/php/beta/environments/work/stats.md b/content/en/api/php/beta/environments/work/stats.md index dde9c7219d..4a05831030 100644 --- a/content/en/api/php/beta/environments/work/stats.md +++ b/content/en/api/php/beta/environments/work/stats.md @@ -56,6 +56,9 @@ Get statistics about the work queue for an environment. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWorkQueueStats = $client->beta->environments->work->stats( diff --git a/content/en/api/php/beta/environments/work/stop.md b/content/en/api/php/beta/environments/work/stop.md index 00158c5f86..fa2a710dc2 100644 --- a/content/en/api/php/beta/environments/work/stop.md +++ b/content/en/api/php/beta/environments/work/stop.md @@ -98,6 +98,9 @@ Stop a work item, initiating graceful or forced shutdown. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->stop( diff --git a/content/en/api/php/beta/environments/work/update.md b/content/en/api/php/beta/environments/work/update.md index 63ed9285bb..b6eb345e04 100644 --- a/content/en/api/php/beta/environments/work/update.md +++ b/content/en/api/php/beta/environments/work/update.md @@ -96,6 +96,9 @@ Update work item metadata with merge semantics. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSelfHostedWork = $client->beta->environments->work->update( diff --git a/content/en/api/php/beta/files.md b/content/en/api/php/beta/files.md index 0c4bdc4b13..3509ccca88 100644 --- a/content/en/api/php/beta/files.md +++ b/content/en/api/php/beta/files.md @@ -84,6 +84,10 @@ Upload File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->upload( @@ -206,6 +210,9 @@ List Files require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->files->list( @@ -279,6 +286,9 @@ Download File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->files->download( @@ -365,6 +375,9 @@ Get File Metadata require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->retrieveMetadata( @@ -440,6 +453,9 @@ Delete File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedFile = $client->beta->files->delete( diff --git a/content/en/api/php/beta/files/delete.md b/content/en/api/php/beta/files/delete.md index ae40974b37..fad6a71115 100644 --- a/content/en/api/php/beta/files/delete.md +++ b/content/en/api/php/beta/files/delete.md @@ -48,6 +48,9 @@ Delete File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedFile = $client->beta->files->delete( diff --git a/content/en/api/php/beta/files/download.md b/content/en/api/php/beta/files/download.md index 6e892ffa16..e3aa824170 100644 --- a/content/en/api/php/beta/files/download.md +++ b/content/en/api/php/beta/files/download.md @@ -38,6 +38,9 @@ Download File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->files->download( diff --git a/content/en/api/php/beta/files/list.md b/content/en/api/php/beta/files/list.md index a0f8bcbdec..324c7c86e0 100644 --- a/content/en/api/php/beta/files/list.md +++ b/content/en/api/php/beta/files/list.md @@ -94,6 +94,9 @@ List Files require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->files->list( diff --git a/content/en/api/php/beta/files/retrieve_metadata.md b/content/en/api/php/beta/files/retrieve_metadata.md index 71a3981f6f..1e6b33d17a 100644 --- a/content/en/api/php/beta/files/retrieve_metadata.md +++ b/content/en/api/php/beta/files/retrieve_metadata.md @@ -78,6 +78,9 @@ Get File Metadata require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->retrieveMetadata( diff --git a/content/en/api/php/beta/files/upload.md b/content/en/api/php/beta/files/upload.md index bb94054688..6bebd8fbbc 100644 --- a/content/en/api/php/beta/files/upload.md +++ b/content/en/api/php/beta/files/upload.md @@ -82,6 +82,10 @@ Upload File require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaFileMetadata = $client->beta->files->upload( diff --git a/content/en/api/php/beta/memory_stores.md b/content/en/api/php/beta/memory_stores.md index b32fa62f23..25c3b101f6 100644 --- a/content/en/api/php/beta/memory_stores.md +++ b/content/en/api/php/beta/memory_stores.md @@ -5,27 +5,33 @@ url: https://platform.claude.com/docs/en/api/php/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `$client->beta->memoryStores->create(string name, ?string description, ?array metadata, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#how-the-agent-accesses-memory) to learn more about how agents access memory stores. - `description?:optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. - `metadata?:optional array` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?:optional list` (header parameter) @@ -45,23 +51,29 @@ Create a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -69,7 +81,9 @@ Create a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ### Example @@ -78,6 +92,9 @@ Create a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->create( @@ -108,23 +125,23 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -## List memory stores +## List Memory Stores `$client->beta->memoryStores->list(?\Datetime createdAtGte, ?\Datetime createdAtLte, ?bool includeArchived, ?int limit, ?string page, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters - `createdAtGte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). - `createdAtLte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). - `includeArchived?:optional bool` (query parameter) @@ -136,7 +153,7 @@ List memory stores - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?:optional list` (header parameter) @@ -156,23 +173,29 @@ List memory stores - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -180,7 +203,9 @@ List memory stores - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ### Example @@ -189,6 +214,9 @@ List memory stores require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->list( @@ -224,19 +252,19 @@ var_dump($page); } ``` -## Retrieve a memory store +## Retrieve a Memory Store `$client->beta->memoryStores->retrieve(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas?:optional list` (header parameter) @@ -256,23 +284,29 @@ Retrieve a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -280,7 +314,9 @@ Retrieve a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ### Example @@ -289,6 +325,9 @@ Retrieve a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->retrieve( @@ -317,31 +356,37 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -## Update a memory store +## Update a Memory Store `$client->beta->memoryStores->update(string memoryStoreID, ?string description, ?array metadata, ?string name, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description?:optional string` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. - `metadata?:optional array` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?:optional string` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. - `betas?:optional list` (header parameter) @@ -361,23 +406,29 @@ Update a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -385,7 +436,9 @@ Update a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ### Example @@ -394,6 +447,9 @@ Update a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->update( @@ -425,19 +481,21 @@ var_dump($betaManagedAgentsMemoryStore); } ``` -## Delete a memory store +## Delete a Memory Store `$client->beta->memoryStores->delete(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas?:optional list` (header parameter) @@ -466,6 +524,9 @@ Delete a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemoryStore = $client->beta->memoryStores->delete( @@ -486,19 +547,21 @@ var_dump($betaManagedAgentsDeletedMemoryStore); } ``` -## Archive a memory store +## Archive a Memory Store `$client->beta->memoryStores->archive(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas?:optional list` (header parameter) @@ -518,23 +581,29 @@ Archive a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -542,7 +611,9 @@ Archive a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ### Example @@ -551,6 +622,9 @@ Archive a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->archive( @@ -599,23 +673,29 @@ var_dump($betaManagedAgentsMemoryStore); - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -623,17 +703,19 @@ var_dump($betaManagedAgentsMemoryStore); - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Memory Stores › Memories -### Create a memory +### Create a Memory `$client->beta->memoryStores->memories->create(string memoryStoreID, ?string content, string path, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -643,15 +725,21 @@ Create a memory - `content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -671,7 +759,9 @@ Create a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -679,7 +769,7 @@ Create a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -691,7 +781,11 @@ Create a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -699,11 +793,15 @@ Create a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -712,6 +810,10 @@ Create a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->create( @@ -743,13 +845,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### List memories +### List Memories `$client->beta->memoryStores->memories->list(string memoryStoreID, ?int depth, ?int limit, ?string page, ?string pathPrefix, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -759,23 +861,31 @@ List memories - `depth?:optional int` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. - `limit?:optional int` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `pathPrefix?:optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `betas?:optional list` (header parameter) @@ -797,7 +907,9 @@ List memories - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -805,7 +917,7 @@ List memories - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -817,7 +929,11 @@ List memories - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -825,11 +941,15 @@ List memories - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class ManagedAgentsMemoryPrefix` @@ -846,6 +966,10 @@ List memories require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memories->list( @@ -884,13 +1008,13 @@ var_dump($page); } ``` -### Retrieve a memory +### Retrieve a Memory `$client->beta->memoryStores->memories->retrieve(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -904,7 +1028,9 @@ Retrieve a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -924,7 +1050,9 @@ Retrieve a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -932,7 +1060,7 @@ Retrieve a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -944,7 +1072,11 @@ Retrieve a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -952,11 +1084,15 @@ Retrieve a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -965,6 +1101,10 @@ Retrieve a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->retrieve( @@ -995,13 +1135,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### Update a memory +### Update a Memory `$client->beta->memoryStores->memories->update(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?string content, ?string path, ?ManagedAgentsPrecondition precondition, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -1015,7 +1155,9 @@ Update a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `content?:optional string` @@ -1023,11 +1165,15 @@ Update a memory - `path?:optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. - `precondition?:optional ManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `betas?:optional list` (header parameter) @@ -1047,7 +1193,9 @@ Update a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -1055,7 +1203,7 @@ Update a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -1067,7 +1215,11 @@ Update a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -1075,11 +1227,15 @@ Update a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1088,6 +1244,10 @@ Update a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->update( @@ -1123,13 +1283,13 @@ var_dump($betaManagedAgentsMemory); } ``` -### Delete a memory +### Delete a Memory `$client->beta->memoryStores->memories->delete(string memoryID, string memoryStoreID, ?string expectedContentSha256, ?list betas, ?string workspaceID): ManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -1174,6 +1334,9 @@ Delete a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemory = $client->beta->memoryStores->memories->delete( @@ -1198,13 +1361,13 @@ var_dump($betaManagedAgentsDeletedMemory); ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `$client->beta->memoryStores->memoryVersions->list(string memoryStoreID, ?string apiKeyID, ?\Datetime createdAtGte, ?\Datetime createdAtLte, ?int limit, ?string memoryID, ?ManagedAgentsMemoryVersionOperation operation, ?string page, ?string serviceAccountID, ?string sessionID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -1226,13 +1389,15 @@ List memory versions - `limit?:optional int` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. - `memoryID?:optional string` (query parameter) Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?:optional ManagedAgentsMemoryVersionOperation` (query parameter) @@ -1252,7 +1417,9 @@ List memory versions - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -1280,7 +1447,9 @@ List memory versions - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -1304,7 +1473,11 @@ List memory versions - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -1312,7 +1485,11 @@ List memory versions - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -1325,6 +1502,11 @@ List memory versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; +use Anthropic\Beta\MemoryStores\MemoryVersions\ManagedAgentsMemoryVersionOperation; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memoryVersions->list( @@ -1377,13 +1559,13 @@ var_dump($page); } ``` -### Retrieve a memory version +### Retrieve a Memory Version `$client->beta->memoryStores->memoryVersions->retrieve(string memoryVersionID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -1397,7 +1579,9 @@ Retrieve a memory version - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -1425,7 +1609,9 @@ Retrieve a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -1449,7 +1635,11 @@ Retrieve a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -1457,7 +1647,11 @@ Retrieve a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -1470,6 +1664,10 @@ Retrieve a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client @@ -1513,13 +1711,13 @@ var_dump($betaManagedAgentsMemoryVersion); } ``` -### Redact a memory version +### Redact a Memory Version `$client->beta->memoryStores->memoryVersions->redact(string memoryVersionID, string memoryStoreID, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -1557,7 +1755,9 @@ Redact a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -1581,7 +1781,11 @@ Redact a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -1589,7 +1793,11 @@ Redact a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -1602,6 +1810,9 @@ Redact a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client diff --git a/content/en/api/php/beta/memory_stores/archive.md b/content/en/api/php/beta/memory_stores/archive.md index ca37907296..647b570fec 100644 --- a/content/en/api/php/beta/memory_stores/archive.md +++ b/content/en/api/php/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `$client->beta->memoryStores->archive(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas?:optional list` (header parameter) @@ -35,23 +37,29 @@ Archive a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -59,7 +67,9 @@ Archive a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Example @@ -68,6 +78,9 @@ Archive a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->archive( diff --git a/content/en/api/php/beta/memory_stores/create.md b/content/en/api/php/beta/memory_stores/create.md index adccad2f49..ae0c14c474 100644 --- a/content/en/api/php/beta/memory_stores/create.md +++ b/content/en/api/php/beta/memory_stores/create.md @@ -1,29 +1,35 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `$client->beta->memoryStores->create(string name, ?string description, ?array metadata, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#how-the-agent-accesses-memory) to learn more about how agents access memory stores. - `description?:optional string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. - `metadata?:optional array` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?:optional list` (header parameter) @@ -43,23 +49,29 @@ Create a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -67,7 +79,9 @@ Create a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Example @@ -76,6 +90,9 @@ Create a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->create( diff --git a/content/en/api/php/beta/memory_stores/delete.md b/content/en/api/php/beta/memory_stores/delete.md index e4a77faa22..e33e64aaa0 100644 --- a/content/en/api/php/beta/memory_stores/delete.md +++ b/content/en/api/php/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `$client->beta->memoryStores->delete(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas?:optional list` (header parameter) @@ -44,6 +46,9 @@ Delete a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemoryStore = $client->beta->memoryStores->delete( diff --git a/content/en/api/php/beta/memory_stores/list.md b/content/en/api/php/beta/memory_stores/list.md index 4acb4431eb..67cb9f4949 100644 --- a/content/en/api/php/beta/memory_stores/list.md +++ b/content/en/api/php/beta/memory_stores/list.md @@ -1,25 +1,25 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `$client->beta->memoryStores->list(?\Datetime createdAtGte, ?\Datetime createdAtLte, ?bool includeArchived, ?int limit, ?string page, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters - `createdAtGte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). - `createdAtLte?:optional \Datetime` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). - `includeArchived?:optional bool` (query parameter) @@ -31,7 +31,7 @@ List memory stores - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?:optional list` (header parameter) @@ -51,23 +51,29 @@ List memory stores - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -75,7 +81,9 @@ List memory stores - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Example @@ -84,6 +92,9 @@ List memory stores require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->list( diff --git a/content/en/api/php/beta/memory_stores/memories.md b/content/en/api/php/beta/memory_stores/memories.md index 51444a30bd..82dc50a537 100644 --- a/content/en/api/php/beta/memory_stores/memories.md +++ b/content/en/api/php/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `$client->beta->memoryStores->memories->create(string memoryStoreID, ?string content, string path, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -21,15 +21,21 @@ Create a memory - `content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -49,7 +55,9 @@ Create a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -57,7 +65,7 @@ Create a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -69,7 +77,11 @@ Create a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -77,11 +89,15 @@ Create a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -90,6 +106,10 @@ Create a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->create( @@ -121,13 +141,13 @@ var_dump($betaManagedAgentsMemory); } ``` -## List memories +## List Memories `$client->beta->memoryStores->memories->list(string memoryStoreID, ?int depth, ?int limit, ?string page, ?string pathPrefix, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -137,23 +157,31 @@ List memories - `depth?:optional int` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. - `limit?:optional int` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `pathPrefix?:optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `betas?:optional list` (header parameter) @@ -175,7 +203,9 @@ List memories - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -183,7 +213,7 @@ List memories - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -195,7 +225,11 @@ List memories - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -203,11 +237,15 @@ List memories - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class ManagedAgentsMemoryPrefix` @@ -224,6 +262,10 @@ List memories require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memories->list( @@ -262,13 +304,13 @@ var_dump($page); } ``` -## Retrieve a memory +## Retrieve a Memory `$client->beta->memoryStores->memories->retrieve(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -282,7 +324,9 @@ Retrieve a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -302,7 +346,9 @@ Retrieve a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -310,7 +356,7 @@ Retrieve a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -322,7 +368,11 @@ Retrieve a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -330,11 +380,15 @@ Retrieve a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -343,6 +397,10 @@ Retrieve a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->retrieve( @@ -373,13 +431,13 @@ var_dump($betaManagedAgentsMemory); } ``` -## Update a memory +## Update a Memory `$client->beta->memoryStores->memories->update(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?string content, ?string path, ?ManagedAgentsPrecondition precondition, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -393,7 +451,9 @@ Update a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `content?:optional string` @@ -401,11 +461,15 @@ Update a memory - `path?:optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. - `precondition?:optional ManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `betas?:optional list` (header parameter) @@ -425,7 +489,9 @@ Update a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -433,7 +499,7 @@ Update a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -445,7 +511,11 @@ Update a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -453,11 +523,15 @@ Update a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -466,6 +540,10 @@ Update a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->update( @@ -501,13 +579,13 @@ var_dump($betaManagedAgentsMemory); } ``` -## Delete a memory +## Delete a Memory `$client->beta->memoryStores->memories->delete(string memoryID, string memoryStoreID, ?string expectedContentSha256, ?list betas, ?string workspaceID): ManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -552,6 +630,9 @@ Delete a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemory = $client->beta->memoryStores->memories->delete( @@ -702,7 +783,9 @@ var_dump($betaManagedAgentsDeletedMemory); - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -710,7 +793,7 @@ var_dump($betaManagedAgentsDeletedMemory); - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -722,7 +805,11 @@ var_dump($betaManagedAgentsDeletedMemory); - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -730,11 +817,15 @@ var_dump($betaManagedAgentsDeletedMemory); - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item @@ -746,7 +837,9 @@ var_dump($betaManagedAgentsDeletedMemory); - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -754,7 +847,7 @@ var_dump($betaManagedAgentsDeletedMemory); - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -766,7 +859,11 @@ var_dump($betaManagedAgentsDeletedMemory); - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -774,11 +871,15 @@ var_dump($betaManagedAgentsDeletedMemory); - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class ManagedAgentsMemoryPrefix` diff --git a/content/en/api/php/beta/memory_stores/memories/create.md b/content/en/api/php/beta/memory_stores/memories/create.md index 9cc8cd43e0..b6c848c9e2 100644 --- a/content/en/api/php/beta/memory_stores/memories/create.md +++ b/content/en/api/php/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `$client->beta->memoryStores->memories->create(string memoryStoreID, ?string content, string path, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -19,15 +19,21 @@ Create a memory - `content: string` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -47,7 +53,9 @@ Create a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -55,7 +63,7 @@ Create a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -67,7 +75,11 @@ Create a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -75,11 +87,15 @@ Create a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example @@ -88,6 +104,10 @@ Create a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->create( diff --git a/content/en/api/php/beta/memory_stores/memories/delete.md b/content/en/api/php/beta/memory_stores/memories/delete.md index e2c3726ae5..bef6a98b76 100644 --- a/content/en/api/php/beta/memory_stores/memories/delete.md +++ b/content/en/api/php/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `$client->beta->memoryStores->memories->delete(string memoryID, string memoryStoreID, ?string expectedContentSha256, ?list betas, ?string workspaceID): ManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -54,6 +54,9 @@ Delete a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedMemory = $client->beta->memoryStores->memories->delete( diff --git a/content/en/api/php/beta/memory_stores/memories/list.md b/content/en/api/php/beta/memory_stores/memories/list.md index e6651d326d..63779adf9d 100644 --- a/content/en/api/php/beta/memory_stores/memories/list.md +++ b/content/en/api/php/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/list --- -# List memories +# List Memories `$client->beta->memoryStores->memories->list(string memoryStoreID, ?int depth, ?int limit, ?string page, ?string pathPrefix, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -19,23 +19,31 @@ List memories - `depth?:optional int` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. - `limit?:optional int` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. - `page?:optional string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `pathPrefix?:optional string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?:optional ManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `betas?:optional list` (header parameter) @@ -57,7 +65,9 @@ List memories - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -65,7 +75,7 @@ List memories - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -77,7 +87,11 @@ List memories - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -85,11 +99,15 @@ List memories - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class ManagedAgentsMemoryPrefix` @@ -106,6 +124,10 @@ List memories require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memories->list( diff --git a/content/en/api/php/beta/memory_stores/memories/retrieve.md b/content/en/api/php/beta/memory_stores/memories/retrieve.md index 925ac36a57..0a3cba2b66 100644 --- a/content/en/api/php/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/php/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `$client->beta->memoryStores->memories->retrieve(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -43,7 +45,9 @@ Retrieve a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -51,7 +55,7 @@ Retrieve a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -63,7 +67,11 @@ Retrieve a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -71,11 +79,15 @@ Retrieve a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example @@ -84,6 +96,10 @@ Retrieve a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->retrieve( diff --git a/content/en/api/php/beta/memory_stores/memories/update.md b/content/en/api/php/beta/memory_stores/memories/update.md index 29ba8e0ffa..7dea9a2243 100644 --- a/content/en/api/php/beta/memory_stores/memories/update.md +++ b/content/en/api/php/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `$client->beta->memoryStores->memories->update(string memoryID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?string content, ?string path, ?ManagedAgentsPrecondition precondition, ?list betas, ?string workspaceID): ManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -23,7 +23,9 @@ Update a memory - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `content?:optional string` @@ -31,11 +33,15 @@ Update a memory - `path?:optional string` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. - `precondition?:optional ManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `betas?:optional list` (header parameter) @@ -55,7 +61,9 @@ Update a memory - `string id` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `string contentSha256` @@ -63,7 +71,7 @@ Update a memory - `int contentSizeBytes` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - `\Datetime createdAt` @@ -75,7 +83,11 @@ Update a memory - `string memoryVersionID` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#audit-memory-changes) to learn more about memory versions. - `string path` @@ -83,11 +95,15 @@ Update a memory - `\Datetime updatedAt` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - `?string content` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example @@ -96,6 +112,10 @@ Update a memory require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemory = $client->beta->memoryStores->memories->update( diff --git a/content/en/api/php/beta/memory_stores/memory_versions.md b/content/en/api/php/beta/memory_stores/memory_versions.md index e9953e1b2a..712abc9979 100644 --- a/content/en/api/php/beta/memory_stores/memory_versions.md +++ b/content/en/api/php/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versi # Memory Versions -## List memory versions +## List Memory Versions `$client->beta->memoryStores->memoryVersions->list(string memoryStoreID, ?string apiKeyID, ?\Datetime createdAtGte, ?\Datetime createdAtLte, ?int limit, ?string memoryID, ?ManagedAgentsMemoryVersionOperation operation, ?string page, ?string serviceAccountID, ?string sessionID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -33,13 +33,15 @@ List memory versions - `limit?:optional int` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. - `memoryID?:optional string` (query parameter) Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?:optional ManagedAgentsMemoryVersionOperation` (query parameter) @@ -59,7 +61,9 @@ List memory versions - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -87,7 +91,9 @@ List memory versions - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -111,7 +117,11 @@ List memory versions - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -119,7 +129,11 @@ List memory versions - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -132,6 +146,11 @@ List memory versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; +use Anthropic\Beta\MemoryStores\MemoryVersions\ManagedAgentsMemoryVersionOperation; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memoryVersions->list( @@ -184,13 +203,13 @@ var_dump($page); } ``` -## Retrieve a memory version +## Retrieve a Memory Version `$client->beta->memoryStores->memoryVersions->retrieve(string memoryVersionID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -204,7 +223,9 @@ Retrieve a memory version - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -232,7 +253,9 @@ Retrieve a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -256,7 +279,11 @@ Retrieve a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -264,7 +291,11 @@ Retrieve a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -277,6 +308,10 @@ Retrieve a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client @@ -320,13 +355,13 @@ var_dump($betaManagedAgentsMemoryVersion); } ``` -## Redact a memory version +## Redact a Memory Version `$client->beta->memoryStores->memoryVersions->redact(string memoryVersionID, string memoryStoreID, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -364,7 +399,9 @@ Redact a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -388,7 +425,11 @@ Redact a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -396,7 +437,11 @@ Redact a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -409,6 +454,9 @@ Redact a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client @@ -515,7 +563,9 @@ var_dump($betaManagedAgentsMemoryVersion); - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -539,7 +589,11 @@ var_dump($betaManagedAgentsMemoryVersion); - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -547,7 +601,11 @@ var_dump($betaManagedAgentsMemoryVersion); - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` diff --git a/content/en/api/php/beta/memory_stores/memory_versions/list.md b/content/en/api/php/beta/memory_stores/memory_versions/list.md index 0ea742e3ef..82188abb7d 100644 --- a/content/en/api/php/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/php/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `$client->beta->memoryStores->memoryVersions->list(string memoryStoreID, ?string apiKeyID, ?\Datetime createdAtGte, ?\Datetime createdAtLte, ?int limit, ?string memoryID, ?ManagedAgentsMemoryVersionOperation operation, ?string page, ?string serviceAccountID, ?string sessionID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -31,13 +31,15 @@ List memory versions - `limit?:optional int` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. - `memoryID?:optional string` (query parameter) Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?:optional ManagedAgentsMemoryVersionOperation` (query parameter) @@ -57,7 +59,9 @@ List memory versions - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -85,7 +89,9 @@ List memory versions - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -109,7 +115,11 @@ List memory versions - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -117,7 +127,11 @@ List memory versions - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -130,6 +144,11 @@ List memory versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; +use Anthropic\Beta\MemoryStores\MemoryVersions\ManagedAgentsMemoryVersionOperation; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->memoryStores->memoryVersions->list( diff --git a/content/en/api/php/beta/memory_stores/memory_versions/redact.md b/content/en/api/php/beta/memory_stores/memory_versions/redact.md index 6d53abf9e6..6be60cc637 100644 --- a/content/en/api/php/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/php/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `$client->beta->memoryStores->memoryVersions->redact(string memoryVersionID, string memoryStoreID, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -47,7 +47,9 @@ Redact a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -71,7 +73,11 @@ Redact a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -79,7 +85,11 @@ Redact a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -92,6 +102,9 @@ Redact a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client diff --git a/content/en/api/php/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/php/beta/memory_stores/memory_versions/retrieve.md index 45178f628a..6ee1e2bc46 100644 --- a/content/en/api/php/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/php/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `$client->beta->memoryStores->memoryVersions->retrieve(string memoryVersionID, string memoryStoreID, ?ManagedAgentsMemoryView view, ?list betas, ?string workspaceID): ManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory version - `view?:optional ManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `betas?:optional list` (header parameter) @@ -51,7 +53,9 @@ Retrieve a memory version - `string memoryID` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=php) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `string memoryStoreID` @@ -75,7 +79,11 @@ Retrieve a memory version - `?ManagedAgentsActor createdBy` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=php) to learn more about where the change came from. - `?string path` @@ -83,7 +91,11 @@ Retrieve a memory version - `?\Datetime redactedAt` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=php). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#redact-a-version) to learn more about redaction. - `?ManagedAgentsActor redactedBy` @@ -96,6 +108,10 @@ Retrieve a memory version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\MemoryStores\Memories\ManagedAgentsMemoryView; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryVersion = $client diff --git a/content/en/api/php/beta/memory_stores/retrieve.md b/content/en/api/php/beta/memory_stores/retrieve.md index 863fc1abba..0ea70074ed 100644 --- a/content/en/api/php/beta/memory_stores/retrieve.md +++ b/content/en/api/php/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `$client->beta->memoryStores->retrieve(string memoryStoreID, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas?:optional list` (header parameter) @@ -35,23 +35,29 @@ Retrieve a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -59,7 +65,9 @@ Retrieve a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Example @@ -68,6 +76,9 @@ Retrieve a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->retrieve( diff --git a/content/en/api/php/beta/memory_stores/update.md b/content/en/api/php/beta/memory_stores/update.md index d2f8b4d3b1..7b51a98728 100644 --- a/content/en/api/php/beta/memory_stores/update.md +++ b/content/en/api/php/beta/memory_stores/update.md @@ -1,33 +1,39 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/php/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `$client->beta->memoryStores->update(string memoryStoreID, ?string description, ?array metadata, ?string name, ?list betas, ?string workspaceID): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description?:optional string` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. - `metadata?:optional array` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?:optional string` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. - `betas?:optional list` (header parameter) @@ -47,23 +53,29 @@ Update a memory store - `string id` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `?\Datetime archivedAt` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=php#archive-a-store) to learn more about archiving. - `\Datetime createdAt` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. - `string description` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `array metadata` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `string name` @@ -71,7 +83,9 @@ Update a memory store - `\Datetime updatedAt` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. ## Example @@ -80,6 +94,9 @@ Update a memory store require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsMemoryStore = $client->beta->memoryStores->update( diff --git a/content/en/api/php/beta/messages.md b/content/en/api/php/beta/messages.md index dd60d4d9da..b3b60057f3 100644 --- a/content/en/api/php/beta/messages.md +++ b/content/en/api/php/beta/messages.md @@ -267,7 +267,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -537,6 +537,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessage = $client->beta->messages->create( @@ -946,7 +951,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -981,6 +986,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageTokensCount = $client->beta->messages->countTokens( @@ -6599,14 +6609,38 @@ var_dump($betaMessageTokensCount); - `?int maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=php#naming-your-own-fallback-models) to learn more about fallback entries. + - `?BetaOutputConfig outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `?Speed speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `?Thinking thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + ### Beta Fallback Refusal Trigger - `class BetaFallbackRefusalTrigger` @@ -6631,14 +6665,38 @@ var_dump($betaMessageTokensCount); - `?int maxTokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=php#naming-your-own-fallback-models) to learn more about fallback entries. + - `?BetaOutputConfig outputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `?Speed speed` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `?Thinking thinking` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `"default"` ### Beta File Document Source @@ -13000,7 +13058,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -13069,6 +13127,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->create( @@ -13305,6 +13368,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->retrieve( @@ -13438,6 +13504,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->messages->batches->list( @@ -13570,6 +13639,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->cancel( @@ -13653,6 +13725,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedMessageBatch = $client->beta->messages->batches->delete( @@ -13724,6 +13799,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatchIndividualResponse = $client diff --git a/content/en/api/php/beta/messages/batches.md b/content/en/api/php/beta/messages/batches.md index dd62a91b51..2a591a7afc 100644 --- a/content/en/api/php/beta/messages/batches.md +++ b/content/en/api/php/beta/messages/batches.md @@ -29,7 +29,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -98,6 +98,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->create( @@ -334,6 +339,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->retrieve( @@ -467,6 +475,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->messages->batches->list( @@ -599,6 +610,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->cancel( @@ -682,6 +696,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedMessageBatch = $client->beta->messages->batches->delete( @@ -753,6 +770,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatchIndividualResponse = $client diff --git a/content/en/api/php/beta/messages/batches/cancel.md b/content/en/api/php/beta/messages/batches/cancel.md index 99e688ad07..7e8a1ca8a5 100644 --- a/content/en/api/php/beta/messages/batches/cancel.md +++ b/content/en/api/php/beta/messages/batches/cancel.md @@ -92,6 +92,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->cancel( diff --git a/content/en/api/php/beta/messages/batches/create.md b/content/en/api/php/beta/messages/batches/create.md index a9bfeb5895..c9e048a16b 100644 --- a/content/en/api/php/beta/messages/batches/create.md +++ b/content/en/api/php/beta/messages/batches/create.md @@ -27,7 +27,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -96,6 +96,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->create( diff --git a/content/en/api/php/beta/messages/batches/delete.md b/content/en/api/php/beta/messages/batches/delete.md index b5acb0d88b..39f2449082 100644 --- a/content/en/api/php/beta/messages/batches/delete.md +++ b/content/en/api/php/beta/messages/batches/delete.md @@ -52,6 +52,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedMessageBatch = $client->beta->messages->batches->delete( diff --git a/content/en/api/php/beta/messages/batches/list.md b/content/en/api/php/beta/messages/batches/list.md index 476dd4aadd..5429a65590 100644 --- a/content/en/api/php/beta/messages/batches/list.md +++ b/content/en/api/php/beta/messages/batches/list.md @@ -102,6 +102,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->messages->batches->list( diff --git a/content/en/api/php/beta/messages/batches/results.md b/content/en/api/php/beta/messages/batches/results.md index 2b7a9f0894..4b6886544e 100644 --- a/content/en/api/php/beta/messages/batches/results.md +++ b/content/en/api/php/beta/messages/batches/results.md @@ -54,6 +54,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatchIndividualResponse = $client diff --git a/content/en/api/php/beta/messages/batches/retrieve.md b/content/en/api/php/beta/messages/batches/retrieve.md index 8d70643529..8f7c5214ea 100644 --- a/content/en/api/php/beta/messages/batches/retrieve.md +++ b/content/en/api/php/beta/messages/batches/retrieve.md @@ -90,6 +90,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageBatch = $client->beta->messages->batches->retrieve( diff --git a/content/en/api/php/beta/messages/count_tokens.md b/content/en/api/php/beta/messages/count_tokens.md index 4251df4af6..72ff8182c9 100644 --- a/content/en/api/php/beta/messages/count_tokens.md +++ b/content/en/api/php/beta/messages/count_tokens.md @@ -192,7 +192,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -227,6 +227,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessageTokensCount = $client->beta->messages->countTokens( diff --git a/content/en/api/php/beta/messages/create.md b/content/en/api/php/beta/messages/create.md index a5c9142286..a3181e358d 100644 --- a/content/en/api/php/beta/messages/create.md +++ b/content/en/api/php/beta/messages/create.md @@ -265,7 +265,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -535,6 +535,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Messages\BetaThinkingPrefixMismatchBehavior; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaMessage = $client->beta->messages->create( diff --git a/content/en/api/php/beta/models.md b/content/en/api/php/beta/models.md index 4fac13e156..648ce38884 100644 --- a/content/en/api/php/beta/models.md +++ b/content/en/api/php/beta/models.md @@ -112,6 +112,9 @@ The Models API response can be used to determine which models are available for require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->models->list( @@ -326,6 +329,9 @@ The Models API response can be used to determine information about a specific mo require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaModelInfo = $client->beta->models->retrieve( diff --git a/content/en/api/php/beta/models/list.md b/content/en/api/php/beta/models/list.md index 435fde4379..165a78e3e3 100644 --- a/content/en/api/php/beta/models/list.md +++ b/content/en/api/php/beta/models/list.md @@ -110,6 +110,9 @@ The Models API response can be used to determine which models are available for require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->models->list( diff --git a/content/en/api/php/beta/models/retrieve.md b/content/en/api/php/beta/models/retrieve.md index 69f83bd537..745fc716d7 100644 --- a/content/en/api/php/beta/models/retrieve.md +++ b/content/en/api/php/beta/models/retrieve.md @@ -94,6 +94,9 @@ The Models API response can be used to determine information about a specific mo require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaModelInfo = $client->beta->models->retrieve( diff --git a/content/en/api/php/beta/sessions.md b/content/en/api/php/beta/sessions.md index cb6cb07ee3..2810798ad6 100644 --- a/content/en/api/php/beta/sessions.md +++ b/content/en/api/php/beta/sessions.md @@ -122,6 +122,10 @@ Create Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->create( @@ -491,6 +495,9 @@ List Sessions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->list( @@ -807,6 +814,9 @@ Get Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->retrieve( @@ -1125,6 +1135,10 @@ Update Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->update( @@ -1405,6 +1419,9 @@ Delete Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedSession = $client->beta->sessions->delete( @@ -1512,6 +1529,9 @@ Archive Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->archive( @@ -3430,6 +3450,10 @@ List Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Events\ManagedAgentsSessionEventType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->events->list( @@ -3522,6 +3546,9 @@ Send Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSendSessionEvents = $client->beta->sessions->events->send( @@ -4498,6 +4525,10 @@ Stream Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionEvents = $client @@ -4591,6 +4622,9 @@ Add Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsFileResource = $client->beta->sessions->resources->add( @@ -4725,6 +4759,9 @@ List Session Resources require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->resources->list( @@ -4869,6 +4906,9 @@ Get Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->retrieve( @@ -5003,6 +5043,9 @@ Update Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->update( @@ -5072,6 +5115,9 @@ Delete Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeleteSessionResource = $client @@ -5192,6 +5238,10 @@ List Session Threads require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Threads\ManagedAgentsSessionThreadStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->list( @@ -5385,6 +5435,9 @@ Get Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->retrieve( @@ -5571,6 +5624,9 @@ Archive Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->archive( @@ -6599,6 +6655,9 @@ List Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->events->list( @@ -7586,6 +7645,10 @@ Stream Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionThreadEvents = $client diff --git a/content/en/api/php/beta/sessions/archive.md b/content/en/api/php/beta/sessions/archive.md index c1680ad6da..4d5979ee3f 100644 --- a/content/en/api/php/beta/sessions/archive.md +++ b/content/en/api/php/beta/sessions/archive.md @@ -90,6 +90,9 @@ Archive Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->archive( diff --git a/content/en/api/php/beta/sessions/create.md b/content/en/api/php/beta/sessions/create.md index 4edcef3e01..9fa9862d1a 100644 --- a/content/en/api/php/beta/sessions/create.md +++ b/content/en/api/php/beta/sessions/create.md @@ -120,6 +120,10 @@ Create Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->create( diff --git a/content/en/api/php/beta/sessions/delete.md b/content/en/api/php/beta/sessions/delete.md index 38dfee2d3b..7f205e7769 100644 --- a/content/en/api/php/beta/sessions/delete.md +++ b/content/en/api/php/beta/sessions/delete.md @@ -40,6 +40,9 @@ Delete Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedSession = $client->beta->sessions->delete( diff --git a/content/en/api/php/beta/sessions/events.md b/content/en/api/php/beta/sessions/events.md index 1bafbb951e..3db003f135 100644 --- a/content/en/api/php/beta/sessions/events.md +++ b/content/en/api/php/beta/sessions/events.md @@ -950,6 +950,10 @@ List Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Events\ManagedAgentsSessionEventType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->events->list( @@ -1042,6 +1046,9 @@ Send Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSendSessionEvents = $client->beta->sessions->events->send( @@ -2018,6 +2025,10 @@ Stream Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionEvents = $client diff --git a/content/en/api/php/beta/sessions/events/list.md b/content/en/api/php/beta/sessions/events/list.md index a6da752abb..89ca2116a4 100644 --- a/content/en/api/php/beta/sessions/events/list.md +++ b/content/en/api/php/beta/sessions/events/list.md @@ -948,6 +948,10 @@ List Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Events\ManagedAgentsSessionEventType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->events->list( diff --git a/content/en/api/php/beta/sessions/events/send.md b/content/en/api/php/beta/sessions/events/send.md index 38666465a0..15292e84d3 100644 --- a/content/en/api/php/beta/sessions/events/send.md +++ b/content/en/api/php/beta/sessions/events/send.md @@ -44,6 +44,9 @@ Send Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSendSessionEvents = $client->beta->sessions->events->send( diff --git a/content/en/api/php/beta/sessions/events/stream.md b/content/en/api/php/beta/sessions/events/stream.md index df64ad4d14..ba9e517ef8 100644 --- a/content/en/api/php/beta/sessions/events/stream.md +++ b/content/en/api/php/beta/sessions/events/stream.md @@ -942,6 +942,10 @@ Stream Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionEvents = $client diff --git a/content/en/api/php/beta/sessions/list.md b/content/en/api/php/beta/sessions/list.md index 8217682687..0c8bed3b94 100644 --- a/content/en/api/php/beta/sessions/list.md +++ b/content/en/api/php/beta/sessions/list.md @@ -140,6 +140,9 @@ List Sessions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->list( diff --git a/content/en/api/php/beta/sessions/resources.md b/content/en/api/php/beta/sessions/resources.md index 065d18a591..3592370387 100644 --- a/content/en/api/php/beta/sessions/resources.md +++ b/content/en/api/php/beta/sessions/resources.md @@ -64,6 +64,9 @@ Add Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsFileResource = $client->beta->sessions->resources->add( @@ -198,6 +201,9 @@ List Session Resources require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->resources->list( @@ -342,6 +348,9 @@ Get Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->retrieve( @@ -476,6 +485,9 @@ Update Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->update( @@ -545,6 +557,9 @@ Delete Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeleteSessionResource = $client diff --git a/content/en/api/php/beta/sessions/resources/add.md b/content/en/api/php/beta/sessions/resources/add.md index 3a17f91bc9..73e62f75e0 100644 --- a/content/en/api/php/beta/sessions/resources/add.md +++ b/content/en/api/php/beta/sessions/resources/add.md @@ -62,6 +62,9 @@ Add Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsFileResource = $client->beta->sessions->resources->add( diff --git a/content/en/api/php/beta/sessions/resources/delete.md b/content/en/api/php/beta/sessions/resources/delete.md index 3729289c29..86c2544e22 100644 --- a/content/en/api/php/beta/sessions/resources/delete.md +++ b/content/en/api/php/beta/sessions/resources/delete.md @@ -42,6 +42,9 @@ Delete Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeleteSessionResource = $client diff --git a/content/en/api/php/beta/sessions/resources/list.md b/content/en/api/php/beta/sessions/resources/list.md index dfebf5c109..1c100af76c 100644 --- a/content/en/api/php/beta/sessions/resources/list.md +++ b/content/en/api/php/beta/sessions/resources/list.md @@ -110,6 +110,9 @@ List Session Resources require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->resources->list( diff --git a/content/en/api/php/beta/sessions/resources/retrieve.md b/content/en/api/php/beta/sessions/resources/retrieve.md index 0b8a5628c9..d25133cb8a 100644 --- a/content/en/api/php/beta/sessions/resources/retrieve.md +++ b/content/en/api/php/beta/sessions/resources/retrieve.md @@ -104,6 +104,9 @@ Get Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->retrieve( diff --git a/content/en/api/php/beta/sessions/resources/update.md b/content/en/api/php/beta/sessions/resources/update.md index 08ad58270d..af29815870 100644 --- a/content/en/api/php/beta/sessions/resources/update.md +++ b/content/en/api/php/beta/sessions/resources/update.md @@ -108,6 +108,9 @@ Update Session Resource require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $resource = $client->beta->sessions->resources->update( diff --git a/content/en/api/php/beta/sessions/retrieve.md b/content/en/api/php/beta/sessions/retrieve.md index cf094970b1..e0fddd7835 100644 --- a/content/en/api/php/beta/sessions/retrieve.md +++ b/content/en/api/php/beta/sessions/retrieve.md @@ -90,6 +90,9 @@ Get Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->retrieve( diff --git a/content/en/api/php/beta/sessions/threads.md b/content/en/api/php/beta/sessions/threads.md index 5fc929d274..eef8c4ee0c 100644 --- a/content/en/api/php/beta/sessions/threads.md +++ b/content/en/api/php/beta/sessions/threads.md @@ -98,6 +98,10 @@ List Session Threads require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Threads\ManagedAgentsSessionThreadStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->list( @@ -291,6 +295,9 @@ Get Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->retrieve( @@ -477,6 +484,9 @@ Archive Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->archive( @@ -2551,6 +2561,9 @@ List Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->events->list( @@ -3538,6 +3551,10 @@ Stream Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionThreadEvents = $client diff --git a/content/en/api/php/beta/sessions/threads/archive.md b/content/en/api/php/beta/sessions/threads/archive.md index 6592cdde4e..59bcc57c8b 100644 --- a/content/en/api/php/beta/sessions/threads/archive.md +++ b/content/en/api/php/beta/sessions/threads/archive.md @@ -84,6 +84,9 @@ Archive Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->archive( diff --git a/content/en/api/php/beta/sessions/threads/events.md b/content/en/api/php/beta/sessions/threads/events.md index a0ac7568f1..5177c8acfd 100644 --- a/content/en/api/php/beta/sessions/threads/events.md +++ b/content/en/api/php/beta/sessions/threads/events.md @@ -926,6 +926,9 @@ List Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->events->list( @@ -1913,6 +1916,10 @@ Stream Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionThreadEvents = $client diff --git a/content/en/api/php/beta/sessions/threads/events/list.md b/content/en/api/php/beta/sessions/threads/events/list.md index fb8456d16d..f0480e7c5c 100644 --- a/content/en/api/php/beta/sessions/threads/events/list.md +++ b/content/en/api/php/beta/sessions/threads/events/list.md @@ -924,6 +924,9 @@ List Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->events->list( diff --git a/content/en/api/php/beta/sessions/threads/events/stream.md b/content/en/api/php/beta/sessions/threads/events/stream.md index c270dc5f1c..b6aa55f930 100644 --- a/content/en/api/php/beta/sessions/threads/events/stream.md +++ b/content/en/api/php/beta/sessions/threads/events/stream.md @@ -944,6 +944,10 @@ Stream Session Thread Events require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\BetaManagedAgentsDeltaType; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsStreamSessionThreadEvents = $client diff --git a/content/en/api/php/beta/sessions/threads/list.md b/content/en/api/php/beta/sessions/threads/list.md index a690fa7c9e..e809c9da04 100644 --- a/content/en/api/php/beta/sessions/threads/list.md +++ b/content/en/api/php/beta/sessions/threads/list.md @@ -96,6 +96,10 @@ List Session Threads require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Beta\Sessions\Threads\ManagedAgentsSessionThreadStatus; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->sessions->threads->list( diff --git a/content/en/api/php/beta/sessions/threads/retrieve.md b/content/en/api/php/beta/sessions/threads/retrieve.md index 38c04df5ec..86bb8c34ac 100644 --- a/content/en/api/php/beta/sessions/threads/retrieve.md +++ b/content/en/api/php/beta/sessions/threads/retrieve.md @@ -84,6 +84,9 @@ Get Session Thread require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSessionThread = $client->beta->sessions->threads->retrieve( diff --git a/content/en/api/php/beta/sessions/update.md b/content/en/api/php/beta/sessions/update.md index 57621172de..8130a72253 100644 --- a/content/en/api/php/beta/sessions/update.md +++ b/content/en/api/php/beta/sessions/update.md @@ -110,6 +110,10 @@ Update Session require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\BetaCurrency; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsSession = $client->beta->sessions->update( diff --git a/content/en/api/php/beta/skills.md b/content/en/api/php/beta/skills.md index 0cd5d60044..ef3d3a2610 100644 --- a/content/en/api/php/beta/skills.md +++ b/content/en/api/php/beta/skills.md @@ -89,6 +89,10 @@ Create Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->create( @@ -214,6 +218,9 @@ List Skills require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->list( @@ -326,6 +333,9 @@ Get Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->retrieve( @@ -402,6 +412,9 @@ Delete Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkill = $client->beta->skills->delete( @@ -579,6 +592,10 @@ Create Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->create( @@ -689,6 +706,9 @@ List Skill Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->versions->list( @@ -763,6 +783,9 @@ Download a skill version's content as a zip archive. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->skills->versions->download( @@ -852,6 +875,9 @@ Get Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->retrieve( @@ -931,6 +957,9 @@ Delete Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkillVersion = $client->beta->skills->versions->delete( diff --git a/content/en/api/php/beta/skills/create.md b/content/en/api/php/beta/skills/create.md index c0411174fe..e46b8fd52a 100644 --- a/content/en/api/php/beta/skills/create.md +++ b/content/en/api/php/beta/skills/create.md @@ -87,6 +87,10 @@ Create Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->create( diff --git a/content/en/api/php/beta/skills/delete.md b/content/en/api/php/beta/skills/delete.md index 7851e1133a..030731536f 100644 --- a/content/en/api/php/beta/skills/delete.md +++ b/content/en/api/php/beta/skills/delete.md @@ -52,6 +52,9 @@ Delete Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkill = $client->beta->skills->delete( diff --git a/content/en/api/php/beta/skills/list.md b/content/en/api/php/beta/skills/list.md index d2d0386959..5abfa7b850 100644 --- a/content/en/api/php/beta/skills/list.md +++ b/content/en/api/php/beta/skills/list.md @@ -98,6 +98,9 @@ List Skills require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->list( diff --git a/content/en/api/php/beta/skills/retrieve.md b/content/en/api/php/beta/skills/retrieve.md index d50c0d4573..c64714d3ae 100644 --- a/content/en/api/php/beta/skills/retrieve.md +++ b/content/en/api/php/beta/skills/retrieve.md @@ -81,6 +81,9 @@ Get Skill require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkill = $client->beta->skills->retrieve( diff --git a/content/en/api/php/beta/skills/versions.md b/content/en/api/php/beta/skills/versions.md index f51e60ed07..a05468c364 100644 --- a/content/en/api/php/beta/skills/versions.md +++ b/content/en/api/php/beta/skills/versions.md @@ -82,6 +82,10 @@ Create Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->create( @@ -192,6 +196,9 @@ List Skill Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->versions->list( @@ -266,6 +273,9 @@ Download a skill version's content as a zip archive. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->skills->versions->download( @@ -355,6 +365,9 @@ Get Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->retrieve( @@ -434,6 +447,9 @@ Delete Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkillVersion = $client->beta->skills->versions->delete( diff --git a/content/en/api/php/beta/skills/versions/create.md b/content/en/api/php/beta/skills/versions/create.md index 9df9d42dd6..a7c3500de0 100644 --- a/content/en/api/php/beta/skills/versions/create.md +++ b/content/en/api/php/beta/skills/versions/create.md @@ -80,6 +80,10 @@ Create Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; +use Anthropic\Core\FileParam; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->create( diff --git a/content/en/api/php/beta/skills/versions/delete.md b/content/en/api/php/beta/skills/versions/delete.md index c32b06f22b..d9209ab2e7 100644 --- a/content/en/api/php/beta/skills/versions/delete.md +++ b/content/en/api/php/beta/skills/versions/delete.md @@ -57,6 +57,9 @@ Delete Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaDeletedSkillVersion = $client->beta->skills->versions->delete( diff --git a/content/en/api/php/beta/skills/versions/download.md b/content/en/api/php/beta/skills/versions/download.md index 1c01ab3baa..10e5999293 100644 --- a/content/en/api/php/beta/skills/versions/download.md +++ b/content/en/api/php/beta/skills/versions/download.md @@ -46,6 +46,9 @@ Download a skill version's content as a zip archive. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $response = $client->beta->skills->versions->download( diff --git a/content/en/api/php/beta/skills/versions/list.md b/content/en/api/php/beta/skills/versions/list.md index bd3107186e..e988bae602 100644 --- a/content/en/api/php/beta/skills/versions/list.md +++ b/content/en/api/php/beta/skills/versions/list.md @@ -86,6 +86,9 @@ List Skill Versions require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->skills->versions->list( diff --git a/content/en/api/php/beta/skills/versions/retrieve.md b/content/en/api/php/beta/skills/versions/retrieve.md index 92c96750fc..e5ca9091a3 100644 --- a/content/en/api/php/beta/skills/versions/retrieve.md +++ b/content/en/api/php/beta/skills/versions/retrieve.md @@ -80,6 +80,9 @@ Get Skill Version require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaSkillVersion = $client->beta->skills->versions->retrieve( diff --git a/content/en/api/php/beta/tunnels.md b/content/en/api/php/beta/tunnels.md index 8b8f352cf6..105f2de7e6 100644 --- a/content/en/api/php/beta/tunnels.md +++ b/content/en/api/php/beta/tunnels.md @@ -64,6 +64,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->create( @@ -147,6 +150,9 @@ Fetches a tunnel by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->retrieve( @@ -238,6 +244,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->list( @@ -328,6 +337,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->archive( @@ -399,6 +411,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->revealToken( @@ -471,6 +486,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->rotateToken( @@ -604,6 +622,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->create( @@ -697,6 +718,9 @@ Fetches a tunnel certificate by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->retrieve( @@ -798,6 +822,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->certificates->list( @@ -898,6 +925,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->archive( diff --git a/content/en/api/php/beta/tunnels/archive.md b/content/en/api/php/beta/tunnels/archive.md index 999aa4922f..40c6b2775e 100644 --- a/content/en/api/php/beta/tunnels/archive.md +++ b/content/en/api/php/beta/tunnels/archive.md @@ -62,6 +62,9 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->archive( diff --git a/content/en/api/php/beta/tunnels/certificates.md b/content/en/api/php/beta/tunnels/certificates.md index 7927cff115..fc88c48fa9 100644 --- a/content/en/api/php/beta/tunnels/certificates.md +++ b/content/en/api/php/beta/tunnels/certificates.md @@ -72,6 +72,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->create( @@ -165,6 +168,9 @@ Fetches a tunnel certificate by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->retrieve( @@ -266,6 +272,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->certificates->list( @@ -366,6 +375,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->archive( diff --git a/content/en/api/php/beta/tunnels/certificates/archive.md b/content/en/api/php/beta/tunnels/certificates/archive.md index 9fa59823d4..877371aecf 100644 --- a/content/en/api/php/beta/tunnels/certificates/archive.md +++ b/content/en/api/php/beta/tunnels/certificates/archive.md @@ -70,6 +70,9 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->archive( diff --git a/content/en/api/php/beta/tunnels/certificates/create.md b/content/en/api/php/beta/tunnels/certificates/create.md index 81ed2707dc..4af603c3f4 100644 --- a/content/en/api/php/beta/tunnels/certificates/create.md +++ b/content/en/api/php/beta/tunnels/certificates/create.md @@ -70,6 +70,9 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->create( diff --git a/content/en/api/php/beta/tunnels/certificates/list.md b/content/en/api/php/beta/tunnels/certificates/list.md index 2cfec0efbf..14848ad3ee 100644 --- a/content/en/api/php/beta/tunnels/certificates/list.md +++ b/content/en/api/php/beta/tunnels/certificates/list.md @@ -78,6 +78,9 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->certificates->list( diff --git a/content/en/api/php/beta/tunnels/certificates/retrieve.md b/content/en/api/php/beta/tunnels/certificates/retrieve.md index 6fab51db8c..91325740a0 100644 --- a/content/en/api/php/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/php/beta/tunnels/certificates/retrieve.md @@ -70,6 +70,9 @@ Fetches a tunnel certificate by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelCertificate = $client->beta->tunnels->certificates->retrieve( diff --git a/content/en/api/php/beta/tunnels/create.md b/content/en/api/php/beta/tunnels/create.md index bd367888f8..7794d8667f 100644 --- a/content/en/api/php/beta/tunnels/create.md +++ b/content/en/api/php/beta/tunnels/create.md @@ -62,6 +62,9 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->create( diff --git a/content/en/api/php/beta/tunnels/list.md b/content/en/api/php/beta/tunnels/list.md index 81256cc7ef..12b08423a2 100644 --- a/content/en/api/php/beta/tunnels/list.md +++ b/content/en/api/php/beta/tunnels/list.md @@ -70,6 +70,9 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->tunnels->list( diff --git a/content/en/api/php/beta/tunnels/retrieve.md b/content/en/api/php/beta/tunnels/retrieve.md index 1cf876063c..669c2200e5 100644 --- a/content/en/api/php/beta/tunnels/retrieve.md +++ b/content/en/api/php/beta/tunnels/retrieve.md @@ -62,6 +62,9 @@ Fetches a tunnel by ID. require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnel = $client->beta->tunnels->retrieve( diff --git a/content/en/api/php/beta/tunnels/reveal_token.md b/content/en/api/php/beta/tunnels/reveal_token.md index 078a6ae222..d7690b886a 100644 --- a/content/en/api/php/beta/tunnels/reveal_token.md +++ b/content/en/api/php/beta/tunnels/reveal_token.md @@ -50,6 +50,9 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->revealToken( diff --git a/content/en/api/php/beta/tunnels/rotate_token.md b/content/en/api/php/beta/tunnels/rotate_token.md index c7b3e750e8..23f1f263f9 100644 --- a/content/en/api/php/beta/tunnels/rotate_token.md +++ b/content/en/api/php/beta/tunnels/rotate_token.md @@ -54,6 +54,9 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaTunnelToken = $client->beta->tunnels->rotateToken( diff --git a/content/en/api/php/beta/user_profiles.md b/content/en/api/php/beta/user_profiles.md index ea9b7d17b1..ff55e152f9 100644 --- a/content/en/api/php/beta/user_profiles.md +++ b/content/en/api/php/beta/user_profiles.md @@ -21,15 +21,15 @@ Create User Profile - `externalID?:optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `externalUserOnboardedAt?:optional \Datetime` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -41,7 +41,7 @@ Create User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -69,33 +69,33 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ### Example @@ -104,23 +104,26 @@ Create User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->create( accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ 'accountStatus' => 'active', - 'country' => 'country', + 'country' => 'US', 'emailHash' => 'x', - 'entityType' => 'individual', + 'entityType' => 'business', 'nameHash' => 'x', - 'onboardedAt' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), - 'referenceID' => 'x', + 'onboardedAt' => new \DateTimeImmutable('2024-11-02T08:15:00Z'), + 'referenceID' => 'user_12345', ], - externalUserOnboardedAt: new \DateTimeImmutable('2024-11-02T08:15:00Z'), + externalUserOnboardedAt: new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), metadata: [], - name: 'x', + name: 'Example User', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', ); @@ -135,6 +138,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -146,15 +150,14 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -188,7 +191,7 @@ List User Profiles - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -216,33 +219,33 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ### Example @@ -251,6 +254,9 @@ List User Profiles require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->userProfiles->list( @@ -274,6 +280,7 @@ var_dump($page); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -285,15 +292,14 @@ var_dump($page); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -316,7 +322,7 @@ Get User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -344,33 +350,33 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ### Example @@ -379,6 +385,9 @@ Get User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->retrieve( @@ -397,6 +406,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -408,15 +418,14 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -440,15 +449,15 @@ Update User Profile - `externalID?:optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `externalUserOnboardedAt?:optional \Datetime` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -460,7 +469,7 @@ Update User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -488,33 +497,33 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ### Example @@ -523,14 +532,17 @@ Update User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->update( 'uprof_011CZkZCu8hGbp5mYRQgUmz9', accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ - 'accountStatus' => 'active', + 'accountStatus' => 'suspended', 'country' => 'country', 'emailHash' => 'x', 'entityType' => 'individual', @@ -555,6 +567,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -566,15 +579,80 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`$client->beta->userProfiles->delete(string userProfileID, ?list betas, ?string workspaceID): BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `betas?:optional list` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `workspaceID?:optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `class BetaDeletedUserProfile` + + - `"user_profile_deleted" type` + + Object type. Always `user_profile_deleted`. + + - `string id` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```php +beta->userProfiles->delete( + 'uprof_011CZkZCu8hGbp5mYRQgUmz9', + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], + workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', +); + +var_dump($betaDeletedUserProfile); +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -594,7 +672,7 @@ Create Enrollment URL - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -625,6 +703,9 @@ Create Enrollment URL require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfileEnrollmentURL = $client @@ -651,6 +732,18 @@ var_dump($betaUserProfileEnrollmentURL); ## Domain types +### Beta Deleted User Profile + +- `class BetaDeletedUserProfile` + + - `"user_profile_deleted" type` + + Object type. Always `user_profile_deleted`. + + - `string id` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `class BetaUserProfile` @@ -671,33 +764,33 @@ var_dump($betaUserProfileEnrollmentURL); Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ### Beta User Profile Enrollment URL @@ -786,3 +879,81 @@ var_dump($betaUserProfileEnrollmentURL); - `Status status` Status of the trust grant. + +## User Profiles › Action URLs + +### Create Action URL + +`$client->beta->userProfiles->actionURLs->create(string userProfileID, UserProfileEnrollEndUserAction action, ?list betas, ?string workspaceID): UserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `action: UserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes. + +- `betas?:optional list` (header parameter) + + Optional header to specify the beta version(s) you want to use. + +- `workspaceID?:optional string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class UserProfileActionURL` + + - `"user_profile_action_url" type` + + Object type. Always `user_profile_action_url`. + + - `\Datetime expiresAt` + + When the URL stops working, in RFC 3339 format. + + - `string url` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```php +beta->userProfiles->actionURLs->create( + 'uprof_011CZkZCu8hGbp5mYRQgUmz9', + action: ['type' => 'enroll_end_user'], + betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], + workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', +); + +var_dump($betaUserProfileActionURL); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/php/beta/user_profiles/create.md b/content/en/api/php/beta/user_profiles/create.md index cbe1a6a506..88f4287d83 100644 --- a/content/en/api/php/beta/user_profiles/create.md +++ b/content/en/api/php/beta/user_profiles/create.md @@ -19,15 +19,15 @@ Create User Profile - `externalID?:optional string` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `externalUserOnboardedAt?:optional \Datetime` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -39,7 +39,7 @@ Create User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -67,33 +67,33 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ## Example @@ -102,23 +102,26 @@ Create User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->create( accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ 'accountStatus' => 'active', - 'country' => 'country', + 'country' => 'US', 'emailHash' => 'x', - 'entityType' => 'individual', + 'entityType' => 'business', 'nameHash' => 'x', - 'onboardedAt' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), - 'referenceID' => 'x', + 'onboardedAt' => new \DateTimeImmutable('2024-11-02T08:15:00Z'), + 'referenceID' => 'user_12345', ], - externalUserOnboardedAt: new \DateTimeImmutable('2024-11-02T08:15:00Z'), + externalUserOnboardedAt: new \DateTimeImmutable('2019-12-27T18:11:19.117Z'), metadata: [], - name: 'x', + name: 'Example User', betas: [AnthropicBeta::MESSAGE_BATCHES_2024_09_24], workspaceID: 'wrkspc_011CZkZaBF1tNoB5wlCeusgy', ); @@ -133,6 +136,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -144,14 +148,13 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/php/beta/user_profiles/create_enrollment_url.md b/content/en/api/php/beta/user_profiles/create_enrollment_url.md index b498440fe7..d9c6bdd283 100644 --- a/content/en/api/php/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/php/beta/user_profiles/create_enrollment_url.md @@ -19,7 +19,7 @@ Create Enrollment URL - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -50,6 +50,9 @@ Create Enrollment URL require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfileEnrollmentURL = $client diff --git a/content/en/api/php/beta/user_profiles/list.md b/content/en/api/php/beta/user_profiles/list.md index 5d3a9c9ac2..da3223b166 100644 --- a/content/en/api/php/beta/user_profiles/list.md +++ b/content/en/api/php/beta/user_profiles/list.md @@ -33,7 +33,7 @@ List User Profiles - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -61,33 +61,33 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ## Example @@ -96,6 +96,9 @@ List User Profiles require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->userProfiles->list( @@ -119,6 +122,7 @@ var_dump($page); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -130,15 +134,14 @@ var_dump($page); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/php/beta/user_profiles/retrieve.md b/content/en/api/php/beta/user_profiles/retrieve.md index 1a4d0c5e7f..4599fe3507 100644 --- a/content/en/api/php/beta/user_profiles/retrieve.md +++ b/content/en/api/php/beta/user_profiles/retrieve.md @@ -19,7 +19,7 @@ Get User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -47,33 +47,33 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ## Example @@ -82,6 +82,9 @@ Get User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->retrieve( @@ -100,6 +103,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -111,14 +115,13 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/php/beta/user_profiles/update.md b/content/en/api/php/beta/user_profiles/update.md index f388c99963..c1d1a2892a 100644 --- a/content/en/api/php/beta/user_profiles/update.md +++ b/content/en/api/php/beta/user_profiles/update.md @@ -23,15 +23,15 @@ Update User Profile - `externalID?:optional string` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. - `externalUserDetails?:optional BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `externalUserOnboardedAt?:optional \Datetime` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - `metadata?:optional array` @@ -43,7 +43,7 @@ Update User Profile - `betas?:optional list` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `workspaceID?:optional string` (header parameter) @@ -71,33 +71,33 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `?string name` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `array trustGrants` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - `\Datetime updatedAt` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - `?AccessType accessType` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `?string externalID` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `?BetaUserProfileExternalUserDetails externalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `?\Datetime externalUserOnboardedAt` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. - - - `?string name` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. ## Example @@ -106,14 +106,17 @@ Update User Profile require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaUserProfile = $client->beta->userProfiles->update( 'uprof_011CZkZCu8hGbp5mYRQgUmz9', accessType: 'application', - externalID: 'user_12345', + externalID: 'x', externalUserDetails: [ - 'accountStatus' => 'active', + 'accountStatus' => 'suspended', 'country' => 'country', 'emailHash' => 'x', 'entityType' => 'individual', @@ -138,6 +141,7 @@ var_dump($betaUserProfile); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -149,14 +153,13 @@ var_dump($betaUserProfile); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/php/beta/vaults.md b/content/en/api/php/beta/vaults.md index d2c8167e9b..1937bbd77d 100644 --- a/content/en/api/php/beta/vaults.md +++ b/content/en/api/php/beta/vaults.md @@ -70,6 +70,9 @@ Create a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->create( @@ -167,6 +170,9 @@ List Vaults require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->list( @@ -262,6 +268,9 @@ Retrieve a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->retrieve( @@ -358,6 +367,9 @@ Update a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->update( @@ -428,6 +440,9 @@ Delete a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedVault = $client->beta->vaults->delete( @@ -509,6 +524,9 @@ Archive a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->archive( @@ -661,6 +679,9 @@ Create a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->create( @@ -781,6 +802,9 @@ List Credentials require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->credentials->list( @@ -894,6 +918,9 @@ Retrieve a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->retrieve( @@ -1012,6 +1039,9 @@ Update a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->update( @@ -1104,6 +1134,9 @@ Delete a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedCredential = $client @@ -1202,6 +1235,9 @@ Archive a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->archive( @@ -1304,6 +1340,9 @@ Validate an MCP OAuth Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredentialValidation = $client diff --git a/content/en/api/php/beta/vaults/archive.md b/content/en/api/php/beta/vaults/archive.md index d1c7c472f0..38446a37a8 100644 --- a/content/en/api/php/beta/vaults/archive.md +++ b/content/en/api/php/beta/vaults/archive.md @@ -64,6 +64,9 @@ Archive a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->archive( diff --git a/content/en/api/php/beta/vaults/create.md b/content/en/api/php/beta/vaults/create.md index e2359dd1f7..6a6518869b 100644 --- a/content/en/api/php/beta/vaults/create.md +++ b/content/en/api/php/beta/vaults/create.md @@ -68,6 +68,9 @@ Create a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->create( diff --git a/content/en/api/php/beta/vaults/credentials.md b/content/en/api/php/beta/vaults/credentials.md index 1bd8a1d64f..9840c36c6c 100644 --- a/content/en/api/php/beta/vaults/credentials.md +++ b/content/en/api/php/beta/vaults/credentials.md @@ -86,6 +86,9 @@ Create a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->create( @@ -206,6 +209,9 @@ List Credentials require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->credentials->list( @@ -319,6 +325,9 @@ Retrieve a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->retrieve( @@ -437,6 +446,9 @@ Update a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->update( @@ -529,6 +541,9 @@ Delete a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedCredential = $client @@ -627,6 +642,9 @@ Archive a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->archive( @@ -729,6 +747,9 @@ Validate an MCP OAuth Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredentialValidation = $client diff --git a/content/en/api/php/beta/vaults/credentials/archive.md b/content/en/api/php/beta/vaults/credentials/archive.md index fa91dd823f..7707f4a0ff 100644 --- a/content/en/api/php/beta/vaults/credentials/archive.md +++ b/content/en/api/php/beta/vaults/credentials/archive.md @@ -76,6 +76,9 @@ Archive a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->archive( diff --git a/content/en/api/php/beta/vaults/credentials/create.md b/content/en/api/php/beta/vaults/credentials/create.md index 6f64eab14b..c97dba082a 100644 --- a/content/en/api/php/beta/vaults/credentials/create.md +++ b/content/en/api/php/beta/vaults/credentials/create.md @@ -84,6 +84,9 @@ Create a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->create( diff --git a/content/en/api/php/beta/vaults/credentials/delete.md b/content/en/api/php/beta/vaults/credentials/delete.md index 89dcacc6dd..1ad7a52083 100644 --- a/content/en/api/php/beta/vaults/credentials/delete.md +++ b/content/en/api/php/beta/vaults/credentials/delete.md @@ -48,6 +48,9 @@ Delete a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedCredential = $client diff --git a/content/en/api/php/beta/vaults/credentials/list.md b/content/en/api/php/beta/vaults/credentials/list.md index 0db8dc27f4..acf62883d6 100644 --- a/content/en/api/php/beta/vaults/credentials/list.md +++ b/content/en/api/php/beta/vaults/credentials/list.md @@ -84,6 +84,9 @@ List Credentials require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->credentials->list( diff --git a/content/en/api/php/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/php/beta/vaults/credentials/mcp_oauth_validate.md index e5ddc497d7..033c983549 100644 --- a/content/en/api/php/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/php/beta/vaults/credentials/mcp_oauth_validate.md @@ -72,6 +72,9 @@ Validate an MCP OAuth Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredentialValidation = $client diff --git a/content/en/api/php/beta/vaults/credentials/retrieve.md b/content/en/api/php/beta/vaults/credentials/retrieve.md index 5fcc9cbf22..0db7237da1 100644 --- a/content/en/api/php/beta/vaults/credentials/retrieve.md +++ b/content/en/api/php/beta/vaults/credentials/retrieve.md @@ -76,6 +76,9 @@ Retrieve a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->retrieve( diff --git a/content/en/api/php/beta/vaults/credentials/update.md b/content/en/api/php/beta/vaults/credentials/update.md index 9caad0fc42..6a912e84c5 100644 --- a/content/en/api/php/beta/vaults/credentials/update.md +++ b/content/en/api/php/beta/vaults/credentials/update.md @@ -88,6 +88,9 @@ Update a Credential require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsCredential = $client->beta->vaults->credentials->update( diff --git a/content/en/api/php/beta/vaults/delete.md b/content/en/api/php/beta/vaults/delete.md index 940322d569..f721c1a08b 100644 --- a/content/en/api/php/beta/vaults/delete.md +++ b/content/en/api/php/beta/vaults/delete.md @@ -44,6 +44,9 @@ Delete a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsDeletedVault = $client->beta->vaults->delete( diff --git a/content/en/api/php/beta/vaults/list.md b/content/en/api/php/beta/vaults/list.md index f4a1c88180..32b6d32ca0 100644 --- a/content/en/api/php/beta/vaults/list.md +++ b/content/en/api/php/beta/vaults/list.md @@ -72,6 +72,9 @@ List Vaults require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->beta->vaults->list( diff --git a/content/en/api/php/beta/vaults/retrieve.md b/content/en/api/php/beta/vaults/retrieve.md index 16fad62e98..b95bdceb54 100644 --- a/content/en/api/php/beta/vaults/retrieve.md +++ b/content/en/api/php/beta/vaults/retrieve.md @@ -64,6 +64,9 @@ Retrieve a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->retrieve( diff --git a/content/en/api/php/beta/vaults/update.md b/content/en/api/php/beta/vaults/update.md index 272ddfc6f9..dd617a6b12 100644 --- a/content/en/api/php/beta/vaults/update.md +++ b/content/en/api/php/beta/vaults/update.md @@ -72,6 +72,9 @@ Update a Vault require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $betaManagedAgentsVault = $client->beta->vaults->update( diff --git a/content/en/api/php/beta/webhooks.md b/content/en/api/php/beta/webhooks.md index f7aeada3e8..9280add203 100644 --- a/content/en/api/php/beta/webhooks.md +++ b/content/en/api/php/beta/webhooks.md @@ -823,6 +823,34 @@ url: https://platform.claude.com/docs/en/api/php/beta/webhooks - `string workspaceID` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `"user_profile.enforcement_action_opened" type` + + - `string id` + + ID of the user profile the enforcement action is on. + + - `string enforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `string organizationID` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `"user_profile.enforcement_action_resolved" type` + + - `string id` + + ID of the user profile the enforcement action is on. + + - `string enforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `string organizationID` + ### Beta Webhook Memory Store Archived Event Data - `class BetaWebhookMemoryStoreArchivedEventData` @@ -1115,6 +1143,38 @@ url: https://platform.claude.com/docs/en/api/php/beta/webhooks - `string workspaceID` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `"user_profile.enforcement_action_opened" type` + + - `string id` + + ID of the user profile the enforcement action is on. + + - `string enforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `string organizationID` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `"user_profile.enforcement_action_resolved" type` + + - `string id` + + ID of the user profile the enforcement action is on. + + - `string enforcementActionID` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `string organizationID` + ### Beta Webhook Vault Archived Event Data - `class BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/php/completions.md b/content/en/api/php/completions.md index 55006b8b80..6eaaa28d82 100644 --- a/content/en/api/php/completions.md +++ b/content/en/api/php/completions.md @@ -141,6 +141,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/php/completions/create.md b/content/en/api/php/completions/create.md index 154d7c18cd..f0eab447ae 100644 --- a/content/en/api/php/completions/create.md +++ b/content/en/api/php/completions/create.md @@ -139,6 +139,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/php/messages.md b/content/en/api/php/messages.md index 7340130f39..718adae6a5 100644 --- a/content/en/api/php/messages.md +++ b/content/en/api/php/messages.md @@ -220,7 +220,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -424,6 +424,9 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $message = $client->messages->create( @@ -735,7 +738,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -758,6 +761,9 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageTokensCount = $client->messages->countTokens( @@ -10328,7 +10334,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -10397,6 +10403,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->create( @@ -10581,6 +10590,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->retrieve( @@ -10708,6 +10719,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->messages->batches->list( @@ -10835,6 +10848,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->cancel( @@ -10912,6 +10927,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $deletedMessageBatch = $client->messages->batches->delete( @@ -10977,6 +10994,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatchIndividualResponse = $client->messages->batches->resultsStream( diff --git a/content/en/api/php/messages/batches.md b/content/en/api/php/messages/batches.md index 0a98b50d31..bbd81f8a57 100644 --- a/content/en/api/php/messages/batches.md +++ b/content/en/api/php/messages/batches.md @@ -25,7 +25,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -94,6 +94,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->create( @@ -278,6 +281,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->retrieve( @@ -405,6 +410,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->messages->batches->list( @@ -532,6 +539,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->cancel( @@ -609,6 +618,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $deletedMessageBatch = $client->messages->batches->delete( @@ -674,6 +685,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatchIndividualResponse = $client->messages->batches->resultsStream( diff --git a/content/en/api/php/messages/batches/cancel.md b/content/en/api/php/messages/batches/cancel.md index 536f54f740..ca93df2ac1 100644 --- a/content/en/api/php/messages/batches/cancel.md +++ b/content/en/api/php/messages/batches/cancel.md @@ -88,6 +88,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->cancel( diff --git a/content/en/api/php/messages/batches/create.md b/content/en/api/php/messages/batches/create.md index 58ebed2741..403045790e 100644 --- a/content/en/api/php/messages/batches/create.md +++ b/content/en/api/php/messages/batches/create.md @@ -23,7 +23,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspaceID?:optional string` (header parameter) @@ -92,6 +92,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->create( diff --git a/content/en/api/php/messages/batches/delete.md b/content/en/api/php/messages/batches/delete.md index b9cba9f529..dfea83c310 100644 --- a/content/en/api/php/messages/batches/delete.md +++ b/content/en/api/php/messages/batches/delete.md @@ -48,6 +48,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $deletedMessageBatch = $client->messages->batches->delete( diff --git a/content/en/api/php/messages/batches/list.md b/content/en/api/php/messages/batches/list.md index 3762c5ab7f..47acc415de 100644 --- a/content/en/api/php/messages/batches/list.md +++ b/content/en/api/php/messages/batches/list.md @@ -98,6 +98,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->messages->batches->list( diff --git a/content/en/api/php/messages/batches/results.md b/content/en/api/php/messages/batches/results.md index a5e0b0b81e..217d55b653 100644 --- a/content/en/api/php/messages/batches/results.md +++ b/content/en/api/php/messages/batches/results.md @@ -50,6 +50,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatchIndividualResponse = $client->messages->batches->resultsStream( diff --git a/content/en/api/php/messages/batches/retrieve.md b/content/en/api/php/messages/batches/retrieve.md index 455cfbcd3b..1c6454ba20 100644 --- a/content/en/api/php/messages/batches/retrieve.md +++ b/content/en/api/php/messages/batches/retrieve.md @@ -86,6 +86,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageBatch = $client->messages->batches->retrieve( diff --git a/content/en/api/php/messages/count_tokens.md b/content/en/api/php/messages/count_tokens.md index 614d43e5fa..bb65f790a4 100644 --- a/content/en/api/php/messages/count_tokens.md +++ b/content/en/api/php/messages/count_tokens.md @@ -172,7 +172,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -195,6 +195,9 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $messageTokensCount = $client->messages->countTokens( diff --git a/content/en/api/php/messages/create.md b/content/en/api/php/messages/create.md index 015760ce0d..804a166b23 100644 --- a/content/en/api/php/messages/create.md +++ b/content/en/api/php/messages/create.md @@ -218,7 +218,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `userProfileID?:optional string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspaceID?:optional string` (header parameter) @@ -422,6 +422,9 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Messages\Model; + $client = new Client(apiKey: 'my-anthropic-api-key'); $message = $client->messages->create( diff --git a/content/en/api/php/models.md b/content/en/api/php/models.md index fd3e388b2a..811220e5ad 100644 --- a/content/en/api/php/models.md +++ b/content/en/api/php/models.md @@ -110,6 +110,9 @@ The Models API response can be used to determine which models are available for require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->models->list( @@ -313,6 +316,9 @@ The Models API response can be used to determine information about a specific mo require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $modelInfo = $client->models->retrieve( diff --git a/content/en/api/php/models/list.md b/content/en/api/php/models/list.md index 8624800368..29e4683903 100644 --- a/content/en/api/php/models/list.md +++ b/content/en/api/php/models/list.md @@ -108,6 +108,9 @@ The Models API response can be used to determine which models are available for require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $page = $client->models->list( diff --git a/content/en/api/php/models/retrieve.md b/content/en/api/php/models/retrieve.md index 22ecdcc39e..96be66f254 100644 --- a/content/en/api/php/models/retrieve.md +++ b/content/en/api/php/models/retrieve.md @@ -92,6 +92,9 @@ The Models API response can be used to determine information about a specific mo require_once dirname(__DIR__) . '/vendor/autoload.php'; +use Anthropic\Client; +use Anthropic\Beta\AnthropicBeta; + $client = new Client(apiKey: 'my-anthropic-api-key'); $modelInfo = $client->models->retrieve( diff --git a/content/en/api/python/beta.md b/content/en/api/python/beta.md index eb66519ca0..e4f0c38ad0 100644 --- a/content/en/api/python/beta.md +++ b/content/en/api/python/beta.md @@ -9,7 +9,7 @@ url: https://platform.claude.com/docs/en/api/python/beta ### Anthropic Beta -- `type AnthropicBetaParam = Union[str, Literal["message-batches-2024-09-24", "prompt-caching-2024-07-31", "computer-use-2024-10-22", 48 more]]` +- `type AnthropicBetaParam = Union[str, Literal["message-batches-2024-09-24", "prompt-caching-2024-07-31", "computer-use-2024-10-22", 49 more]]` - `str` @@ -115,6 +115,8 @@ url: https://platform.claude.com/docs/en/api/python/beta - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Beta API Error - `class BetaAPIError` @@ -587,6 +589,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1058,6 +1062,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5048,8 +5054,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -5098,7 +5118,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -5106,6 +5130,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -5585,9 +5615,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -8759,6 +8791,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -8769,6 +8805,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -8779,6 +8819,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -8789,6 +8833,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -8799,12 +8847,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -13852,9 +13912,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -17581,8 +17643,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -17631,7 +17707,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -17639,6 +17719,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -18118,9 +18204,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) @@ -18416,6 +18504,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18708,6 +18798,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18996,6 +19088,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19278,6 +19372,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19452,6 +19548,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22644,6 +22742,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -22654,6 +22756,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -22664,6 +22770,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -22674,6 +22784,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -22684,12 +22798,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -24508,6 +24634,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25566,6 +25694,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26611,6 +26741,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28596,6 +28728,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29632,6 +29766,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30679,6 +30815,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31834,6 +31972,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32174,6 +32314,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32504,6 +32646,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32946,6 +33090,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33272,6 +33418,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33440,6 +33588,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33772,6 +33922,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34037,6 +34189,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `anthropic_worker_id: Optional[str]` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -34289,6 +34443,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -34546,6 +34702,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -34744,6 +34902,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35007,6 +35167,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -35265,6 +35427,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35517,6 +35681,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -36826,6 +36992,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -38405,6 +38573,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -39895,6 +40065,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -41960,6 +42132,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43445,6 +43619,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43607,6 +43783,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -45220,6 +45398,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -48684,6 +48864,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -49312,6 +49494,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52463,6 +52647,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52655,6 +52841,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52937,6 +53125,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53214,6 +53404,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53486,6 +53678,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53675,6 +53869,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54757,6 +54953,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -55834,6 +56032,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -56919,6 +57119,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -60032,6 +60234,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63568,6 +63772,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64351,6 +64557,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65087,6 +65295,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66219,6 +66429,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66951,6 +67163,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67683,6 +67897,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68077,6 +68293,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68809,6 +69027,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69593,6 +69813,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69991,6 +70213,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70393,6 +70617,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70602,6 +70828,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70805,6 +71033,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71014,6 +71244,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71213,6 +71445,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71379,6 +71613,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71756,6 +71992,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72097,6 +72335,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72429,6 +72669,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72896,6 +73138,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73223,6 +73467,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73394,6 +73640,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73721,6 +73969,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73880,31 +74130,37 @@ print(beta_managed_agents_credential_validation.credential_id) ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters - `name: str` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: Optional[str]` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: Optional[Dict[str, str]]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -74014,6 +74270,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74030,27 +74288,33 @@ Create a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -74058,7 +74322,9 @@ Create a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74096,25 +74362,25 @@ print(beta_managed_agents_memory_store.id) } ``` -### List memory stores +### List Memory Stores `beta.memory_stores.list(**kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryStore]` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters - `created_at_gte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `created_at_lte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -74130,7 +74396,7 @@ List memory stores - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -74240,6 +74506,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74256,27 +74524,33 @@ List memory stores - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -74284,7 +74558,9 @@ List memory stores - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74324,19 +74600,19 @@ print(page.id) } ``` -### Retrieve a memory store +### Retrieve a Memory Store `beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -74446,6 +74722,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74462,27 +74740,33 @@ Retrieve a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -74490,7 +74774,9 @@ Retrieve a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74528,33 +74814,39 @@ print(beta_managed_agents_memory_store.id) } ``` -### Update a memory store +### Update a Memory Store `beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description: Optional[str]` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: Optional[Dict[str, Optional[str]]]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: Optional[str]` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -74666,6 +74958,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74682,27 +74976,33 @@ Update a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -74710,7 +75010,9 @@ Update a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74748,19 +75050,21 @@ print(beta_managed_agents_memory_store.id) } ``` -### Delete a memory store +### Delete a Memory Store `beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -74870,6 +75174,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74914,19 +75220,21 @@ print(beta_managed_agents_deleted_memory_store.id) } ``` -### Archive a memory store +### Archive a Memory Store `beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -75036,6 +75344,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75052,27 +75362,33 @@ Archive a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -75080,7 +75396,9 @@ Archive a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -75120,13 +75438,13 @@ print(beta_managed_agents_memory_store.id) ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -75136,17 +75454,23 @@ Create a memory - `content: Optional[str]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: str` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75264,6 +75588,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75274,13 +75600,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -75288,7 +75620,7 @@ Create a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75304,7 +75636,11 @@ Create a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -75312,13 +75648,17 @@ Create a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75356,13 +75696,13 @@ print(beta_managed_agents_memory.id) } ``` -### List memories +### List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryListItem]` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -75372,27 +75712,35 @@ List memories - `depth: Optional[int]` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Optional[int]` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: Optional[str]` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -75510,6 +75858,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75520,17 +75870,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = ...` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -75538,7 +75894,7 @@ List memories - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75554,7 +75910,11 @@ List memories - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -75562,17 +75922,23 @@ List memories - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` @@ -75620,13 +75986,13 @@ print(page) } ``` -### Retrieve a memory +### Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -75640,7 +76006,9 @@ Retrieve a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75758,6 +76126,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75768,13 +76138,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -75782,7 +76158,7 @@ Retrieve a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75798,7 +76174,11 @@ Retrieve a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -75806,13 +76186,17 @@ Retrieve a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75849,13 +76233,13 @@ print(beta_managed_agents_memory.id) } ``` -### Update a memory +### Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -75869,7 +76253,9 @@ Update a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75885,13 +76271,17 @@ Update a memory - `path: Optional[str]` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: Optional[BetaManagedAgentsPreconditionParam]` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: Literal["content_sha256"]` @@ -76007,6 +76397,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76017,13 +76409,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -76031,7 +76429,7 @@ Update a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -76047,7 +76445,11 @@ Update a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -76055,13 +76457,17 @@ Update a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -76098,13 +76504,13 @@ print(beta_managed_agents_memory.id) } ``` -### Delete a memory +### Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -76230,6 +76636,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76240,7 +76648,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about how long versions are kept. - `type: Literal["memory_deleted"]` @@ -76277,13 +76689,13 @@ print(beta_managed_agents_deleted_memory.id) ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryVersion]` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -76309,7 +76721,9 @@ List memory versions - `limit: Optional[int]` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -76317,7 +76731,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: Optional[BetaManagedAgentsMemoryVersionOperation]` (query parameter) @@ -76349,7 +76763,9 @@ List memory versions - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76467,6 +76883,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76477,7 +76895,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -76493,7 +76917,9 @@ List memory versions - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -76531,7 +76957,11 @@ List memory versions - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -76587,7 +77017,11 @@ List memory versions - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -76644,13 +77078,13 @@ print(page.id) } ``` -### Retrieve a memory version +### Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -76664,7 +77098,9 @@ Retrieve a memory version - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76782,6 +77218,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76792,7 +77230,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -76808,7 +77252,9 @@ Retrieve a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -76846,7 +77292,11 @@ Retrieve a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -76902,7 +77352,11 @@ Retrieve a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -76954,13 +77408,13 @@ print(beta_managed_agents_memory_version.id) } ``` -### Redact a memory version +### Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -77080,6 +77534,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77090,7 +77546,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -77106,7 +77568,9 @@ Redact a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -77144,7 +77608,11 @@ Redact a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -77200,7 +77668,11 @@ Redact a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -77384,6 +77856,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77628,6 +78102,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77860,6 +78336,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78011,6 +78489,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78239,6 +78719,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78419,6 +78901,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78669,6 +79153,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78906,6 +79392,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79139,6 +79627,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79321,6 +79811,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79536,6 +80028,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79750,6 +80244,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79910,6 +80406,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80119,6 +80617,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80195,13 +80695,13 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -80261,7 +80761,7 @@ Create User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -80277,7 +80777,7 @@ Create User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -80383,6 +80883,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80415,6 +80917,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80431,13 +80937,13 @@ Create User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -80449,11 +80955,11 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -80507,14 +81013,10 @@ Create User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```python @@ -80537,6 +81039,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80548,15 +81051,14 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -80608,7 +81110,7 @@ List User Profiles - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -80714,6 +81216,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80746,6 +81250,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80762,13 +81270,13 @@ List User Profiles - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -80780,11 +81288,11 @@ List User Profiles - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -80838,14 +81346,10 @@ List User Profiles - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```python @@ -80871,6 +81375,7 @@ print(page.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80882,15 +81387,14 @@ print(page.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -80913,7 +81417,7 @@ Get User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -81019,6 +81523,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81051,6 +81557,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81067,13 +81577,13 @@ Get User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81085,11 +81595,11 @@ Get User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -81143,14 +81653,10 @@ Get User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```python @@ -81175,6 +81681,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81186,15 +81693,14 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -81226,13 +81732,13 @@ Update User Profile - `external_id: Optional[str]` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -81292,7 +81798,7 @@ Update User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -81308,7 +81814,7 @@ Update User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -81414,6 +81920,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81446,6 +81954,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81462,13 +81974,13 @@ Update User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81480,11 +81992,11 @@ Update User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -81538,14 +82050,10 @@ Update User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```python @@ -81570,6 +82078,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81581,15 +82090,182 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +### Delete User Profile + +`beta.user_profiles.delete(user_profile_id, **kwargs) -> BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +#### Parameters + +- `user_profile_id: str` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `workspace_id: Optional[str]` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaDeletedUserProfile` + + - `type: Literal["user_profile_deleted"]` + + Object type. Always `user_profile_deleted`. + + - `id: str` + + Identifier of the deleted user profile, prefixed `uprof_`. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_deleted_user_profile = client.beta.user_profiles.delete( + user_profile_id="uprof_011CZkZCu8hGbp5mYRQgUmz9", +) +print(beta_deleted_user_profile.id) +``` + +##### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -81609,7 +82285,7 @@ Create Enrollment URL - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -81715,6 +82391,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81725,7 +82403,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: Literal["enrollment_url"]` @@ -81768,6 +82446,192 @@ print(beta_user_profile_enrollment_url.expires_at) } ``` +## Beta › User Profiles › Action URLs + +### Create Action URL + +`beta.user_profiles.action_urls.create(user_profile_id, **kwargs) -> BetaUserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `user_profile_id: str` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `action: BetaUserProfileEnrollEndUserActionParam` + + The action that the person who opens the URL takes. + + - `type: Literal["enroll_end_user"]` + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `workspace_id: Optional[str]` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaUserProfileActionURL` + + A URL to give to the person who takes the requested action. + + - `type: Literal["user_profile_action_url"]` + + Object type. Always `user_profile_action_url`. + + - `expires_at: datetime` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: str` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_user_profile_action_url = client.beta.user_profiles.action_urls.create( + user_profile_id="uprof_011CZkZCu8hGbp5mYRQgUmz9", + action={"type": "enroll_end_user"}, +) +print(beta_user_profile_action_url.expires_at) +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + ## Beta › Dreams ### Create a Dream @@ -81994,6 +82858,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82475,6 +83341,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82896,6 +83764,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83313,6 +84183,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83730,6 +84602,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84149,6 +85023,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84339,6 +85215,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84541,6 +85419,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84737,6 +85617,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84929,6 +85811,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85108,6 +85992,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85289,6 +86175,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85493,6 +86381,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85707,6 +86597,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85916,6 +86808,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -87754,6 +88648,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationIssuer` @@ -88079,6 +88975,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationIssuer` @@ -88393,6 +89291,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationIssuer` @@ -88786,6 +89686,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationIssuer` @@ -89101,6 +90003,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationIssuer` @@ -89503,6 +90407,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRule` @@ -89845,6 +90751,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRule` @@ -90165,6 +91073,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRule` @@ -90573,6 +91483,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRule` @@ -90897,6 +91809,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRule` @@ -91228,6 +92142,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRuleWorkspace` @@ -91431,6 +92347,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaFederationRuleWorkspace` @@ -91630,6 +92548,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class WorkspaceRemoveResponse` @@ -92324,6 +93244,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccount` @@ -92562,6 +93484,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccount` @@ -92788,6 +93712,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccount` @@ -93029,232 +93955,236 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaServiceAccount` - - Named non-human identity within the caller's organization. - - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). - - - `type: Literal["service_account"]` - - default: service_account - - - `id: str` - - Tagged ID of the service account. - - - `archived_at: Optional[datetime]` - - If set, this service account is archived. - - format: date-time - - - `archived_by_actor_id: Optional[str]` - - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. - - - `created_at: datetime` - - When this service account was created. - - format: date-time - - - `created_by_actor_id: Optional[str]` - - Tagged ID (`user_`/`svac_`) of the actor that created this service account. - - - `description: Optional[str]` - - Optional free-text description. - - - `name: str` - - Admin-chosen slug identifier. - - - `organization_role: Literal["admin", "developer"]` - - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. - - - `"admin"` - - - `"developer"` - - - `updated_at: datetime` - - When this service account was last updated. - - format: date-time - - - `updated_by_actor_id: Optional[str]` - - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. - -#### Example - -```python -import os -from anthropic import Anthropic - -client = Anthropic( - api_key=os.environ.get( - "ANTHROPIC_API_KEY" - ), # This is the default and can be omitted -) -beta_service_account = client.beta.organization.service_accounts.update( - service_account_id="service_account_id", -) -print(beta_service_account.id) -``` - -##### Response (200) - -```json -{ - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" -} -``` - -### Archive Service Account - -`beta.organization.service_accounts.archive(service_account_id, **kwargs) -> BetaServiceAccount` - -**POST** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=python). - -Archive a service account. - -Idempotent; re-archiving returns the service account with its original -`archived_at`. Rejected with 400 if any live (non-archived) federation -rule still targets this service account, same as issuer archival; archive -those rules first or change their target to another service account. - -#### Parameters - -- `service_account_id: str` (path parameter) - - ID of the service account to archive. - -- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - - Optional header to specify the beta version(s) you want to use. - - - `str` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccount` + + Named non-human identity within the caller's organization. + + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). + + - `type: Literal["service_account"]` + + default: service_account + + - `id: str` + + Tagged ID of the service account. + + - `archived_at: Optional[datetime]` + + If set, this service account is archived. + + format: date-time + + - `archived_by_actor_id: Optional[str]` + + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + + - `created_at: datetime` + + When this service account was created. + + format: date-time + + - `created_by_actor_id: Optional[str]` + + Tagged ID (`user_`/`svac_`) of the actor that created this service account. + + - `description: Optional[str]` + + Optional free-text description. + + - `name: str` + + Admin-chosen slug identifier. + + - `organization_role: Literal["admin", "developer"]` + + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + + - `"admin"` + + - `"developer"` + + - `updated_at: datetime` + + When this service account was last updated. + + format: date-time + + - `updated_by_actor_id: Optional[str]` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_service_account = client.beta.organization.service_accounts.update( + service_account_id="service_account_id", +) +print(beta_service_account.id) +``` + +##### Response (200) + +```json +{ + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" +} +``` + +### Archive Service Account + +`beta.organization.service_accounts.archive(service_account_id, **kwargs) -> BetaServiceAccount` + +**POST** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=python). + +Archive a service account. + +Idempotent; re-archiving returns the service account with its original +`archived_at`. Rejected with 400 if any live (non-archived) federation +rule still targets this service account, same as issuer archival; archive +those rules first or change their target to another service account. + +#### Parameters + +- `service_account_id: str` (path parameter) + + ID of the service account to archive. + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` #### Returns @@ -93503,6 +94433,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93723,6 +94655,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -93933,6 +94867,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class WorkspaceRemoveResponse` @@ -94729,156 +95665,158 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaWorkspace` - - - `type: Literal["workspace"]` - - Object type. - - For Workspaces, this is always `"workspace"`. - - default: workspace - - - `id: str` - - ID of the Workspace. - - - `archived_at: Optional[datetime]` - - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. - - format: date-time - - - `compartment_id: str` - - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. - - - `created_at: datetime` - - RFC 3339 datetime string indicating when the Workspace was created. - - format: date-time - - - `data_residency: BetaDataResidency` - - Data residency configuration. - - - `allowed_inference_geos: Union[List[BetaAllowedInferenceGeo], Literal["unrestricted"]]` - - Permitted inference geo values. 'unrestricted' means all geos are allowed. - - - `List[BetaAllowedInferenceGeo]` - - - `"global"` - - - `"us"` - - - `"unrestricted"` - - - `default_inference_geo: Literal["global", "us"]` - - Default inference geo applied when requests omit the parameter. - - - `"global"` - - - `"us"` - - - `workspace_geo: Literal["us"]` - - Geographic region for workspace data storage. Immutable after creation. - - - `display_color: str` - - Hex color code representing the Workspace in the Anthropic Console. - - - `external_key_id: Optional[str]` - - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. - - - `name: str` - - Name of the Workspace. - - - `tags: Dict[str, str]` - - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. - -#### Example - -```python -import os -from anthropic import Anthropic - -client = Anthropic( - api_key=os.environ.get( - "ANTHROPIC_API_KEY" - ), # This is the default and can be omitted -) -beta_workspace = client.beta.organization.workspaces.create( - name="x", -) -print(beta_workspace.id) -``` - -##### Response (200) - -```json -{ - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", - "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" - }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" - }, - "type": "workspace" -} -``` - -### Get Workspace - -`beta.organization.workspaces.retrieve(workspace_id) -> BetaWorkspace` - -**GET** `/v1/organizations/workspaces/{workspace_id}` - -Get Workspace - -#### Parameters - -- `workspace_id: str` (path parameter) - - ID of the Workspace. + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaWorkspace` + + - `type: Literal["workspace"]` + + Object type. + + For Workspaces, this is always `"workspace"`. + + default: workspace + + - `id: str` + + ID of the Workspace. + + - `archived_at: Optional[datetime]` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: str` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: datetime` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Union[List[BetaAllowedInferenceGeo], Literal["unrestricted"]]` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `List[BetaAllowedInferenceGeo]` + + - `"global"` + + - `"us"` + + - `"unrestricted"` + + - `default_inference_geo: Literal["global", "us"]` + + Default inference geo applied when requests omit the parameter. + + - `"global"` + + - `"us"` + + - `workspace_geo: Literal["us"]` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: str` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: Optional[str]` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: str` + + Name of the Workspace. + + - `tags: Dict[str, str]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_workspace = client.beta.organization.workspaces.create( + name="x", +) +print(beta_workspace.id) +``` + +##### Response (200) + +```json +{ + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" +} +``` + +### Get Workspace + +`beta.organization.workspaces.retrieve(workspace_id) -> BetaWorkspace` + +**GET** `/v1/organizations/workspaces/{workspace_id}` + +Get Workspace + +#### Parameters + +- `workspace_id: str` (path parameter) + + ID of the Workspace. #### Returns @@ -95637,6 +96575,277 @@ print(page.rate_limit_id) } ``` +### Set Workspace Rate Limits + +`beta.organization.workspaces.rate_limits.update(rate_limit_id, **kwargs) -> BetaWorkspaceRateLimit` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `workspace_id: str` (path parameter) + + The ID of the workspace. + +- `rate_limit_id: str` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `limits: Iterable[BetaWorkspaceRateLimitUpdateValueParam]` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: Optional[int]` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `type: Literal["workspace_rate_limit"]` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: Group` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `type: Literal["model_group"]` + + Always `model_group`: a family of models. + + default: model_group + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: str` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `type: Literal["batch"]` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `type: Literal["token_count"]` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `type: Literal["files"]` + + Always `files`: the Files API. + + default: files + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `type: Literal["skills"]` + + Always `skills`: the Skills API. + + default: skills + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `type: Literal["web_search"]` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: str` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: List[BetaWorkspaceRateLimitValue]` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: str` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: Optional[int]` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: Source` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `class BetaWorkspaceRateLimitWorkspaceSource` + + - `type: Literal["workspace"]` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `class BetaWorkspaceRateLimitOrganizationSource` + + - `type: Literal["organization"]` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: int` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: Optional[List[str]]` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: str` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: str` + + ID of the Workspace this entry applies to. + + - `group_type: Literal["batch", "files", "model_group", 3 more]` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_workspace_rate_limit = client.beta.organization.workspaces.rate_limits.update( + rate_limit_id="rate_limit_id", + workspace_id="workspace_id", + limits=[ + { + "type": "fast_itpmca", + "value": 0, + } + ], +) +print(beta_workspace_rate_limit.rate_limit_id) +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -96219,6 +97428,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -96442,6 +97653,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -96649,6 +97862,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -96867,6 +98082,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaServiceAccountWorkspaceMember` @@ -97073,6 +98290,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class ServiceAccountRemoveResponse` @@ -97181,7 +98400,7 @@ the remaining entries. - `id: str` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: Group` @@ -99574,7 +100793,7 @@ print(page.rbac_group_id) ### Get Token Usage Over Time -`beta.organization.analytics.usage_report.list(**kwargs) -> SyncPageCursor[BetaAnalyticsUsageReportTimeBucket]` +`beta.organization.analytics.usage_report.list(**kwargs) -> SyncReportPageCursor[BetaAnalyticsUsageReportTimeBucket]` **GET** `/v1/organizations/analytics/usage_report` @@ -99927,7 +101146,7 @@ print(page.ending_at) ### Get Per-User Token Usage -`beta.organization.analytics.user_usage_report.list(**kwargs) -> SyncPageCursor[BetaAnalyticsUsageUsersItem]` +`beta.organization.analytics.user_usage_report.list(**kwargs) -> SyncReportPageCursor[BetaAnalyticsUsageUsersItem]` **GET** `/v1/organizations/analytics/user_usage_report` @@ -100340,7 +101559,7 @@ print(page.claude_tag_user_id) ### Get Cost Over Time -`beta.organization.analytics.cost_report.list(**kwargs) -> SyncPageCursor[BetaAnalyticsCostReportTimeBucket]` +`beta.organization.analytics.cost_report.list(**kwargs) -> SyncReportPageCursor[BetaAnalyticsCostReportTimeBucket]` **GET** `/v1/organizations/analytics/cost_report` @@ -100694,7 +101913,7 @@ print(page.ending_at) ### Get Per-User Cost -`beta.organization.analytics.user_cost_report.list(**kwargs) -> SyncPageCursor[BetaAnalyticsCostUsersItem]` +`beta.organization.analytics.user_cost_report.list(**kwargs) -> SyncReportPageCursor[BetaAnalyticsCostUsersItem]` **GET** `/v1/organizations/analytics/user_cost_report` @@ -101273,6 +102492,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSpendLimit` @@ -101823,6 +103044,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSpendLimit` @@ -104843,6 +106066,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPlugin` @@ -105234,6 +106459,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPlugin` @@ -105645,6 +106872,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPlugin` @@ -106093,6 +107322,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPlugin` @@ -106495,6 +107726,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaDeletedPlugin` @@ -106692,6 +107925,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginVersion` @@ -107030,6 +108265,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginVersion` @@ -107360,6 +108597,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginVersion` @@ -107701,6 +108940,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `BinaryResponseContent` @@ -107884,275 +109125,279 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaPluginInstallationSetting` - - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. - - - `type: Literal["plugin_installation_setting"]` - - Always `plugin_installation_setting`. - - default: plugin_installation_setting - - - `created_at: datetime` - - When the target was first given a setting for this Plugin. - - format: date-time - - - `installation_preference: Literal["auto_install", "available", "not_available", "required"]` - - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` - - - `plugin_id: str` - - The Plugin's ID. - - - `target: Target` - - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - - - `class BetaPluginTargetOrganization` - - - `type: Literal["organization"]` - - Every member of the organization. - - default: organization - - - `class BetaPluginTargetRBACGroup` - - - `type: Literal["rbac_group"]` - - An RBAC Group. - - default: rbac_group - - - `rbac_group_id: str` - - The RBAC Group's ID. - - - `class BetaPluginTargetOrganizationMember` - - - `type: Literal["organization_member"]` - - One member of the organization. - - default: organization_member - - - `user_id: str` - - The member's User ID. - - - `updated_at: datetime` - - When its setting last changed. - - format: date-time - -#### Example - -```python -import os -from anthropic import Anthropic - -client = Anthropic( - api_key=os.environ.get( - "ANTHROPIC_API_KEY" - ), # This is the default and can be omitted -) -page = client.beta.organization.plugins.installation_settings.list( - plugin_id="plugin_id", -) -page = page.data[0] -print(page.plugin_id) -``` - -##### Response (200) - -```json -{ - "data": [ - { - "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` - -### Set Plugin Installation Setting - -`beta.organization.plugins.installation_settings.set(target, **kwargs) -> BetaPluginInstallationSetting` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. - -Writing the value a target already holds of its own changes nothing. - -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. - -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `plugin_id: str` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - -- `target: str` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - -- `installation_preference: Literal["auto_install", "available", "not_available", "required"]` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` - -- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `str` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaPluginInstallationSetting` + + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. + + - `type: Literal["plugin_installation_setting"]` + + Always `plugin_installation_setting`. + + default: plugin_installation_setting + + - `created_at: datetime` + + When the target was first given a setting for this Plugin. + + format: date-time + + - `installation_preference: Literal["auto_install", "available", "not_available", "required"]` + + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` + + - `plugin_id: str` + + The Plugin's ID. + + - `target: Target` + + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + + - `class BetaPluginTargetOrganization` + + - `type: Literal["organization"]` + + Every member of the organization. + + default: organization + + - `class BetaPluginTargetRBACGroup` + + - `type: Literal["rbac_group"]` + + An RBAC Group. + + default: rbac_group + + - `rbac_group_id: str` + + The RBAC Group's ID. + + - `class BetaPluginTargetOrganizationMember` + + - `type: Literal["organization_member"]` + + One member of the organization. + + default: organization_member + + - `user_id: str` + + The member's User ID. + + - `updated_at: datetime` + + When its setting last changed. + + format: date-time + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +page = client.beta.organization.plugins.installation_settings.list( + plugin_id="plugin_id", +) +page = page.data[0] +print(page.plugin_id) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` + +### Set Plugin Installation Setting + +`beta.organization.plugins.installation_settings.set(target, **kwargs) -> BetaPluginInstallationSetting` + +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` + +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. + +Writing the value a target already holds of its own changes nothing. + +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `plugin_id: str` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + +- `target: str` (path parameter) + + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. + +- `installation_preference: Literal["auto_install", "available", "not_available", "required"]` + + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` #### Returns @@ -108414,6 +109659,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaDeletedPluginInstallationSetting` @@ -108662,6 +109909,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginShare` @@ -108928,6 +110177,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginMarketplace` @@ -109198,6 +110449,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginMarketplace` @@ -109477,6 +110730,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaPluginMarketplace` @@ -109763,272 +111018,276 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaPluginMarketplaceValidationReport` - - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. - - - `type: Literal["plugin_marketplace_validation_report"]` - - Always `plugin_marketplace_validation_report`. - - default: plugin_marketplace_validation_report - - - `commit_sha: Optional[str]` - - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - - - `manifest_error: Optional[str]` - - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - - - `manifest_error_code: Optional[str]` - - A stable identifier for `manifest_error`; null when that is. - - - `plugin_errors: List[BetaPluginMarketplaceValidationPluginError]` - - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - - `error: str` - - Why the plugin would be skipped by a synchronization. - - - `error_code: str` - - A stable identifier for the reason — the value to branch on. - - - `name: str` - - The plugin's name, as its entry in marketplace.json declares it. - - - `plugin_warnings: List[BetaPluginMarketplaceValidationPluginWarnings]` - - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - - - `name: str` - - The plugin's name, as its entry in marketplace.json declares it. - - - `warnings: List[BetaPluginMarketplaceValidationPluginWarning]` - - The parts of the plugin a synchronization would leave out. - - - `error_code: str` - - A stable identifier for the kind of warning. - - - `message: str` - - What would be left out, and why. - - - `ref: Optional[str]` - - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. - - - `total_plugin_count: int` - - How many plugins marketplace.json declares; 0 when it could not be read. - - - `valid: bool` - - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. - -#### Example - -```python -import os -from anthropic import Anthropic - -client = Anthropic( - api_key=os.environ.get( - "ANTHROPIC_API_KEY" - ), # This is the default and can be omitted -) -beta_plugin_marketplace_validation_report = ( - client.beta.organization.plugin_marketplaces.validate_repository( - repository_url="https://github.com/example-org/example-marketplace", - ) -) -print(beta_plugin_marketplace_validation_report.valid) -``` - -##### Response (200) - -```json -{ - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ - { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] - } - ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false -} -``` - -### Validate Plugin Marketplace Archive - -`beta.organization.plugin_marketplaces.validate_archive(**kwargs) -> BetaPluginMarketplaceValidationReport` - -**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - -Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace -directory, would synchronize into claude.ai, without connecting or storing it. - -To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. - -Nothing is recorded on the Compliance API activity feed. - -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=python#validate-marketplace-content) -in the Plugins API guide. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `archive: FileTypes` - - A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. - - format: binary - -- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `str` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaPluginMarketplaceValidationReport` + + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. + + - `type: Literal["plugin_marketplace_validation_report"]` + + Always `plugin_marketplace_validation_report`. + + default: plugin_marketplace_validation_report + + - `commit_sha: Optional[str]` + + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + + - `manifest_error: Optional[str]` + + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + + - `manifest_error_code: Optional[str]` + + A stable identifier for `manifest_error`; null when that is. + + - `plugin_errors: List[BetaPluginMarketplaceValidationPluginError]` + + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + + - `error: str` + + Why the plugin would be skipped by a synchronization. + + - `error_code: str` + + A stable identifier for the reason — the value to branch on. + + - `name: str` + + The plugin's name, as its entry in marketplace.json declares it. + + - `plugin_warnings: List[BetaPluginMarketplaceValidationPluginWarnings]` + + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + + - `name: str` + + The plugin's name, as its entry in marketplace.json declares it. + + - `warnings: List[BetaPluginMarketplaceValidationPluginWarning]` + + The parts of the plugin a synchronization would leave out. + + - `error_code: str` + + A stable identifier for the kind of warning. + + - `message: str` + + What would be left out, and why. + + - `ref: Optional[str]` + + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + + - `total_plugin_count: int` + + How many plugins marketplace.json declares; 0 when it could not be read. + + - `valid: bool` + + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_plugin_marketplace_validation_report = ( + client.beta.organization.plugin_marketplaces.validate_repository( + repository_url="https://github.com/example-org/example-marketplace", + ) +) +print(beta_plugin_marketplace_validation_report.valid) +``` + +##### Response (200) + +```json +{ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ + { + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" + } + ], + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false +} +``` + +### Validate Plugin Marketplace Archive + +`beta.organization.plugin_marketplaces.validate_archive(**kwargs) -> BetaPluginMarketplaceValidationReport` + +**POST** `/v1/organizations/plugin_marketplaces/validate_archive` + +Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace +directory, would synchronize into claude.ai, without connecting or storing it. + +To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. + +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. + +Nothing is recorded on the Compliance API activity feed. + +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=python#validate-marketplace-content) +in the Plugins API guide. + +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `archive: FileTypes` + + A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. + + format: binary + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` #### Returns @@ -110388,6 +111647,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaTelemetryDestination` @@ -110745,6 +112006,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaTelemetryDestination` @@ -111093,6 +112356,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaTelemetryDestination` @@ -111573,6 +112838,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaTelemetryDestination` @@ -111919,17 +113186,1245 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaDeletedTelemetryDestination` + + Confirmation that a destination was deleted. + + - `type: Literal["telemetry_destination_deleted"]` + + - `id: str` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_deleted_telemetry_destination = ( + client.beta.organization.telemetry_destinations.delete( + destination_id="destination_id", + ) +) +print(beta_deleted_telemetry_destination.id) +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +`beta.organization.telemetry_destinations.test(destination_id, **kwargs) -> BetaTelemetryDestinationTestResponse` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Parameters + +- `destination_id: str` (path parameter) + + ID of the destination to test (starts with `tdst_`). + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaTelemetryDestinationTestResponse` + + The result of one test span sent to a destination. + + - `type: Literal["telemetry_destination_test"]` + + - `result: BetaTelemetryDestinationTestResult` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `class BetaTelemetryDestinationTestSuccess` + + The destination answered the test span with a 2xx status. + + - `type: Literal["success"]` + + - `class BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `type: Literal["failure"]` + + - `error: str` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_telemetry_destination_test_response = ( + client.beta.organization.telemetry_destinations.test( + destination_id="destination_id", + ) +) +print(beta_telemetry_destination_test_response.result) +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +`beta.organization.telemetry_destinations.workspaces.list(destination_id, **kwargs) -> SyncPageCursor[BetaTelemetryDestinationWorkspace]` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destination_id: str` (path parameter) + + ID of the destination (`tdst_...`). + +- `limit: Optional[int]` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + +- `page: Optional[str]` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `type: Literal["telemetry_destination_workspace"]` + + - `created_at: datetime` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: str` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: str` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +page = client.beta.organization.telemetry_destinations.workspaces.list( + destination_id="destination_id", +) +page = page.data[0] +print(page.telemetry_destination_id) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +`beta.organization.telemetry_destinations.workspaces.add(workspace_id, **kwargs) -> BetaTelemetryDestinationWorkspace` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destination_id: str` (path parameter) + + ID of the destination (`tdst_...`). + +- `workspace_id: str` (path parameter) + + ID of the workspace to add (`wrkspc_...`). + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `type: Literal["telemetry_destination_workspace"]` + + - `created_at: datetime` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: str` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: str` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_telemetry_destination_workspace = ( + client.beta.organization.telemetry_destinations.workspaces.add( + workspace_id="workspace_id", + destination_id="destination_id", + ) +) +print(beta_telemetry_destination_workspace.telemetry_destination_id) +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`beta.organization.telemetry_destinations.workspaces.remove(workspace_id, **kwargs) -> BetaDeletedTelemetryDestinationWorkspace` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destination_id: str` (path parameter) + + ID of the destination (`tdst_...`). + +- `workspace_id: str` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaDeletedTelemetryDestinationWorkspace` + + Confirmation that a workspace was removed from a destination's list. + + - `type: Literal["telemetry_destination_workspace_deleted"]` + + - `telemetry_destination_id: str` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: str` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_deleted_telemetry_destination_workspace = ( + client.beta.organization.telemetry_destinations.workspaces.remove( + workspace_id="workspace_id", + destination_id="destination_id", + ) +) +print(beta_deleted_telemetry_destination_workspace.telemetry_destination_id) +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`beta.organization.webhooks.create(**kwargs) -> BetaNewOrganizationWebhookEndpoint` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `enabled_events: List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + +- `url: str` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + +- `description: Optional[str]` + + Notes about the endpoint. + +- `name: Optional[str]` + + A short label for the endpoint. + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `class BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `id: str` + + ID of the webhook endpoint. + + - `created_at: datetime` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: str` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: str` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: str` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: str` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: datetime` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: str` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_new_organization_webhook_endpoint = client.beta.organization.webhooks.create( + enabled_events=["user_profile.enforcement_action_opened"], + url="x", +) +print(beta_new_organization_webhook_endpoint.id) +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`beta.organization.webhooks.list(**kwargs) -> SyncPage[BetaOrganizationWebhookEndpoint]` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `after_id: Optional[str]` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: Optional[str]` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: Optional[int]` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + default: 0, minimum: 0, maximum: 100 + +- `order: Optional[Literal["asc", "desc"]]` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + #### Returns -- `class BetaDeletedTelemetryDestination` +- `class BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `type: Literal["telemetry_destination_deleted"]` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `id: str` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `created_at: datetime` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: str` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: str` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: str` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: datetime` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: str` + + The HTTPS URL that deliveries are sent to. #### Example @@ -111942,40 +114437,57 @@ client = Anthropic( "ANTHROPIC_API_KEY" ), # This is the default and can be omitted ) -beta_deleted_telemetry_destination = ( - client.beta.organization.telemetry_destinations.delete( - destination_id="destination_id", - ) -) -print(beta_deleted_telemetry_destination.id) +page = client.beta.organization.webhooks.list() +page = page.data[0] +print(page.id) ``` ##### Response (200) ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`beta.organization.telemetry_destinations.test(destination_id, **kwargs) -> BetaTelemetryDestinationTestResponse` +`beta.organization.webhooks.retrieve(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpoint` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: str` (path parameter) +- `webhook_endpoint_id: str` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. + + maxLength: 2048 - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `str` @@ -112081,33 +114593,62 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestinationTestResponse` +- `class BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `type: Literal["telemetry_destination_test"]` + - `id: str` - - `result: BetaTelemetryDestinationTestResult` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `created_at: datetime` - - `class BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `type: Literal["success"]` + - `description: str` - - `class BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `disabled_reason: str` - - `type: Literal["failure"]` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `error: str` + - `enabled_events: List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: str` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: datetime` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: str` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112120,58 +114661,81 @@ client = Anthropic( "ANTHROPIC_API_KEY" ), # This is the default and can be omitted ) -beta_telemetry_destination_test_response = ( - client.beta.organization.telemetry_destinations.test( - destination_id="destination_id", - ) +beta_organization_webhook_endpoint = client.beta.organization.webhooks.retrieve( + webhook_endpoint_id="webhook_endpoint_id", ) -print(beta_telemetry_destination_test_response.result) +print(beta_organization_webhook_endpoint.id) ``` ##### Response (200) ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +`beta.organization.webhooks.update(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpoint` -`beta.organization.telemetry_destinations.workspaces.list(destination_id, **kwargs) -> SyncPageCursor[BetaTelemetryDestinationWorkspace]` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +#### Parameters -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +- `webhook_endpoint_id: str` (path parameter) -#### Parameters + ID of the webhook endpoint. -- `destination_id: str` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `description: Optional[str]` -- `limit: Optional[int]` (query parameter) + Notes about the endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. +- `enabled_events: Optional[List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]]` - format: int32 + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. -- `page: Optional[str]` (query parameter) + - `"user_profile.enforcement_action_opened"` - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `"user_profile.enforcement_action_resolved"` + +- `name: Optional[str]` + + A short label for the endpoint. + +- `state: Optional[Literal["disabled", "enabled"]]` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + +- `url: Optional[str]` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `str` @@ -112277,29 +114841,62 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestinationWorkspace` +- `class BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `id: str` - - `type: Literal["telemetry_destination_workspace"]` + ID of the webhook endpoint. - `created_at: datetime` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `telemetry_destination_id: str` + - `description: str` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `workspace_id: str` + - `disabled_reason: str` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: List[Literal["user_profile.enforcement_action_opened", "user_profile.enforcement_action_resolved"]]` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: str` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: datetime` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: str` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112312,56 +114909,51 @@ client = Anthropic( "ANTHROPIC_API_KEY" ), # This is the default and can be omitted ) -page = client.beta.organization.telemetry_destinations.workspaces.list( - destination_id="destination_id", +beta_organization_webhook_endpoint = client.beta.organization.webhooks.update( + webhook_endpoint_id="webhook_endpoint_id", ) -page = page.data[0] -print(page.telemetry_destination_id) +print(beta_organization_webhook_endpoint.id) ``` ##### Response (200) ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace +### Delete Organization Webhook Endpoint -`beta.organization.telemetry_destinations.workspaces.add(workspace_id, **kwargs) -> BetaTelemetryDestinationWorkspace` +`beta.organization.webhooks.delete(webhook_endpoint_id, **kwargs) -> BetaDeletedOrganizationWebhookEndpoint` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Add one workspace to a destination's workspace list. - -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. - -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. +Delete an organization webhook endpoint. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: str` (path parameter) +- `webhook_endpoint_id: str` (path parameter) - ID of the destination (`tdst_...`). + ID of the webhook endpoint. -- `workspace_id: str` (path parameter) - - ID of the workspace to add (`wrkspc_...`). + maxLength: 2048 - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `str` @@ -112467,29 +115059,23 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaTelemetryDestinationWorkspace` + - `"webhooks-2026-10-07"` - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. - - - `type: Literal["telemetry_destination_workspace"]` +#### Returns - - `created_at: datetime` +- `class BetaDeletedOrganizationWebhookEndpoint` - Time the workspace was added to the list. + A deleted organization webhook endpoint. - format: date-time + - `type: Literal["webhook_endpoint_deleted"]` - - `telemetry_destination_id: str` + Always `webhook_endpoint_deleted`. - ID of the telemetry destination (`tdst_...`). + default: webhook_endpoint_deleted - - `workspace_id: str` + - `id: str` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example @@ -112502,53 +115088,43 @@ client = Anthropic( "ANTHROPIC_API_KEY" ), # This is the default and can be omitted ) -beta_telemetry_destination_workspace = ( - client.beta.organization.telemetry_destinations.workspaces.add( - workspace_id="workspace_id", - destination_id="destination_id", - ) +beta_deleted_organization_webhook_endpoint = client.beta.organization.webhooks.delete( + webhook_endpoint_id="webhook_endpoint_id", ) -print(beta_telemetry_destination_workspace.telemetry_destination_id) +print(beta_deleted_organization_webhook_endpoint.id) ``` ##### Response (200) ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace - -`beta.organization.telemetry_destinations.workspaces.remove(workspace_id, **kwargs) -> BetaDeletedTelemetryDestinationWorkspace` +### Regenerate Organization Webhook Endpoint Signing Secret -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +`beta.organization.webhooks.regenerate_signing_secret(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpointSigningSecret` -Remove one workspace from a destination's workspace list. +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=python#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: str` (path parameter) +- `webhook_endpoint_id: str` (path parameter) - ID of the destination (`tdst_...`). - -- `workspace_id: str` (path parameter) + ID of the webhook endpoint. - ID of the workspace to remove (`wrkspc_...`). + maxLength: 2048 - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `str` @@ -112654,21 +115230,17 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaDeletedTelemetryDestinationWorkspace` + - `"webhooks-2026-10-07"` - Confirmation that a workspace was removed from a destination's list. +#### Returns - - `type: Literal["telemetry_destination_workspace_deleted"]` +- `class BetaOrganizationWebhookEndpointSigningSecret` - - `telemetry_destination_id: str` + An organization webhook endpoint's new signing secret. - ID of the telemetry destination (`tdst_...`). - - - `workspace_id: str` + - `signing_secret: str` - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example @@ -112681,21 +115253,18 @@ client = Anthropic( "ANTHROPIC_API_KEY" ), # This is the default and can be omitted ) -beta_deleted_telemetry_destination_workspace = ( - client.beta.organization.telemetry_destinations.workspaces.remove( - workspace_id="workspace_id", - destination_id="destination_id", +beta_organization_webhook_endpoint_signing_secret = ( + client.beta.organization.webhooks.regenerate_signing_secret( + webhook_endpoint_id="webhook_endpoint_id", ) ) -print(beta_deleted_telemetry_destination_workspace.telemetry_destination_id) +print(beta_organization_webhook_endpoint_signing_secret.signing_secret) ``` ##### Response (200) ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/python/beta/agents.md b/content/en/api/python/beta/agents.md index ccf18b49ca..cda907f0cf 100644 --- a/content/en/api/python/beta/agents.md +++ b/content/en/api/python/beta/agents.md @@ -1067,6 +1067,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2125,6 +2127,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3170,6 +3174,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5155,6 +5161,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6191,6 +6199,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13620,6 +13630,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/archive.md b/content/en/api/python/beta/agents/archive.md index 3324fede6d..f722f46d35 100644 --- a/content/en/api/python/beta/agents/archive.md +++ b/content/en/api/python/beta/agents/archive.md @@ -125,6 +125,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/create.md b/content/en/api/python/beta/agents/create.md index fe81cea381..82f5f5987a 100644 --- a/content/en/api/python/beta/agents/create.md +++ b/content/en/api/python/beta/agents/create.md @@ -1065,6 +1065,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/list.md b/content/en/api/python/beta/agents/list.md index 4617879484..860809069a 100644 --- a/content/en/api/python/beta/agents/list.md +++ b/content/en/api/python/beta/agents/list.md @@ -147,6 +147,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/retrieve.md b/content/en/api/python/beta/agents/retrieve.md index e5a0c9c4ab..911fe9eeba 100644 --- a/content/en/api/python/beta/agents/retrieve.md +++ b/content/en/api/python/beta/agents/retrieve.md @@ -131,6 +131,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/update.md b/content/en/api/python/beta/agents/update.md index 55feec112c..150b72e541 100644 --- a/content/en/api/python/beta/agents/update.md +++ b/content/en/api/python/beta/agents/update.md @@ -1075,6 +1075,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/versions.md b/content/en/api/python/beta/agents/versions.md index 591e2d6ee2..b76aafd640 100644 --- a/content/en/api/python/beta/agents/versions.md +++ b/content/en/api/python/beta/agents/versions.md @@ -137,6 +137,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/agents/versions/list.md b/content/en/api/python/beta/agents/versions/list.md index 4103ca4e12..421de336da 100644 --- a/content/en/api/python/beta/agents/versions/list.md +++ b/content/en/api/python/beta/agents/versions/list.md @@ -135,6 +135,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployment_runs.md b/content/en/api/python/beta/deployment_runs.md index f0cd115699..e523e15776 100644 --- a/content/en/api/python/beta/deployment_runs.md +++ b/content/en/api/python/beta/deployment_runs.md @@ -177,6 +177,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -575,6 +577,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployment_runs/list.md b/content/en/api/python/beta/deployment_runs/list.md index b46c197718..2c3c5067d3 100644 --- a/content/en/api/python/beta/deployment_runs/list.md +++ b/content/en/api/python/beta/deployment_runs/list.md @@ -175,6 +175,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployment_runs/retrieve.md b/content/en/api/python/beta/deployment_runs/retrieve.md index 0699477fb6..2b6e58d610 100644 --- a/content/en/api/python/beta/deployment_runs/retrieve.md +++ b/content/en/api/python/beta/deployment_runs/retrieve.md @@ -125,6 +125,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments.md b/content/en/api/python/beta/deployments.md index 4b2c518575..05e20e8919 100644 --- a/content/en/api/python/beta/deployments.md +++ b/content/en/api/python/beta/deployments.md @@ -523,6 +523,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1306,6 +1308,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2042,6 +2046,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3174,6 +3180,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3906,6 +3914,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4638,6 +4648,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5032,6 +5044,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5764,6 +5778,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/archive.md b/content/en/api/python/beta/deployments/archive.md index bfde4a453f..ed84f2482c 100644 --- a/content/en/api/python/beta/deployments/archive.md +++ b/content/en/api/python/beta/deployments/archive.md @@ -125,6 +125,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/create.md b/content/en/api/python/beta/deployments/create.md index 2e3b446e88..0058b9c641 100644 --- a/content/en/api/python/beta/deployments/create.md +++ b/content/en/api/python/beta/deployments/create.md @@ -521,6 +521,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/list.md b/content/en/api/python/beta/deployments/list.md index 50dfdb8134..0df8d1039b 100644 --- a/content/en/api/python/beta/deployments/list.md +++ b/content/en/api/python/beta/deployments/list.md @@ -163,6 +163,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/pause.md b/content/en/api/python/beta/deployments/pause.md index 7fe6b10bb7..96d2b39d89 100644 --- a/content/en/api/python/beta/deployments/pause.md +++ b/content/en/api/python/beta/deployments/pause.md @@ -125,6 +125,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/retrieve.md b/content/en/api/python/beta/deployments/retrieve.md index 9cfbb1a662..06507b62b7 100644 --- a/content/en/api/python/beta/deployments/retrieve.md +++ b/content/en/api/python/beta/deployments/retrieve.md @@ -125,6 +125,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/run.md b/content/en/api/python/beta/deployments/run.md index ced44a2464..92bed96c85 100644 --- a/content/en/api/python/beta/deployments/run.md +++ b/content/en/api/python/beta/deployments/run.md @@ -125,6 +125,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/unpause.md b/content/en/api/python/beta/deployments/unpause.md index d7470c2457..6574390ab4 100644 --- a/content/en/api/python/beta/deployments/unpause.md +++ b/content/en/api/python/beta/deployments/unpause.md @@ -125,6 +125,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/deployments/update.md b/content/en/api/python/beta/deployments/update.md index 738cdccce1..4d27720107 100644 --- a/content/en/api/python/beta/deployments/update.md +++ b/content/en/api/python/beta/deployments/update.md @@ -525,6 +525,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments.md b/content/en/api/python/beta/environments.md index 123b0b4c47..c365f14186 100644 --- a/content/en/api/python/beta/environments.md +++ b/content/en/api/python/beta/environments.md @@ -239,6 +239,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -579,6 +581,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -909,6 +913,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1351,6 +1357,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1677,6 +1685,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1845,6 +1855,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2640,6 +2652,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2905,6 +2919,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `anthropic_worker_id: Optional[str]` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3157,6 +3173,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -3414,6 +3432,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -3612,6 +3632,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3875,6 +3897,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -4133,6 +4157,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4385,6 +4411,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/archive.md b/content/en/api/python/beta/environments/archive.md index 23221b904b..8fa82ccf01 100644 --- a/content/en/api/python/beta/environments/archive.md +++ b/content/en/api/python/beta/environments/archive.md @@ -123,6 +123,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/create.md b/content/en/api/python/beta/environments/create.md index 4d23018872..094ad77c39 100644 --- a/content/en/api/python/beta/environments/create.md +++ b/content/en/api/python/beta/environments/create.md @@ -237,6 +237,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/delete.md b/content/en/api/python/beta/environments/delete.md index 3ade04213c..e1e2c8651d 100644 --- a/content/en/api/python/beta/environments/delete.md +++ b/content/en/api/python/beta/environments/delete.md @@ -123,6 +123,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/list.md b/content/en/api/python/beta/environments/list.md index 62c6cac79a..e3a7d03aea 100644 --- a/content/en/api/python/beta/environments/list.md +++ b/content/en/api/python/beta/environments/list.md @@ -137,6 +137,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/retrieve.md b/content/en/api/python/beta/environments/retrieve.md index 61a310b810..5c74136f1b 100644 --- a/content/en/api/python/beta/environments/retrieve.md +++ b/content/en/api/python/beta/environments/retrieve.md @@ -123,6 +123,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/update.md b/content/en/api/python/beta/environments/update.md index 8eaa2f92cc..6661d33b38 100644 --- a/content/en/api/python/beta/environments/update.md +++ b/content/en/api/python/beta/environments/update.md @@ -239,6 +239,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/work.md b/content/en/api/python/beta/environments/work.md index 1382bb68c9..b2b2073781 100644 --- a/content/en/api/python/beta/environments/work.md +++ b/content/en/api/python/beta/environments/work.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -394,6 +396,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `anthropic_worker_id: Optional[str]` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -646,6 +650,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWork` @@ -903,6 +909,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -1101,6 +1109,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1364,6 +1374,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWork` @@ -1622,6 +1634,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1874,6 +1888,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/work/ack.md b/content/en/api/python/beta/environments/work/ack.md index 0fdb7e0874..7564ac9730 100644 --- a/content/en/api/python/beta/environments/work/ack.md +++ b/content/en/api/python/beta/environments/work/ack.md @@ -127,6 +127,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/python/beta/environments/work/heartbeat.md b/content/en/api/python/beta/environments/work/heartbeat.md index 58554dc6c6..fe7a87dba4 100644 --- a/content/en/api/python/beta/environments/work/heartbeat.md +++ b/content/en/api/python/beta/environments/work/heartbeat.md @@ -135,6 +135,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWorkHeartbeatResponse` diff --git a/content/en/api/python/beta/environments/work/list.md b/content/en/api/python/beta/environments/work/list.md index 9dadfd60c4..73ce16a008 100644 --- a/content/en/api/python/beta/environments/work/list.md +++ b/content/en/api/python/beta/environments/work/list.md @@ -135,6 +135,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/python/beta/environments/work/poll.md b/content/en/api/python/beta/environments/work/poll.md index 405c0c1251..1529293c7a 100644 --- a/content/en/api/python/beta/environments/work/poll.md +++ b/content/en/api/python/beta/environments/work/poll.md @@ -137,6 +137,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `anthropic_worker_id: Optional[str]` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/python/beta/environments/work/retrieve.md b/content/en/api/python/beta/environments/work/retrieve.md index f7a61ac245..cd0ac62462 100644 --- a/content/en/api/python/beta/environments/work/retrieve.md +++ b/content/en/api/python/beta/environments/work/retrieve.md @@ -127,6 +127,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/work/stats.md b/content/en/api/python/beta/environments/work/stats.md index 5d5cd60cc1..d805044739 100644 --- a/content/en/api/python/beta/environments/work/stats.md +++ b/content/en/api/python/beta/environments/work/stats.md @@ -123,6 +123,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/work/stop.md b/content/en/api/python/beta/environments/work/stop.md index b531c3b11b..8d34e2014a 100644 --- a/content/en/api/python/beta/environments/work/stop.md +++ b/content/en/api/python/beta/environments/work/stop.md @@ -133,6 +133,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/environments/work/update.md b/content/en/api/python/beta/environments/work/update.md index 413e390576..4ce40ae95c 100644 --- a/content/en/api/python/beta/environments/work/update.md +++ b/content/en/api/python/beta/environments/work/update.md @@ -131,6 +131,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files.md b/content/en/api/python/beta/files.md index da8352da53..bd0d52f238 100644 --- a/content/en/api/python/beta/files.md +++ b/content/en/api/python/beta/files.md @@ -135,6 +135,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -379,6 +381,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -611,6 +615,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -762,6 +768,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -990,6 +998,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files/delete.md b/content/en/api/python/beta/files/delete.md index 7bd71ecf06..efc8019907 100644 --- a/content/en/api/python/beta/files/delete.md +++ b/content/en/api/python/beta/files/delete.md @@ -125,6 +125,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files/download.md b/content/en/api/python/beta/files/download.md index afe0d01e75..fe38c5a89e 100644 --- a/content/en/api/python/beta/files/download.md +++ b/content/en/api/python/beta/files/download.md @@ -125,6 +125,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files/list.md b/content/en/api/python/beta/files/list.md index 792f6a8a61..9347536410 100644 --- a/content/en/api/python/beta/files/list.md +++ b/content/en/api/python/beta/files/list.md @@ -141,6 +141,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files/retrieve_metadata.md b/content/en/api/python/beta/files/retrieve_metadata.md index d5c9836f0c..7c77783ac0 100644 --- a/content/en/api/python/beta/files/retrieve_metadata.md +++ b/content/en/api/python/beta/files/retrieve_metadata.md @@ -125,6 +125,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/files/upload.md b/content/en/api/python/beta/files/upload.md index 4cacd5ff57..59000e2d4b 100644 --- a/content/en/api/python/beta/files/upload.md +++ b/content/en/api/python/beta/files/upload.md @@ -133,6 +133,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/memory_stores.md b/content/en/api/python/beta/memory_stores.md index 248a2e1eff..ea58be27b0 100644 --- a/content/en/api/python/beta/memory_stores.md +++ b/content/en/api/python/beta/memory_stores.md @@ -5,31 +5,37 @@ url: https://platform.claude.com/docs/en/api/python/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters - `name: str` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: Optional[str]` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: Optional[Dict[str, str]]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -139,6 +145,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,27 +163,33 @@ Create a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -183,7 +197,9 @@ Create a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -221,25 +237,25 @@ print(beta_managed_agents_memory_store.id) } ``` -## List memory stores +## List Memory Stores `beta.memory_stores.list(**kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryStore]` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters - `created_at_gte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `created_at_lte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -255,7 +271,7 @@ List memory stores - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -365,6 +381,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -381,27 +399,33 @@ List memory stores - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -409,7 +433,9 @@ List memory stores - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -449,19 +475,19 @@ print(page.id) } ``` -## Retrieve a memory store +## Retrieve a Memory Store `beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -571,6 +597,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -587,27 +615,33 @@ Retrieve a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -615,7 +649,9 @@ Retrieve a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -653,33 +689,39 @@ print(beta_managed_agents_memory_store.id) } ``` -## Update a memory store +## Update a Memory Store `beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description: Optional[str]` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: Optional[Dict[str, Optional[str]]]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: Optional[str]` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -791,6 +833,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -807,27 +851,33 @@ Update a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -835,7 +885,9 @@ Update a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -873,19 +925,21 @@ print(beta_managed_agents_memory_store.id) } ``` -## Delete a memory store +## Delete a Memory Store `beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -995,6 +1049,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1039,19 +1095,21 @@ print(beta_managed_agents_deleted_memory_store.id) } ``` -## Archive a memory store +## Archive a Memory Store `beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -1161,6 +1219,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1177,27 +1237,33 @@ Archive a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -1205,7 +1271,9 @@ Archive a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1267,27 +1335,33 @@ print(beta_managed_agents_memory_store.id) - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -1295,19 +1369,21 @@ print(beta_managed_agents_memory_store.id) - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1317,17 +1393,23 @@ Create a memory - `content: Optional[str]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: str` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1445,6 +1527,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1455,13 +1539,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -1469,7 +1559,7 @@ Create a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1485,7 +1575,11 @@ Create a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -1493,13 +1587,17 @@ Create a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1537,13 +1635,13 @@ print(beta_managed_agents_memory.id) } ``` -### List memories +### List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryListItem]` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1553,27 +1651,35 @@ List memories - `depth: Optional[int]` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Optional[int]` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: Optional[str]` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -1691,6 +1797,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1701,17 +1809,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = ...` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -1719,7 +1833,7 @@ List memories - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1735,7 +1849,11 @@ List memories - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -1743,17 +1861,23 @@ List memories - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` @@ -1801,13 +1925,13 @@ print(page) } ``` -### Retrieve a memory +### Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1821,7 +1945,9 @@ Retrieve a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1939,6 +2065,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1949,13 +2077,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -1963,7 +2097,7 @@ Retrieve a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1979,7 +2113,11 @@ Retrieve a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -1987,13 +2125,17 @@ Retrieve a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2030,13 +2172,13 @@ print(beta_managed_agents_memory.id) } ``` -### Update a memory +### Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -2050,7 +2192,9 @@ Update a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2066,13 +2210,17 @@ Update a memory - `path: Optional[str]` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: Optional[BetaManagedAgentsPreconditionParam]` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: Literal["content_sha256"]` @@ -2188,6 +2336,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2198,13 +2348,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -2212,7 +2368,7 @@ Update a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2228,7 +2384,11 @@ Update a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -2236,13 +2396,17 @@ Update a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2279,13 +2443,13 @@ print(beta_managed_agents_memory.id) } ``` -### Delete a memory +### Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2411,6 +2575,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2421,7 +2587,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about how long versions are kept. - `type: Literal["memory_deleted"]` @@ -2458,13 +2628,13 @@ print(beta_managed_agents_deleted_memory.id) ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryVersion]` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2490,7 +2660,9 @@ List memory versions - `limit: Optional[int]` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2498,7 +2670,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: Optional[BetaManagedAgentsMemoryVersionOperation]` (query parameter) @@ -2530,7 +2702,9 @@ List memory versions - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2648,6 +2822,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2658,7 +2834,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -2674,7 +2856,9 @@ List memory versions - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -2712,7 +2896,11 @@ List memory versions - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -2768,7 +2956,11 @@ List memory versions - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -2825,13 +3017,13 @@ print(page.id) } ``` -### Retrieve a memory version +### Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2845,7 +3037,9 @@ Retrieve a memory version - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2963,6 +3157,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2973,7 +3169,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -2989,7 +3191,9 @@ Retrieve a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -3027,7 +3231,11 @@ Retrieve a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3083,7 +3291,11 @@ Retrieve a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -3135,13 +3347,13 @@ print(beta_managed_agents_memory_version.id) } ``` -### Redact a memory version +### Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3261,6 +3473,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3271,7 +3485,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -3287,7 +3507,9 @@ Redact a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -3325,7 +3547,11 @@ Redact a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3381,7 +3607,11 @@ Redact a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/python/beta/memory_stores/archive.md b/content/en/api/python/beta/memory_stores/archive.md index 1a2c60b374..7760a5d2fb 100644 --- a/content/en/api/python/beta/memory_stores/archive.md +++ b/content/en/api/python/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -125,6 +127,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +145,33 @@ Archive a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -169,7 +179,9 @@ Archive a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/python/beta/memory_stores/create.md b/content/en/api/python/beta/memory_stores/create.md index eaa111884e..8568207d1f 100644 --- a/content/en/api/python/beta/memory_stores/create.md +++ b/content/en/api/python/beta/memory_stores/create.md @@ -1,33 +1,39 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters - `name: str` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: Optional[str]` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: Optional[Dict[str, str]]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -137,6 +143,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,27 +161,33 @@ Create a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -181,7 +195,9 @@ Create a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/python/beta/memory_stores/delete.md b/content/en/api/python/beta/memory_stores/delete.md index f1b0fcc694..773b351884 100644 --- a/content/en/api/python/beta/memory_stores/delete.md +++ b/content/en/api/python/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -125,6 +127,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/memory_stores/list.md b/content/en/api/python/beta/memory_stores/list.md index 37e6f1a90e..b873e855c6 100644 --- a/content/en/api/python/beta/memory_stores/list.md +++ b/content/en/api/python/beta/memory_stores/list.md @@ -1,27 +1,27 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `beta.memory_stores.list(**kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryStore]` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters - `created_at_gte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `created_at_lte: Optional[Union[str, datetime]]` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -37,7 +37,7 @@ List memory stores - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -147,6 +147,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,27 +165,33 @@ List memory stores - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -191,7 +199,9 @@ List memory stores - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/python/beta/memory_stores/memories.md b/content/en/api/python/beta/memory_stores/memories.md index c994e567ed..fec2b73a4f 100644 --- a/content/en/api/python/beta/memory_stores/memories.md +++ b/content/en/api/python/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -21,17 +21,23 @@ Create a memory - `content: Optional[str]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: str` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -149,6 +155,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,13 +167,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -173,7 +187,7 @@ Create a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -189,7 +203,11 @@ Create a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -197,13 +215,17 @@ Create a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -241,13 +263,13 @@ print(beta_managed_agents_memory.id) } ``` -## List memories +## List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryListItem]` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -257,27 +279,35 @@ List memories - `depth: Optional[int]` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Optional[int]` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: Optional[str]` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -395,6 +425,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -405,17 +437,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = ...` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -423,7 +461,7 @@ List memories - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -439,7 +477,11 @@ List memories - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -447,17 +489,23 @@ List memories - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` @@ -505,13 +553,13 @@ print(page) } ``` -## Retrieve a memory +## Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -525,7 +573,9 @@ Retrieve a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -643,6 +693,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -653,13 +705,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -667,7 +725,7 @@ Retrieve a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -683,7 +741,11 @@ Retrieve a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -691,13 +753,17 @@ Retrieve a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -734,13 +800,13 @@ print(beta_managed_agents_memory.id) } ``` -## Update a memory +## Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -754,7 +820,9 @@ Update a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -770,13 +838,17 @@ Update a memory - `path: Optional[str]` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: Optional[BetaManagedAgentsPreconditionParam]` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: Literal["content_sha256"]` @@ -892,6 +964,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -902,13 +976,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -916,7 +996,7 @@ Update a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -932,7 +1012,11 @@ Update a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -940,13 +1024,17 @@ Update a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -983,13 +1071,13 @@ print(beta_managed_agents_memory.id) } ``` -## Delete a memory +## Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1115,6 +1203,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1125,7 +1215,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about how long versions are kept. - `type: Literal["memory_deleted"]` @@ -1174,7 +1268,9 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `type: Literal["content_sha256"]` @@ -1186,7 +1282,11 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about how long versions are kept. - `type: Literal["memory_deleted"]` @@ -1304,7 +1404,7 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1334,13 +1434,19 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -1348,7 +1454,7 @@ print(beta_managed_agents_deleted_memory.id) - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1364,7 +1470,11 @@ print(beta_managed_agents_deleted_memory.id) - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -1372,29 +1482,39 @@ print(beta_managed_agents_deleted_memory.id) - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `type BetaManagedAgentsMemoryListItem = ...` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -1402,7 +1522,7 @@ print(beta_managed_agents_deleted_memory.id) - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1418,7 +1538,11 @@ print(beta_managed_agents_deleted_memory.id) - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -1426,17 +1550,23 @@ print(beta_managed_agents_deleted_memory.id) - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` @@ -1448,7 +1578,7 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1488,7 +1618,9 @@ print(beta_managed_agents_deleted_memory.id) - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` @@ -1500,7 +1632,9 @@ print(beta_managed_agents_deleted_memory.id) - `type BetaManagedAgentsMemoryView = Literal["basic", "full"]` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` diff --git a/content/en/api/python/beta/memory_stores/memories/create.md b/content/en/api/python/beta/memory_stores/memories/create.md index dc8a0f26e6..7aa7ff35ac 100644 --- a/content/en/api/python/beta/memory_stores/memories/create.md +++ b/content/en/api/python/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -19,17 +19,23 @@ Create a memory - `content: Optional[str]` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: str` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -147,6 +153,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,13 +165,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -171,7 +185,7 @@ Create a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -187,7 +201,11 @@ Create a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -195,13 +213,17 @@ Create a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/python/beta/memory_stores/memories/delete.md b/content/en/api/python/beta/memory_stores/memories/delete.md index 66237934e1..22023ec26e 100644 --- a/content/en/api/python/beta/memory_stores/memories/delete.md +++ b/content/en/api/python/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -135,6 +135,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=python) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about how long versions are kept. - `type: Literal["memory_deleted"]` diff --git a/content/en/api/python/beta/memory_stores/memories/list.md b/content/en/api/python/beta/memory_stores/memories/list.md index 7340524210..c8b3d3693f 100644 --- a/content/en/api/python/beta/memory_stores/memories/list.md +++ b/content/en/api/python/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/list --- -# List memories +# List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryListItem]` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -19,27 +19,35 @@ List memories - `depth: Optional[int]` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Optional[int]` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: Optional[str]` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: Optional[str]` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -157,6 +165,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -167,17 +177,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = ...` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -185,7 +201,7 @@ List memories - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -201,7 +217,11 @@ List memories - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -209,17 +229,23 @@ List memories - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=python) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: Literal["memory_prefix"]` diff --git a/content/en/api/python/beta/memory_stores/memories/retrieve.md b/content/en/api/python/beta/memory_stores/memories/retrieve.md index 7693d68055..737b8f4668 100644 --- a/content/en/api/python/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/python/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -141,6 +143,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,13 +155,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -165,7 +175,7 @@ Retrieve a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -181,7 +191,11 @@ Retrieve a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -189,13 +203,17 @@ Retrieve a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/python/beta/memory_stores/memories/update.md b/content/en/api/python/beta/memory_stores/memories/update.md index 1f618500f4..5bd4cc7481 100644 --- a/content/en/api/python/beta/memory_stores/memories/update.md +++ b/content/en/api/python/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -23,7 +23,9 @@ Update a memory - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -39,13 +41,17 @@ Update a memory - `path: Optional[str]` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: Optional[BetaManagedAgentsPreconditionParam]` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: Literal["content_sha256"]` @@ -161,6 +167,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -171,13 +179,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#view-and-edit-memories) to learn more about working with memories. - `type: Literal["memory"]` - `id: str` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: str` @@ -185,7 +199,7 @@ Update a memory - `content_size_bytes: int` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -201,7 +215,11 @@ Update a memory - `memory_version_id: str` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `path: str` @@ -209,13 +227,17 @@ Update a memory - `updated_at: datetime` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: Optional[str]` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/python/beta/memory_stores/memory_versions.md b/content/en/api/python/beta/memory_stores/memory_versions.md index 623bfe1d61..1abb19e05e 100644 --- a/content/en/api/python/beta/memory_stores/memory_versions.md +++ b/content/en/api/python/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_ve # Memory Versions -## List memory versions +## List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryVersion]` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -37,7 +37,9 @@ List memory versions - `limit: Optional[int]` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: Optional[BetaManagedAgentsMemoryVersionOperation]` (query parameter) @@ -77,7 +79,9 @@ List memory versions - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -195,6 +199,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -205,7 +211,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -221,7 +233,9 @@ List memory versions - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -259,7 +273,11 @@ List memory versions - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -315,7 +333,11 @@ List memory versions - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -372,13 +394,13 @@ print(page.id) } ``` -## Retrieve a memory version +## Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -392,7 +414,9 @@ Retrieve a memory version - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -510,6 +534,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -520,7 +546,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -536,7 +568,9 @@ Retrieve a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -574,7 +608,11 @@ Retrieve a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -630,7 +668,11 @@ Retrieve a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -682,13 +724,13 @@ print(beta_managed_agents_memory_version.id) } ``` -## Redact a memory version +## Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -808,6 +850,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -818,7 +862,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -834,7 +884,9 @@ Redact a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -872,7 +924,11 @@ Redact a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -928,7 +984,11 @@ Redact a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -1054,7 +1114,13 @@ print(beta_managed_agents_memory_version.id) - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -1070,7 +1136,9 @@ print(beta_managed_agents_memory_version.id) - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -1108,7 +1176,11 @@ print(beta_managed_agents_memory_version.id) - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -1164,7 +1236,11 @@ print(beta_managed_agents_memory_version.id) - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time @@ -1176,7 +1252,9 @@ print(beta_managed_agents_memory_version.id) - `type BetaManagedAgentsMemoryVersionOperation = Literal["created", "modified", "deleted"]` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `"created"` diff --git a/content/en/api/python/beta/memory_stores/memory_versions/list.md b/content/en/api/python/beta/memory_stores/memory_versions/list.md index 93d4879571..0a993a75a2 100644 --- a/content/en/api/python/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/python/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsMemoryVersion]` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -35,7 +35,9 @@ List memory versions - `limit: Optional[int]` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -43,7 +45,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: Optional[BetaManagedAgentsMemoryVersionOperation]` (query parameter) @@ -75,7 +77,9 @@ List memory versions - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -193,6 +197,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -203,7 +209,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -219,7 +231,9 @@ List memory versions - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -257,7 +271,11 @@ List memory versions - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -313,7 +331,11 @@ List memory versions - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/python/beta/memory_stores/memory_versions/redact.md b/content/en/api/python/beta/memory_stores/memory_versions/redact.md index 0407a5fd56..4616781578 100644 --- a/content/en/api/python/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/python/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -129,6 +129,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,7 +141,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -155,7 +163,9 @@ Redact a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -193,7 +203,11 @@ Redact a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -249,7 +263,11 @@ Redact a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/python/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/python/beta/memory_stores/memory_versions/retrieve.md index 77d94467b5..2d076f9fba 100644 --- a/content/en/api/python/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/python/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory version - `view: Optional[BetaManagedAgentsMemoryView]` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -141,6 +143,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,7 +155,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#audit-memory-changes) to learn more about memory versions. - `type: Literal["memory_version"]` @@ -167,7 +177,9 @@ Retrieve a memory version - `memory_id: str` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=python) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: str` @@ -205,7 +217,11 @@ Retrieve a memory version - `created_by: Optional[BetaManagedAgentsActor]` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=python) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -261,7 +277,11 @@ Retrieve a memory version - `redacted_at: Optional[datetime]` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=python). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/python/beta/memory_stores/retrieve.md b/content/en/api/python/beta/memory_stores/retrieve.md index c15a98b20f..5969de5e53 100644 --- a/content/en/api/python/beta/memory_stores/retrieve.md +++ b/content/en/api/python/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) @@ -125,6 +125,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +143,33 @@ Retrieve a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -169,7 +177,9 @@ Retrieve a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/python/beta/memory_stores/update.md b/content/en/api/python/beta/memory_stores/update.md index 9f7bf482f9..47f464d80d 100644 --- a/content/en/api/python/beta/memory_stores/update.md +++ b/content/en/api/python/beta/memory_stores/update.md @@ -1,35 +1,41 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/python/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `memory_store_id: str` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description: Optional[str]` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: Optional[Dict[str, Optional[str]]]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: Optional[str]` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -141,6 +147,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,27 +165,33 @@ Update a memory store - `id: str` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Optional[datetime]` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=python#archive-a-store) to learn more about archiving. format: date-time - `created_at: datetime` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: str` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Dict[str, str]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: str` @@ -185,7 +199,9 @@ Update a memory store - `updated_at: datetime` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/python/beta/messages.md b/content/en/api/python/beta/messages.md index 2bd9725633..69b926506c 100644 --- a/content/en/api/python/beta/messages.md +++ b/content/en/api/python/beta/messages.md @@ -3652,8 +3652,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3702,7 +3716,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3710,6 +3728,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -4189,9 +4213,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -7363,6 +7389,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -7373,6 +7403,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -7383,6 +7417,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -7393,6 +7431,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -7403,12 +7445,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -12456,9 +12510,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -19027,6 +19083,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -19039,6 +19099,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -19051,6 +19115,12 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found @@ -19061,6 +19131,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -19071,6 +19145,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -19081,6 +19159,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -19091,6 +19173,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -19101,12 +19187,24 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -19115,6 +19213,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -19127,6 +19229,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -19139,6 +19245,12 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -34181,6 +34293,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -34191,6 +34307,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -34201,6 +34321,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -34211,6 +34335,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -34221,12 +34349,24 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -35215,8 +35355,22 @@ print(beta_message_tokens_count.context_management) - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35265,7 +35419,11 @@ print(beta_message_tokens_count.context_management) - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35273,6 +35431,12 @@ print(beta_message_tokens_count.context_management) - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -35469,8 +35633,22 @@ print(beta_message_tokens_count.context_management) - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35519,7 +35697,11 @@ print(beta_message_tokens_count.context_management) - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35527,6 +35709,12 @@ print(beta_message_tokens_count.context_management) - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -39947,6 +40135,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -39957,6 +40149,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -39967,6 +40163,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -39977,6 +40177,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -39987,12 +40191,24 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -51952,6 +52168,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -51962,6 +52182,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -51972,6 +52196,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -51982,6 +52210,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -51992,12 +52224,24 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -55797,6 +56041,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -55807,6 +56055,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -55817,6 +56069,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -55827,6 +56083,10 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -55837,12 +56097,24 @@ print(beta_message_tokens_count.context_management) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -81369,8 +81641,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -81419,7 +81705,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -81427,6 +81717,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -81906,9 +82202,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) @@ -82204,6 +82502,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82496,6 +82796,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82784,6 +83086,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83066,6 +83370,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83240,6 +83546,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -86432,6 +86740,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -86442,6 +86754,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -86452,6 +86768,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -86462,6 +86782,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -86472,12 +86796,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/beta/messages/batches.md b/content/en/api/python/beta/messages/batches.md index df4b619dbd..3530fc681c 100644 --- a/content/en/api/python/beta/messages/batches.md +++ b/content/en/api/python/beta/messages/batches.md @@ -3672,8 +3672,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3722,7 +3736,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3730,6 +3748,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -4209,9 +4233,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) @@ -4507,6 +4533,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4799,6 +4827,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5087,6 +5117,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5369,6 +5401,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5543,6 +5577,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8735,6 +8771,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -8745,6 +8785,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -8755,6 +8799,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -8765,6 +8813,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -8775,12 +8827,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -12973,6 +13037,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -12983,6 +13051,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -12993,6 +13065,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -13003,6 +13079,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -13013,12 +13093,24 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -16974,6 +17066,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -16984,6 +17080,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -16994,6 +17094,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -17004,6 +17108,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -17014,12 +17122,24 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -20927,6 +21047,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -20937,6 +21061,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -20947,6 +21075,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -20957,6 +21089,10 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -20967,12 +21103,24 @@ for batch in client.beta.messages.batches.results( - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/beta/messages/batches/cancel.md b/content/en/api/python/beta/messages/batches/cancel.md index 0b5db08c9b..a14e0ef78a 100644 --- a/content/en/api/python/beta/messages/batches/cancel.md +++ b/content/en/api/python/beta/messages/batches/cancel.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/messages/batches/create.md b/content/en/api/python/beta/messages/batches/create.md index 0ba8c0b109..c163e9677b 100644 --- a/content/en/api/python/beta/messages/batches/create.md +++ b/content/en/api/python/beta/messages/batches/create.md @@ -3670,8 +3670,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3720,7 +3734,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3728,6 +3746,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -4207,9 +4231,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) diff --git a/content/en/api/python/beta/messages/batches/delete.md b/content/en/api/python/beta/messages/batches/delete.md index 9658488246..0f7b81ce98 100644 --- a/content/en/api/python/beta/messages/batches/delete.md +++ b/content/en/api/python/beta/messages/batches/delete.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/messages/batches/list.md b/content/en/api/python/beta/messages/batches/list.md index 53c1125f56..9720ab3837 100644 --- a/content/en/api/python/beta/messages/batches/list.md +++ b/content/en/api/python/beta/messages/batches/list.md @@ -139,6 +139,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/messages/batches/results.md b/content/en/api/python/beta/messages/batches/results.md index e7379b9933..23f2ae2da7 100644 --- a/content/en/api/python/beta/messages/batches/results.md +++ b/content/en/api/python/beta/messages/batches/results.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3321,6 +3323,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -3331,6 +3337,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -3341,6 +3351,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -3351,6 +3365,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -3361,12 +3379,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/beta/messages/batches/retrieve.md b/content/en/api/python/beta/messages/batches/retrieve.md index c3f6fbe7b4..66ab7b7b02 100644 --- a/content/en/api/python/beta/messages/batches/retrieve.md +++ b/content/en/api/python/beta/messages/batches/retrieve.md @@ -127,6 +127,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/messages/count_tokens.md b/content/en/api/python/beta/messages/count_tokens.md index 403a027f74..4db5768e6a 100644 --- a/content/en/api/python/beta/messages/count_tokens.md +++ b/content/en/api/python/beta/messages/count_tokens.md @@ -4000,9 +4000,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) diff --git a/content/en/api/python/beta/messages/create.md b/content/en/api/python/beta/messages/create.md index cc07ad9c74..ee7c2b0f35 100644 --- a/content/en/api/python/beta/messages/create.md +++ b/content/en/api/python/beta/messages/create.md @@ -3650,8 +3650,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Optional[int]` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=python#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: Optional[BetaOutputConfigParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: Optional[Literal["low", "medium", "high", 2 more]]` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3700,7 +3714,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: Optional[Literal["standard", "fast"]]` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3708,6 +3726,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: Optional[Thinking]` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabledParam` - `type: Literal["enabled"]` @@ -4187,9 +4211,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -7361,6 +7387,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -7371,6 +7401,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -7381,6 +7415,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -7391,6 +7429,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -7401,12 +7443,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/beta/models.md b/content/en/api/python/beta/models.md index 9fbd4f2c2f..e3c00b08f6 100644 --- a/content/en/api/python/beta/models.md +++ b/content/en/api/python/beta/models.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -624,6 +626,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/models/list.md b/content/en/api/python/beta/models/list.md index 921a0474c4..3bab5ba04a 100644 --- a/content/en/api/python/beta/models/list.md +++ b/content/en/api/python/beta/models/list.md @@ -151,6 +151,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/models/retrieve.md b/content/en/api/python/beta/models/retrieve.md index cc0e65388d..dccb599907 100644 --- a/content/en/api/python/beta/models/retrieve.md +++ b/content/en/api/python/beta/models/retrieve.md @@ -127,6 +127,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions.md b/content/en/api/python/beta/sessions.md index 7fcd008e4d..380a66f7ac 100644 --- a/content/en/api/python/beta/sessions.md +++ b/content/en/api/python/beta/sessions.md @@ -1245,6 +1245,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2824,6 +2826,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4314,6 +4318,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6379,6 +6385,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7864,6 +7872,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8026,6 +8036,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19819,6 +19831,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23283,6 +23297,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23911,6 +23927,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27062,6 +27080,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27254,6 +27274,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27536,6 +27558,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27813,6 +27837,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28085,6 +28111,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28274,6 +28302,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29356,6 +29386,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30433,6 +30465,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31518,6 +31552,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34631,6 +34667,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/archive.md b/content/en/api/python/beta/sessions/archive.md index 5d32999663..cf8f5058c5 100644 --- a/content/en/api/python/beta/sessions/archive.md +++ b/content/en/api/python/beta/sessions/archive.md @@ -123,6 +123,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/create.md b/content/en/api/python/beta/sessions/create.md index 298477487d..0cbb8a68a9 100644 --- a/content/en/api/python/beta/sessions/create.md +++ b/content/en/api/python/beta/sessions/create.md @@ -1243,6 +1243,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/delete.md b/content/en/api/python/beta/sessions/delete.md index db1da3f6d3..49b44ccf8b 100644 --- a/content/en/api/python/beta/sessions/delete.md +++ b/content/en/api/python/beta/sessions/delete.md @@ -123,6 +123,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/events.md b/content/en/api/python/beta/sessions/events.md index 970c1fb47e..d189023e12 100644 --- a/content/en/api/python/beta/sessions/events.md +++ b/content/en/api/python/beta/sessions/events.md @@ -251,6 +251,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3715,6 +3717,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4343,6 +4347,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/events/list.md b/content/en/api/python/beta/sessions/events/list.md index d5dd24f405..46fd178189 100644 --- a/content/en/api/python/beta/sessions/events/list.md +++ b/content/en/api/python/beta/sessions/events/list.md @@ -249,6 +249,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/events/send.md b/content/en/api/python/beta/sessions/events/send.md index de53c7df64..45bf3291af 100644 --- a/content/en/api/python/beta/sessions/events/send.md +++ b/content/en/api/python/beta/sessions/events/send.md @@ -485,6 +485,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/events/stream.md b/content/en/api/python/beta/sessions/events/stream.md index d7bc53739e..2a4b4dbc0e 100644 --- a/content/en/api/python/beta/sessions/events/stream.md +++ b/content/en/api/python/beta/sessions/events/stream.md @@ -131,6 +131,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/list.md b/content/en/api/python/beta/sessions/list.md index 2cfc3ac049..823cd8fbd6 100644 --- a/content/en/api/python/beta/sessions/list.md +++ b/content/en/api/python/beta/sessions/list.md @@ -205,6 +205,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources.md b/content/en/api/python/beta/sessions/resources.md index 03633d7c29..5ec74ff790 100644 --- a/content/en/api/python/beta/sessions/resources.md +++ b/content/en/api/python/beta/sessions/resources.md @@ -139,6 +139,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -331,6 +333,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -613,6 +617,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -890,6 +896,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1162,6 +1170,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources/add.md b/content/en/api/python/beta/sessions/resources/add.md index b908a9f2d9..c0cdbd6ffe 100644 --- a/content/en/api/python/beta/sessions/resources/add.md +++ b/content/en/api/python/beta/sessions/resources/add.md @@ -137,6 +137,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources/delete.md b/content/en/api/python/beta/sessions/resources/delete.md index bf16e65121..d26143587b 100644 --- a/content/en/api/python/beta/sessions/resources/delete.md +++ b/content/en/api/python/beta/sessions/resources/delete.md @@ -125,6 +125,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources/list.md b/content/en/api/python/beta/sessions/resources/list.md index 7410a04f1a..248527f102 100644 --- a/content/en/api/python/beta/sessions/resources/list.md +++ b/content/en/api/python/beta/sessions/resources/list.md @@ -133,6 +133,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources/retrieve.md b/content/en/api/python/beta/sessions/resources/retrieve.md index aa046342cf..25871229f2 100644 --- a/content/en/api/python/beta/sessions/resources/retrieve.md +++ b/content/en/api/python/beta/sessions/resources/retrieve.md @@ -125,6 +125,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/resources/update.md b/content/en/api/python/beta/sessions/resources/update.md index 58772bb74c..f46b77a603 100644 --- a/content/en/api/python/beta/sessions/resources/update.md +++ b/content/en/api/python/beta/sessions/resources/update.md @@ -131,6 +131,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/retrieve.md b/content/en/api/python/beta/sessions/retrieve.md index a0e931a87b..bd403399f9 100644 --- a/content/en/api/python/beta/sessions/retrieve.md +++ b/content/en/api/python/beta/sessions/retrieve.md @@ -123,6 +123,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads.md b/content/en/api/python/beta/sessions/threads.md index 27be8d7966..5d4118e8a0 100644 --- a/content/en/api/python/beta/sessions/threads.md +++ b/content/en/api/python/beta/sessions/threads.md @@ -149,6 +149,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1231,6 +1233,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2308,6 +2312,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7943,6 +7949,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11056,6 +11064,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/archive.md b/content/en/api/python/beta/sessions/threads/archive.md index 22f0fad302..50cb9218cf 100644 --- a/content/en/api/python/beta/sessions/threads/archive.md +++ b/content/en/api/python/beta/sessions/threads/archive.md @@ -125,6 +125,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/events.md b/content/en/api/python/beta/sessions/threads/events.md index 5663f095cc..c72737e4ba 100644 --- a/content/en/api/python/beta/sessions/threads/events.md +++ b/content/en/api/python/beta/sessions/threads/events.md @@ -133,6 +133,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3246,6 +3248,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/events/list.md b/content/en/api/python/beta/sessions/threads/events/list.md index 55687edc9c..5b97586518 100644 --- a/content/en/api/python/beta/sessions/threads/events/list.md +++ b/content/en/api/python/beta/sessions/threads/events/list.md @@ -131,6 +131,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/events/stream.md b/content/en/api/python/beta/sessions/threads/events/stream.md index e5a09fa257..dd9419c06f 100644 --- a/content/en/api/python/beta/sessions/threads/events/stream.md +++ b/content/en/api/python/beta/sessions/threads/events/stream.md @@ -133,6 +133,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/list.md b/content/en/api/python/beta/sessions/threads/list.md index a1167631a2..b33da95d46 100644 --- a/content/en/api/python/beta/sessions/threads/list.md +++ b/content/en/api/python/beta/sessions/threads/list.md @@ -147,6 +147,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/threads/retrieve.md b/content/en/api/python/beta/sessions/threads/retrieve.md index 786d938320..af40c990db 100644 --- a/content/en/api/python/beta/sessions/threads/retrieve.md +++ b/content/en/api/python/beta/sessions/threads/retrieve.md @@ -125,6 +125,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/sessions/update.md b/content/en/api/python/beta/sessions/update.md index c602204da0..860280e941 100644 --- a/content/en/api/python/beta/sessions/update.md +++ b/content/en/api/python/beta/sessions/update.md @@ -703,6 +703,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills.md b/content/en/api/python/beta/skills.md index 3e05ebaf0a..598432e0cd 100644 --- a/content/en/api/python/beta/skills.md +++ b/content/en/api/python/beta/skills.md @@ -135,6 +135,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -385,6 +387,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -622,6 +626,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -855,6 +861,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1150,6 +1158,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1365,6 +1375,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1579,6 +1591,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1739,6 +1753,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1948,6 +1964,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/create.md b/content/en/api/python/beta/skills/create.md index 90b9ede59a..7a3c86aa5d 100644 --- a/content/en/api/python/beta/skills/create.md +++ b/content/en/api/python/beta/skills/create.md @@ -133,6 +133,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/delete.md b/content/en/api/python/beta/skills/delete.md index c8676a6f13..5ed76214d9 100644 --- a/content/en/api/python/beta/skills/delete.md +++ b/content/en/api/python/beta/skills/delete.md @@ -127,6 +127,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/list.md b/content/en/api/python/beta/skills/list.md index 5cc7303f79..8d9fa58e38 100644 --- a/content/en/api/python/beta/skills/list.md +++ b/content/en/api/python/beta/skills/list.md @@ -144,6 +144,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/retrieve.md b/content/en/api/python/beta/skills/retrieve.md index 1b2792a83a..8b2c2030cc 100644 --- a/content/en/api/python/beta/skills/retrieve.md +++ b/content/en/api/python/beta/skills/retrieve.md @@ -127,6 +127,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions.md b/content/en/api/python/beta/skills/versions.md index a82274635a..d19bee32f2 100644 --- a/content/en/api/python/beta/skills/versions.md +++ b/content/en/api/python/beta/skills/versions.md @@ -135,6 +135,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -350,6 +352,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -564,6 +568,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -724,6 +730,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -933,6 +941,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions/create.md b/content/en/api/python/beta/skills/versions/create.md index 97a00e80ea..522813e4d8 100644 --- a/content/en/api/python/beta/skills/versions/create.md +++ b/content/en/api/python/beta/skills/versions/create.md @@ -133,6 +133,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions/delete.md b/content/en/api/python/beta/skills/versions/delete.md index 68b9706cf0..f3c0ee15a6 100644 --- a/content/en/api/python/beta/skills/versions/delete.md +++ b/content/en/api/python/beta/skills/versions/delete.md @@ -133,6 +133,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions/download.md b/content/en/api/python/beta/skills/versions/download.md index e3fc264ab9..3e7499ab4d 100644 --- a/content/en/api/python/beta/skills/versions/download.md +++ b/content/en/api/python/beta/skills/versions/download.md @@ -133,6 +133,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions/list.md b/content/en/api/python/beta/skills/versions/list.md index 17b2fd18fb..51176e46d9 100644 --- a/content/en/api/python/beta/skills/versions/list.md +++ b/content/en/api/python/beta/skills/versions/list.md @@ -139,6 +139,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/skills/versions/retrieve.md b/content/en/api/python/beta/skills/versions/retrieve.md index 67b0f8a3ba..45b734d5fd 100644 --- a/content/en/api/python/beta/skills/versions/retrieve.md +++ b/content/en/api/python/beta/skills/versions/retrieve.md @@ -133,6 +133,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels.md b/content/en/api/python/beta/tunnels.md index 96da03d4fe..c58d3bcad6 100644 --- a/content/en/api/python/beta/tunnels.md +++ b/content/en/api/python/beta/tunnels.md @@ -131,6 +131,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -321,6 +323,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -523,6 +527,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -719,6 +725,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -911,6 +919,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1090,6 +1100,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1321,6 +1333,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1525,6 +1539,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1739,6 +1755,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1948,6 +1966,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/archive.md b/content/en/api/python/beta/tunnels/archive.md index f568bf740e..9dbe98dd47 100644 --- a/content/en/api/python/beta/tunnels/archive.md +++ b/content/en/api/python/beta/tunnels/archive.md @@ -127,6 +127,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/certificates.md b/content/en/api/python/beta/tunnels/certificates.md index 0775125c1e..8d4a02a41d 100644 --- a/content/en/api/python/beta/tunnels/certificates.md +++ b/content/en/api/python/beta/tunnels/certificates.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -339,6 +341,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -553,6 +557,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -762,6 +768,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/certificates/archive.md b/content/en/api/python/beta/tunnels/certificates/archive.md index df32b9829c..5723192645 100644 --- a/content/en/api/python/beta/tunnels/certificates/archive.md +++ b/content/en/api/python/beta/tunnels/certificates/archive.md @@ -131,6 +131,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/certificates/create.md b/content/en/api/python/beta/tunnels/certificates/create.md index 1ccce31a61..63decd4a4f 100644 --- a/content/en/api/python/beta/tunnels/certificates/create.md +++ b/content/en/api/python/beta/tunnels/certificates/create.md @@ -133,6 +133,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/certificates/list.md b/content/en/api/python/beta/tunnels/certificates/list.md index 00bee6d1ae..b5518cfe58 100644 --- a/content/en/api/python/beta/tunnels/certificates/list.md +++ b/content/en/api/python/beta/tunnels/certificates/list.md @@ -141,6 +141,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/certificates/retrieve.md b/content/en/api/python/beta/tunnels/certificates/retrieve.md index e5f2f0cb0c..c3fb275c24 100644 --- a/content/en/api/python/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/python/beta/tunnels/certificates/retrieve.md @@ -131,6 +131,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/create.md b/content/en/api/python/beta/tunnels/create.md index 7ee380da66..49ae745e39 100644 --- a/content/en/api/python/beta/tunnels/create.md +++ b/content/en/api/python/beta/tunnels/create.md @@ -129,6 +129,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/list.md b/content/en/api/python/beta/tunnels/list.md index 25a9a42fe3..3f06462709 100644 --- a/content/en/api/python/beta/tunnels/list.md +++ b/content/en/api/python/beta/tunnels/list.md @@ -137,6 +137,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/retrieve.md b/content/en/api/python/beta/tunnels/retrieve.md index f581a24b95..b79ee63e7e 100644 --- a/content/en/api/python/beta/tunnels/retrieve.md +++ b/content/en/api/python/beta/tunnels/retrieve.md @@ -127,6 +127,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/reveal_token.md b/content/en/api/python/beta/tunnels/reveal_token.md index 5a8b8eaf90..09f6613754 100644 --- a/content/en/api/python/beta/tunnels/reveal_token.md +++ b/content/en/api/python/beta/tunnels/reveal_token.md @@ -127,6 +127,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/tunnels/rotate_token.md b/content/en/api/python/beta/tunnels/rotate_token.md index 54e18634d9..6554fc4018 100644 --- a/content/en/api/python/beta/tunnels/rotate_token.md +++ b/content/en/api/python/beta/tunnels/rotate_token.md @@ -133,6 +133,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/user_profiles.md b/content/en/api/python/beta/user_profiles.md index 2944917ed1..c6a433c22d 100644 --- a/content/en/api/python/beta/user_profiles.md +++ b/content/en/api/python/beta/user_profiles.md @@ -29,13 +29,13 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -95,7 +95,7 @@ Create User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -111,7 +111,7 @@ Create User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -217,6 +217,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -249,6 +251,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -265,13 +271,13 @@ Create User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -283,11 +289,11 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -341,14 +347,10 @@ Create User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```python @@ -371,6 +373,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -382,15 +385,14 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -442,7 +444,7 @@ List User Profiles - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -548,6 +550,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -580,6 +584,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -596,13 +604,13 @@ List User Profiles - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -614,11 +622,11 @@ List User Profiles - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -672,14 +680,10 @@ List User Profiles - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```python @@ -705,6 +709,7 @@ print(page.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -716,15 +721,14 @@ print(page.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -747,7 +751,7 @@ Get User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -853,6 +857,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -885,6 +891,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -901,13 +911,13 @@ Get User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -919,11 +929,11 @@ Get User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -977,14 +987,10 @@ Get User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```python @@ -1009,6 +1015,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1020,15 +1027,14 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1060,13 +1066,13 @@ Update User Profile - `external_id: Optional[str]` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -1126,7 +1132,7 @@ Update User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1142,7 +1148,7 @@ Update User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -1248,6 +1254,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1280,6 +1288,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1296,13 +1308,13 @@ Update User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1314,11 +1326,11 @@ Update User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -1372,14 +1384,10 @@ Update User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```python @@ -1404,6 +1412,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1415,15 +1424,182 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`beta.user_profiles.delete(user_profile_id, **kwargs) -> BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `user_profile_id: str` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `workspace_id: Optional[str]` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `class BetaDeletedUserProfile` + + - `type: Literal["user_profile_deleted"]` + + Object type. Always `user_profile_deleted`. + + - `id: str` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_deleted_user_profile = client.beta.user_profiles.delete( + user_profile_id="uprof_011CZkZCu8hGbp5mYRQgUmz9", +) +print(beta_deleted_user_profile.id) +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1443,7 +1619,7 @@ Create Enrollment URL - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -1549,6 +1725,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1559,7 +1737,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: Literal["enrollment_url"]` @@ -1604,6 +1782,18 @@ print(beta_user_profile_enrollment_url.expires_at) ## Domain types +### Beta Deleted User Profile + +- `class BetaDeletedUserProfile` + + - `type: Literal["user_profile_deleted"]` + + Object type. Always `user_profile_deleted`. + + - `id: str` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `class BetaUserProfile` @@ -1630,6 +1820,10 @@ print(beta_user_profile_enrollment_url.expires_at) Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1646,13 +1840,13 @@ print(beta_user_profile_enrollment_url.expires_at) - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1664,11 +1858,11 @@ print(beta_user_profile_enrollment_url.expires_at) - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -1722,19 +1916,15 @@ print(beta_user_profile_enrollment_url.expires_at) - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: Literal["enrollment_url"]` @@ -1881,3 +2071,189 @@ print(beta_user_profile_enrollment_url.expires_at) - `"pending"` - `"rejected"` + +## User Profiles › Action URLs + +### Create Action URL + +`beta.user_profiles.action_urls.create(user_profile_id, **kwargs) -> BetaUserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `user_profile_id: str` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `action: BetaUserProfileEnrollEndUserActionParam` + + The action that the person who opens the URL takes. + + - `type: Literal["enroll_end_user"]` + +- `betas: Optional[List[AnthropicBetaParam]]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `str` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +- `workspace_id: Optional[str]` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaUserProfileActionURL` + + A URL to give to the person who takes the requested action. + + - `type: Literal["user_profile_action_url"]` + + Object type. Always `user_profile_action_url`. + + - `expires_at: datetime` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: str` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```python +import os +from anthropic import Anthropic + +client = Anthropic( + api_key=os.environ.get( + "ANTHROPIC_API_KEY" + ), # This is the default and can be omitted +) +beta_user_profile_action_url = client.beta.user_profiles.action_urls.create( + user_profile_id="uprof_011CZkZCu8hGbp5mYRQgUmz9", + action={"type": "enroll_end_user"}, +) +print(beta_user_profile_action_url.expires_at) +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/python/beta/user_profiles/create.md b/content/en/api/python/beta/user_profiles/create.md index 2513a298d9..2e07231061 100644 --- a/content/en/api/python/beta/user_profiles/create.md +++ b/content/en/api/python/beta/user_profiles/create.md @@ -27,13 +27,13 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -93,7 +93,7 @@ Create User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -109,7 +109,7 @@ Create User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -215,6 +215,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -247,6 +249,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -263,13 +269,13 @@ Create User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -281,11 +287,11 @@ Create User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -339,14 +345,10 @@ Create User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```python @@ -369,6 +371,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -380,14 +383,13 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/python/beta/user_profiles/create_enrollment_url.md b/content/en/api/python/beta/user_profiles/create_enrollment_url.md index 06dc1c80a1..362a0037ed 100644 --- a/content/en/api/python/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/python/beta/user_profiles/create_enrollment_url.md @@ -19,7 +19,7 @@ Create Enrollment URL - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -125,6 +125,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,7 +137,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: Literal["enrollment_url"]` diff --git a/content/en/api/python/beta/user_profiles/list.md b/content/en/api/python/beta/user_profiles/list.md index 9fc479753b..56ef00ada9 100644 --- a/content/en/api/python/beta/user_profiles/list.md +++ b/content/en/api/python/beta/user_profiles/list.md @@ -51,7 +51,7 @@ List User Profiles - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -157,6 +157,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -189,6 +191,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -205,13 +211,13 @@ List User Profiles - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -223,11 +229,11 @@ List User Profiles - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -281,14 +287,10 @@ List User Profiles - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```python @@ -314,6 +316,7 @@ print(page.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -325,15 +328,14 @@ print(page.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/python/beta/user_profiles/retrieve.md b/content/en/api/python/beta/user_profiles/retrieve.md index 023a4a7051..6569cc7b5c 100644 --- a/content/en/api/python/beta/user_profiles/retrieve.md +++ b/content/en/api/python/beta/user_profiles/retrieve.md @@ -19,7 +19,7 @@ Get User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -125,6 +125,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -173,13 +179,13 @@ Get User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -191,11 +197,11 @@ Get User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -249,14 +255,10 @@ Get User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```python @@ -281,6 +283,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -292,14 +295,13 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/python/beta/user_profiles/update.md b/content/en/api/python/beta/user_profiles/update.md index de6a733e87..553428b08f 100644 --- a/content/en/api/python/beta/user_profiles/update.md +++ b/content/en/api/python/beta/user_profiles/update.md @@ -31,13 +31,13 @@ Update User Profile - `external_id: Optional[str]` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: Optional[BetaUserProfileExternalUserDetailsParams]` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -97,7 +97,7 @@ Update User Profile - `external_user_onboarded_at: Optional[Union[str, datetime]]` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -113,7 +113,7 @@ Update User Profile - `betas: Optional[List[AnthropicBetaParam]]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `str` @@ -219,6 +219,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -251,6 +253,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: Optional[str]` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Dict[str, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -267,13 +273,13 @@ Update User Profile - `updated_at: datetime` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: Optional[Literal["application", "passthrough"]]` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -285,11 +291,11 @@ Update User Profile - `external_id: Optional[str]` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: Optional[BetaUserProfileExternalUserDetails]` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: Optional[Literal["active", "suspended", "blocked"]]` @@ -343,14 +349,10 @@ Update User Profile - `external_user_onboarded_at: Optional[datetime]` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: Optional[str]` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```python @@ -375,6 +377,7 @@ print(beta_user_profile.id) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -386,14 +389,13 @@ print(beta_user_profile.id) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/python/beta/vaults.md b/content/en/api/python/beta/vaults.md index 46a4a9cbb4..04e6e180c1 100644 --- a/content/en/api/python/beta/vaults.md +++ b/content/en/api/python/beta/vaults.md @@ -133,6 +133,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -342,6 +344,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -545,6 +549,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -754,6 +760,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -953,6 +961,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1119,6 +1129,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1548,6 +1560,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1889,6 +1903,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2221,6 +2237,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2688,6 +2706,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3015,6 +3035,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3186,6 +3208,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3513,6 +3537,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/archive.md b/content/en/api/python/beta/vaults/archive.md index 9a0071baca..7179e0ad1c 100644 --- a/content/en/api/python/beta/vaults/archive.md +++ b/content/en/api/python/beta/vaults/archive.md @@ -125,6 +125,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/create.md b/content/en/api/python/beta/vaults/create.md index 22fca4f83b..cbe534986d 100644 --- a/content/en/api/python/beta/vaults/create.md +++ b/content/en/api/python/beta/vaults/create.md @@ -131,6 +131,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials.md b/content/en/api/python/beta/vaults/credentials.md index f4014b8353..c49011afa5 100644 --- a/content/en/api/python/beta/vaults/credentials.md +++ b/content/en/api/python/beta/vaults/credentials.md @@ -303,6 +303,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -644,6 +646,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -976,6 +980,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1443,6 +1449,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1770,6 +1778,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1941,6 +1951,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2268,6 +2280,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/archive.md b/content/en/api/python/beta/vaults/credentials/archive.md index 9c5c63a9be..9e6ca7492c 100644 --- a/content/en/api/python/beta/vaults/credentials/archive.md +++ b/content/en/api/python/beta/vaults/credentials/archive.md @@ -129,6 +129,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/create.md b/content/en/api/python/beta/vaults/credentials/create.md index fae690c1be..ac2bd435b0 100644 --- a/content/en/api/python/beta/vaults/credentials/create.md +++ b/content/en/api/python/beta/vaults/credentials/create.md @@ -301,6 +301,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/delete.md b/content/en/api/python/beta/vaults/credentials/delete.md index 718cc17665..289bfa96c8 100644 --- a/content/en/api/python/beta/vaults/credentials/delete.md +++ b/content/en/api/python/beta/vaults/credentials/delete.md @@ -129,6 +129,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/list.md b/content/en/api/python/beta/vaults/credentials/list.md index a6cba45e8b..2a33e6866e 100644 --- a/content/en/api/python/beta/vaults/credentials/list.md +++ b/content/en/api/python/beta/vaults/credentials/list.md @@ -139,6 +139,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/python/beta/vaults/credentials/mcp_oauth_validate.md index bb7d658ac7..3812201398 100644 --- a/content/en/api/python/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/python/beta/vaults/credentials/mcp_oauth_validate.md @@ -129,6 +129,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/retrieve.md b/content/en/api/python/beta/vaults/credentials/retrieve.md index 453e47dd0d..2593dd0566 100644 --- a/content/en/api/python/beta/vaults/credentials/retrieve.md +++ b/content/en/api/python/beta/vaults/credentials/retrieve.md @@ -129,6 +129,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/credentials/update.md b/content/en/api/python/beta/vaults/credentials/update.md index 5ce22fef7f..29396ea8bd 100644 --- a/content/en/api/python/beta/vaults/credentials/update.md +++ b/content/en/api/python/beta/vaults/credentials/update.md @@ -269,6 +269,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/delete.md b/content/en/api/python/beta/vaults/delete.md index bf1d36375e..4056dee6e0 100644 --- a/content/en/api/python/beta/vaults/delete.md +++ b/content/en/api/python/beta/vaults/delete.md @@ -125,6 +125,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/list.md b/content/en/api/python/beta/vaults/list.md index 7d105178fa..5e8f740e06 100644 --- a/content/en/api/python/beta/vaults/list.md +++ b/content/en/api/python/beta/vaults/list.md @@ -135,6 +135,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/retrieve.md b/content/en/api/python/beta/vaults/retrieve.md index 5dd9069b4d..354e00b5a6 100644 --- a/content/en/api/python/beta/vaults/retrieve.md +++ b/content/en/api/python/beta/vaults/retrieve.md @@ -125,6 +125,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/vaults/update.md b/content/en/api/python/beta/vaults/update.md index a6da40143f..e31dd27af6 100644 --- a/content/en/api/python/beta/vaults/update.md +++ b/content/en/api/python/beta/vaults/update.md @@ -135,6 +135,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id: Optional[str]` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/python/beta/webhooks.md b/content/en/api/python/beta/webhooks.md index f7b56788d7..7c99f99d9d 100644 --- a/content/en/api/python/beta/webhooks.md +++ b/content/en/api/python/beta/webhooks.md @@ -821,6 +821,34 @@ url: https://platform.claude.com/docs/en/api/python/beta/webhooks - `workspace_id: str` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: Literal["user_profile.enforcement_action_opened"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: Literal["user_profile.enforcement_action_resolved"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + ### Beta Webhook Event Data - `type BetaWebhookEventData = ...` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/python/beta/webhooks - `workspace_id: str` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: Literal["user_profile.enforcement_action_opened"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: Literal["user_profile.enforcement_action_resolved"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + ### Beta Webhook Memory Store Archived Event Data - `class BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/python/beta/webhooks - `workspace_id: str` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: Literal["user_profile.enforcement_action_opened"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: Literal["user_profile.enforcement_action_resolved"]` + + - `id: str` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: str` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: str` + ### Beta Webhook Vault Archived Event Data - `class BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/python/completions.md b/content/en/api/python/completions.md index be9ccb2441..79ecd40383 100644 --- a/content/en/api/python/completions.md +++ b/content/en/api/python/completions.md @@ -141,6 +141,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/python/completions/create.md b/content/en/api/python/completions/create.md index 4068b6e5ce..e953c2cc8d 100644 --- a/content/en/api/python/completions/create.md +++ b/content/en/api/python/completions/create.md @@ -139,6 +139,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Body parameters - `max_tokens_to_sample: number` diff --git a/content/en/api/python/messages.md b/content/en/api/python/messages.md index 937d3503c4..10e7d43e07 100644 --- a/content/en/api/python/messages.md +++ b/content/en/api/python/messages.md @@ -3047,7 +3047,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -3838,6 +3838,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -3848,6 +3852,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -3858,6 +3866,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -3868,6 +3880,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -3878,12 +3894,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -7407,7 +7435,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -13443,6 +13471,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -13455,6 +13487,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -13467,6 +13503,12 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found @@ -13477,6 +13519,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -13487,6 +13533,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -13497,6 +13547,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -13507,6 +13561,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -13517,12 +13575,24 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -13531,6 +13601,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -13543,6 +13617,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -13555,6 +13633,12 @@ print(message_tokens_count.input_tokens) - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -19263,6 +19347,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -19273,6 +19361,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -19283,6 +19375,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -19293,6 +19389,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -19303,12 +19403,24 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -20642,6 +20754,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -20652,6 +20768,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -20662,6 +20782,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -20672,6 +20796,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -20682,12 +20810,24 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -25874,6 +26014,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -25884,6 +26028,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -25894,6 +26042,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -25904,6 +26056,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -25914,12 +26070,24 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -27011,6 +27179,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -27021,6 +27193,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -27031,6 +27207,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -27041,6 +27221,10 @@ print(message_tokens_count.input_tokens) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -27051,12 +27235,24 @@ print(message_tokens_count.input_tokens) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -39211,7 +39407,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) @@ -40814,6 +41010,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -40824,6 +41024,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -40834,6 +41038,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -40844,6 +41052,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -40854,12 +41066,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/messages/batches.md b/content/en/api/python/messages/batches.md index 1ac455ffd6..9abfc4eff2 100644 --- a/content/en/api/python/messages/batches.md +++ b/content/en/api/python/messages/batches.md @@ -3067,7 +3067,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) @@ -4670,6 +4670,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -4680,6 +4684,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -4690,6 +4698,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -4700,6 +4712,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -4710,12 +4726,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -6200,6 +6228,10 @@ for batch in client.messages.batches.results( - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -6210,6 +6242,10 @@ for batch in client.messages.batches.results( - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -6220,6 +6256,10 @@ for batch in client.messages.batches.results( - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -6230,6 +6270,10 @@ for batch in client.messages.batches.results( - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -6240,12 +6284,24 @@ for batch in client.messages.batches.results( - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -7493,6 +7549,10 @@ for batch in client.messages.batches.results( - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -7503,6 +7563,10 @@ for batch in client.messages.batches.results( - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -7513,6 +7577,10 @@ for batch in client.messages.batches.results( - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -7523,6 +7591,10 @@ for batch in client.messages.batches.results( - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -7533,12 +7605,24 @@ for batch in client.messages.batches.results( - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable @@ -8738,6 +8822,10 @@ for batch in client.messages.batches.results( - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -8748,6 +8836,10 @@ for batch in client.messages.batches.results( - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -8758,6 +8850,10 @@ for batch in client.messages.batches.results( - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -8768,6 +8864,10 @@ for batch in client.messages.batches.results( - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -8778,12 +8878,24 @@ for batch in client.messages.batches.results( - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/messages/batches/create.md b/content/en/api/python/messages/batches/create.md index 702760f225..fb1cae38d5 100644 --- a/content/en/api/python/messages/batches/create.md +++ b/content/en/api/python/messages/batches/create.md @@ -3065,7 +3065,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: Optional[str]` (header parameter) diff --git a/content/en/api/python/messages/batches/results.md b/content/en/api/python/messages/batches/results.md index 91da495312..991eeecc59 100644 --- a/content/en/api/python/messages/batches/results.md +++ b/content/en/api/python/messages/batches/results.md @@ -832,6 +832,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -842,6 +846,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -852,6 +860,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -862,6 +874,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -872,12 +888,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/messages/count_tokens.md b/content/en/api/python/messages/count_tokens.md index 0f32f2824c..f21e3a2643 100644 --- a/content/en/api/python/messages/count_tokens.md +++ b/content/en/api/python/messages/count_tokens.md @@ -2943,7 +2943,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) diff --git a/content/en/api/python/messages/create.md b/content/en/api/python/messages/create.md index fae7904f69..45fdbe9285 100644 --- a/content/en/api/python/messages/create.md +++ b/content/en/api/python/messages/create.md @@ -3045,7 +3045,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id: Optional[str]` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: Optional[str]` (header parameter) @@ -3836,6 +3836,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["model_changed"]` default: model_changed @@ -3846,6 +3850,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["system_changed"]` default: system_changed @@ -3856,6 +3864,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["tools_changed"]` default: tools_changed @@ -3866,6 +3878,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["messages_changed"]` default: messages_changed @@ -3876,12 +3892,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["previous_message_not_found"]` default: previous_message_not_found - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=python#cache-miss-reason-types) to learn what to change for each reason. + - `type: Literal["unavailable"]` default: unavailable diff --git a/content/en/api/python/models.md b/content/en/api/python/models.md index e7451d202e..cbb2fb7602 100644 --- a/content/en/api/python/models.md +++ b/content/en/api/python/models.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `class ModelInfo` @@ -609,6 +611,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `class ModelInfo` diff --git a/content/en/api/python/models/list.md b/content/en/api/python/models/list.md index dc661f8af5..04a3546527 100644 --- a/content/en/api/python/models/list.md +++ b/content/en/api/python/models/list.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `class ModelInfo` diff --git a/content/en/api/python/models/retrieve.md b/content/en/api/python/models/retrieve.md index 663a4ba579..ca79f0e795 100644 --- a/content/en/api/python/models/retrieve.md +++ b/content/en/api/python/models/retrieve.md @@ -135,6 +135,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `class ModelInfo` diff --git a/content/en/api/ruby/beta.md b/content/en/api/ruby/beta.md index 6807bf9423..0e3bce2b81 100644 --- a/content/en/api/ruby/beta.md +++ b/content/en/api/ruby/beta.md @@ -9,7 +9,7 @@ url: https://platform.claude.com/docs/en/api/ruby/beta ### Anthropic Beta -- `type AnthropicBeta = String | :"message-batches-2024-09-24" | :"prompt-caching-2024-07-31" | :"computer-use-2024-10-22" | 48 more` +- `type AnthropicBeta = String | :"message-batches-2024-09-24" | :"prompt-caching-2024-07-31" | :"computer-use-2024-10-22" | 49 more` - `String = String` @@ -115,6 +115,8 @@ url: https://platform.claude.com/docs/en/api/ruby/beta - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Beta API Error - `class BetaAPIError` @@ -477,6 +479,8 @@ The Models API response can be used to determine which models are available for - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -940,6 +944,8 @@ The Models API response can be used to determine information about a specific mo - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4921,8 +4927,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -4971,7 +4991,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -4979,6 +5003,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -5458,9 +5488,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -8558,6 +8590,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -8566,6 +8602,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -8574,6 +8614,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -8582,6 +8626,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -8590,10 +8638,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -13587,9 +13647,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -13647,4147 +13709,4093 @@ puts(beta_message_tokens_count) } ``` -## Beta › Messages › Batches +### Stream -### Create a Message Batch +`beta.messages.stream(**kwargs) -> Anthropic::Helpers::Streaming::MessageStream` -`beta.messages.batches.create(**kwargs) -> BetaMessageBatch` +Streams a message like `stream_raw` and returns a MessageStream, which accumulates the streamed events and parses tool inputs and structured output. -**POST** `/v1/messages/batches` +#### Parameters -Send a batch of Message creation requests. +- `max_tokens: Integer` -The Message Batches API can be used to process multiple Messages API requests at once. Once a Message Batch is created, it begins processing immediately. Batches can take up to 24 hours to complete. + The maximum number of tokens to generate before stopping. -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. -#### Parameters + Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby#pre-warming-the-cache) without generating a response. -- `requests: Array[Request]` + Different models have different maximum values for this parameter. See [models](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby) for details. - List of requests for prompt completion. Each is an individual request to create a Message. + minimum: 0 - minItems: 1, maxItems: 100000 +- `messages: Array[BetaMessageParam]` - - `custom_id: String` + Input messages. - Developer-provided ID created for each request in a Message Batch. Useful for matching results to requests, as results may be given out of request order. + Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn. - Must be unique for each request within the Message Batch. + Each input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages. - minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]{1,64}$ + If the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response. This is called prefill. On models that don't support prefill, creating a message that ends with a partial `assistant` response returns a 400 error. See [Prefill not supported](https://platform.claude.com/docs/en/api/errors?sdk_languages=ruby#prefill-not-supported). - - `params: Params` + Example with a single `user` message: - Messages API creation parameters for the individual request. + ```json + [{"role": "user", "content": "Hello, Claude"}] + ``` - See the [Messages API reference](https://platform.claude.com/docs/en/api/messages?sdk_languages=ruby) for full documentation on available parameters. + Example with multiple conversational turns: - - `max_tokens: Integer` + ```json + [ + {"role": "user", "content": "Hello there."}, + {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, + {"role": "user", "content": "Can you explain LLMs in plain English?"}, + ] + ``` - The maximum number of tokens to generate before stopping. + Example with a partially-filled response from Claude, for models that support prefill: - Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. + ```json + [ + {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, + {"role": "assistant", "content": "The best answer is ("}, + ] + ``` - Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby#pre-warming-the-cache) without generating a response. + Each input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `"text"`. The following input messages are equivalent: - Different models have different maximum values for this parameter. See [models](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby) for details. + ```json + {"role": "user", "content": "Hello, Claude"} + ``` - minimum: 0 + ```json + {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]} + ``` - - `messages: Array[BetaMessageParam]` + See [input examples](https://platform.claude.com/docs/en/build-with-claude/working-with-messages?sdk_languages=ruby). - Input messages. + Note that if you want to include a [system prompt](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role), you can use the top-level `system` parameter — there is no `"system"` role for input messages in the Messages API. - Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn. + There is a limit of 100,000 messages in a single request. - Each input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages. + - `content: String | Array[BetaContentBlockParam]` - If the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response. This is called prefill. On models that don't support prefill, creating a message that ends with a partial `assistant` response returns a 400 error. See [Prefill not supported](https://platform.claude.com/docs/en/api/errors?sdk_languages=ruby#prefill-not-supported). + - `String = String` - Example with a single `user` message: + - `UnionMember1 = Array[BetaContentBlockParam]` - ```json - [{"role": "user", "content": "Hello, Claude"}] - ``` + - `class BetaTextBlockParam` - Example with multiple conversational turns: + - `type: :text` - ```json - [ - {"role": "user", "content": "Hello there."}, - {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, - {"role": "user", "content": "Can you explain LLMs in plain English?"}, - ] - ``` + - `text: String` - Example with a partially-filled response from Claude, for models that support prefill: + minLength: 1 - ```json - [ - {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, - {"role": "assistant", "content": "The best answer is ("}, - ] - ``` + - `cache_control: BetaCacheControlEphemeral` - Each input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `"text"`. The following input messages are equivalent: + Create a cache control breakpoint at this content block. - ```json - {"role": "user", "content": "Hello, Claude"} - ``` + - `type: :ephemeral` - ```json - {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]} - ``` + - `ttl: :"5m" | :"1h"` - See [input examples](https://platform.claude.com/docs/en/build-with-claude/working-with-messages?sdk_languages=ruby). + The time-to-live for the cache control breakpoint. - Note that if you want to include a [system prompt](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role), you can use the top-level `system` parameter — there is no `"system"` role for input messages in the Messages API. + This may be one the following values: - There is a limit of 100,000 messages in a single request. + - `5m`: 5 minutes + - `1h`: 1 hour - - `content: String | Array[BetaContentBlockParam]` + Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. - - `String = String` + - `:"5m"` - - `UnionMember1 = Array[BetaContentBlockParam]` + - `:"1h"` - - `class BetaTextBlockParam` + - `citations: Array[BetaTextCitationParam]` - - `type: :text` + - `class BetaCitationCharLocationParam` - - `text: String` + - `type: :char_location` - minLength: 1 + - `cited_text: String` - - `cache_control: BetaCacheControlEphemeral` + - `document_index: Integer` - Create a cache control breakpoint at this content block. + minimum: 0 - - `type: :ephemeral` + - `document_title: String` - - `ttl: :"5m" | :"1h"` + minLength: 1, maxLength: 500 - The time-to-live for the cache control breakpoint. + - `end_char_index: Integer` - This may be one the following values: + - `start_char_index: Integer` - - `5m`: 5 minutes - - `1h`: 1 hour + minimum: 0 - Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. + - `class BetaCitationPageLocationParam` - - `:"5m"` + - `type: :page_location` - - `:"1h"` + - `cited_text: String` - - `citations: Array[BetaTextCitationParam]` + - `document_index: Integer` - - `class BetaCitationCharLocationParam` + minimum: 0 - - `type: :char_location` + - `document_title: String` - - `cited_text: String` + minLength: 1, maxLength: 500 - - `document_index: Integer` + - `end_page_number: Integer` - minimum: 0 + - `start_page_number: Integer` - - `document_title: String` + minimum: 1 - minLength: 1, maxLength: 500 + - `class BetaCitationContentBlockLocationParam` - - `end_char_index: Integer` + - `type: :content_block_location` - - `start_char_index: Integer` + - `cited_text: String` - minimum: 0 + The full text of the cited block range, concatenated. - - `class BetaCitationPageLocationParam` + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - - `type: :page_location` + - `document_index: Integer` - - `cited_text: String` + minimum: 0 - - `document_index: Integer` + - `document_title: String` - minimum: 0 + minLength: 1, maxLength: 500 - - `document_title: String` + - `end_block_index: Integer` - minLength: 1, maxLength: 500 + Exclusive 0-based end index of the cited block range in the source's `content` array. - - `end_page_number: Integer` + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. - - `start_page_number: Integer` + - `start_block_index: Integer` - minimum: 1 + 0-based index of the first cited block in the source's `content` array. - - `class BetaCitationContentBlockLocationParam` + minimum: 0 - - `type: :content_block_location` + - `class BetaCitationWebSearchResultLocationParam` - - `cited_text: String` + - `type: :web_search_result_location` - The full text of the cited block range, concatenated. + - `cited_text: String` - Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + - `encrypted_index: String` - - `document_index: Integer` + - `title: String` - minimum: 0 + minLength: 1, maxLength: 512 - - `document_title: String` + - `url: String` - minLength: 1, maxLength: 500 + minLength: 1 - - `end_block_index: Integer` + - `class BetaCitationSearchResultLocationParam` - Exclusive 0-based end index of the cited block range in the source's `content` array. + - `type: :search_result_location` - Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + - `cited_text: String` - - `start_block_index: Integer` + The full text of the cited block range, concatenated. - 0-based index of the first cited block in the source's `content` array. + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - minimum: 0 + - `end_block_index: Integer` - - `class BetaCitationWebSearchResultLocationParam` + Exclusive 0-based end index of the cited block range in the source's `content` array. - - `type: :web_search_result_location` + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. - - `cited_text: String` + - `search_result_index: Integer` - - `encrypted_index: String` + 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. - - `title: String` + Counted separately from `document_index`; server-side web search results are not included in this count. - minLength: 1, maxLength: 512 + minimum: 0 - - `url: String` + - `source: String` - minLength: 1 + - `start_block_index: Integer` - - `class BetaCitationSearchResultLocationParam` + 0-based index of the first cited block in the source's `content` array. - - `type: :search_result_location` + minimum: 0 - - `cited_text: String` + - `title: String` - The full text of the cited block range, concatenated. + - `class BetaImageBlockParam` - Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + - `type: :image` - - `end_block_index: Integer` + - `source: BetaBase64ImageSource | BetaURLImageSource | BetaFileImageSource` - Exclusive 0-based end index of the cited block range in the source's `content` array. + - `class BetaBase64ImageSource` - Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + - `type: :base64` - - `search_result_index: Integer` + - `data: String` - 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. + format: byte - Counted separately from `document_index`; server-side web search results are not included in this count. + - `media_type: :"image/jpeg" | :"image/png" | :"image/gif" | :"image/webp"` - minimum: 0 + - `:"image/jpeg"` - - `source: String` + - `:"image/png"` - - `start_block_index: Integer` + - `:"image/gif"` - 0-based index of the first cited block in the source's `content` array. + - `:"image/webp"` - minimum: 0 + - `class BetaURLImageSource` - - `title: String` + - `type: :url` - - `class BetaImageBlockParam` + - `url: String` - - `type: :image` + - `class BetaFileImageSource` - - `source: BetaBase64ImageSource | BetaURLImageSource | BetaFileImageSource` + - `type: :file` - - `class BetaBase64ImageSource` + - `file_id: String` - - `type: :base64` + - `cache_control: BetaCacheControlEphemeral` - - `data: String` + Create a cache control breakpoint at this content block. - format: byte + - `transformations: BetaImageTransformationsParam` - - `media_type: :"image/jpeg" | :"image/png" | :"image/gif" | :"image/webp"` + Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field. - - `:"image/jpeg"` + - `oversized_image: :downsize | :error` - - `:"image/png"` + What the server does when this image exceeds the model's maximum image size. `"downsize"` (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. `"error"` instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down. - - `:"image/gif"` + - `:downsize` - - `:"image/webp"` + - `:error` - - `class BetaURLImageSource` + - `class BetaRequestDocumentBlock` - - `type: :url` + - `type: :document` - - `url: String` + - `source: BetaBase64PDFSource | BetaPlainTextSource | BetaContentBlockSource | 2 more` - - `class BetaFileImageSource` + - `class BetaBase64PDFSource` - - `type: :file` + - `type: :base64` - - `file_id: String` + - `data: String` - - `cache_control: BetaCacheControlEphemeral` + format: byte - Create a cache control breakpoint at this content block. + - `media_type: :"application/pdf"` - - `transformations: BetaImageTransformationsParam` + - `class BetaPlainTextSource` - Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field. + - `type: :text` - - `oversized_image: :downsize | :error` + - `data: String` - What the server does when this image exceeds the model's maximum image size. `"downsize"` (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. `"error"` instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down. + - `media_type: :"text/plain"` - - `:downsize` + - `class BetaContentBlockSource` - - `:error` + - `type: :content` - - `class BetaRequestDocumentBlock` + - `content: String | Array[BetaContentBlockSourceContent]` - - `type: :document` + - `String = String` - - `source: BetaBase64PDFSource | BetaPlainTextSource | BetaContentBlockSource | 2 more` + - `BetaContentBlockSourceContent = Array[BetaContentBlockSourceContent]` - - `class BetaBase64PDFSource` + - `class BetaTextBlockParam` - - `type: :base64` + - `class BetaImageBlockParam` - - `data: String` + - `class BetaURLPDFSource` - format: byte + - `type: :url` - - `media_type: :"application/pdf"` + - `url: String` - - `class BetaPlainTextSource` + - `class BetaFileDocumentSource` - - `type: :text` + - `type: :file` - - `data: String` + - `file_id: String` - - `media_type: :"text/plain"` + - `cache_control: BetaCacheControlEphemeral` - - `class BetaContentBlockSource` + Create a cache control breakpoint at this content block. - - `type: :content` + - `citations: BetaCitationsConfigParam` - - `content: String | Array[BetaContentBlockSourceContent]` + - `enabled: bool` - - `String = String` + - `context: String` - - `BetaContentBlockSourceContent = Array[BetaContentBlockSourceContent]` + minLength: 1 - - `class BetaTextBlockParam` + - `title: String` - - `class BetaImageBlockParam` + minLength: 1, maxLength: 500 - - `class BetaURLPDFSource` + - `class BetaSearchResultBlockParam` - - `type: :url` + - `type: :search_result` - - `url: String` + - `content: Array[BetaTextBlockParam]` - - `class BetaFileDocumentSource` + - `type: :text` - - `type: :file` + - `text: String` - - `file_id: String` + minLength: 1 - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `citations: BetaCitationsConfigParam` + - `citations: Array[BetaTextCitationParam]` - - `enabled: bool` + - `source: String` - - `context: String` + - `title: String` - minLength: 1 + - `cache_control: BetaCacheControlEphemeral` - - `title: String` + Create a cache control breakpoint at this content block. - minLength: 1, maxLength: 500 + - `citations: BetaCitationsConfigParam` - - `class BetaSearchResultBlockParam` + - `class BetaThinkingBlockParam` - - `type: :search_result` + - `type: :thinking` - - `content: Array[BetaTextBlockParam]` + - `signature: String` - - `type: :text` + The `signature` value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude. - - `text: String` + Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 `invalid_request_error`. - minLength: 1 + - `thinking: String` - - `cache_control: BetaCacheControlEphemeral` + The `thinking` text of this block as returned by the API. - Create a cache control breakpoint at this content block. + - `class BetaRedactedThinkingBlockParam` - - `citations: Array[BetaTextCitationParam]` + - `type: :redacted_thinking` - - `source: String` + - `data: String` - - `title: String` + The `data` value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged. - - `cache_control: BetaCacheControlEphemeral` + - `class BetaToolUseBlockParam` - Create a cache control breakpoint at this content block. + - `type: :tool_use` - - `citations: BetaCitationsConfigParam` + - `id: String` - - `class BetaThinkingBlockParam` + pattern: ^[a-zA-Z0-9_-]+$ - - `type: :thinking` + - `input: Hash[Symbol, untyped]` - - `signature: String` + - `name: String` - The `signature` value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude. + minLength: 1, maxLength: 200 - Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 `invalid_request_error`. + - `cache_control: BetaCacheControlEphemeral` - - `thinking: String` + Create a cache control breakpoint at this content block. - The `thinking` text of this block as returned by the API. + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `class BetaRedactedThinkingBlockParam` + - `class BetaDirectCaller` - - `type: :redacted_thinking` + Tool invocation directly from the model. - - `data: String` + - `type: :direct` - The `data` value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged. + - `class BetaServerToolCaller` - - `class BetaToolUseBlockParam` + Tool invocation generated by a server-side tool. - - `type: :tool_use` + - `type: :code_execution_20250825` - - `id: String` + - `tool_id: String` - pattern: ^[a-zA-Z0-9_-]+$ + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `input: Hash[Symbol, untyped]` + - `class BetaServerToolCaller20260120` - - `name: String` + - `type: :code_execution_20260120` - minLength: 1, maxLength: 200 + - `tool_id: String` - - `cache_control: BetaCacheControlEphemeral` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - Create a cache control breakpoint at this content block. + - `toolset_name: String` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + For a toolset member tool_use, the toolset family this member belongs to. - - `class BetaDirectCaller` + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ - Tool invocation directly from the model. + - `class BetaToolResultBlockParam` - - `type: :direct` + - `type: :tool_result` - - `class BetaServerToolCaller` + - `tool_use_id: String` - Tool invocation generated by a server-side tool. + pattern: ^[a-zA-Z0-9_-]+$ - - `type: :code_execution_20250825` + - `cache_control: BetaCacheControlEphemeral` - - `tool_id: String` + Create a cache control breakpoint at this content block. - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `content: String | Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` - - `class BetaServerToolCaller20260120` + - `String = String` - - `type: :code_execution_20260120` + - `Content = Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` - - `tool_id: String` + - `class BetaTextBlockParam` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `class BetaImageBlockParam` - - `toolset_name: String` + - `class BetaSearchResultBlockParam` - For a toolset member tool_use, the toolset family this member belongs to. + - `class BetaRequestDocumentBlock` - minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + - `class BetaToolReferenceBlockParam` - - `class BetaToolResultBlockParam` + Tool reference block that can be included in tool_result content. - - `type: :tool_result` + - `type: :tool_reference` - - `tool_use_id: String` + - `tool_name: String` - pattern: ^[a-zA-Z0-9_-]+$ + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `content: String | Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` + - `class BetaBrowserStateBlockParam` - - `String = String` + The caller's browser state after a browser toolset member call — + the full inventory of open tabs, which tab is active, and any side + effects (tabs opened, download state changes) the call produced. - - `Content = Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` + At most one per `tool_result`, only on a non-error result answering a + browser toolset member `tool_use`. The server renders the + model-visible text from it; the model never sees the raw fields. - - `class BetaTextBlockParam` + - `type: :browser_state` - - `class BetaImageBlockParam` + - `tabs: Array[BetaBrowserStateTabEntry]` - - `class BetaSearchResultBlockParam` + All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`. - - `class BetaRequestDocumentBlock` + maxItems: 100 - - `class BetaToolReferenceBlockParam` + - `tab_id: String` - Tool reference block that can be included in tool_result content. + The caller-assigned identifier for this tab, unique within the inventory. - - `type: :tool_reference` + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `tool_name: String` + - `title: String` - minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + The title of the page the tab is showing. May be empty. - - `cache_control: BetaCacheControlEphemeral` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - Create a cache control breakpoint at this content block. + - `url: String` - - `class BetaBrowserStateBlockParam` + The URL of the page the tab is showing. May be empty. - The caller's browser state after a browser toolset member call — - the full inventory of open tabs, which tab is active, and any side - effects (tabs opened, download state changes) the call produced. + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - At most one per `tool_result`, only on a non-error result answering a - browser toolset member `tool_use`. The server renders the - model-visible text from it; the model never sees the raw fields. + - `active: bool` - - `type: :browser_state` + Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`. - - `tabs: Array[BetaBrowserStateTabEntry]` + - `cache_control: BetaCacheControlEphemeral` - All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`. + Create a cache control breakpoint at this content block. - maxItems: 100 + - `state_changes: Array[BetaBrowserStateChange]` - - `tab_id: String` + Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list. - The caller-assigned identifier for this tab, unique within the inventory. + minItems: 1, maxItems: 200 - minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + - `class BetaBrowserStateChangeTabOpened` - - `title: String` + A tab this call's execution opened that remains open at its end — + the creation delta of the `tabs` inventory, not an event log. - The title of the page the tab is showing. May be empty. + Carries only the `tab_id`; the tab's `title` and `url` live on its + `tabs` entry, which must include the same `tab_id`. A tab opened + during a failed call gets no deferred `tab_opened`; it simply appears + in the next result's `tabs` inventory. - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + - `type: :tab_opened` - - `url: String` + - `tab_id: String` - The URL of the page the tab is showing. May be empty. + The `tab_id` of the opened tab, present in `tabs`. - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `active: bool` + - `class BetaBrowserStateChangeDownloadStarted` - Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`. + A file download that started during this call. - - `cache_control: BetaCacheControlEphemeral` + - `type: :download_started` - Create a cache control breakpoint at this content block. + - `download_id: String` - - `state_changes: Array[BetaBrowserStateChange]` + The caller-assigned identifier for this download, stable across the state changes reporting it. - Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list. + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - minItems: 1, maxItems: 200 + - `url: String` - - `class BetaBrowserStateChangeTabOpened` + The final post-redirect URL the download was served from. - A tab this call's execution opened that remains open at its end — - the creation delta of the `tabs` inventory, not an event log. + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - Carries only the `tab_id`; the tab's `title` and `url` live on its - `tabs` entry, which must include the same `tab_id`. A tab opened - during a failed call gets no deferred `tab_opened`; it simply appears - in the next result's `tabs` inventory. + - `class BetaBrowserStateChangeDownloadCompleted` - - `type: :tab_opened` + A file download that finished during this call, reported with the + same `download_id` as its `download_started` — or without a prior + `download_started`, when the download finished during the call that + started it (at most one state change per `download_id` per result). - - `tab_id: String` + - `type: :download_completed` - The `tab_id` of the opened tab, present in `tabs`. + - `download_id: String` - minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + The caller-assigned identifier for this download, stable across the state changes reporting it. - - `class BetaBrowserStateChangeDownloadStarted` + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - A file download that started during this call. + - `url: String` - - `type: :download_started` + The final post-redirect URL the download was served from. - - `download_id: String` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - The caller-assigned identifier for this download, stable across the state changes reporting it. + - `path: String` - minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path. - - `url: String` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - The final post-redirect URL the download was served from. + - `size_bytes: Integer` - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + The completed download's size. - - `class BetaBrowserStateChangeDownloadCompleted` + minimum: 0 - A file download that finished during this call, reported with the - same `download_id` as its `download_started` — or without a prior - `download_started`, when the download finished during the call that - started it (at most one state change per `download_id` per result). + - `class BetaBrowserStateChangeDownloadFailed` - - `type: :download_completed` + A file download that failed — or was cancelled — during this call. - - `download_id: String` + - `type: :download_failed` - The caller-assigned identifier for this download, stable across the state changes reporting it. + - `download_id: String` - minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + The caller-assigned identifier for this download, stable across the state changes reporting it. - - `url: String` + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - The final post-redirect URL the download was served from. + - `url: String` - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + The final post-redirect URL the download was served from. - - `path: String` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path. + - `error: String` - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + The failure or cancellation detail, when known. - - `size_bytes: Integer` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - The completed download's size. + - `is_error: bool` - minimum: 0 + - `toolset_name: String` - - `class BetaBrowserStateChangeDownloadFailed` + For a toolset member tool_result, the toolset family of the paired tool_use. - A file download that failed — or was cancelled — during this call. + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ - - `type: :download_failed` + - `class BetaServerToolUseBlockParam` - - `download_id: String` + - `type: :server_tool_use` - The caller-assigned identifier for this download, stable across the state changes reporting it. + - `id: String` - minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `url: String` + - `input: Hash[Symbol, untyped]` - The final post-redirect URL the download was served from. + - `name: :advisor | :web_search | :web_fetch | 5 more` - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + - `:advisor` - - `error: String` + - `:web_search` - The failure or cancellation detail, when known. + - `:web_fetch` - maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + - `:code_execution` - - `is_error: bool` + - `:bash_code_execution` - - `toolset_name: String` + - `:text_editor_code_execution` - For a toolset member tool_result, the toolset family of the paired tool_use. + - `:tool_search_tool_regex` - minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + - `:tool_search_tool_bm25` - - `class BetaServerToolUseBlockParam` + - `cache_control: BetaCacheControlEphemeral` - - `type: :server_tool_use` + Create a cache control breakpoint at this content block. - - `id: String` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `class BetaDirectCaller` - - `input: Hash[Symbol, untyped]` + Tool invocation directly from the model. - - `name: :advisor | :web_search | :web_fetch | 5 more` + - `class BetaServerToolCaller` - - `:advisor` + Tool invocation generated by a server-side tool. - - `:web_search` + - `class BetaServerToolCaller20260120` - - `:web_fetch` + - `class BetaWebSearchToolResultBlockParam` - - `:code_execution` + - `type: :web_search_tool_result` - - `:bash_code_execution` + - `content: BetaWebSearchToolResultBlockParamContent` - - `:text_editor_code_execution` + - `ResultBlock = Array[BetaWebSearchResultBlockParam]` - - `:tool_search_tool_regex` + - `type: :web_search_result` - - `:tool_search_tool_bm25` + - `encrypted_content: String` - - `cache_control: BetaCacheControlEphemeral` + - `title: String` - Create a cache control breakpoint at this content block. + - `url: String` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `page_age: String` - - `class BetaDirectCaller` + - `class BetaWebSearchToolRequestError` - Tool invocation directly from the model. + - `type: :web_search_tool_result_error` - - `class BetaServerToolCaller` + - `error_code: BetaWebSearchToolResultErrorCode` - Tool invocation generated by a server-side tool. + - `:invalid_tool_input` - - `class BetaServerToolCaller20260120` + - `:unavailable` - - `class BetaWebSearchToolResultBlockParam` + - `:max_uses_exceeded` - - `type: :web_search_tool_result` + - `:too_many_requests` - - `content: BetaWebSearchToolResultBlockParamContent` + - `:query_too_long` - - `ResultBlock = Array[BetaWebSearchResultBlockParam]` + - `:request_too_large` - - `type: :web_search_result` + - `tool_use_id: String` - - `encrypted_content: String` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `title: String` + - `cache_control: BetaCacheControlEphemeral` - - `url: String` + Create a cache control breakpoint at this content block. - - `page_age: String` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `class BetaWebSearchToolRequestError` + - `class BetaDirectCaller` - - `type: :web_search_tool_result_error` + Tool invocation directly from the model. - - `error_code: BetaWebSearchToolResultErrorCode` + - `class BetaServerToolCaller` - - `:invalid_tool_input` + Tool invocation generated by a server-side tool. - - `:unavailable` + - `class BetaServerToolCaller20260120` - - `:max_uses_exceeded` + - `class BetaWebFetchToolResultBlockParam` - - `:too_many_requests` + - `type: :web_fetch_tool_result` - - `:query_too_long` + - `content: BetaWebFetchToolResultErrorBlockParam | BetaWebFetchBlockParam` - - `:request_too_large` + - `class BetaWebFetchToolResultErrorBlockParam` - - `tool_use_id: String` + - `type: :web_fetch_tool_result_error` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `error_code: BetaWebFetchToolResultErrorCode` - - `cache_control: BetaCacheControlEphemeral` + - `:invalid_tool_input` - Create a cache control breakpoint at this content block. + - `:url_too_long` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `:url_not_allowed` - - `class BetaDirectCaller` + - `:url_not_in_prior_context` - Tool invocation directly from the model. + - `:url_not_accessible` - - `class BetaServerToolCaller` + - `:unsupported_content_type` - Tool invocation generated by a server-side tool. + - `:too_many_requests` - - `class BetaServerToolCaller20260120` + - `:max_uses_exceeded` - - `class BetaWebFetchToolResultBlockParam` + - `:unavailable` - - `type: :web_fetch_tool_result` + - `:content_too_large` - - `content: BetaWebFetchToolResultErrorBlockParam | BetaWebFetchBlockParam` + - `class BetaWebFetchBlockParam` - - `class BetaWebFetchToolResultErrorBlockParam` + - `type: :web_fetch_result` - - `type: :web_fetch_tool_result_error` + - `content: BetaRequestDocumentBlock` - - `error_code: BetaWebFetchToolResultErrorCode` + - `url: String` - - `:invalid_tool_input` + Fetched content URL - - `:url_too_long` + - `retrieved_at: String` - - `:url_not_allowed` + ISO 8601 timestamp when the content was retrieved - - `:url_not_in_prior_context` + - `tool_use_id: String` - - `:url_not_accessible` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:unsupported_content_type` + - `cache_control: BetaCacheControlEphemeral` - - `:too_many_requests` + Create a cache control breakpoint at this content block. - - `:max_uses_exceeded` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `:unavailable` + - `class BetaDirectCaller` - - `:content_too_large` + Tool invocation directly from the model. - - `class BetaWebFetchBlockParam` + - `class BetaServerToolCaller` - - `type: :web_fetch_result` + Tool invocation generated by a server-side tool. - - `content: BetaRequestDocumentBlock` + - `class BetaServerToolCaller20260120` - - `url: String` + - `class BetaAdvisorToolResultBlockParam` - Fetched content URL + - `type: :advisor_tool_result` - - `retrieved_at: String` + - `content: BetaAdvisorToolResultErrorParam | BetaAdvisorResultBlockParam | BetaAdvisorRedactedResultBlockParam` - ISO 8601 timestamp when the content was retrieved + - `class BetaAdvisorToolResultErrorParam` - - `tool_use_id: String` + - `type: :advisor_tool_result_error` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` - - `cache_control: BetaCacheControlEphemeral` + - `:max_uses_exceeded` - Create a cache control breakpoint at this content block. + - `:prompt_too_long` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `:too_many_requests` - - `class BetaDirectCaller` + - `:overloaded` - Tool invocation directly from the model. + - `:unavailable` - - `class BetaServerToolCaller` + - `:execution_time_exceeded` - Tool invocation generated by a server-side tool. + - `:model_not_found` - - `class BetaServerToolCaller20260120` + - `class BetaAdvisorResultBlockParam` - - `class BetaAdvisorToolResultBlockParam` + - `type: :advisor_result` - - `type: :advisor_tool_result` + - `text: String` - - `content: BetaAdvisorToolResultErrorParam | BetaAdvisorResultBlockParam | BetaAdvisorRedactedResultBlockParam` + - `stop_reason: String` - - `class BetaAdvisorToolResultErrorParam` + - `class BetaAdvisorRedactedResultBlockParam` - - `type: :advisor_tool_result_error` + - `type: :advisor_redacted_result` - - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` + - `encrypted_content: String` - - `:max_uses_exceeded` + Opaque blob produced by a prior response; must be round-tripped verbatim. - - `:prompt_too_long` + - `stop_reason: String` - - `:too_many_requests` + - `tool_use_id: String` - - `:overloaded` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:unavailable` + - `cache_control: BetaCacheControlEphemeral` - - `:execution_time_exceeded` + Create a cache control breakpoint at this content block. - - `:model_not_found` + - `class BetaCodeExecutionToolResultBlockParam` - - `class BetaAdvisorResultBlockParam` + - `type: :code_execution_tool_result` - - `type: :advisor_result` + - `content: BetaCodeExecutionToolResultBlockParamContent` - - `text: String` + - `class BetaCodeExecutionToolResultErrorParam` - - `stop_reason: String` + - `type: :code_execution_tool_result_error` - - `class BetaAdvisorRedactedResultBlockParam` + - `error_code: BetaCodeExecutionToolResultErrorCode` - - `type: :advisor_redacted_result` + - `:invalid_tool_input` - - `encrypted_content: String` + - `:unavailable` - Opaque blob produced by a prior response; must be round-tripped verbatim. + - `:too_many_requests` - - `stop_reason: String` + - `:execution_time_exceeded` - - `tool_use_id: String` + - `class BetaCodeExecutionResultBlockParam` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `type: :code_execution_result` - - `cache_control: BetaCacheControlEphemeral` + - `content: Array[BetaCodeExecutionOutputBlockParam]` - Create a cache control breakpoint at this content block. + - `type: :code_execution_output` - - `class BetaCodeExecutionToolResultBlockParam` + - `file_id: String` - - `type: :code_execution_tool_result` + - `return_code: Integer` - - `content: BetaCodeExecutionToolResultBlockParamContent` + - `stderr: String` - - `class BetaCodeExecutionToolResultErrorParam` + - `stdout: String` - - `type: :code_execution_tool_result_error` + - `class BetaEncryptedCodeExecutionResultBlockParam` - - `error_code: BetaCodeExecutionToolResultErrorCode` + Code execution result with encrypted stdout for PFC + web_search results. - - `:invalid_tool_input` + - `type: :encrypted_code_execution_result` - - `:unavailable` + - `content: Array[BetaCodeExecutionOutputBlockParam]` - - `:too_many_requests` + - `type: :code_execution_output` - - `:execution_time_exceeded` + - `file_id: String` - - `class BetaCodeExecutionResultBlockParam` + - `encrypted_stdout: String` - - `type: :code_execution_result` + - `return_code: Integer` - - `content: Array[BetaCodeExecutionOutputBlockParam]` + - `stderr: String` - - `type: :code_execution_output` + - `tool_use_id: String` - - `file_id: String` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `return_code: Integer` + - `cache_control: BetaCacheControlEphemeral` - - `stderr: String` + Create a cache control breakpoint at this content block. - - `stdout: String` + - `class BetaBashCodeExecutionToolResultBlockParam` - - `class BetaEncryptedCodeExecutionResultBlockParam` + - `type: :bash_code_execution_tool_result` - Code execution result with encrypted stdout for PFC + web_search results. + - `content: BetaBashCodeExecutionToolResultErrorParam | BetaBashCodeExecutionResultBlockParam` - - `type: :encrypted_code_execution_result` + - `class BetaBashCodeExecutionToolResultErrorParam` - - `content: Array[BetaCodeExecutionOutputBlockParam]` + - `type: :bash_code_execution_tool_result_error` - - `type: :code_execution_output` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - - `file_id: String` + - `:invalid_tool_input` - - `encrypted_stdout: String` + - `:unavailable` - - `return_code: Integer` + - `:too_many_requests` - - `stderr: String` + - `:execution_time_exceeded` - - `tool_use_id: String` + - `:output_file_too_large` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `class BetaBashCodeExecutionResultBlockParam` - - `cache_control: BetaCacheControlEphemeral` + - `type: :bash_code_execution_result` - Create a cache control breakpoint at this content block. + - `content: Array[BetaBashCodeExecutionOutputBlockParam]` - - `class BetaBashCodeExecutionToolResultBlockParam` + - `type: :bash_code_execution_output` - - `type: :bash_code_execution_tool_result` + - `file_id: String` - - `content: BetaBashCodeExecutionToolResultErrorParam | BetaBashCodeExecutionResultBlockParam` + - `return_code: Integer` - - `class BetaBashCodeExecutionToolResultErrorParam` + - `stderr: String` - - `type: :bash_code_execution_tool_result_error` + - `stdout: String` - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` + - `tool_use_id: String` - - `:invalid_tool_input` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:unavailable` + - `cache_control: BetaCacheControlEphemeral` - - `:too_many_requests` + Create a cache control breakpoint at this content block. - - `:execution_time_exceeded` + - `class BetaTextEditorCodeExecutionToolResultBlockParam` - - `:output_file_too_large` + - `type: :text_editor_code_execution_tool_result` - - `class BetaBashCodeExecutionResultBlockParam` + - `content: BetaTextEditorCodeExecutionToolResultErrorParam | BetaTextEditorCodeExecutionViewResultBlockParam | BetaTextEditorCodeExecutionCreateResultBlockParam | BetaTextEditorCodeExecutionStrReplaceResultBlockParam` - - `type: :bash_code_execution_result` + - `class BetaTextEditorCodeExecutionToolResultErrorParam` - - `content: Array[BetaBashCodeExecutionOutputBlockParam]` + - `type: :text_editor_code_execution_tool_result_error` - - `type: :bash_code_execution_output` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - - `file_id: String` + - `:invalid_tool_input` - - `return_code: Integer` + - `:unavailable` - - `stderr: String` + - `:too_many_requests` - - `stdout: String` + - `:execution_time_exceeded` - - `tool_use_id: String` + - `:file_not_found` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `error_message: String` - - `cache_control: BetaCacheControlEphemeral` + - `class BetaTextEditorCodeExecutionViewResultBlockParam` - Create a cache control breakpoint at this content block. + - `type: :text_editor_code_execution_view_result` - - `class BetaTextEditorCodeExecutionToolResultBlockParam` + - `content: String` - - `type: :text_editor_code_execution_tool_result` + - `file_type: :text | :image | :pdf` - - `content: BetaTextEditorCodeExecutionToolResultErrorParam | BetaTextEditorCodeExecutionViewResultBlockParam | BetaTextEditorCodeExecutionCreateResultBlockParam | BetaTextEditorCodeExecutionStrReplaceResultBlockParam` + - `:text` - - `class BetaTextEditorCodeExecutionToolResultErrorParam` + - `:image` - - `type: :text_editor_code_execution_tool_result_error` + - `:pdf` - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` + - `num_lines: Integer` - - `:invalid_tool_input` + - `start_line: Integer` - - `:unavailable` + - `total_lines: Integer` - - `:too_many_requests` + - `class BetaTextEditorCodeExecutionCreateResultBlockParam` - - `:execution_time_exceeded` + - `type: :text_editor_code_execution_create_result` - - `:file_not_found` + - `is_file_update: bool` - - `error_message: String` + - `class BetaTextEditorCodeExecutionStrReplaceResultBlockParam` - - `class BetaTextEditorCodeExecutionViewResultBlockParam` + - `type: :text_editor_code_execution_str_replace_result` - - `type: :text_editor_code_execution_view_result` + - `lines: Array[String]` - - `content: String` + - `new_lines: Integer` - - `file_type: :text | :image | :pdf` + - `new_start: Integer` - - `:text` + - `old_lines: Integer` - - `:image` + - `old_start: Integer` - - `:pdf` + - `tool_use_id: String` - - `num_lines: Integer` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `start_line: Integer` + - `cache_control: BetaCacheControlEphemeral` - - `total_lines: Integer` + Create a cache control breakpoint at this content block. - - `class BetaTextEditorCodeExecutionCreateResultBlockParam` + - `class BetaToolSearchToolResultBlockParam` - - `type: :text_editor_code_execution_create_result` + - `type: :tool_search_tool_result` - - `is_file_update: bool` + - `content: BetaToolSearchToolResultErrorParam | BetaToolSearchToolSearchResultBlockParam` - - `class BetaTextEditorCodeExecutionStrReplaceResultBlockParam` + - `class BetaToolSearchToolResultErrorParam` - - `type: :text_editor_code_execution_str_replace_result` + - `type: :tool_search_tool_result_error` - - `lines: Array[String]` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` - - `new_lines: Integer` + - `:invalid_tool_input` - - `new_start: Integer` + - `:unavailable` - - `old_lines: Integer` + - `:too_many_requests` - - `old_start: Integer` + - `:execution_time_exceeded` - - `tool_use_id: String` + - `error_message: String` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `class BetaToolSearchToolSearchResultBlockParam` - - `cache_control: BetaCacheControlEphemeral` + - `type: :tool_search_tool_search_result` - Create a cache control breakpoint at this content block. + - `tool_references: Array[BetaToolReferenceBlockParam]` - - `class BetaToolSearchToolResultBlockParam` + - `type: :tool_reference` - - `type: :tool_search_tool_result` + - `tool_name: String` - - `content: BetaToolSearchToolResultErrorParam | BetaToolSearchToolSearchResultBlockParam` + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ - - `class BetaToolSearchToolResultErrorParam` + - `cache_control: BetaCacheControlEphemeral` - - `type: :tool_search_tool_result_error` + Create a cache control breakpoint at this content block. - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` + - `tool_use_id: String` - - `:invalid_tool_input` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:unavailable` + - `cache_control: BetaCacheControlEphemeral` - - `:too_many_requests` + Create a cache control breakpoint at this content block. - - `:execution_time_exceeded` + - `class BetaMCPToolUseBlockParam` - - `error_message: String` + - `type: :mcp_tool_use` - - `class BetaToolSearchToolSearchResultBlockParam` + - `id: String` - - `type: :tool_search_tool_search_result` + pattern: ^[a-zA-Z0-9_-]+$ - - `tool_references: Array[BetaToolReferenceBlockParam]` + - `input: Hash[Symbol, untyped]` - - `type: :tool_reference` + - `name: String` - - `tool_name: String` + - `server_name: String` - minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + The name of the MCP server - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `tool_use_id: String` + - `class BetaRequestMCPToolResultBlockParam` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `type: :mcp_tool_result` - - `cache_control: BetaCacheControlEphemeral` + - `tool_use_id: String` - Create a cache control breakpoint at this content block. + pattern: ^[a-zA-Z0-9_-]+$ - - `class BetaMCPToolUseBlockParam` + - `cache_control: BetaCacheControlEphemeral` - - `type: :mcp_tool_use` + Create a cache control breakpoint at this content block. - - `id: String` + - `content: String | Array[BetaTextBlockParam]` - pattern: ^[a-zA-Z0-9_-]+$ + - `String = String` - - `input: Hash[Symbol, untyped]` + - `BetaMCPToolResultBlockParamContent = Array[BetaTextBlockParam]` - - `name: String` + - `type: :text` - - `server_name: String` + - `text: String` - The name of the MCP server + minLength: 1 - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. - - `class BetaRequestMCPToolResultBlockParam` + - `citations: Array[BetaTextCitationParam]` - - `type: :mcp_tool_result` + - `is_error: bool` - - `tool_use_id: String` + - `class BetaContainerUploadBlockParam` - pattern: ^[a-zA-Z0-9_-]+$ + A content block that represents a file to be uploaded to the container + Files uploaded via this block will be available in the container's input directory. - - `cache_control: BetaCacheControlEphemeral` + - `type: :container_upload` - Create a cache control breakpoint at this content block. + - `file_id: String` - - `content: String | Array[BetaTextBlockParam]` + - `cache_control: BetaCacheControlEphemeral` - - `String = String` + Create a cache control breakpoint at this content block. - - `BetaMCPToolResultBlockParamContent = Array[BetaTextBlockParam]` + - `class BetaCompactionBlockParam` - - `type: :text` + A compaction block containing summary of previous context. - - `text: String` + Users should round-trip these blocks from responses to subsequent requests + to maintain context across compaction boundaries. - minLength: 1 + When content is None, the block represents a failed compaction. The server + treats these as no-ops. Empty string content is not allowed. - - `cache_control: BetaCacheControlEphemeral` + - `type: :compaction` - Create a cache control breakpoint at this content block. + - `cache_control: BetaCacheControlEphemeral` - - `citations: Array[BetaTextCitationParam]` + Create a cache control breakpoint at this content block. - - `is_error: bool` + - `content: String` - - `class BetaContainerUploadBlockParam` + Summary of previously compacted content, or null if compaction failed - A content block that represents a file to be uploaded to the container - Files uploaded via this block will be available in the container's input directory. + - `encrypted_content: String` - - `type: :container_upload` + Opaque metadata from prior compaction, to be round-tripped verbatim - - `file_id: String` + - `signature: String` - - `cache_control: BetaCacheControlEphemeral` + The block's signature as returned, to be sent back verbatim - Create a cache control breakpoint at this content block. + - `tool_changes: Array[BetaRequestToolAdditionBlock | BetaRequestToolRemovalBlock]` - - `class BetaCompactionBlockParam` + The tool changes of the compacted range, as the server returned them on this block: the `tool_addition` and `tool_removal` entries that take the request's `tools` to the tool set in effect at the end of the range. Send them back unchanged with the block. - A compaction block containing summary of previous context. + - `class BetaRequestToolAdditionBlock` - Users should round-trip these blocks from responses to subsequent requests - to maintain context across compaction boundaries. + Mid-conversation directive to make a tool available. - When content is None, the block represents a failed compaction. The server - treats these as no-ops. Empty string content is not allowed. + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. - - `type: :compaction` + - `type: :tool_addition` - - `cache_control: BetaCacheControlEphemeral` + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference | BetaToolChangeToolDefinitionParam` - Create a cache control breakpoint at this content block. + - `class BetaToolChangeToolReference` - - `content: String` + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. - Summary of previously compacted content, or null if compaction failed + - `type: :tool_reference` - - `encrypted_content: String` + - `name: String` - Opaque metadata from prior compaction, to be round-tripped verbatim + pattern: ^[a-zA-Z0-9_-]{1,128}$ - - `signature: String` + - `class BetaToolChangeMCPToolReference` - The block's signature as returned, to be sent back verbatim + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. - - `tool_changes: Array[BetaRequestToolAdditionBlock | BetaRequestToolRemovalBlock]` + - `type: :mcp_tool_reference` - The tool changes of the compacted range, as the server returned them on this block: the `tool_addition` and `tool_removal` entries that take the request's `tools` to the tool set in effect at the end of the range. Send them back unchanged with the block. + - `name: String` - - `class BetaRequestToolAdditionBlock` + - `server_name: String` - Mid-conversation directive to make a tool available. + - `class BetaToolChangeMCPToolsetReference` - `tool` is a reference to a tool (or MCP toolset) declared in the - request's `tools`. Under the `inline-tools-2026-09-15` beta it may - instead be a reference to a tool defined earlier in `messages`, or a - `tool_definition` object that carries an inline tool definition in - `definition` (the same object a `tools` entry holds). An `mcp_toolset` - definition also requires the `mcp-client-2026-09-15` beta. The tool is - offered to the model from this point in the conversation onward. + Reference to every tool in the named MCP server's toolset. - - `type: :tool_addition` + - `type: :mcp_toolset_reference` - - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference | BetaToolChangeToolDefinitionParam` + - `server_name: String` - - `class BetaToolChangeToolReference` + - `class BetaToolChangeToolDefinitionParam` - Reference to a single tool, by the name the model uses to call it: a - tool declared in `tools` or defined by an earlier `tool_addition` - block. Does not accept the composed `{server}_{name}` form the server - assigns to MCP-resolved tools; use `mcp_tool_reference` or - `mcp_toolset_reference` for those. + A tool defined by value: `definition` is a `tools` entry (any kind + `tools` accepts, an MCP toolset included). An `mcp_toolset` given here + also requires the `mcp-client-2026-09-15` beta. - - `type: :tool_reference` + - `type: :tool_definition` - - `name: String` + - `definition: BetaToolUnion` - pattern: ^[a-zA-Z0-9_-]{1,128}$ + - `class BetaTool` - - `class BetaToolChangeMCPToolReference` + - `type: :custom` - Reference to a single MCP tool by its server and remote name; the - same `server_name`/`name` pair `mcp_tool_use` carries. + - `input_schema: InputSchema` - - `type: :mcp_tool_reference` + [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. - - `name: String` + This defines the shape of the `input` that your tool accepts and that the model will produce. - - `server_name: String` + - `type: :object` - - `class BetaToolChangeMCPToolsetReference` + - `properties: Hash[Symbol, untyped]` - Reference to every tool in the named MCP server's toolset. + - `required: Array[String]` - - `type: :mcp_toolset_reference` + - `name: String` - - `server_name: String` + Name of the tool. - - `class BetaToolChangeToolDefinitionParam` + This is how the tool will be called by the model and in `tool_use` blocks. - A tool defined by value: `definition` is a `tools` entry (any kind - `tools` accepts, an MCP toolset included). An `mcp_toolset` given here - also requires the `mcp-client-2026-09-15` beta. + minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ - - `type: :tool_definition` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `definition: BetaToolUnion` + - `:direct` - - `class BetaTool` + - `:code_execution_20250825` - - `type: :custom` + - `:code_execution_20260120` - - `input_schema: InputSchema` + - `:code_execution_20260521` - [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. + - `cache_control: BetaCacheControlEphemeral` - This defines the shape of the `input` that your tool accepts and that the model will produce. + Create a cache control breakpoint at this content block. - - `type: :object` + - `defer_loading: bool` - - `properties: Hash[Symbol, untyped]` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `required: Array[String]` + - `description: String` - - `name: String` + Description of what this tool does. - Name of the tool. + Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. - This is how the tool will be called by the model and in `tool_use` blocks. + - `eager_input_streaming: bool` - minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ + Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `:direct` + - `strict: bool` - - `:code_execution_20250825` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20260120` + - `class BetaToolBash20241022` - - `:code_execution_20260521` + - `type: :bash_20241022` - - `cache_control: BetaCacheControlEphemeral` + - `name: :bash` - Create a cache control breakpoint at this content block. + Name of the tool. - - `defer_loading: bool` + This is how the tool will be called by the model and in `tool_use` blocks. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `description: String` + - `:direct` - Description of what this tool does. + - `:code_execution_20250825` - Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. + - `:code_execution_20260120` - - `eager_input_streaming: bool` + - `:code_execution_20260521` - Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. + - `cache_control: BetaCacheControlEphemeral` - - `input_examples: Array[Hash[Symbol, untyped]]` + Create a cache control breakpoint at this content block. - - `strict: bool` + - `defer_loading: bool` - When true, guarantees schema validation on tool names and inputs + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaToolBash20241022` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `type: :bash_20241022` + - `strict: bool` - - `name: :bash` + When true, guarantees schema validation on tool names and inputs - Name of the tool. + - `class BetaToolBash20250124` - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :bash_20250124` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `name: :bash` - - `:direct` + Name of the tool. - - `:code_execution_20250825` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260120` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:code_execution_20260521` + - `:direct` - - `cache_control: BetaCacheControlEphemeral` + - `:code_execution_20250825` - Create a cache control breakpoint at this content block. + - `:code_execution_20260120` - - `defer_loading: bool` + - `:code_execution_20260521` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `cache_control: BetaCacheControlEphemeral` - - `input_examples: Array[Hash[Symbol, untyped]]` + Create a cache control breakpoint at this content block. - - `strict: bool` + - `defer_loading: bool` - When true, guarantees schema validation on tool names and inputs + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaToolBash20250124` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `type: :bash_20250124` + - `strict: bool` - - `name: :bash` + When true, guarantees schema validation on tool names and inputs - Name of the tool. + - `class BetaCodeExecutionTool20250522` - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :code_execution_20250522` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `name: :code_execution` - - `:direct` + Name of the tool. - - `:code_execution_20250825` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260120` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:code_execution_20260521` + - `:direct` - - `cache_control: BetaCacheControlEphemeral` + - `:code_execution_20250825` - Create a cache control breakpoint at this content block. + - `:code_execution_20260120` - - `defer_loading: bool` + - `:code_execution_20260521` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `cache_control: BetaCacheControlEphemeral` - - `input_examples: Array[Hash[Symbol, untyped]]` + Create a cache control breakpoint at this content block. - - `strict: bool` + - `defer_loading: bool` - When true, guarantees schema validation on tool names and inputs + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaCodeExecutionTool20250522` + - `strict: bool` - - `type: :code_execution_20250522` + When true, guarantees schema validation on tool names and inputs - - `name: :code_execution` + - `class BetaCodeExecutionTool20250825` - Name of the tool. + - `type: :code_execution_20250825` - This is how the tool will be called by the model and in `tool_use` blocks. + - `name: :code_execution` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Name of the tool. - - `:direct` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20250825` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:code_execution_20260120` + - `:direct` - - `:code_execution_20260521` + - `:code_execution_20250825` - - `cache_control: BetaCacheControlEphemeral` + - `:code_execution_20260120` - Create a cache control breakpoint at this content block. + - `:code_execution_20260521` - - `defer_loading: bool` + - `cache_control: BetaCacheControlEphemeral` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Create a cache control breakpoint at this content block. - - `strict: bool` + - `defer_loading: bool` - When true, guarantees schema validation on tool names and inputs + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaCodeExecutionTool20250825` + - `strict: bool` - - `type: :code_execution_20250825` + When true, guarantees schema validation on tool names and inputs - - `name: :code_execution` + - `class BetaCodeExecutionTool20260120` - Name of the tool. + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :code_execution_20260120` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `name: :code_execution` - - `:direct` + Name of the tool. - - `:code_execution_20250825` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260120` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:code_execution_20260521` + - `:direct` - - `cache_control: BetaCacheControlEphemeral` + - `:code_execution_20250825` - Create a cache control breakpoint at this content block. + - `:code_execution_20260120` - - `defer_loading: bool` + - `:code_execution_20260521` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `defer_loading: bool` - - `class BetaCodeExecutionTool20260120` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). + - `strict: bool` - - `type: :code_execution_20260120` + When true, guarantees schema validation on tool names and inputs - - `name: :code_execution` + - `class BetaCodeExecutionTool20260521` - Name of the tool. + Code execution tool with REPL state persistence. - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :code_execution_20260521` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - - `:direct` + - `name: :code_execution` - - `:code_execution_20250825` + Name of the tool. - - `:code_execution_20260120` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260521` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `cache_control: BetaCacheControlEphemeral` + - `:direct` - Create a cache control breakpoint at this content block. + - `:code_execution_20250825` - - `defer_loading: bool` + - `:code_execution_20260120` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:code_execution_20260521` - - `strict: bool` + - `cache_control: BetaCacheControlEphemeral` - When true, guarantees schema validation on tool names and inputs + Create a cache control breakpoint at this content block. - - `class BetaCodeExecutionTool20260521` + - `defer_loading: bool` - Code execution tool with REPL state persistence. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :code_execution_20260521` + - `strict: bool` - - `name: :code_execution` + When true, guarantees schema validation on tool names and inputs - Name of the tool. + - `class BetaBrowserToolset20260801` - This is how the tool will be called by the model and in `tool_use` blocks. + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `type: :browser_toolset_20260801` - - `:direct` + - `cache_control: BetaCacheControlEphemeral` - - `:code_execution_20250825` + Create a cache control breakpoint at this content block. - - `:code_execution_20260120` + - `configs: BetaBrowserToolsetConfigs` - - `:code_execution_20260521` + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - - `cache_control: BetaCacheControlEphemeral` + - `type: BetaBrowserTypeConfig` - Create a cache control breakpoint at this content block. + `type`'s config overrides. - `defer_loading: bool` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `strict: bool` + - `enabled: bool` - When true, guarantees schema validation on tool names and inputs + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaBrowserToolset20260801` + - `close_tab: BetaBrowserCloseTabConfig` - The browser toolset: a single `tools[]` entry (carrying no - `name`) that declares the browser tool family. The model is served - the family's tool with any members disabled via `configs` removed - from its schema. + `close_tab`'s config overrides. - - `type: :browser_toolset_20260801` + - `defer_loading: bool` - - `cache_control: BetaCacheControlEphemeral` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Create a cache control breakpoint at this content block. + - `enabled: bool` - - `configs: BetaBrowserToolsetConfigs` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + - `double_click: BetaBrowserDoubleClickConfig` - - `type: BetaBrowserTypeConfig` + `double_click`'s config overrides. - `type`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `file_upload: BetaBrowserFileUploadConfig` - - `close_tab: BetaBrowserCloseTabConfig` + `file_upload`'s config overrides. - `close_tab`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `find: BetaBrowserFindConfig` - - `double_click: BetaBrowserDoubleClickConfig` + `find`'s config overrides. - `double_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `form_input: BetaBrowserFormInputConfig` - - `file_upload: BetaBrowserFileUploadConfig` + `form_input`'s config overrides. - `file_upload`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `get_page_text: BetaBrowserGetPageTextConfig` - - `find: BetaBrowserFindConfig` + `get_page_text`'s config overrides. - `find`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `hold_key: BetaBrowserHoldKeyConfig` - - `form_input: BetaBrowserFormInputConfig` + `hold_key`'s config overrides. - `form_input`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `hover: BetaBrowserHoverConfig` - - `get_page_text: BetaBrowserGetPageTextConfig` + `hover`'s config overrides. - `get_page_text`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `javascript_exec: BetaBrowserJavascriptExecConfig` - - `hold_key: BetaBrowserHoldKeyConfig` + `javascript_exec`'s config overrides. - `hold_key`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `key: BetaBrowserKeyConfig` - - `hover: BetaBrowserHoverConfig` + `key`'s config overrides. - `hover`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_click: BetaBrowserLeftClickConfig` - - `javascript_exec: BetaBrowserJavascriptExecConfig` + `left_click`'s config overrides. - `javascript_exec`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_click_drag: BetaBrowserLeftClickDragConfig` - - `key: BetaBrowserKeyConfig` + `left_click_drag`'s config overrides. - `key`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_mouse_down: BetaBrowserLeftMouseDownConfig` - - `left_click: BetaBrowserLeftClickConfig` + `left_mouse_down`'s config overrides. - `left_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_mouse_up: BetaBrowserLeftMouseUpConfig` - - `left_click_drag: BetaBrowserLeftClickDragConfig` + `left_mouse_up`'s config overrides. - `left_click_drag`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `list_tabs: BetaBrowserListTabsConfig` - - `left_mouse_down: BetaBrowserLeftMouseDownConfig` + `list_tabs`'s config overrides. - `left_mouse_down`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `middle_click: BetaBrowserMiddleClickConfig` - - `left_mouse_up: BetaBrowserLeftMouseUpConfig` + `middle_click`'s config overrides. - `left_mouse_up`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `mouse_move: BetaBrowserMouseMoveConfig` - - `list_tabs: BetaBrowserListTabsConfig` + `mouse_move`'s config overrides. - `list_tabs`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `navigate: BetaBrowserNavigateConfig` - - `middle_click: BetaBrowserMiddleClickConfig` + `navigate`'s config overrides. - `middle_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `new_tab: BetaBrowserNewTabConfig` - - `mouse_move: BetaBrowserMouseMoveConfig` + `new_tab`'s config overrides. - `mouse_move`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `read_console: BetaBrowserReadConsoleConfig` - - `navigate: BetaBrowserNavigateConfig` + `read_console`'s config overrides. - `navigate`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `read_network: BetaBrowserReadNetworkConfig` - - `new_tab: BetaBrowserNewTabConfig` + `read_network`'s config overrides. - `new_tab`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `read_page: BetaBrowserReadPageConfig` - - `read_console: BetaBrowserReadConsoleConfig` + `read_page`'s config overrides. - `read_console`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `right_click: BetaBrowserRightClickConfig` - - `read_network: BetaBrowserReadNetworkConfig` + `right_click`'s config overrides. - `read_network`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `screenshot: BetaBrowserScreenshotConfig` - - `read_page: BetaBrowserReadPageConfig` + `screenshot`'s config overrides. - `read_page`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `scroll: BetaBrowserScrollConfig` - - `right_click: BetaBrowserRightClickConfig` + `scroll`'s config overrides. - `right_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `scroll_to: BetaBrowserScrollToConfig` - - `screenshot: BetaBrowserScreenshotConfig` + `scroll_to`'s config overrides. - `screenshot`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `switch_tab: BetaBrowserSwitchTabConfig` - - `scroll: BetaBrowserScrollConfig` + `switch_tab`'s config overrides. - `scroll`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `triple_click: BetaBrowserTripleClickConfig` - - `scroll_to: BetaBrowserScrollToConfig` + `triple_click`'s config overrides. - `scroll_to`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `wait: BetaBrowserWaitConfig` - - `switch_tab: BetaBrowserSwitchTabConfig` + `wait`'s config overrides. - `switch_tab`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `zoom: BetaBrowserZoomConfig` - - `triple_click: BetaBrowserTripleClickConfig` + `zoom`'s config overrides. - `triple_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `class BetaToolComputerUse20241022` - - `wait: BetaBrowserWaitConfig` + - `type: :computer_20241022` - `wait`'s config overrides. + - `display_height_px: Integer` - - `defer_loading: bool` + The height of the display in pixels. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + minimum: 1 - - `enabled: bool` + - `display_width_px: Integer` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + The width of the display in pixels. - - `zoom: BetaBrowserZoomConfig` + minimum: 1 - `zoom`'s config overrides. + - `name: :computer` - - `defer_loading: bool` + Name of the tool. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + This is how the tool will be called by the model and in `tool_use` blocks. - - `enabled: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:direct` - - `class BetaToolComputerUse20241022` + - `:code_execution_20250825` - - `type: :computer_20241022` + - `:code_execution_20260120` - - `display_height_px: Integer` + - `:code_execution_20260521` - The height of the display in pixels. + - `cache_control: BetaCacheControlEphemeral` - minimum: 1 + Create a cache control breakpoint at this content block. - - `display_width_px: Integer` + - `defer_loading: bool` - The width of the display in pixels. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - minimum: 1 + - `display_number: Integer` - - `name: :computer` + The X11 display number (e.g. 0, 1) for the display. - Name of the tool. + minimum: 0 - This is how the tool will be called by the model and in `tool_use` blocks. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `strict: bool` - - `:direct` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20250825` + - `class BetaMemoryTool20250818` - - `:code_execution_20260120` + - `type: :memory_20250818` - - `:code_execution_20260521` + - `name: :memory` - - `cache_control: BetaCacheControlEphemeral` + Name of the tool. - Create a cache control breakpoint at this content block. + This is how the tool will be called by the model and in `tool_use` blocks. - - `defer_loading: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:direct` - - `display_number: Integer` + - `:code_execution_20250825` - The X11 display number (e.g. 0, 1) for the display. + - `:code_execution_20260120` - minimum: 0 + - `:code_execution_20260521` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `defer_loading: bool` - - `class BetaMemoryTool20250818` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :memory_20250818` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `name: :memory` + - `strict: bool` - Name of the tool. + When true, guarantees schema validation on tool names and inputs - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaToolComputerUse20250124` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `type: :computer_20250124` - - `:direct` + - `display_height_px: Integer` - - `:code_execution_20250825` + The height of the display in pixels. - - `:code_execution_20260120` + minimum: 1 - - `:code_execution_20260521` + - `display_width_px: Integer` - - `cache_control: BetaCacheControlEphemeral` + The width of the display in pixels. - Create a cache control breakpoint at this content block. + minimum: 1 - - `defer_loading: bool` + - `name: :computer` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Name of the tool. - - `input_examples: Array[Hash[Symbol, untyped]]` + This is how the tool will be called by the model and in `tool_use` blocks. - - `strict: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - When true, guarantees schema validation on tool names and inputs + - `:direct` - - `class BetaToolComputerUse20250124` + - `:code_execution_20250825` - - `type: :computer_20250124` + - `:code_execution_20260120` - - `display_height_px: Integer` + - `:code_execution_20260521` - The height of the display in pixels. + - `cache_control: BetaCacheControlEphemeral` - minimum: 1 + Create a cache control breakpoint at this content block. - - `display_width_px: Integer` + - `defer_loading: bool` - The width of the display in pixels. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - minimum: 1 + - `display_number: Integer` - - `name: :computer` + The X11 display number (e.g. 0, 1) for the display. - Name of the tool. + minimum: 0 - This is how the tool will be called by the model and in `tool_use` blocks. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `strict: bool` - - `:direct` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20250825` + - `class BetaToolTextEditor20241022` - - `:code_execution_20260120` + - `type: :text_editor_20241022` - - `:code_execution_20260521` + - `name: :str_replace_editor` - - `cache_control: BetaCacheControlEphemeral` + Name of the tool. - Create a cache control breakpoint at this content block. + This is how the tool will be called by the model and in `tool_use` blocks. - - `defer_loading: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:direct` - - `display_number: Integer` + - `:code_execution_20250825` - The X11 display number (e.g. 0, 1) for the display. + - `:code_execution_20260120` - minimum: 0 + - `:code_execution_20260521` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `defer_loading: bool` - - `class BetaToolTextEditor20241022` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :text_editor_20241022` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `name: :str_replace_editor` + - `strict: bool` - Name of the tool. + When true, guarantees schema validation on tool names and inputs - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaToolComputerUse20251124` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `type: :computer_20251124` - - `:direct` + - `display_height_px: Integer` - - `:code_execution_20250825` + The height of the display in pixels. - - `:code_execution_20260120` + minimum: 1 - - `:code_execution_20260521` + - `display_width_px: Integer` - - `cache_control: BetaCacheControlEphemeral` + The width of the display in pixels. - Create a cache control breakpoint at this content block. + minimum: 1 - - `defer_loading: bool` + - `name: :computer` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Name of the tool. - - `input_examples: Array[Hash[Symbol, untyped]]` + This is how the tool will be called by the model and in `tool_use` blocks. - - `strict: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - When true, guarantees schema validation on tool names and inputs + - `:direct` - - `class BetaToolComputerUse20251124` + - `:code_execution_20250825` - - `type: :computer_20251124` + - `:code_execution_20260120` - - `display_height_px: Integer` + - `:code_execution_20260521` - The height of the display in pixels. + - `cache_control: BetaCacheControlEphemeral` - minimum: 1 + Create a cache control breakpoint at this content block. - - `display_width_px: Integer` + - `defer_loading: bool` - The width of the display in pixels. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - minimum: 1 + - `display_number: Integer` - - `name: :computer` + The X11 display number (e.g. 0, 1) for the display. - Name of the tool. + minimum: 0 - This is how the tool will be called by the model and in `tool_use` blocks. + - `enable_zoom: bool` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Whether to enable an action to take a zoomed-in screenshot of the screen. - - `:direct` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `:code_execution_20250825` + - `strict: bool` - - `:code_execution_20260120` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20260521` + - `class BetaComputerToolset20260801` - - `cache_control: BetaCacheControlEphemeral` + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. - Create a cache control breakpoint at this content block. + - `type: :computer_toolset_20260801` - - `defer_loading: bool` + - `cache_control: BetaCacheControlEphemeral` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Create a cache control breakpoint at this content block. - - `display_number: Integer` + - `configs: BetaComputerToolsetConfigs` - The X11 display number (e.g. 0, 1) for the display. + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - minimum: 0 + - `type: BetaComputerTypeConfig` - - `enable_zoom: bool` + `type`'s config overrides. - Whether to enable an action to take a zoomed-in screenshot of the screen. + - `defer_loading: bool` - - `input_examples: Array[Hash[Symbol, untyped]]` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `strict: bool` + - `enabled: bool` - When true, guarantees schema validation on tool names and inputs + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaComputerToolset20260801` + - `cursor_position: BetaComputerCursorPositionConfig` - The computer toolset: a single `tools[]` entry (carrying no - `name`) that declares the computer tool family. The model is - served the family's tool with any members disabled via `configs` - removed from its schema. Every member is enabled by default, zoom - included. The single-tool options `display_number` and - `enable_zoom` are not fields of a toolset entry — it carries only - `type`, `configs`, and `cache_control`; zoom is controlled - via `configs.zoom.enabled`. + `cursor_position`'s config overrides. - - `type: :computer_toolset_20260801` + - `defer_loading: bool` - - `cache_control: BetaCacheControlEphemeral` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Create a cache control breakpoint at this content block. + - `enabled: bool` - - `configs: BetaComputerToolsetConfigs` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + - `double_click: BetaComputerDoubleClickConfig` - - `type: BetaComputerTypeConfig` + `double_click`'s config overrides. - `type`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `hold_key: BetaComputerHoldKeyConfig` - - `cursor_position: BetaComputerCursorPositionConfig` + `hold_key`'s config overrides. - `cursor_position`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `key: BetaComputerKeyConfig` - - `double_click: BetaComputerDoubleClickConfig` + `key`'s config overrides. - `double_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_click: BetaComputerLeftClickConfig` - - `hold_key: BetaComputerHoldKeyConfig` + `left_click`'s config overrides. - `hold_key`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_click_drag: BetaComputerLeftClickDragConfig` - - `key: BetaComputerKeyConfig` + `left_click_drag`'s config overrides. - `key`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_mouse_down: BetaComputerLeftMouseDownConfig` - - `left_click: BetaComputerLeftClickConfig` + `left_mouse_down`'s config overrides. - `left_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `left_mouse_up: BetaComputerLeftMouseUpConfig` - - `left_click_drag: BetaComputerLeftClickDragConfig` + `left_mouse_up`'s config overrides. - `left_click_drag`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `middle_click: BetaComputerMiddleClickConfig` - - `left_mouse_down: BetaComputerLeftMouseDownConfig` + `middle_click`'s config overrides. - `left_mouse_down`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `mouse_move: BetaComputerMouseMoveConfig` - - `left_mouse_up: BetaComputerLeftMouseUpConfig` + `mouse_move`'s config overrides. - `left_mouse_up`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `right_click: BetaComputerRightClickConfig` - - `middle_click: BetaComputerMiddleClickConfig` + `right_click`'s config overrides. - `middle_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `screenshot: BetaComputerScreenshotConfig` - - `mouse_move: BetaComputerMouseMoveConfig` + `screenshot`'s config overrides. - `mouse_move`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `scroll: BetaComputerScrollConfig` - - `right_click: BetaComputerRightClickConfig` + `scroll`'s config overrides. - `right_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `triple_click: BetaComputerTripleClickConfig` - - `screenshot: BetaComputerScreenshotConfig` + `triple_click`'s config overrides. - `screenshot`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `wait: BetaComputerWaitConfig` - - `scroll: BetaComputerScrollConfig` + `wait`'s config overrides. - `scroll`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `zoom: BetaComputerZoomConfig` - - `triple_click: BetaComputerTripleClickConfig` + `zoom`'s config overrides. - `triple_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `class BetaToolTextEditor20250124` - - `wait: BetaComputerWaitConfig` + - `type: :text_editor_20250124` - `wait`'s config overrides. + - `name: :str_replace_editor` - - `defer_loading: bool` + Name of the tool. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + This is how the tool will be called by the model and in `tool_use` blocks. - - `enabled: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:direct` - - `zoom: BetaComputerZoomConfig` + - `:code_execution_20250825` - `zoom`'s config overrides. + - `:code_execution_20260120` - - `defer_loading: bool` + - `:code_execution_20260521` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `cache_control: BetaCacheControlEphemeral` - - `enabled: bool` + Create a cache control breakpoint at this content block. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `defer_loading: bool` - - `class BetaToolTextEditor20250124` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :text_editor_20250124` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `name: :str_replace_editor` + - `strict: bool` - Name of the tool. + When true, guarantees schema validation on tool names and inputs - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaToolTextEditor20250429` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `type: :text_editor_20250429` - - `:direct` + - `name: :str_replace_based_edit_tool` - - `:code_execution_20250825` + Name of the tool. - - `:code_execution_20260120` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260521` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `cache_control: BetaCacheControlEphemeral` + - `:direct` - Create a cache control breakpoint at this content block. + - `:code_execution_20250825` - - `defer_loading: bool` + - `:code_execution_20260120` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:code_execution_20260521` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `defer_loading: bool` - - `class BetaToolTextEditor20250429` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :text_editor_20250429` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `name: :str_replace_based_edit_tool` + - `strict: bool` - Name of the tool. + When true, guarantees schema validation on tool names and inputs - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaToolTextEditor20250728` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `type: :text_editor_20250728` - - `:direct` + - `name: :str_replace_based_edit_tool` - - `:code_execution_20250825` + Name of the tool. - - `:code_execution_20260120` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:code_execution_20260521` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `cache_control: BetaCacheControlEphemeral` + - `:direct` - Create a cache control breakpoint at this content block. + - `:code_execution_20250825` - - `defer_loading: bool` + - `:code_execution_20260120` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:code_execution_20260521` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `defer_loading: bool` - - `class BetaToolTextEditor20250728` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :text_editor_20250728` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `name: :str_replace_based_edit_tool` + - `max_characters: Integer` - Name of the tool. + Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. - This is how the tool will be called by the model and in `tool_use` blocks. + minimum: 1 - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `strict: bool` - - `:direct` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20250825` + - `class BetaWebSearchTool20250305` - - `:code_execution_20260120` + - `type: :web_search_20250305` - - `:code_execution_20260521` + - `name: :web_search` - - `cache_control: BetaCacheControlEphemeral` + Name of the tool. - Create a cache control breakpoint at this content block. + This is how the tool will be called by the model and in `tool_use` blocks. - - `defer_loading: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:direct` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `:code_execution_20250825` - - `max_characters: Integer` + - `:code_execution_20260120` - Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. + - `:code_execution_20260521` - minimum: 1 + - `allowed_domains: Array[String]` - - `strict: bool` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - When true, guarantees schema validation on tool names and inputs + - `blocked_domains: Array[String]` - - `class BetaWebSearchTool20250305` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `type: :web_search_20250305` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_search` + Create a cache control breakpoint at this content block. - Name of the tool. + - `defer_loading: bool` - This is how the tool will be called by the model and in `tool_use` blocks. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `max_uses: Integer` - - `:direct` + Maximum number of times the tool can be used in the API request. - - `:code_execution_20250825` + minimum: 1 - - `:code_execution_20260120` + - `strict: bool` - - `:code_execution_20260521` + When true, guarantees schema validation on tool names and inputs - - `allowed_domains: Array[String]` + - `user_location: BetaUserLocation` - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + Parameters for the user's location. Used to provide more relevant search results. - - `blocked_domains: Array[String]` + - `type: :approximate` - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `city: String` - - `cache_control: BetaCacheControlEphemeral` + The city of the user. - Create a cache control breakpoint at this content block. + minLength: 1, maxLength: 255 - - `defer_loading: bool` + - `country: String` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. - - `max_uses: Integer` + minLength: 2, maxLength: 2 - Maximum number of times the tool can be used in the API request. + - `region: String` - minimum: 1 + The region of the user. - - `strict: bool` + minLength: 1, maxLength: 255 - When true, guarantees schema validation on tool names and inputs + - `timezone: String` - - `user_location: BetaUserLocation` + The [IANA timezone](https://nodatime.org/TimeZones) of the user. - Parameters for the user's location. Used to provide more relevant search results. + minLength: 1, maxLength: 255 - - `type: :approximate` + - `class BetaWebFetchTool20250910` - - `city: String` + - `type: :web_fetch_20250910` - The city of the user. + - `name: :web_fetch` - minLength: 1, maxLength: 255 + Name of the tool. - - `country: String` + This is how the tool will be called by the model and in `tool_use` blocks. - The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - minLength: 2, maxLength: 2 + - `:direct` - - `region: String` + - `:code_execution_20250825` - The region of the user. + - `:code_execution_20260120` - minLength: 1, maxLength: 255 + - `:code_execution_20260521` - - `timezone: String` + - `allowed_domains: Array[String]` - The [IANA timezone](https://nodatime.org/TimeZones) of the user. + List of domains to allow fetching from - minLength: 1, maxLength: 255 + - `blocked_domains: Array[String]` - - `class BetaWebFetchTool20250910` + List of domains to block fetching from - - `type: :web_fetch_20250910` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_fetch` + Create a cache control breakpoint at this content block. - Name of the tool. + - `citations: BetaCitationsConfigParam` - This is how the tool will be called by the model and in `tool_use` blocks. + Citations configuration for fetched documents. Citations are disabled by default. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `defer_loading: bool` - - `:direct` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:code_execution_20250825` + - `max_content_tokens: Integer` - - `:code_execution_20260120` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `:code_execution_20260521` + minimum: 1 - - `allowed_domains: Array[String]` + - `max_uses: Integer` - List of domains to allow fetching from + Maximum number of times the tool can be used in the API request. - - `blocked_domains: Array[String]` + minimum: 1 - List of domains to block fetching from + - `strict: bool` - - `cache_control: BetaCacheControlEphemeral` + When true, guarantees schema validation on tool names and inputs - Create a cache control breakpoint at this content block. + - `url_sources: BetaWebFetchURLSources` - - `citations: BetaCitationsConfigParam` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - Citations configuration for fetched documents. Citations are disabled by default. + - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` - - `defer_loading: bool` + Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `class BetaWebFetchURLSourceAll` - - `max_content_tokens: Integer` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `type: :all` - minimum: 1 + - `class BetaWebFetchURLSourceNone` - - `max_uses: Integer` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - Maximum number of times the tool can be used in the API request. + - `type: :none` - minimum: 1 + - `class BetaWebFetchURLSourceOnly` - - `strict: bool` + The tool filter variant under which only the named tools' results + contribute. - When true, guarantees schema validation on tool names and inputs + - `type: :only` - - `url_sources: BetaWebFetchURLSources` + - `tools: Array[BetaWebFetchURLSourceToolReference]` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + - `type: :tool_reference` - - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + - `name: String` - Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. + - `class BetaWebFetchURLSourceExcept` - - `class BetaWebFetchURLSourceAll` + The tool filter variant under which every result but the named + tools' contributes. - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + - `type: :except` - - `type: :all` + - `tools: Array[BetaWebFetchURLSourceToolReference]` - - `class BetaWebFetchURLSourceNone` + - `type: :tool_reference` - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + - `name: String` - - `type: :none` + - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` - - `class BetaWebFetchURLSourceOnly` + Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. - The tool filter variant under which only the named tools' results - contribute. + - `class BetaWebFetchURLSourceAll` - - `type: :only` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - - `tools: Array[BetaWebFetchURLSourceToolReference]` + - `class BetaWebFetchURLSourceNone` - - `type: :tool_reference` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - - `name: String` + - `class BetaWebFetchURLSourceOnly` - - `class BetaWebFetchURLSourceExcept` + The tool filter variant under which only the named tools' results + contribute. - The tool filter variant under which every result but the named - tools' contributes. + - `class BetaWebFetchURLSourceExcept` - - `type: :except` + The tool filter variant under which every result but the named + tools' contributes. - - `tools: Array[BetaWebFetchURLSourceToolReference]` + - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` - - `type: :tool_reference` + Whether URLs in user messages are fetchable: "all" or "none". - - `name: String` + - `class BetaWebFetchURLSourceAll` - - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. + - `class BetaWebFetchURLSourceNone` - - `class BetaWebFetchURLSourceAll` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + - `class BetaWebSearchTool20260209` - - `class BetaWebFetchURLSourceNone` + - `type: :web_search_20260209` - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + - `name: :web_search` - - `class BetaWebFetchURLSourceOnly` + Name of the tool. - The tool filter variant under which only the named tools' results - contribute. + This is how the tool will be called by the model and in `tool_use` blocks. - - `class BetaWebFetchURLSourceExcept` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - The tool filter variant under which every result but the named - tools' contributes. + - `:direct` - - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` + - `:code_execution_20250825` - Whether URLs in user messages are fetchable: "all" or "none". + - `:code_execution_20260120` - - `class BetaWebFetchURLSourceAll` + - `:code_execution_20260521` - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + - `allowed_domains: Array[String]` - - `class BetaWebFetchURLSourceNone` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + - `blocked_domains: Array[String]` - - `class BetaWebSearchTool20260209` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `type: :web_search_20260209` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_search` + Create a cache control breakpoint at this content block. - Name of the tool. + - `defer_loading: bool` - This is how the tool will be called by the model and in `tool_use` blocks. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `max_uses: Integer` - - `:direct` + Maximum number of times the tool can be used in the API request. - - `:code_execution_20250825` + minimum: 1 - - `:code_execution_20260120` + - `strict: bool` - - `:code_execution_20260521` + When true, guarantees schema validation on tool names and inputs - - `allowed_domains: Array[String]` + - `user_location: BetaUserLocation` - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + Parameters for the user's location. Used to provide more relevant search results. - - `blocked_domains: Array[String]` + - `class BetaWebFetchTool20260209` - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `type: :web_fetch_20260209` - - `cache_control: BetaCacheControlEphemeral` + - `name: :web_fetch` - Create a cache control breakpoint at this content block. + Name of the tool. - - `defer_loading: bool` + This is how the tool will be called by the model and in `tool_use` blocks. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `max_uses: Integer` + - `:direct` - Maximum number of times the tool can be used in the API request. + - `:code_execution_20250825` - minimum: 1 + - `:code_execution_20260120` - - `strict: bool` + - `:code_execution_20260521` - When true, guarantees schema validation on tool names and inputs + - `allowed_domains: Array[String]` - - `user_location: BetaUserLocation` + List of domains to allow fetching from - Parameters for the user's location. Used to provide more relevant search results. + - `blocked_domains: Array[String]` - - `class BetaWebFetchTool20260209` + List of domains to block fetching from - - `type: :web_fetch_20260209` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_fetch` + Create a cache control breakpoint at this content block. - Name of the tool. + - `citations: BetaCitationsConfigParam` - This is how the tool will be called by the model and in `tool_use` blocks. + Citations configuration for fetched documents. Citations are disabled by default. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `defer_loading: bool` - - `:direct` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:code_execution_20250825` + - `max_content_tokens: Integer` - - `:code_execution_20260120` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `:code_execution_20260521` + minimum: 1 - - `allowed_domains: Array[String]` + - `max_uses: Integer` - List of domains to allow fetching from + Maximum number of times the tool can be used in the API request. - - `blocked_domains: Array[String]` + minimum: 1 - List of domains to block fetching from + - `strict: bool` - - `cache_control: BetaCacheControlEphemeral` + When true, guarantees schema validation on tool names and inputs - Create a cache control breakpoint at this content block. + - `url_sources: BetaWebFetchURLSources` - - `citations: BetaCitationsConfigParam` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - Citations configuration for fetched documents. Citations are disabled by default. + - `class BetaWebFetchTool20260309` - - `defer_loading: bool` + Web fetch tool with use_cache parameter for bypassing cached content. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `type: :web_fetch_20260309` - - `max_content_tokens: Integer` + - `name: :web_fetch` - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + Name of the tool. - minimum: 1 + This is how the tool will be called by the model and in `tool_use` blocks. - - `max_uses: Integer` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Maximum number of times the tool can be used in the API request. + - `:direct` - minimum: 1 + - `:code_execution_20250825` - - `strict: bool` + - `:code_execution_20260120` - When true, guarantees schema validation on tool names and inputs + - `:code_execution_20260521` - - `url_sources: BetaWebFetchURLSources` + - `allowed_domains: Array[String]` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + List of domains to allow fetching from - - `class BetaWebFetchTool20260309` + - `blocked_domains: Array[String]` - Web fetch tool with use_cache parameter for bypassing cached content. + List of domains to block fetching from - - `type: :web_fetch_20260309` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_fetch` + Create a cache control breakpoint at this content block. - Name of the tool. + - `citations: BetaCitationsConfigParam` - This is how the tool will be called by the model and in `tool_use` blocks. + Citations configuration for fetched documents. Citations are disabled by default. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `defer_loading: bool` - - `:direct` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:code_execution_20250825` + - `max_content_tokens: Integer` - - `:code_execution_20260120` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `:code_execution_20260521` + minimum: 1 - - `allowed_domains: Array[String]` + - `max_uses: Integer` - List of domains to allow fetching from + Maximum number of times the tool can be used in the API request. - - `blocked_domains: Array[String]` + minimum: 1 - List of domains to block fetching from + - `strict: bool` - - `cache_control: BetaCacheControlEphemeral` + When true, guarantees schema validation on tool names and inputs - Create a cache control breakpoint at this content block. + - `url_sources: BetaWebFetchURLSources` - - `citations: BetaCitationsConfigParam` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - Citations configuration for fetched documents. Citations are disabled by default. + - `use_cache: bool` - - `defer_loading: bool` + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `class BetaWebSearchTool20260318` - - `max_content_tokens: Integer` + - `type: :web_search_20260318` - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `name: :web_search` - minimum: 1 + Name of the tool. - - `max_uses: Integer` + This is how the tool will be called by the model and in `tool_use` blocks. - Maximum number of times the tool can be used in the API request. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - minimum: 1 + - `:direct` - - `strict: bool` + - `:code_execution_20250825` - When true, guarantees schema validation on tool names and inputs + - `:code_execution_20260120` - - `url_sources: BetaWebFetchURLSources` + - `:code_execution_20260521` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + - `allowed_domains: Array[String]` - - `use_cache: bool` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + - `blocked_domains: Array[String]` - - `class BetaWebSearchTool20260318` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `type: :web_search_20260318` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_search` + Create a cache control breakpoint at this content block. - Name of the tool. + - `defer_loading: bool` - This is how the tool will be called by the model and in `tool_use` blocks. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `max_uses: Integer` - - `:direct` + Maximum number of times the tool can be used in the API request. - - `:code_execution_20250825` + minimum: 1 - - `:code_execution_20260120` + - `response_inclusion: :full | :excluded` - - `:code_execution_20260521` + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - - `allowed_domains: Array[String]` + - `:full` - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + - `:excluded` - - `blocked_domains: Array[String]` + - `strict: bool` - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + When true, guarantees schema validation on tool names and inputs - - `cache_control: BetaCacheControlEphemeral` + - `user_location: BetaUserLocation` - Create a cache control breakpoint at this content block. + Parameters for the user's location. Used to provide more relevant search results. - - `defer_loading: bool` + - `class BetaWebFetchTool20260318` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `type: :web_fetch_20260318` - - `max_uses: Integer` + - `name: :web_fetch` - Maximum number of times the tool can be used in the API request. + Name of the tool. - minimum: 1 + This is how the tool will be called by the model and in `tool_use` blocks. - - `response_inclusion: :full | :excluded` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + - `:direct` - - `:full` + - `:code_execution_20250825` - - `:excluded` + - `:code_execution_20260120` - - `strict: bool` + - `:code_execution_20260521` - When true, guarantees schema validation on tool names and inputs + - `allowed_domains: Array[String]` - - `user_location: BetaUserLocation` + List of domains to allow fetching from - Parameters for the user's location. Used to provide more relevant search results. + - `blocked_domains: Array[String]` - - `class BetaWebFetchTool20260318` + List of domains to block fetching from - - `type: :web_fetch_20260318` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_fetch` + Create a cache control breakpoint at this content block. - Name of the tool. + - `citations: BetaCitationsConfigParam` - This is how the tool will be called by the model and in `tool_use` blocks. + Citations configuration for fetched documents. Citations are disabled by default. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `defer_loading: bool` - - `:direct` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:code_execution_20250825` + - `max_content_tokens: Integer` - - `:code_execution_20260120` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `:code_execution_20260521` + minimum: 1 - - `allowed_domains: Array[String]` + - `max_uses: Integer` - List of domains to allow fetching from + Maximum number of times the tool can be used in the API request. - - `blocked_domains: Array[String]` + minimum: 1 - List of domains to block fetching from + - `response_inclusion: :full | :excluded` - - `cache_control: BetaCacheControlEphemeral` + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - Create a cache control breakpoint at this content block. + - `:full` - - `citations: BetaCitationsConfigParam` + - `:excluded` - Citations configuration for fetched documents. Citations are disabled by default. + - `strict: bool` - - `defer_loading: bool` + When true, guarantees schema validation on tool names and inputs - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `url_sources: BetaWebFetchURLSources` - - `max_content_tokens: Integer` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `use_cache: bool` - minimum: 1 + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - - `max_uses: Integer` + - `class BetaAdvisorTool20260301` - Maximum number of times the tool can be used in the API request. + - `type: :advisor_20260301` - minimum: 1 + - `model: Model` - - `response_inclusion: :full | :excluded` + The model that will complete your prompt. - How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:full` + - `:"claude-haiku-5-5"` - - `:excluded` + Fastest model for high-volume, real-time tasks - - `strict: bool` + - `:"claude-sonnet-5-5"` - When true, guarantees schema validation on tool names and inputs + Efficient model for coding and agents - - `url_sources: BetaWebFetchURLSources` + - `:"claude-fable-5-1"` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `use_cache: bool` + - `:"claude-opus-5-5"` - Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + Powerful intelligence for coding, knowledge work, and long-running agents - - `class BetaAdvisorTool20260301` + - `:"claude-mythos-5-1"` - - `type: :advisor_20260301` + Our most capable model for cybersecurity and biology research, available through trusted access programs - - `model: Model` + - `:"claude-sonnet-5"` - The model that will complete your prompt. + Efficient model for coding and agents - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `:"claude-fable-5"` - - `:"claude-haiku-5-5"` + Next generation of intelligence for the hardest knowledge work and coding problems - Fastest model for high-volume, real-time tasks + - `:"claude-mythos-5"` - - `:"claude-sonnet-5-5"` + Most capable model for cybersecurity and biology research - Efficient model for coding and agents + - `:"claude-opus-5"` - - `:"claude-fable-5-1"` + Powerful intelligence for long-running agents and coding - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `:"claude-opus-4-8"` - - `:"claude-opus-5-5"` + Powerful intelligence for long-running agents and coding - Powerful intelligence for coding, knowledge work, and long-running agents + - `:"claude-opus-4-7"` - - `:"claude-mythos-5-1"` + Powerful intelligence for long-running agents and coding - Our most capable model for cybersecurity and biology research, available through trusted access programs + - `:"claude-opus-4-6"` - - `:"claude-sonnet-5"` + Powerful intelligence for long-running agents and coding - Efficient model for coding and agents + - `:"claude-sonnet-4-6"` - - `:"claude-fable-5"` + Best combination of speed and intelligence - Next generation of intelligence for the hardest knowledge work and coding problems + - `:"claude-haiku-4-5"` - - `:"claude-mythos-5"` + - `:"claude-haiku-4-5-20251001"` - Most capable model for cybersecurity and biology research + - `:"claude-opus-4-5"` - - `:"claude-opus-5"` + Powerful intelligence for long-running agents and coding - Powerful intelligence for long-running agents and coding + - `:"claude-opus-4-5-20251101"` - - `:"claude-opus-4-8"` + Powerful intelligence for long-running agents and coding - Powerful intelligence for long-running agents and coding + - `:"claude-mythos-preview"` - - `:"claude-opus-4-7"` + **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Powerful intelligence for long-running agents and coding + New class of intelligence, strongest in coding and cybersecurity - - `:"claude-opus-4-6"` + - `:"claude-sonnet-4-5"` - Powerful intelligence for long-running agents and coding + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"claude-sonnet-4-6"` + High-performance model for agents and coding - Best combination of speed and intelligence + - `:"claude-sonnet-4-5-20250929"` - - `:"claude-haiku-4-5"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"claude-haiku-4-5-20251001"` + High-performance model for agents and coding - - `:"claude-opus-4-5"` + - `String = String` - Powerful intelligence for long-running agents and coding + - `name: :advisor` - - `:"claude-opus-4-5-20251101"` + Name of the tool. - Powerful intelligence for long-running agents and coding + This is how the tool will be called by the model and in `tool_use` blocks. - - `:"claude-mythos-preview"` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:direct` - New class of intelligence, strongest in coding and cybersecurity + - `:code_execution_20250825` - - `:"claude-sonnet-4-5"` + - `:code_execution_20260120` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:code_execution_20260521` - High-performance model for agents and coding + - `cache_control: BetaCacheControlEphemeral` - - `:"claude-sonnet-4-5-20250929"` + Create a cache control breakpoint at this content block. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `caching: BetaCacheControlEphemeral` - High-performance model for agents and coding + Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. - - `String = String` + - `defer_loading: bool` - - `name: :advisor` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Name of the tool. + - `max_tokens: Integer` - This is how the tool will be called by the model and in `tool_use` blocks. + Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + minimum: 1024 - - `:direct` + - `max_uses: Integer` - - `:code_execution_20250825` + Maximum number of times the tool can be used in the API request. - - `:code_execution_20260120` + minimum: 1 - - `:code_execution_20260521` + - `strict: bool` - - `cache_control: BetaCacheControlEphemeral` + When true, guarantees schema validation on tool names and inputs - Create a cache control breakpoint at this content block. + - `class BetaToolSearchToolBm25_20251119` - - `caching: BetaCacheControlEphemeral` + - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` - Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. + - `:tool_search_tool_bm25_20251119` - - `defer_loading: bool` + - `:tool_search_tool_bm25` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `name: :tool_search_tool_bm25` - - `max_tokens: Integer` + Name of the tool. - Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. + This is how the tool will be called by the model and in `tool_use` blocks. - minimum: 1024 + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `max_uses: Integer` + - `:direct` - Maximum number of times the tool can be used in the API request. + - `:code_execution_20250825` - minimum: 1 + - `:code_execution_20260120` - - `strict: bool` + - `:code_execution_20260521` - When true, guarantees schema validation on tool names and inputs + - `cache_control: BetaCacheControlEphemeral` - - `class BetaToolSearchToolBm25_20251119` + Create a cache control breakpoint at this content block. - - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` + - `defer_loading: bool` - - `:tool_search_tool_bm25_20251119` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:tool_search_tool_bm25` + - `strict: bool` - - `name: :tool_search_tool_bm25` + When true, guarantees schema validation on tool names and inputs - Name of the tool. + - `class BetaToolSearchToolRegex20251119` - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `:tool_search_tool_regex_20251119` - - `:direct` + - `:tool_search_tool_regex` - - `:code_execution_20250825` + - `name: :tool_search_tool_regex` - - `:code_execution_20260120` + Name of the tool. - - `:code_execution_20260521` + This is how the tool will be called by the model and in `tool_use` blocks. - - `cache_control: BetaCacheControlEphemeral` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Create a cache control breakpoint at this content block. + - `:direct` - - `defer_loading: bool` + - `:code_execution_20250825` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:code_execution_20260120` - - `strict: bool` + - `:code_execution_20260521` - When true, guarantees schema validation on tool names and inputs + - `cache_control: BetaCacheControlEphemeral` - - `class BetaToolSearchToolRegex20251119` + Create a cache control breakpoint at this content block. - - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` + - `defer_loading: bool` - - `:tool_search_tool_regex_20251119` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:tool_search_tool_regex` + - `strict: bool` - - `name: :tool_search_tool_regex` + When true, guarantees schema validation on tool names and inputs - Name of the tool. + - `class BetaMCPToolset` - This is how the tool will be called by the model and in `tool_use` blocks. + Configuration for a group of tools from an MCP server. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. - - `:direct` + - `type: :mcp_toolset` - - `:code_execution_20250825` + - `mcp_server_name: String` - - `:code_execution_20260120` + Name of the MCP server to configure tools for - - `:code_execution_20260521` + minLength: 1, maxLength: 255 - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `defer_loading: bool` + - `configs: Hash[Symbol, BetaMCPToolConfig]` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Configuration overrides for specific tools, keyed by tool name - - `strict: bool` + - `defer_loading: bool` - When true, guarantees schema validation on tool names and inputs + - `enabled: bool` - - `class BetaMCPToolset` + - `default_config: BetaMCPToolDefaultConfig` - Configuration for a group of tools from an MCP server. + Default configuration applied to all tools from this server - Allows configuring enabled status and defer_loading for all tools - from an MCP server, with optional per-tool overrides. + - `defer_loading: bool` - - `type: :mcp_toolset` + - `enabled: bool` - - `mcp_server_name: String` + - `tools: Array[BetaMCPToolParam]` - Name of the MCP server to configure tools for + The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. - minLength: 1, maxLength: 255 + - `input_schema: Hash[Symbol, untyped]` - - `cache_control: BetaCacheControlEphemeral` + The tool's input schema as the MCP server lists it, verbatim. - Create a cache control breakpoint at this content block. + - `name: String` - - `configs: Hash[Symbol, BetaMCPToolConfig]` + The tool's name as the MCP server lists it (not prefixed with the server name). - Configuration overrides for specific tools, keyed by tool name + minLength: 1 - - `defer_loading: bool` + - `description: String` - - `enabled: bool` + The tool's description as the MCP server lists it. - - `default_config: BetaMCPToolDefaultConfig` + - `cache_control: BetaCacheControlEphemeral` - Default configuration applied to all tools from this server + Create a cache control breakpoint at this content block. - - `defer_loading: bool` + - `class BetaRequestToolRemovalBlock` - - `enabled: bool` + Mid-conversation directive to withdraw a tool. - - `tools: Array[BetaMCPToolParam]` + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. - The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. + - `type: :tool_removal` - - `input_schema: Hash[Symbol, untyped]` + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference` - The tool's input schema as the MCP server lists it, verbatim. + - `class BetaToolChangeToolReference` - - `name: String` + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. - The tool's name as the MCP server lists it (not prefixed with the server name). + - `class BetaToolChangeMCPToolReference` - minLength: 1 + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. - - `description: String` + - `class BetaToolChangeMCPToolsetReference` - The tool's description as the MCP server lists it. + Reference to every tool in the named MCP server's toolset. - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `class BetaRequestToolRemovalBlock` + - `class BetaRequestToolAdditionBlock` - Mid-conversation directive to withdraw a tool. + Mid-conversation directive to make a tool available. - `tool` references a tool (or MCP toolset) by name: one declared in the - request's `tools` or defined earlier in `messages`. It is no longer - offered to the model from this point in the conversation onward. + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. - - `type: :tool_removal` + - `class BetaRequestToolRemovalBlock` - - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference` + Mid-conversation directive to withdraw a tool. - - `class BetaToolChangeToolReference` + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. - Reference to a single tool, by the name the model uses to call it: a - tool declared in `tools` or defined by an earlier `tool_addition` - block. Does not accept the composed `{server}_{name}` form the server - assigns to MCP-resolved tools; use `mcp_tool_reference` or - `mcp_toolset_reference` for those. + - `class BetaMCPToolListingBlockParam` - - `class BetaToolChangeMCPToolReference` + The tool listing an MCP server returned while an earlier response was + produced, as that response carried it. Send the assistant message back + unchanged, this block included, and the server uses this listing for the + matching `mcp_toolset` instead of asking the MCP server again. - Reference to a single MCP tool by its server and remote name; the - same `server_name`/`name` pair `mcp_tool_use` carries. + - `type: :mcp_tool_listing` - - `class BetaToolChangeMCPToolsetReference` + - `mcp_server_name: String` - Reference to every tool in the named MCP server's toolset. + The name of the MCP server this listing came from, as `mcp_servers` declares it. - - `cache_control: BetaCacheControlEphemeral` + minLength: 1, maxLength: 255 - Create a cache control breakpoint at this content block. + - `tools: Array[BetaMCPToolParam]` - - `class BetaRequestToolAdditionBlock` + The server's tools, exactly as the response listed them. - Mid-conversation directive to make a tool available. + - `input_schema: Hash[Symbol, untyped]` - `tool` is a reference to a tool (or MCP toolset) declared in the - request's `tools`. Under the `inline-tools-2026-09-15` beta it may - instead be a reference to a tool defined earlier in `messages`, or a - `tool_definition` object that carries an inline tool definition in - `definition` (the same object a `tools` entry holds). An `mcp_toolset` - definition also requires the `mcp-client-2026-09-15` beta. The tool is - offered to the model from this point in the conversation onward. + The tool's input schema as the MCP server lists it, verbatim. - - `class BetaRequestToolRemovalBlock` + - `name: String` - Mid-conversation directive to withdraw a tool. + The tool's name as the MCP server lists it (not prefixed with the server name). - `tool` references a tool (or MCP toolset) by name: one declared in the - request's `tools` or defined earlier in `messages`. It is no longer - offered to the model from this point in the conversation onward. + minLength: 1 - - `class BetaMCPToolListingBlockParam` + - `description: String` - The tool listing an MCP server returned while an earlier response was - produced, as that response carried it. Send the assistant message back - unchanged, this block included, and the server uses this listing for the - matching `mcp_toolset` instead of asking the MCP server again. + The tool's description as the MCP server lists it. - - `type: :mcp_tool_listing` + - `class BetaFallbackBlockParam` - - `mcp_server_name: String` + A `fallback` block echoed back from a prior response. - The name of the MCP server this listing came from, as `mcp_servers` declares it. + Accepted in `messages[].content` and not rendered into the prompt; not + validated against the request's `fallbacks` chain or top-level `model`. - minLength: 1, maxLength: 255 + Echo the assistant turn back verbatim, including this block in its + original position. The block marks the boundary between content produced + before and after a fallback hop, and the server relies on that boundary + to validate the turn: when thinking runs flank the boundary, omitting + the block merges them into one span the server cannot validate (the + request is rejected), and moving it into the middle of a single run is + likewise rejected; between non-thinking blocks the block's placement has + no validation effect. - - `tools: Array[BetaMCPToolParam]` + - `type: :fallback` - The server's tools, exactly as the response listed them. + - `from: BetaFallbackInfoParam` - - `input_schema: Hash[Symbol, untyped]` + Identifies one hop of a fallback transition. - The tool's input schema as the MCP server lists it, verbatim. + - `model: Model` - - `name: String` + The model that will complete your prompt. - The tool's name as the MCP server lists it (not prefixed with the server name). + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - minLength: 1 + - `to: BetaFallbackInfoParam` - - `description: String` + Identifies one hop of a fallback transition. - The tool's description as the MCP server lists it. + - `trigger: untyped` - - `class BetaFallbackBlockParam` + The response block's `trigger`, echoed verbatim. Accepted and ignored by the server; any object or `null` is allowed. - A `fallback` block echoed back from a prior response. + - `role: :user | :assistant | :system` - Accepted in `messages[].content` and not rendered into the prompt; not - validated against the request's `fallbacks` chain or top-level `model`. + - `:user` - Echo the assistant turn back verbatim, including this block in its - original position. The block marks the boundary between content produced - before and after a fallback hop, and the server relies on that boundary - to validate the turn: when thinking runs flank the boundary, omitting - the block merges them into one span the server cannot validate (the - request is rejected), and moving it into the middle of a single run is - likewise rejected; between non-thinking blocks the block's placement has - no validation effect. + - `:assistant` - - `type: :fallback` + - `:system` - - `from: BetaFallbackInfoParam` + - `clear_at: :next_user_message | :never` - Identifies one hop of a fallback transition. + How long this system message's text stays in front of the model. `"never"` (the default) renders it on every request that includes it. `"next_user_message"` renders it only for the user turn it follows: once a later `role: "user"` message exists in `messages` the message stays in the array (send it unchanged) but is no longer shown to the model. Only permitted on `role: "system"` messages. - - `model: Model` + - `:next_user_message` - The model that will complete your prompt. + - `:never` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `output_config: BetaSystemMessageOutputConfig` - - `to: BetaFallbackInfoParam` + Per-message output configuration on a role:"system" input message. - Identifies one hop of a fallback transition. + Fields here apply per-turn; `format` remains top-level only. An + empty `{}` is accepted on a message that carries content; a message + with neither content nor output_config fields is rejected. - - `trigger: untyped` + - `effort: :low | :medium | :high | 2 more` - The response block's `trigger`, echoed verbatim. Accepted and ignored by the server; any object or `null` is allowed. + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. - - `role: :user | :assistant | :system` + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - - `:user` + - `:low` - - `:assistant` + - `:medium` - - `:system` + - `:high` - - `clear_at: :next_user_message | :never` + - `:xhigh` - How long this system message's text stays in front of the model. `"never"` (the default) renders it on every request that includes it. `"next_user_message"` renders it only for the user turn it follows: once a later `role: "user"` message exists in `messages` the message stays in the array (send it unchanged) but is no longer shown to the model. Only permitted on `role: "system"` messages. + - `:max` - - `:next_user_message` +- `model: Model` - - `:never` + The model that will complete your prompt. - - `output_config: BetaSystemMessageOutputConfig` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Per-message output configuration on a role:"system" input message. +- `cache_control: BetaCacheControlEphemeral` - Fields here apply per-turn; `format` remains top-level only. An - empty `{}` is accepted on a message that carries content; a message - with neither content nor output_config fields is rejected. + Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. - - `effort: :low | :medium | :high | 2 more` +- `compaction: BetaCompactionConfig` - How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + Compaction configuration. - Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + When set on `POST /v1/messages`, the request is a compaction request: the conversation in `messages` is summarized and the response holds only the resulting `compaction` block (`stop_reason` `"compaction"`), which later requests send first in `messages` in place of the messages it summarizes. `POST /v1/messages/count_tokens` accepts this parameter and ignores it: the count it returns is for the conversation in `messages` as sent. Cannot be combined with `context_management`. - - `:low` + - `type: :summarize` - - `:medium` + - `instructions: String` - - `:high` + Replaces the server's default summarization prompt for this request. An empty or whitespace-only value counts as absent. - - `:xhigh` + maxLength: 16384 - - `:max` +- `container: BetaContainerParams | String` - - `model: Model` + Container identifier for reuse across requests. - The model that will complete your prompt. + - `class BetaContainerParams` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + Container parameters with skills to be loaded. - - `cache_control: BetaCacheControlEphemeral` + - `id: String` - Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. + Container id - - `compaction: BetaCompactionConfig` + - `skills: Array[BetaSkillParams]` - Compaction configuration. + List of skills to load in the container - When set on `POST /v1/messages`, the request is a compaction request: the conversation in `messages` is summarized and the response holds only the resulting `compaction` block (`stop_reason` `"compaction"`), which later requests send first in `messages` in place of the messages it summarizes. `POST /v1/messages/count_tokens` accepts this parameter and ignores it: the count it returns is for the conversation in `messages` as sent. Cannot be combined with `context_management`. + maxItems: 20 - - `type: :summarize` + - `type: :anthropic | :custom` - - `instructions: String` + Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) - Replaces the server's default summarization prompt for this request. An empty or whitespace-only value counts as absent. + - `:anthropic` - maxLength: 16384 + - `:custom` - - `container: BetaContainerParams | String` + - `skill_id: String` - Container identifier for reuse across requests. + Skill ID - - `class BetaContainerParams` + minLength: 1, maxLength: 64 - Container parameters with skills to be loaded. + - `version: String` - - `id: String` + Skill version or 'latest' for most recent version - Container id + minLength: 1, maxLength: 64 - - `skills: Array[BetaSkillParams]` + - `String = String` - List of skills to load in the container +- `context_management: BetaContextManagementConfig` - maxItems: 20 + Context management configuration. - - `type: :anthropic | :custom` - - Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) - - - `:anthropic` - - - `:custom` - - - `skill_id: String` - - Skill ID + This allows you to control how Claude manages context across multiple requests, such as whether to clear function results or not. - minLength: 1, maxLength: 64 + - `edits: Array[BetaClearToolUses20250919Edit | BetaClearThinking20251015Edit | BetaCompact20260112Edit]` - - `version: String` + List of context management edits to apply - Skill version or 'latest' for most recent version + - `class BetaClearToolUses20250919Edit` - minLength: 1, maxLength: 64 + - `type: :clear_tool_uses_20250919` - - `String = String` + - `clear_at_least: BetaInputTokensClearAtLeast` - - `context_management: BetaContextManagementConfig` + Minimum number of tokens that must be cleared when triggered. Context will only be modified if at least this many tokens can be removed. - Context management configuration. + - `type: :input_tokens` - This allows you to control how Claude manages context across multiple requests, such as whether to clear function results or not. + - `value: Integer` - - `edits: Array[BetaClearToolUses20250919Edit | BetaClearThinking20251015Edit | BetaCompact20260112Edit]` + minimum: 0 - List of context management edits to apply + - `clear_tool_inputs: bool | Array[String]` - - `class BetaClearToolUses20250919Edit` + Whether to clear all tool inputs (bool) or specific tool inputs to clear (list) - - `type: :clear_tool_uses_20250919` + - `UnionMember0 = bool` - - `clear_at_least: BetaInputTokensClearAtLeast` + - `UnionMember1 = Array[String]` - Minimum number of tokens that must be cleared when triggered. Context will only be modified if at least this many tokens can be removed. + - `exclude_tools: Array[String]` - - `type: :input_tokens` + Tool names whose uses are preserved from clearing - - `value: Integer` + - `keep: BetaToolUsesKeep` - minimum: 0 + Number of tool uses to retain in the conversation - - `clear_tool_inputs: bool | Array[String]` + - `type: :tool_uses` - Whether to clear all tool inputs (bool) or specific tool inputs to clear (list) + - `value: Integer` - - `UnionMember0 = bool` + minimum: 0 - - `UnionMember1 = Array[String]` + - `trigger: BetaInputTokensTrigger | BetaToolUsesTrigger` - - `exclude_tools: Array[String]` + Condition that triggers the context management strategy - Tool names whose uses are preserved from clearing + - `class BetaInputTokensTrigger` - - `keep: BetaToolUsesKeep` + - `type: :input_tokens` - Number of tool uses to retain in the conversation + - `value: Integer` - - `type: :tool_uses` + minimum: 1 - - `value: Integer` + - `class BetaToolUsesTrigger` - minimum: 0 + - `type: :tool_uses` - - `trigger: BetaInputTokensTrigger | BetaToolUsesTrigger` + - `value: Integer` - Condition that triggers the context management strategy + minimum: 1 - - `class BetaInputTokensTrigger` + - `class BetaClearThinking20251015Edit` - - `type: :input_tokens` + - `type: :clear_thinking_20251015` - - `value: Integer` + - `keep: BetaThinkingTurns | BetaAllThinkingTurns | :all` - minimum: 1 + Number of most recent assistant turns to keep thinking blocks for. Older turns will have their thinking blocks removed. - - `class BetaToolUsesTrigger` + - `class BetaThinkingTurns` - - `type: :tool_uses` + - `type: :thinking_turns` - - `value: Integer` + - `value: Integer` - minimum: 1 + minimum: 1 - - `class BetaClearThinking20251015Edit` + - `class BetaAllThinkingTurns` - - `type: :clear_thinking_20251015` + - `type: :all` - - `keep: BetaThinkingTurns | BetaAllThinkingTurns | :all` + - `:all` - Number of most recent assistant turns to keep thinking blocks for. Older turns will have their thinking blocks removed. + - `class BetaCompact20260112Edit` - - `class BetaThinkingTurns` + Automatically compact older context when reaching the configured trigger threshold. - - `type: :thinking_turns` + - `type: :compact_20260112` - - `value: Integer` + - `instructions: String` - minimum: 1 + Additional instructions for summarization. - - `class BetaAllThinkingTurns` + - `pause_after_compaction: bool` - - `type: :all` + Whether to pause after compaction and return the compaction block to the user. - - `:all` + - `trigger: BetaInputTokensTrigger` - - `class BetaCompact20260112Edit` + When to trigger compaction. Defaults to 150000 input tokens. - Automatically compact older context when reaching the configured trigger threshold. +- `diagnostics: BetaDiagnosticsParam` - - `type: :compact_20260112` + Request-level diagnostics. Supply `previous_message_id` to have the response include `diagnostics.cache_miss_reason` explaining any prompt-cache divergence from that prior request. - - `instructions: String` + - `previous_message_id: String` - Additional instructions for summarization. + The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare. - - `pause_after_compaction: bool` + maxLength: 256 - Whether to pause after compaction and return the compaction block to the user. +- `fallback_credit_token: String | BetaFallbackCreditTokenParam` - - `trigger: BetaInputTokensTrigger` + The `fallback_credit_token` from a prior refusal's `stop_details`. - When to trigger compaction. Defaults to 150000 input tokens. + When a preceding request was refused and returned a `fallback_credit_token`, + pass that code here on the retry to have the retry's cache-creation tokens + for the prefix that was warm on the refused model billed at the cache-read + rate. Must be redeemed by the same organization and workspace, with the same + request body (optionally extended by one appended `assistant` message whose + content is the partial text — with any trailing whitespace stripped from + the final text block — and paired server-tool blocks streamed before the + refusal; the appended-assistant form is not available for requests with + `output_format` set or forced `tool_choice`), on an eligible fallback + model, on the same platform, + and within 5 minutes of the refusal; a mismatch is a 400. A token minted + mid-server-tool-loop whose partial content was continuable may only be + redeemed with the appended-assistant form — if an exact-body retry is + rejected with a 400 saying the token must be redeemed by continuing the + partial response, retry with the appended-assistant form instead. - - `diagnostics: BetaDiagnosticsParam` + When the appended-assistant form is used on a model that otherwise disallows + assistant-turn prefill, this token also authorizes that one prefill. - Request-level diagnostics. Supply `previous_message_id` to have the response include `diagnostics.cache_miss_reason` explaining any prompt-cache divergence from that prior request. + - `String = String` - - `previous_message_id: String` + - `class BetaFallbackCreditTokenParam` - The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare. + Object form of `fallback_credit_token`: the token plus a redemption + mode. - maxLength: 256 + Requires `anthropic-beta: fallback-credit-2026-07-01`; without that + header the field accepts the bare string only. The bare string and the + mode-less object are equivalent (both select `strict`), so wrapping + an existing token changes nothing by itself. - - `fallback_credit_token: String | BetaFallbackCreditTokenParam` + - `token: String` - The `fallback_credit_token` from a prior refusal's `stop_details`. + The opaque `fallback_credit_token` from a prior refusal's `stop_details` — the same string the bare-string form carries. - When a preceding request was refused and returned a `fallback_credit_token`, - pass that code here on the retry to have the retry's cache-creation tokens - for the prefix that was warm on the refused model billed at the cache-read - rate. Must be redeemed by the same organization and workspace, with the same - request body (optionally extended by one appended `assistant` message whose - content is the partial text — with any trailing whitespace stripped from - the final text block — and paired server-tool blocks streamed before the - refusal; the appended-assistant form is not available for requests with - `output_format` set or forced `tool_choice`), on an eligible fallback - model, on the same platform, - and within 5 minutes of the refusal; a mismatch is a 400. A token minted - mid-server-tool-loop whose partial content was continuable may only be - redeemed with the appended-assistant form — if an exact-body retry is - rejected with a 400 saying the token must be redeemed by continuing the - partial response, retry with the appended-assistant form instead. + minLength: 1, maxLength: 2048 - When the appended-assistant form is used on a model that otherwise disallows - assistant-turn prefill, this token also authorizes that one prefill. + - `mode: :strict | :best_effort` - - `String = String` + How a failing token affects the retry. `strict` (the default, and the bare-string behavior): a failing redemption is a 400 and the retry is not served. `best_effort`: the retry is served either way — a token-layer failure no longer rejects the request; the retry proceeds at normal price and the outcome is reported on the response's `usage.fallback_credit`. Two failures stay hard in both modes: a malformed token, and combining `fallback_credit_token` with `fallbacks`. - - `class BetaFallbackCreditTokenParam` + - `:strict` - Object form of `fallback_credit_token`: the token plus a redemption - mode. + - `:best_effort` - Requires `anthropic-beta: fallback-credit-2026-07-01`; without that - header the field accepts the bare string only. The bare string and the - mode-less object are equivalent (both select `strict`), so wrapping - an existing token changes nothing by itself. +- `fallbacks: BetaFallbacksParam` - - `token: String` + Opt-in server-side retry on one or more substitute models when the requested model declines for policy reasons. Tried in order: if the first entry also declines, the second is tried, and so on. Some models don't support fallbacks; on those models, a list of fallback models returns a 400 error. See [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#server-side-fallback). The string "default" requests the requested model's server-defined default fallback configuration. On a model that doesn't support fallbacks, the request runs on the requested model alone, so a declined request stays declined. - The opaque `fallback_credit_token` from a prior refusal's `stop_details` — the same string the bare-string form carries. + - `UnionMember0 = Array[BetaFallbackParam]` - minLength: 1, maxLength: 2048 + - `model: Model` - - `mode: :strict | :best_effort` + The model that will complete your prompt. - How a failing token affects the retry. `strict` (the default, and the bare-string behavior): a failing redemption is a 400 and the retry is not served. `best_effort`: the retry is served either way — a token-layer failure no longer rejects the request; the retry proceeds at normal price and the outcome is reported on the response's `usage.fallback_credit`. Two failures stay hard in both modes: a malformed token, and combining `fallback_credit_token` with `fallbacks`. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:strict` + - `max_tokens: Integer` - - `:best_effort` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. - - `fallbacks: BetaFallbacksParam` + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. - Opt-in server-side retry on one or more substitute models when the requested model declines for policy reasons. Tried in order: if the first entry also declines, the second is tried, and so on. Some models don't support fallbacks; on those models, a list of fallback models returns a 400 error. See [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#server-side-fallback). The string "default" requests the requested model's server-defined default fallback configuration. On a model that doesn't support fallbacks, the request runs on the requested model alone, so a declined request stays declined. + - `output_config: BetaOutputConfig` - - `UnionMember0 = Array[BetaFallbackParam]` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. - - `model: Model` + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. - The model that will complete your prompt. + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + These rules apply with the `server-side-fallback-2026-07-01` beta header. - - `max_tokens: Integer` + - `effort: :low | :medium | :high | 2 more` - - `output_config: BetaOutputConfig` + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. - - `effort: :low | :medium | :high | 2 more` + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + - `:low` - Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + - `:medium` - - `:low` + - `:high` - - `:medium` + - `:xhigh` - - `:high` + - `:max` - - `:xhigh` + - `format_: BetaJSONOutputFormat` - - `:max` + A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) - - `format_: BetaJSONOutputFormat` + - `type: :json_schema` - A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + - `schema: Hash[Symbol, untyped]` - - `type: :json_schema` + The JSON schema of the format - - `schema: Hash[Symbol, untyped]` + - `task_budget: BetaTokenTaskBudget` - The JSON schema of the format + Configuration for token budget tracking across contexts. - - `task_budget: BetaTokenTaskBudget` + - `type: :tokens` - Configuration for token budget tracking across contexts. + The budget type. Currently only 'tokens' is supported. - - `type: :tokens` + - `total: Integer` - The budget type. Currently only 'tokens' is supported. + Total token budget across all contexts in the session. - - `total: Integer` + minimum: 1024 - Total token budget across all contexts in the session. + - `remaining: Integer` - minimum: 1024 + Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. - - `remaining: Integer` + minimum: 0 - Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. + - `speed: :standard | :fast` - minimum: 0 + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. - - `speed: :standard | :fast` + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + These rules apply with the `server-side-fallback-2026-07-01` beta header. - - `:standard` + - `:standard` - - `:fast` + - `:fast` - - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` - - `class BetaThinkingConfigEnabled` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. - - `type: :enabled` + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. - - `budget_tokens: Integer` + These rules apply with the `server-side-fallback-2026-07-01` beta header. - Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. + - `class BetaThinkingConfigEnabled` - Must be ≥1024 and less than `max_tokens`. + - `type: :enabled` - See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. + - `budget_tokens: Integer` - minimum: 1024 + Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. - - `block_binding: BetaThinkingBlockBinding` + Must be ≥1024 and less than `max_tokens`. - Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. - - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` + minimum: 1024 - "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. + - `block_binding: BetaThinkingBlockBinding` - - `:error` + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. - - `:drop_block` + - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` - - `display_: :summarized | :omitted | :updates` + "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. - Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + - `:error` - - `:summarized` + - `:drop_block` - - `:omitted` + - `display_: :summarized | :omitted | :updates` - - `:updates` + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). - - `class BetaThinkingConfigDisabled` + - `:summarized` - - `type: :disabled` + - `:omitted` - - `class BetaThinkingConfigBetweenTools` + - `:updates` - - `type: :between_tools` + - `class BetaThinkingConfigDisabled` - - `class BetaThinkingConfigAdaptive` + - `type: :disabled` - - `type: :adaptive` + - `class BetaThinkingConfigBetweenTools` - - `block_binding: BetaThinkingBlockBinding` + - `type: :between_tools` - Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + - `class BetaThinkingConfigAdaptive` - - `display_: :summarized | :omitted | :updates` + - `type: :adaptive` - Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + - `block_binding: BetaThinkingBlockBinding` - - `:summarized` + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. - - `:omitted` + - `display_: :summarized | :omitted | :updates` - - `:updates` + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). - - `:default` + - `:summarized` - - `inference_geo: String` + - `:omitted` - Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used. + - `:updates` - - `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` + - `:default` - MCP servers to be utilized in this request +- `inference_geo: String` - maxItems: 20 + Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used. - - `type: :url` +- `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` - - `name: String` + MCP servers to be utilized in this request - - `url: String` + maxItems: 20 - - `authorization_token: String` + - `type: :url` - - `tool_configuration: BetaRequestMCPServerToolConfiguration` + - `name: String` - - `allowed_tools: Array[String]` + - `url: String` - - `enabled: bool` + - `authorization_token: String` - - `metadata: BetaMetadata` + - `tool_configuration: BetaRequestMCPServerToolConfiguration` - An object describing metadata about the request. + - `allowed_tools: Array[String]` - - `user_id: String` + - `enabled: bool` - An external identifier for the user who is associated with the request. +- `metadata: BetaMetadata` - This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number. + An object describing metadata about the request. - maxLength: 512 + - `user_id: String` - - `output_config: BetaOutputConfig` + An external identifier for the user who is associated with the request. - Configuration options for the model's output, such as the output format. + This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number. - - `service_tier: :auto | :standard_only` + maxLength: 512 - Determines whether to use priority capacity (if available) or standard capacity for this request. +- `output_config: BetaOutputConfig` - Anthropic offers different levels of service for your API requests. See [service-tiers](https://platform.claude.com/docs/en/api/service-tiers?sdk_languages=ruby) for details. + Configuration options for the model's output, such as the output format. - - `:auto` +- `service_tier: :auto | :standard_only` - - `:standard_only` + Determines whether to use priority capacity (if available) or standard capacity for this request. - - `speed: :standard | :fast` + Anthropic offers different levels of service for your API requests. See [service-tiers](https://platform.claude.com/docs/en/api/service-tiers?sdk_languages=ruby) for details. - The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. + - `:auto` - Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. + - `:standard_only` - - `:standard` +- `speed: :standard | :fast` - - `:fast` + The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. - - `stop_sequences: Array[String]` + Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. - Custom text sequences that will cause the model to stop generating. + - `:standard` - Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_turn"`. + - `:fast` - If you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `"stop_sequence"` and the response `stop_sequence` value will contain the matched stop sequence. +- `stop_sequences: Array[String]` - - `stream: bool` + Custom text sequences that will cause the model to stop generating. - Whether to incrementally stream the response using server-sent events. When `true`, SDKs return a raw event stream. + Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_turn"`. - In the TypeScript, Python and Ruby SDKs, the recommended way to stream is `messages.stream()`. It sets `stream` for you and accumulates the events into the final message. See [Streaming with SDKs](https://platform.claude.com/docs/en/build-with-claude/streaming?sdk_languages=ruby#streaming-with-sdks) for an example in each language. + If you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `"stop_sequence"` and the response `stop_sequence` value will contain the matched stop sequence. - - `system_: String | Array[BetaTextBlockParam]` +- `system_: String | Array[BetaTextBlockParam]` - System prompt. + System prompt. - A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). + A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). - - `String = String` + - `String = String` - - `UnionMember1 = Array[BetaTextBlockParam]` + - `UnionMember1 = Array[BetaTextBlockParam]` - - `type: :text` + - `type: :text` - - `text: String` + - `text: String` - minLength: 1 + minLength: 1 - - `cache_control: BetaCacheControlEphemeral` + - `cache_control: BetaCacheControlEphemeral` - Create a cache control breakpoint at this content block. + Create a cache control breakpoint at this content block. - - `citations: Array[BetaTextCitationParam]` + - `citations: Array[BetaTextCitationParam]` - - `thinking: BetaThinkingConfigParam` +- `thinking: BetaThinkingConfigParam` - Configuration for Claude's thinking. + Configuration for Claude's thinking. - With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. + With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. - Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. + Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. - - `class BetaThinkingConfigEnabled` + - `class BetaThinkingConfigEnabled` - - `class BetaThinkingConfigDisabled` + - `class BetaThinkingConfigDisabled` - - `class BetaThinkingConfigBetweenTools` + - `class BetaThinkingConfigBetweenTools` - - `class BetaThinkingConfigAdaptive` + - `class BetaThinkingConfigAdaptive` - - `tool_choice: BetaToolChoice` +- `tool_choice: BetaToolChoice` - How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all. + How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all. - - `class BetaToolChoiceAuto` + - `class BetaToolChoiceAuto` - The model will automatically decide whether to use tools. + The model will automatically decide whether to use tools. - - `type: :auto` + - `type: :auto` - - `disable_parallel_tool_use: bool` + - `disable_parallel_tool_use: bool` - Whether to disable parallel tool use. + Whether to disable parallel tool use. - Defaults to `false`. If set to `true`, the model will output at most one tool use. + Defaults to `false`. If set to `true`, the model will output at most one tool use. - - `class BetaToolChoiceAny` + - `class BetaToolChoiceAny` - The model will use any available tools. + The model will use any available tools. - - `type: :any` + - `type: :any` - - `disable_parallel_tool_use: bool` + - `disable_parallel_tool_use: bool` - Whether to disable parallel tool use. + Whether to disable parallel tool use. - Defaults to `false`. If set to `true`, the model will output exactly one tool use. + Defaults to `false`. If set to `true`, the model will output exactly one tool use. - - `class BetaToolChoiceTool` + - `class BetaToolChoiceTool` - The model will use the specified tool with `tool_choice.name`. + The model will use the specified tool with `tool_choice.name`. - - `type: :tool` + - `type: :tool` - - `name: String` + - `name: String` - The name of the tool to use. + The name of the tool to use. - - `disable_parallel_tool_use: bool` + - `disable_parallel_tool_use: bool` - Whether to disable parallel tool use. + Whether to disable parallel tool use. - Defaults to `false`. If set to `true`, the model will output exactly one tool use. + Defaults to `false`. If set to `true`, the model will output exactly one tool use. - - `class BetaToolChoiceNone` + - `class BetaToolChoiceNone` - The model will not be allowed to use tools. + The model will not be allowed to use tools. - - `type: :none` + - `type: :none` - - `tools: Array[BetaToolUnion]` +- `tools: Array[BetaToolUnion]` - Definitions of tools that the model may use. + Definitions of tools that the model may use. - If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks. + If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks. - There are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools?sdk_languages=ruby), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool?sdk_languages=ruby)). + There are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools?sdk_languages=ruby), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool?sdk_languages=ruby)). - Each tool definition includes: + Each tool definition includes: - * `name`: Name of the tool. - * `description`: Optional, but strongly-recommended description of the tool. - * `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks. + * `name`: Name of the tool. + * `description`: Optional, but strongly-recommended description of the tool. + * `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks. - For example, if you defined `tools` as: + For example, if you defined `tools` as: - ```json - [ - { - "name": "get_stock_price", - "description": "Get the current stock price for a given ticker symbol.", - "input_schema": { - "type": "object", - "properties": { - "ticker": { - "type": "string", - "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." - } - }, - "required": ["ticker"] + ```json + [ + { + "name": "get_stock_price", + "description": "Get the current stock price for a given ticker symbol.", + "input_schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string", + "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." } - } - ] - ``` - - And then asked the model "What's the S&P 500 at today?", the model might produce `tool_use` content blocks in the response like this: - - ```json - [ - { - "type": "tool_use", - "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", - "name": "get_stock_price", - "input": { "ticker": "^GSPC" } - } - ] - ``` - - You might then run your `get_stock_price` tool with `{"ticker": "^GSPC"}` as an input, and return the following back to the model in a subsequent `user` message: - - ```json - [ - { - "type": "tool_result", - "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", - "content": "259.75 USD" - } - ] - ``` - - Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output. - - See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview?sdk_languages=ruby) for more details. - - - `class BetaTool` - - - `class BetaToolBash20241022` - - - `class BetaToolBash20250124` - - - `class BetaCodeExecutionTool20250522` - - - `class BetaCodeExecutionTool20250825` - - - `class BetaCodeExecutionTool20260120` - - Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - - - `class BetaCodeExecutionTool20260521` - - Code execution tool with REPL state persistence. - - - `class BetaBrowserToolset20260801` - - The browser toolset: a single `tools[]` entry (carrying no - `name`) that declares the browser tool family. The model is served - the family's tool with any members disabled via `configs` removed - from its schema. - - - `class BetaToolComputerUse20241022` - - - `class BetaMemoryTool20250818` - - - `class BetaToolComputerUse20250124` - - - `class BetaToolTextEditor20241022` - - - `class BetaToolComputerUse20251124` + }, + "required": ["ticker"] + } + } + ] + ``` - - `class BetaComputerToolset20260801` + And then asked the model "What's the S&P 500 at today?", the model might produce `tool_use` content blocks in the response like this: - The computer toolset: a single `tools[]` entry (carrying no - `name`) that declares the computer tool family. The model is - served the family's tool with any members disabled via `configs` - removed from its schema. Every member is enabled by default, zoom - included. The single-tool options `display_number` and - `enable_zoom` are not fields of a toolset entry — it carries only - `type`, `configs`, and `cache_control`; zoom is controlled - via `configs.zoom.enabled`. + ```json + [ + { + "type": "tool_use", + "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "name": "get_stock_price", + "input": { "ticker": "^GSPC" } + } + ] + ``` - - `class BetaToolTextEditor20250124` + You might then run your `get_stock_price` tool with `{"ticker": "^GSPC"}` as an input, and return the following back to the model in a subsequent `user` message: - - `class BetaToolTextEditor20250429` + ```json + [ + { + "type": "tool_result", + "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "content": "259.75 USD" + } + ] + ``` - - `class BetaToolTextEditor20250728` + Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output. - - `class BetaWebSearchTool20250305` + See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview?sdk_languages=ruby) for more details. - - `class BetaWebFetchTool20250910` + - `class BetaTool` - - `class BetaWebSearchTool20260209` + - `class BetaToolBash20241022` - - `class BetaWebFetchTool20260209` + - `class BetaToolBash20250124` - - `class BetaWebFetchTool20260309` + - `class BetaCodeExecutionTool20250522` - Web fetch tool with use_cache parameter for bypassing cached content. + - `class BetaCodeExecutionTool20250825` - - `class BetaWebSearchTool20260318` + - `class BetaCodeExecutionTool20260120` - - `class BetaWebFetchTool20260318` + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - - `class BetaAdvisorTool20260301` + - `class BetaCodeExecutionTool20260521` - - `class BetaToolSearchToolBm25_20251119` + Code execution tool with REPL state persistence. - - `class BetaToolSearchToolRegex20251119` + - `class BetaBrowserToolset20260801` - - `class BetaMCPToolset` + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. - Configuration for a group of tools from an MCP server. + - `class BetaToolComputerUse20241022` - Allows configuring enabled status and defer_loading for all tools - from an MCP server, with optional per-tool overrides. + - `class BetaMemoryTool20250818` - - `output_format: BetaJSONOutputFormat` + - `class BetaToolComputerUse20250124` - **Deprecated** + - `class BetaToolTextEditor20241022` - Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + - `class BetaToolComputerUse20251124` - A schema to specify Claude's output format in responses. This parameter will be removed in a future release. + - `class BetaComputerToolset20260801` - - `temperature: Float` + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. - **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. + - `class BetaToolTextEditor20250124` - Amount of randomness injected into the response. + - `class BetaToolTextEditor20250429` - Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. + - `class BetaToolTextEditor20250728` - Note that even with `temperature` of `0.0`, the results will not be fully deterministic. + - `class BetaWebSearchTool20250305` - minimum: 0, maximum: 1 + - `class BetaWebFetchTool20250910` - - `top_k: Integer` + - `class BetaWebSearchTool20260209` - **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error. + - `class BetaWebFetchTool20260209` - Only sample from the top K options for each subsequent token. + - `class BetaWebFetchTool20260309` - Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277). + Web fetch tool with use_cache parameter for bypassing cached content. - Recommended for advanced use cases only. + - `class BetaWebSearchTool20260318` - minimum: 0 + - `class BetaWebFetchTool20260318` - - `top_p: Float` + - `class BetaAdvisorTool20260301` - **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. + - `class BetaToolSearchToolBm25_20251119` - Use nucleus sampling. + - `class BetaToolSearchToolRegex20251119` - In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. + - `class BetaMCPToolset` - Recommended for advanced use cases only. + Configuration for a group of tools from an MCP server. - minimum: 0, maximum: 1 + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. - `betas: Array[AnthropicBeta]` (header parameter) @@ -17897,9 +17905,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -17907,2169 +17917,2000 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. -#### Returns +- `output_format: BetaJSONOutputFormat` -- `class BetaMessageBatch` + **Deprecated** - - `type: :message_batch` + Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) - Object type. + A schema to specify Claude's output format in responses. This parameter will be removed in a future release. - For Message Batches, this is always `"message_batch"`. +- `temperature: Float` - - `id: String` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - Unique object identifier. + Amount of randomness injected into the response. - The format and length of IDs may change over time. + Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. - - `archived_at: Time` + Note that even with `temperature` of `0.0`, the results will not be fully deterministic. - RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. + minimum: 0, maximum: 1 - format: date-time +- `top_k: Integer` - - `cancel_initiated_at: Time` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error. - RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. + Only sample from the top K options for each subsequent token. - format: date-time + Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277). - - `created_at: Time` + Recommended for advanced use cases only. - RFC 3339 datetime string representing the time at which the Message Batch was created. + minimum: 0 - format: date-time +- `top_p: Float` - - `ended_at: Time` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. + Use nucleus sampling. - Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. + In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. - format: date-time + Recommended for advanced use cases only. - - `expires_at: Time` + minimum: 0, maximum: 1 - RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. +#### Example - format: date-time +```ruby +require "anthropic" - - `processing_status: :in_progress | :canceling | :ended` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Processing status of the Message Batch. +result = anthropic.beta.messages.stream( + max_tokens: 1024, + messages: [{content: "Hello, world", role: :user}], + model: Anthropic::Model::CLAUDE_OPUS_5_5 +) - - `:in_progress` +puts(result) +``` - - `:canceling` +## Beta › Messages › Batches - - `:ended` +### Create a Message Batch - - `request_counts: BetaMessageBatchRequestCounts` +`beta.messages.batches.create(**kwargs) -> BetaMessageBatch` - Tallies requests within the Message Batch, categorized by their status. +**POST** `/v1/messages/batches` - Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. +Send a batch of Message creation requests. - - `canceled: Integer` +The Message Batches API can be used to process multiple Messages API requests at once. Once a Message Batch is created, it begins processing immediately. Batches can take up to 24 hours to complete. - Number of requests in the Message Batch that have been canceled. +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - This is zero until processing of the entire Message Batch has ended. +#### Parameters - - `errored: Integer` +- `requests: Array[Request]` - Number of requests in the Message Batch that encountered an error. + List of requests for prompt completion. Each is an individual request to create a Message. - This is zero until processing of the entire Message Batch has ended. + minItems: 1, maxItems: 100000 - - `expired: Integer` + - `custom_id: String` - Number of requests in the Message Batch that have expired. + Developer-provided ID created for each request in a Message Batch. Useful for matching results to requests, as results may be given out of request order. - This is zero until processing of the entire Message Batch has ended. + Must be unique for each request within the Message Batch. - - `processing: Integer` + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]{1,64}$ - Number of requests in the Message Batch that are processing. + - `params: Params` - - `succeeded: Integer` + Messages API creation parameters for the individual request. - Number of requests in the Message Batch that have completed successfully. + See the [Messages API reference](https://platform.claude.com/docs/en/api/messages?sdk_languages=ruby) for full documentation on available parameters. - This is zero until processing of the entire Message Batch has ended. + - `max_tokens: Integer` - - `results_url: String` + The maximum number of tokens to generate before stopping. - URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. + Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. - Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby#pre-warming-the-cache) without generating a response. -#### Example + Different models have different maximum values for this parameter. See [models](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby) for details. -```ruby -require "anthropic" + minimum: 0 -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `messages: Array[BetaMessageParam]` -beta_message_batch = anthropic.beta.messages.batches.create( - requests: [ - { - custom_id: "my-custom-id-1", - params: {max_tokens: 1024, messages: [{content: "Hello, world", role: :user}], model: Anthropic::Model::CLAUDE_OPUS_5_5} - } - ] -) + Input messages. -puts(beta_message_batch) -``` + Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn. -##### Response (200) + Each input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages. -```json -{ - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "archived_at": "2024-08-20T18:37:24.100435Z", - "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", - "created_at": "2024-08-20T18:37:24.100435Z", - "ended_at": "2024-08-20T18:37:24.100435Z", - "expires_at": "2024-08-20T18:37:24.100435Z", - "processing_status": "in_progress", - "request_counts": { - "canceled": 10, - "errored": 30, - "expired": 10, - "processing": 100, - "succeeded": 50 - }, - "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", - "type": "message_batch" -} -``` + If the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response. This is called prefill. On models that don't support prefill, creating a message that ends with a partial `assistant` response returns a 400 error. See [Prefill not supported](https://platform.claude.com/docs/en/api/errors?sdk_languages=ruby#prefill-not-supported). -### Retrieve a Message Batch + Example with a single `user` message: -`beta.messages.batches.retrieve(message_batch_id, **kwargs) -> BetaMessageBatch` + ```json + [{"role": "user", "content": "Hello, Claude"}] + ``` -**GET** `/v1/messages/batches/{message_batch_id}` + Example with multiple conversational turns: -This endpoint is idempotent and can be used to poll for Message Batch completion. To access the results of a Message Batch, make a request to the `results_url` field in the response. + ```json + [ + {"role": "user", "content": "Hello there."}, + {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, + {"role": "user", "content": "Can you explain LLMs in plain English?"}, + ] + ``` -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + Example with a partially-filled response from Claude, for models that support prefill: -#### Parameters + ```json + [ + {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, + {"role": "assistant", "content": "The best answer is ("}, + ] + ``` -- `message_batch_id: String` (path parameter) + Each input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `"text"`. The following input messages are equivalent: - ID of the Message Batch. + ```json + {"role": "user", "content": "Hello, Claude"} + ``` -- `betas: Array[AnthropicBeta]` (header parameter) + ```json + {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]} + ``` - Optional header to specify the beta version(s) you want to use. + See [input examples](https://platform.claude.com/docs/en/build-with-claude/working-with-messages?sdk_languages=ruby). - - `String = String` + Note that if you want to include a [system prompt](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role), you can use the top-level `system` parameter — there is no `"system"` role for input messages in the Messages API. - - `:"message-batches-2024-09-24"` + There is a limit of 100,000 messages in a single request. - - `:"prompt-caching-2024-07-31"` + - `content: String | Array[BetaContentBlockParam]` - - `:"computer-use-2024-10-22"` + - `String = String` - - `:"computer-use-2025-01-24"` + - `UnionMember1 = Array[BetaContentBlockParam]` - - `:"pdfs-2024-09-25"` + - `class BetaTextBlockParam` - - `:"token-counting-2024-11-01"` + - `type: :text` - - `:"token-efficient-tools-2025-02-19"` + - `text: String` - - `:"output-128k-2025-02-19"` + minLength: 1 - - `:"files-api-2025-04-14"` + - `cache_control: BetaCacheControlEphemeral` - - `:"mcp-client-2025-04-04"` + Create a cache control breakpoint at this content block. - - `:"mcp-client-2025-11-20"` + - `type: :ephemeral` - - `:"dev-full-thinking-2025-05-14"` + - `ttl: :"5m" | :"1h"` - - `:"interleaved-thinking-2025-05-14"` + The time-to-live for the cache control breakpoint. - - `:"code-execution-2025-05-22"` + This may be one the following values: - - `:"extended-cache-ttl-2025-04-11"` + - `5m`: 5 minutes + - `1h`: 1 hour - - `:"context-1m-2025-08-07"` + Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. - - `:"context-management-2025-06-27"` + - `:"5m"` - - `:"model-context-window-exceeded-2025-08-26"` + - `:"1h"` - - `:"skills-2025-10-02"` + - `citations: Array[BetaTextCitationParam]` - - `:"fast-mode-2026-02-01"` + - `class BetaCitationCharLocationParam` - - `:"output-300k-2026-03-24"` + - `type: :char_location` - - `:"user-profiles-2026-03-24"` + - `cited_text: String` - - `:"user-profiles-2026-08-18"` + - `document_index: Integer` - - `:"user-profiles-2026-09-04"` + minimum: 0 - - `:"advisor-tool-2026-03-01"` + - `document_title: String` - - `:"managed-agents-2026-04-01"` + minLength: 1, maxLength: 500 - - `:"cache-diagnosis-2026-04-07"` + - `end_char_index: Integer` - - `:"dreaming-2026-04-21"` + - `start_char_index: Integer` - - `:"thinking-token-count-2026-05-13"` + minimum: 0 - - `:"server-side-fallback-2026-06-01"` + - `class BetaCitationPageLocationParam` - - `:"server-side-fallback-2026-07-01"` + - `type: :page_location` - - `:"fallback-credit-2026-06-01"` + - `cited_text: String` - - `:"fallback-credit-2026-07-01"` + - `document_index: Integer` - - `:"agent-memory-2026-07-22"` + minimum: 0 - - `:"mid-conversation-tool-changes-2026-07-01"` + - `document_title: String` - - `:"compact-2026-01-12"` + minLength: 1, maxLength: 500 - - `:"computer-use-2025-11-24"` + - `end_page_number: Integer` - - `:"mcp-tunnels-2026-06-22"` + - `start_page_number: Integer` - - `:"structured-outputs-2025-11-13"` + minimum: 1 - - `:"task-budgets-2026-03-13"` + - `class BetaCitationContentBlockLocationParam` - - `:"thinking-display-updates-2026-08-18"` + - `type: :content_block_location` - - `:"ce-user-management-2026-07-13"` + - `cited_text: String` - - `:"mid-conversation-output-config-2026-07-01"` + The full text of the cited block range, concatenated. - - `:"thinking-binding-controls-2026-08-01"` + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `document_index: Integer` - - `:"compact-2026-09-04"` + minimum: 0 - - `:"inline-tools-2026-09-15"` + - `document_title: String` - - `:"mcp-client-2026-09-15"` + minLength: 1, maxLength: 500 - - `:"ce-plugins-2026-09-01"` + - `end_block_index: Integer` - - `:"spend-limit-reads-2026-09-26"` + Exclusive 0-based end index of the cited block range in the source's `content` array. - - `:"telemetry-destinations-2026-08-11"` + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. -- `workspace_id: String` (header parameter) + - `start_block_index: Integer` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + 0-based index of the first cited block in the source's `content` array. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + minimum: 0 -#### Returns + - `class BetaCitationWebSearchResultLocationParam` -- `class BetaMessageBatch` + - `type: :web_search_result_location` - - `type: :message_batch` + - `cited_text: String` - Object type. + - `encrypted_index: String` - For Message Batches, this is always `"message_batch"`. + - `title: String` - - `id: String` + minLength: 1, maxLength: 512 - Unique object identifier. + - `url: String` - The format and length of IDs may change over time. + minLength: 1 - - `archived_at: Time` + - `class BetaCitationSearchResultLocationParam` - RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. + - `type: :search_result_location` - format: date-time + - `cited_text: String` - - `cancel_initiated_at: Time` + The full text of the cited block range, concatenated. - RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - format: date-time + - `end_block_index: Integer` - - `created_at: Time` + Exclusive 0-based end index of the cited block range in the source's `content` array. - RFC 3339 datetime string representing the time at which the Message Batch was created. + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. - format: date-time + - `search_result_index: Integer` - - `ended_at: Time` + 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. - RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. + Counted separately from `document_index`; server-side web search results are not included in this count. - Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. + minimum: 0 - format: date-time + - `source: String` - - `expires_at: Time` + - `start_block_index: Integer` - RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. + 0-based index of the first cited block in the source's `content` array. - format: date-time + minimum: 0 - - `processing_status: :in_progress | :canceling | :ended` + - `title: String` - Processing status of the Message Batch. + - `class BetaImageBlockParam` - - `:in_progress` + - `type: :image` - - `:canceling` + - `source: BetaBase64ImageSource | BetaURLImageSource | BetaFileImageSource` - - `:ended` + - `class BetaBase64ImageSource` - - `request_counts: BetaMessageBatchRequestCounts` + - `type: :base64` - Tallies requests within the Message Batch, categorized by their status. + - `data: String` - Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. + format: byte - - `canceled: Integer` + - `media_type: :"image/jpeg" | :"image/png" | :"image/gif" | :"image/webp"` - Number of requests in the Message Batch that have been canceled. + - `:"image/jpeg"` - This is zero until processing of the entire Message Batch has ended. + - `:"image/png"` - - `errored: Integer` + - `:"image/gif"` - Number of requests in the Message Batch that encountered an error. + - `:"image/webp"` - This is zero until processing of the entire Message Batch has ended. + - `class BetaURLImageSource` - - `expired: Integer` + - `type: :url` - Number of requests in the Message Batch that have expired. + - `url: String` - This is zero until processing of the entire Message Batch has ended. + - `class BetaFileImageSource` - - `processing: Integer` + - `type: :file` - Number of requests in the Message Batch that are processing. + - `file_id: String` - - `succeeded: Integer` + - `cache_control: BetaCacheControlEphemeral` - Number of requests in the Message Batch that have completed successfully. + Create a cache control breakpoint at this content block. - This is zero until processing of the entire Message Batch has ended. + - `transformations: BetaImageTransformationsParam` - - `results_url: String` + Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field. - URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. + - `oversized_image: :downsize | :error` - Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + What the server does when this image exceeds the model's maximum image size. `"downsize"` (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. `"error"` instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down. -#### Example + - `:downsize` -```ruby -require "anthropic" + - `:error` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaRequestDocumentBlock` -beta_message_batch = anthropic.beta.messages.batches.retrieve("message_batch_id") + - `type: :document` -puts(beta_message_batch) -``` + - `source: BetaBase64PDFSource | BetaPlainTextSource | BetaContentBlockSource | 2 more` -##### Response (200) + - `class BetaBase64PDFSource` -```json -{ - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "archived_at": "2024-08-20T18:37:24.100435Z", - "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", - "created_at": "2024-08-20T18:37:24.100435Z", - "ended_at": "2024-08-20T18:37:24.100435Z", - "expires_at": "2024-08-20T18:37:24.100435Z", - "processing_status": "in_progress", - "request_counts": { - "canceled": 10, - "errored": 30, - "expired": 10, - "processing": 100, - "succeeded": 50 - }, - "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", - "type": "message_batch" -} -``` + - `type: :base64` -### List Message Batches + - `data: String` -`beta.messages.batches.list(**kwargs) -> Page` + format: byte -**GET** `/v1/messages/batches` + - `media_type: :"application/pdf"` -List all Message Batches within a Workspace. Most recently created batches are returned first. + - `class BetaPlainTextSource` -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + - `type: :text` -#### Parameters + - `data: String` -- `after_id: String` (query parameter) + - `media_type: :"text/plain"` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + - `class BetaContentBlockSource` -- `before_id: String` (query parameter) + - `type: :content` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + - `content: String | Array[BetaContentBlockSourceContent]` -- `limit: Integer` (query parameter) + - `String = String` - Number of items to return per page. + - `BetaContentBlockSourceContent = Array[BetaContentBlockSourceContent]` - Defaults to `20`. Ranges from `1` to `1000`. + - `class BetaTextBlockParam` - minimum: 1, maximum: 1000 + - `class BetaImageBlockParam` -- `betas: Array[AnthropicBeta]` (header parameter) + - `class BetaURLPDFSource` - Optional header to specify the beta version(s) you want to use. + - `type: :url` - - `String = String` + - `url: String` - - `:"message-batches-2024-09-24"` + - `class BetaFileDocumentSource` - - `:"prompt-caching-2024-07-31"` + - `type: :file` - - `:"computer-use-2024-10-22"` + - `file_id: String` - - `:"computer-use-2025-01-24"` + - `cache_control: BetaCacheControlEphemeral` - - `:"pdfs-2024-09-25"` + Create a cache control breakpoint at this content block. - - `:"token-counting-2024-11-01"` + - `citations: BetaCitationsConfigParam` - - `:"token-efficient-tools-2025-02-19"` + - `enabled: bool` - - `:"output-128k-2025-02-19"` + - `context: String` - - `:"files-api-2025-04-14"` + minLength: 1 - - `:"mcp-client-2025-04-04"` + - `title: String` - - `:"mcp-client-2025-11-20"` + minLength: 1, maxLength: 500 - - `:"dev-full-thinking-2025-05-14"` + - `class BetaSearchResultBlockParam` - - `:"interleaved-thinking-2025-05-14"` + - `type: :search_result` - - `:"code-execution-2025-05-22"` + - `content: Array[BetaTextBlockParam]` - - `:"extended-cache-ttl-2025-04-11"` + - `type: :text` - - `:"context-1m-2025-08-07"` + - `text: String` - - `:"context-management-2025-06-27"` + minLength: 1 - - `:"model-context-window-exceeded-2025-08-26"` + - `cache_control: BetaCacheControlEphemeral` - - `:"skills-2025-10-02"` + Create a cache control breakpoint at this content block. - - `:"fast-mode-2026-02-01"` + - `citations: Array[BetaTextCitationParam]` - - `:"output-300k-2026-03-24"` + - `source: String` - - `:"user-profiles-2026-03-24"` + - `title: String` - - `:"user-profiles-2026-08-18"` + - `cache_control: BetaCacheControlEphemeral` - - `:"user-profiles-2026-09-04"` + Create a cache control breakpoint at this content block. - - `:"advisor-tool-2026-03-01"` + - `citations: BetaCitationsConfigParam` - - `:"managed-agents-2026-04-01"` + - `class BetaThinkingBlockParam` - - `:"cache-diagnosis-2026-04-07"` + - `type: :thinking` - - `:"dreaming-2026-04-21"` + - `signature: String` - - `:"thinking-token-count-2026-05-13"` + The `signature` value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude. - - `:"server-side-fallback-2026-06-01"` + Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 `invalid_request_error`. - - `:"server-side-fallback-2026-07-01"` + - `thinking: String` - - `:"fallback-credit-2026-06-01"` + The `thinking` text of this block as returned by the API. - - `:"fallback-credit-2026-07-01"` + - `class BetaRedactedThinkingBlockParam` - - `:"agent-memory-2026-07-22"` + - `type: :redacted_thinking` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `data: String` - - `:"compact-2026-01-12"` + The `data` value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged. - - `:"computer-use-2025-11-24"` + - `class BetaToolUseBlockParam` - - `:"mcp-tunnels-2026-06-22"` + - `type: :tool_use` - - `:"structured-outputs-2025-11-13"` + - `id: String` - - `:"task-budgets-2026-03-13"` + pattern: ^[a-zA-Z0-9_-]+$ - - `:"thinking-display-updates-2026-08-18"` + - `input: Hash[Symbol, untyped]` - - `:"ce-user-management-2026-07-13"` + - `name: String` - - `:"mid-conversation-output-config-2026-07-01"` + minLength: 1, maxLength: 200 - - `:"thinking-binding-controls-2026-08-01"` + - `cache_control: BetaCacheControlEphemeral` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Create a cache control breakpoint at this content block. - - `:"compact-2026-09-04"` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `:"inline-tools-2026-09-15"` + - `class BetaDirectCaller` - - `:"mcp-client-2026-09-15"` + Tool invocation directly from the model. - - `:"ce-plugins-2026-09-01"` + - `type: :direct` - - `:"spend-limit-reads-2026-09-26"` + - `class BetaServerToolCaller` - - `:"telemetry-destinations-2026-08-11"` + Tool invocation generated by a server-side tool. -- `workspace_id: String` (header parameter) + - `type: :code_execution_20250825` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `tool_id: String` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ -#### Returns + - `class BetaServerToolCaller20260120` -- `class BetaMessageBatch` + - `type: :code_execution_20260120` - - `type: :message_batch` + - `tool_id: String` - Object type. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - For Message Batches, this is always `"message_batch"`. + - `toolset_name: String` - - `id: String` + For a toolset member tool_use, the toolset family this member belongs to. - Unique object identifier. + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ - The format and length of IDs may change over time. + - `class BetaToolResultBlockParam` - - `archived_at: Time` + - `type: :tool_result` - RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. + - `tool_use_id: String` - format: date-time + pattern: ^[a-zA-Z0-9_-]+$ - - `cancel_initiated_at: Time` + - `cache_control: BetaCacheControlEphemeral` - RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. + Create a cache control breakpoint at this content block. - format: date-time + - `content: String | Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` - - `created_at: Time` + - `String = String` - RFC 3339 datetime string representing the time at which the Message Batch was created. + - `Content = Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` - format: date-time + - `class BetaTextBlockParam` - - `ended_at: Time` + - `class BetaImageBlockParam` - RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. + - `class BetaSearchResultBlockParam` - Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. + - `class BetaRequestDocumentBlock` - format: date-time + - `class BetaToolReferenceBlockParam` - - `expires_at: Time` + Tool reference block that can be included in tool_result content. - RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. + - `type: :tool_reference` - format: date-time + - `tool_name: String` - - `processing_status: :in_progress | :canceling | :ended` + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ - Processing status of the Message Batch. + - `cache_control: BetaCacheControlEphemeral` - - `:in_progress` + Create a cache control breakpoint at this content block. - - `:canceling` + - `class BetaBrowserStateBlockParam` - - `:ended` + The caller's browser state after a browser toolset member call — + the full inventory of open tabs, which tab is active, and any side + effects (tabs opened, download state changes) the call produced. - - `request_counts: BetaMessageBatchRequestCounts` + At most one per `tool_result`, only on a non-error result answering a + browser toolset member `tool_use`. The server renders the + model-visible text from it; the model never sees the raw fields. - Tallies requests within the Message Batch, categorized by their status. + - `type: :browser_state` - Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. + - `tabs: Array[BetaBrowserStateTabEntry]` - - `canceled: Integer` + All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`. - Number of requests in the Message Batch that have been canceled. + maxItems: 100 - This is zero until processing of the entire Message Batch has ended. + - `tab_id: String` - - `errored: Integer` + The caller-assigned identifier for this tab, unique within the inventory. - Number of requests in the Message Batch that encountered an error. + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - This is zero until processing of the entire Message Batch has ended. + - `title: String` - - `expired: Integer` + The title of the page the tab is showing. May be empty. - Number of requests in the Message Batch that have expired. + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - This is zero until processing of the entire Message Batch has ended. + - `url: String` - - `processing: Integer` + The URL of the page the tab is showing. May be empty. - Number of requests in the Message Batch that are processing. + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `succeeded: Integer` + - `active: bool` - Number of requests in the Message Batch that have completed successfully. + Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`. - This is zero until processing of the entire Message Batch has ended. + - `cache_control: BetaCacheControlEphemeral` - - `results_url: String` + Create a cache control breakpoint at this content block. - URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. + - `state_changes: Array[BetaBrowserStateChange]` - Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list. -#### Example + minItems: 1, maxItems: 200 -```ruby -require "anthropic" + - `class BetaBrowserStateChangeTabOpened` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + A tab this call's execution opened that remains open at its end — + the creation delta of the `tabs` inventory, not an event log. -page = anthropic.beta.messages.batches.list + Carries only the `tab_id`; the tab's `title` and `url` live on its + `tabs` entry, which must include the same `tab_id`. A tab opened + during a failed call gets no deferred `tab_opened`; it simply appears + in the next result's `tabs` inventory. -puts(page) -``` + - `type: :tab_opened` -##### Response (200) + - `tab_id: String` -```json -{ - "data": [ - { - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "archived_at": "2024-08-20T18:37:24.100435Z", - "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", - "created_at": "2024-08-20T18:37:24.100435Z", - "ended_at": "2024-08-20T18:37:24.100435Z", - "expires_at": "2024-08-20T18:37:24.100435Z", - "processing_status": "in_progress", - "request_counts": { - "canceled": 10, - "errored": 30, - "expired": 10, - "processing": 100, - "succeeded": 50 - }, - "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", - "type": "message_batch" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" -} -``` + The `tab_id` of the opened tab, present in `tabs`. -### Cancel a Message Batch + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ -`beta.messages.batches.cancel(message_batch_id, **kwargs) -> BetaMessageBatch` + - `class BetaBrowserStateChangeDownloadStarted` -**POST** `/v1/messages/batches/{message_batch_id}/cancel` + A file download that started during this call. -Batches may be canceled any time before processing ends. Once cancellation is initiated, the batch enters a `canceling` state, at which time the system may complete any in-progress, non-interruptible requests before finalizing cancellation. + - `type: :download_started` -The number of canceled requests is specified in `request_counts`. To determine which requests were canceled, check the individual results within the batch. Note that cancellation may not result in any canceled requests if they were non-interruptible. + - `download_id: String` -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + The caller-assigned identifier for this download, stable across the state changes reporting it. -#### Parameters + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ -- `message_batch_id: String` (path parameter) + - `url: String` - ID of the Message Batch. + The final post-redirect URL the download was served from. -- `betas: Array[AnthropicBeta]` (header parameter) + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - Optional header to specify the beta version(s) you want to use. + - `class BetaBrowserStateChangeDownloadCompleted` - - `String = String` + A file download that finished during this call, reported with the + same `download_id` as its `download_started` — or without a prior + `download_started`, when the download finished during the call that + started it (at most one state change per `download_id` per result). - - `:"message-batches-2024-09-24"` + - `type: :download_completed` - - `:"prompt-caching-2024-07-31"` + - `download_id: String` - - `:"computer-use-2024-10-22"` + The caller-assigned identifier for this download, stable across the state changes reporting it. - - `:"computer-use-2025-01-24"` + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"pdfs-2024-09-25"` + - `url: String` - - `:"token-counting-2024-11-01"` + The final post-redirect URL the download was served from. - - `:"token-efficient-tools-2025-02-19"` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"output-128k-2025-02-19"` + - `path: String` - - `:"files-api-2025-04-14"` + Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path. - - `:"mcp-client-2025-04-04"` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"mcp-client-2025-11-20"` + - `size_bytes: Integer` - - `:"dev-full-thinking-2025-05-14"` + The completed download's size. - - `:"interleaved-thinking-2025-05-14"` + minimum: 0 - - `:"code-execution-2025-05-22"` + - `class BetaBrowserStateChangeDownloadFailed` - - `:"extended-cache-ttl-2025-04-11"` + A file download that failed — or was cancelled — during this call. - - `:"context-1m-2025-08-07"` + - `type: :download_failed` - - `:"context-management-2025-06-27"` + - `download_id: String` - - `:"model-context-window-exceeded-2025-08-26"` + The caller-assigned identifier for this download, stable across the state changes reporting it. - - `:"skills-2025-10-02"` + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"fast-mode-2026-02-01"` + - `url: String` - - `:"output-300k-2026-03-24"` + The final post-redirect URL the download was served from. - - `:"user-profiles-2026-03-24"` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"user-profiles-2026-08-18"` + - `error: String` - - `:"user-profiles-2026-09-04"` + The failure or cancellation detail, when known. - - `:"advisor-tool-2026-03-01"` + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ - - `:"managed-agents-2026-04-01"` + - `is_error: bool` - - `:"cache-diagnosis-2026-04-07"` + - `toolset_name: String` - - `:"dreaming-2026-04-21"` + For a toolset member tool_result, the toolset family of the paired tool_use. - - `:"thinking-token-count-2026-05-13"` + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ - - `:"server-side-fallback-2026-06-01"` + - `class BetaServerToolUseBlockParam` - - `:"server-side-fallback-2026-07-01"` + - `type: :server_tool_use` - - `:"fallback-credit-2026-06-01"` + - `id: String` - - `:"fallback-credit-2026-07-01"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"agent-memory-2026-07-22"` + - `input: Hash[Symbol, untyped]` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `name: :advisor | :web_search | :web_fetch | 5 more` - - `:"compact-2026-01-12"` + - `:advisor` - - `:"computer-use-2025-11-24"` + - `:web_search` - - `:"mcp-tunnels-2026-06-22"` + - `:web_fetch` - - `:"structured-outputs-2025-11-13"` + - `:code_execution` - - `:"task-budgets-2026-03-13"` + - `:bash_code_execution` - - `:"thinking-display-updates-2026-08-18"` + - `:text_editor_code_execution` - - `:"ce-user-management-2026-07-13"` + - `:tool_search_tool_regex` - - `:"mid-conversation-output-config-2026-07-01"` + - `:tool_search_tool_bm25` - - `:"thinking-binding-controls-2026-08-01"` + - `cache_control: BetaCacheControlEphemeral` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Create a cache control breakpoint at this content block. - - `:"compact-2026-09-04"` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `:"inline-tools-2026-09-15"` + - `class BetaDirectCaller` - - `:"mcp-client-2026-09-15"` + Tool invocation directly from the model. - - `:"ce-plugins-2026-09-01"` + - `class BetaServerToolCaller` - - `:"spend-limit-reads-2026-09-26"` + Tool invocation generated by a server-side tool. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaServerToolCaller20260120` -- `workspace_id: String` (header parameter) + - `class BetaWebSearchToolResultBlockParam` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :web_search_tool_result` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `content: BetaWebSearchToolResultBlockParamContent` -#### Returns + - `ResultBlock = Array[BetaWebSearchResultBlockParam]` -- `class BetaMessageBatch` + - `type: :web_search_result` - - `type: :message_batch` + - `encrypted_content: String` - Object type. + - `title: String` - For Message Batches, this is always `"message_batch"`. + - `url: String` - - `id: String` + - `page_age: String` - Unique object identifier. + - `class BetaWebSearchToolRequestError` - The format and length of IDs may change over time. + - `type: :web_search_tool_result_error` - - `archived_at: Time` + - `error_code: BetaWebSearchToolResultErrorCode` - RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. + - `:invalid_tool_input` - format: date-time + - `:unavailable` - - `cancel_initiated_at: Time` + - `:max_uses_exceeded` - RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. + - `:too_many_requests` - format: date-time + - `:query_too_long` - - `created_at: Time` + - `:request_too_large` - RFC 3339 datetime string representing the time at which the Message Batch was created. + - `tool_use_id: String` - format: date-time + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `ended_at: Time` + - `cache_control: BetaCacheControlEphemeral` - RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. + Create a cache control breakpoint at this content block. - Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - format: date-time + - `class BetaDirectCaller` - - `expires_at: Time` + Tool invocation directly from the model. - RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. + - `class BetaServerToolCaller` - format: date-time + Tool invocation generated by a server-side tool. - - `processing_status: :in_progress | :canceling | :ended` + - `class BetaServerToolCaller20260120` - Processing status of the Message Batch. + - `class BetaWebFetchToolResultBlockParam` - - `:in_progress` + - `type: :web_fetch_tool_result` - - `:canceling` + - `content: BetaWebFetchToolResultErrorBlockParam | BetaWebFetchBlockParam` - - `:ended` + - `class BetaWebFetchToolResultErrorBlockParam` - - `request_counts: BetaMessageBatchRequestCounts` + - `type: :web_fetch_tool_result_error` - Tallies requests within the Message Batch, categorized by their status. + - `error_code: BetaWebFetchToolResultErrorCode` - Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. + - `:invalid_tool_input` - - `canceled: Integer` + - `:url_too_long` - Number of requests in the Message Batch that have been canceled. + - `:url_not_allowed` - This is zero until processing of the entire Message Batch has ended. + - `:url_not_in_prior_context` - - `errored: Integer` + - `:url_not_accessible` - Number of requests in the Message Batch that encountered an error. + - `:unsupported_content_type` - This is zero until processing of the entire Message Batch has ended. + - `:too_many_requests` - - `expired: Integer` + - `:max_uses_exceeded` - Number of requests in the Message Batch that have expired. + - `:unavailable` - This is zero until processing of the entire Message Batch has ended. + - `:content_too_large` - - `processing: Integer` + - `class BetaWebFetchBlockParam` - Number of requests in the Message Batch that are processing. + - `type: :web_fetch_result` - - `succeeded: Integer` + - `content: BetaRequestDocumentBlock` - Number of requests in the Message Batch that have completed successfully. + - `url: String` - This is zero until processing of the entire Message Batch has ended. + Fetched content URL - - `results_url: String` + - `retrieved_at: String` - URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. + ISO 8601 timestamp when the content was retrieved - Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + - `tool_use_id: String` -#### Example + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ -```ruby -require "anthropic" + - `cache_control: BetaCacheControlEphemeral` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Create a cache control breakpoint at this content block. -beta_message_batch = anthropic.beta.messages.batches.cancel("message_batch_id") + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` -puts(beta_message_batch) -``` + - `class BetaDirectCaller` -##### Response (200) + Tool invocation directly from the model. -```json -{ - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "archived_at": "2024-08-20T18:37:24.100435Z", - "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", - "created_at": "2024-08-20T18:37:24.100435Z", - "ended_at": "2024-08-20T18:37:24.100435Z", - "expires_at": "2024-08-20T18:37:24.100435Z", - "processing_status": "in_progress", - "request_counts": { - "canceled": 10, - "errored": 30, - "expired": 10, - "processing": 100, - "succeeded": 50 - }, - "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", - "type": "message_batch" -} -``` + - `class BetaServerToolCaller` -### Delete a Message Batch + Tool invocation generated by a server-side tool. -`beta.messages.batches.delete(message_batch_id, **kwargs) -> BetaDeletedMessageBatch` + - `class BetaServerToolCaller20260120` -**DELETE** `/v1/messages/batches/{message_batch_id}` + - `class BetaAdvisorToolResultBlockParam` -Delete a Message Batch. + - `type: :advisor_tool_result` -Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it. + - `content: BetaAdvisorToolResultErrorParam | BetaAdvisorResultBlockParam | BetaAdvisorRedactedResultBlockParam` -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + - `class BetaAdvisorToolResultErrorParam` -#### Parameters + - `type: :advisor_tool_result_error` -- `message_batch_id: String` (path parameter) + - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` - ID of the Message Batch. + - `:max_uses_exceeded` -- `betas: Array[AnthropicBeta]` (header parameter) + - `:prompt_too_long` - Optional header to specify the beta version(s) you want to use. + - `:too_many_requests` - - `String = String` + - `:overloaded` - - `:"message-batches-2024-09-24"` + - `:unavailable` - - `:"prompt-caching-2024-07-31"` + - `:execution_time_exceeded` - - `:"computer-use-2024-10-22"` + - `:model_not_found` - - `:"computer-use-2025-01-24"` + - `class BetaAdvisorResultBlockParam` - - `:"pdfs-2024-09-25"` + - `type: :advisor_result` - - `:"token-counting-2024-11-01"` + - `text: String` - - `:"token-efficient-tools-2025-02-19"` + - `stop_reason: String` - - `:"output-128k-2025-02-19"` + - `class BetaAdvisorRedactedResultBlockParam` - - `:"files-api-2025-04-14"` + - `type: :advisor_redacted_result` - - `:"mcp-client-2025-04-04"` + - `encrypted_content: String` - - `:"mcp-client-2025-11-20"` + Opaque blob produced by a prior response; must be round-tripped verbatim. - - `:"dev-full-thinking-2025-05-14"` + - `stop_reason: String` - - `:"interleaved-thinking-2025-05-14"` + - `tool_use_id: String` - - `:"code-execution-2025-05-22"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"extended-cache-ttl-2025-04-11"` + - `cache_control: BetaCacheControlEphemeral` - - `:"context-1m-2025-08-07"` + Create a cache control breakpoint at this content block. - - `:"context-management-2025-06-27"` + - `class BetaCodeExecutionToolResultBlockParam` - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :code_execution_tool_result` - - `:"skills-2025-10-02"` + - `content: BetaCodeExecutionToolResultBlockParamContent` - - `:"fast-mode-2026-02-01"` + - `class BetaCodeExecutionToolResultErrorParam` - - `:"output-300k-2026-03-24"` + - `type: :code_execution_tool_result_error` - - `:"user-profiles-2026-03-24"` + - `error_code: BetaCodeExecutionToolResultErrorCode` - - `:"user-profiles-2026-08-18"` + - `:invalid_tool_input` - - `:"user-profiles-2026-09-04"` + - `:unavailable` - - `:"advisor-tool-2026-03-01"` + - `:too_many_requests` - - `:"managed-agents-2026-04-01"` + - `:execution_time_exceeded` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaCodeExecutionResultBlockParam` - - `:"dreaming-2026-04-21"` + - `type: :code_execution_result` - - `:"thinking-token-count-2026-05-13"` + - `content: Array[BetaCodeExecutionOutputBlockParam]` - - `:"server-side-fallback-2026-06-01"` + - `type: :code_execution_output` - - `:"server-side-fallback-2026-07-01"` + - `file_id: String` - - `:"fallback-credit-2026-06-01"` + - `return_code: Integer` - - `:"fallback-credit-2026-07-01"` + - `stderr: String` - - `:"agent-memory-2026-07-22"` + - `stdout: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaEncryptedCodeExecutionResultBlockParam` - - `:"compact-2026-01-12"` + Code execution result with encrypted stdout for PFC + web_search results. - - `:"computer-use-2025-11-24"` + - `type: :encrypted_code_execution_result` - - `:"mcp-tunnels-2026-06-22"` + - `content: Array[BetaCodeExecutionOutputBlockParam]` - - `:"structured-outputs-2025-11-13"` + - `type: :code_execution_output` - - `:"task-budgets-2026-03-13"` + - `file_id: String` - - `:"thinking-display-updates-2026-08-18"` + - `encrypted_stdout: String` - - `:"ce-user-management-2026-07-13"` + - `return_code: Integer` - - `:"mid-conversation-output-config-2026-07-01"` + - `stderr: String` - - `:"thinking-binding-controls-2026-08-01"` + - `tool_use_id: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"compact-2026-09-04"` + - `cache_control: BetaCacheControlEphemeral` - - `:"inline-tools-2026-09-15"` + Create a cache control breakpoint at this content block. - - `:"mcp-client-2026-09-15"` + - `class BetaBashCodeExecutionToolResultBlockParam` - - `:"ce-plugins-2026-09-01"` + - `type: :bash_code_execution_tool_result` - - `:"spend-limit-reads-2026-09-26"` + - `content: BetaBashCodeExecutionToolResultErrorParam | BetaBashCodeExecutionResultBlockParam` - - `:"telemetry-destinations-2026-08-11"` + - `class BetaBashCodeExecutionToolResultErrorParam` -- `workspace_id: String` (header parameter) + - `type: :bash_code_execution_tool_result_error` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `:invalid_tool_input` -#### Returns + - `:unavailable` -- `class BetaDeletedMessageBatch` + - `:too_many_requests` - - `type: :message_batch_deleted` + - `:execution_time_exceeded` - Deleted object type. + - `:output_file_too_large` - For Message Batches, this is always `"message_batch_deleted"`. + - `class BetaBashCodeExecutionResultBlockParam` - - `id: String` + - `type: :bash_code_execution_result` - ID of the Message Batch. + - `content: Array[BetaBashCodeExecutionOutputBlockParam]` -#### Example + - `type: :bash_code_execution_output` -```ruby -require "anthropic" + - `file_id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `return_code: Integer` -beta_deleted_message_batch = anthropic.beta.messages.batches.delete("message_batch_id") + - `stderr: String` -puts(beta_deleted_message_batch) -``` + - `stdout: String` -##### Response (200) + - `tool_use_id: String` -```json -{ - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "type": "message_batch_deleted" -} -``` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ -### Retrieve Message Batch results + - `cache_control: BetaCacheControlEphemeral` -`beta.messages.batches.results_streaming(message_batch_id, **kwargs) -> JsonLStream` + Create a cache control breakpoint at this content block. -**GET** `/v1/messages/batches/{message_batch_id}/results` + - `class BetaTextEditorCodeExecutionToolResultBlockParam` -Streams the results of a Message Batch as a `.jsonl` file. + - `type: :text_editor_code_execution_tool_result` -Each line in the file is a JSON object containing the result of a single request in the Message Batch. Results are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + - `content: BetaTextEditorCodeExecutionToolResultErrorParam | BetaTextEditorCodeExecutionViewResultBlockParam | BetaTextEditorCodeExecutionCreateResultBlockParam | BetaTextEditorCodeExecutionStrReplaceResultBlockParam` -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + - `class BetaTextEditorCodeExecutionToolResultErrorParam` -#### Parameters + - `type: :text_editor_code_execution_tool_result_error` -- `message_batch_id: String` (path parameter) + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - ID of the Message Batch. + - `:invalid_tool_input` -- `betas: Array[AnthropicBeta]` (header parameter) + - `:unavailable` - Optional header to specify the beta version(s) you want to use. + - `:too_many_requests` - - `String = String` + - `:execution_time_exceeded` - - `:"message-batches-2024-09-24"` + - `:file_not_found` - - `:"prompt-caching-2024-07-31"` + - `error_message: String` - - `:"computer-use-2024-10-22"` + - `class BetaTextEditorCodeExecutionViewResultBlockParam` - - `:"computer-use-2025-01-24"` + - `type: :text_editor_code_execution_view_result` - - `:"pdfs-2024-09-25"` + - `content: String` - - `:"token-counting-2024-11-01"` + - `file_type: :text | :image | :pdf` - - `:"token-efficient-tools-2025-02-19"` + - `:text` - - `:"output-128k-2025-02-19"` + - `:image` - - `:"files-api-2025-04-14"` + - `:pdf` - - `:"mcp-client-2025-04-04"` + - `num_lines: Integer` - - `:"mcp-client-2025-11-20"` + - `start_line: Integer` - - `:"dev-full-thinking-2025-05-14"` + - `total_lines: Integer` - - `:"interleaved-thinking-2025-05-14"` + - `class BetaTextEditorCodeExecutionCreateResultBlockParam` - - `:"code-execution-2025-05-22"` + - `type: :text_editor_code_execution_create_result` - - `:"extended-cache-ttl-2025-04-11"` + - `is_file_update: bool` - - `:"context-1m-2025-08-07"` + - `class BetaTextEditorCodeExecutionStrReplaceResultBlockParam` - - `:"context-management-2025-06-27"` + - `type: :text_editor_code_execution_str_replace_result` - - `:"model-context-window-exceeded-2025-08-26"` + - `lines: Array[String]` - - `:"skills-2025-10-02"` + - `new_lines: Integer` - - `:"fast-mode-2026-02-01"` + - `new_start: Integer` - - `:"output-300k-2026-03-24"` + - `old_lines: Integer` - - `:"user-profiles-2026-03-24"` + - `old_start: Integer` - - `:"user-profiles-2026-08-18"` + - `tool_use_id: String` - - `:"user-profiles-2026-09-04"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"advisor-tool-2026-03-01"` + - `cache_control: BetaCacheControlEphemeral` - - `:"managed-agents-2026-04-01"` + Create a cache control breakpoint at this content block. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaToolSearchToolResultBlockParam` - - `:"dreaming-2026-04-21"` + - `type: :tool_search_tool_result` - - `:"thinking-token-count-2026-05-13"` + - `content: BetaToolSearchToolResultErrorParam | BetaToolSearchToolSearchResultBlockParam` - - `:"server-side-fallback-2026-06-01"` + - `class BetaToolSearchToolResultErrorParam` - - `:"server-side-fallback-2026-07-01"` + - `type: :tool_search_tool_result_error` - - `:"fallback-credit-2026-06-01"` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` - - `:"fallback-credit-2026-07-01"` + - `:invalid_tool_input` - - `:"agent-memory-2026-07-22"` + - `:unavailable` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `:too_many_requests` - - `:"compact-2026-01-12"` + - `:execution_time_exceeded` - - `:"computer-use-2025-11-24"` + - `error_message: String` - - `:"mcp-tunnels-2026-06-22"` + - `class BetaToolSearchToolSearchResultBlockParam` - - `:"structured-outputs-2025-11-13"` + - `type: :tool_search_tool_search_result` - - `:"task-budgets-2026-03-13"` + - `tool_references: Array[BetaToolReferenceBlockParam]` - - `:"thinking-display-updates-2026-08-18"` + - `type: :tool_reference` - - `:"ce-user-management-2026-07-13"` + - `tool_name: String` - - `:"mid-conversation-output-config-2026-07-01"` + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ - - `:"thinking-binding-controls-2026-08-01"` + - `cache_control: BetaCacheControlEphemeral` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Create a cache control breakpoint at this content block. - - `:"compact-2026-09-04"` + - `tool_use_id: String` - - `:"inline-tools-2026-09-15"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"mcp-client-2026-09-15"` + - `cache_control: BetaCacheControlEphemeral` - - `:"ce-plugins-2026-09-01"` + Create a cache control breakpoint at this content block. - - `:"spend-limit-reads-2026-09-26"` + - `class BetaMCPToolUseBlockParam` - - `:"telemetry-destinations-2026-08-11"` + - `type: :mcp_tool_use` -- `workspace_id: String` (header parameter) + - `id: String` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + pattern: ^[a-zA-Z0-9_-]+$ - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `input: Hash[Symbol, untyped]` -#### Returns + - `name: String` -- `class BetaMessageBatchIndividualResponse` + - `server_name: String` - This is a single line in the response `.jsonl` file and does not represent the response as a whole. + The name of the MCP server - - `custom_id: String` + - `cache_control: BetaCacheControlEphemeral` - Developer-provided ID created for each request in a Message Batch. Useful for matching results to requests, as results may be given out of request order. + Create a cache control breakpoint at this content block. - Must be unique for each request within the Message Batch. + - `class BetaRequestMCPToolResultBlockParam` - - `result: BetaMessageBatchResult` + - `type: :mcp_tool_result` - Processing result for this request. + - `tool_use_id: String` - Contains a Message output if processing was successful, an error response if processing failed, or the reason why processing was not attempted, such as cancellation or expiration. + pattern: ^[a-zA-Z0-9_-]+$ - - `class BetaMessageBatchSucceededResult` + - `cache_control: BetaCacheControlEphemeral` - - `type: :succeeded` + Create a cache control breakpoint at this content block. - - `message: BetaMessage` + - `content: String | Array[BetaTextBlockParam]` - - `type: :message` + - `String = String` - Object type. + - `BetaMCPToolResultBlockParamContent = Array[BetaTextBlockParam]` - For Messages, this is always `"message"`. + - `type: :text` - - `id: String` + - `text: String` - Unique object identifier. + minLength: 1 - The format and length of IDs may change over time. + - `cache_control: BetaCacheControlEphemeral` - - `container: BetaContainer` + Create a cache control breakpoint at this content block. - Information about the container used in this request. + - `citations: Array[BetaTextCitationParam]` - This will be non-null if a container tool (e.g. code execution) was used. + - `is_error: bool` - - `id: String` + - `class BetaContainerUploadBlockParam` - Identifier for the container used in this request + A content block that represents a file to be uploaded to the container + Files uploaded via this block will be available in the container's input directory. - - `expires_at: Time` + - `type: :container_upload` - The time at which the container will expire. + - `file_id: String` - format: date-time + - `cache_control: BetaCacheControlEphemeral` - - `skills: Array[BetaContainerSkill]` + Create a cache control breakpoint at this content block. - Skills loaded in the container + - `class BetaCompactionBlockParam` - - `type: :anthropic | :custom` + A compaction block containing summary of previous context. - Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) + Users should round-trip these blocks from responses to subsequent requests + to maintain context across compaction boundaries. - - `:anthropic` + When content is None, the block represents a failed compaction. The server + treats these as no-ops. Empty string content is not allowed. - - `:custom` + - `type: :compaction` - - `skill_id: String` + - `cache_control: BetaCacheControlEphemeral` - Skill ID + Create a cache control breakpoint at this content block. - minLength: 1, maxLength: 64 + - `content: String` - - `version: String` + Summary of previously compacted content, or null if compaction failed - The resolved version: a skill version ID for custom skills. + - `encrypted_content: String` - minLength: 1, maxLength: 64 + Opaque metadata from prior compaction, to be round-tripped verbatim - - `content: Array[BetaContentBlock]` + - `signature: String` - Content generated by the model. + The block's signature as returned, to be sent back verbatim - This is an array of content blocks, each of which has a `type` that determines its shape. + - `tool_changes: Array[BetaRequestToolAdditionBlock | BetaRequestToolRemovalBlock]` - Example: + The tool changes of the compacted range, as the server returned them on this block: the `tool_addition` and `tool_removal` entries that take the request's `tools` to the tool set in effect at the end of the range. Send them back unchanged with the block. - ```json - [{"type": "text", "text": "Hi, I'm Claude."}] - ``` + - `class BetaRequestToolAdditionBlock` - If the request input `messages` ended with an `assistant` turn, then the response `content` will continue directly from that last turn. You can use this to constrain the model's output. + Mid-conversation directive to make a tool available. - For example, if the input `messages` were: + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. - ```json - [ - {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, - {"role": "assistant", "content": "The best answer is ("} - ] - ``` + - `type: :tool_addition` - Then the response `content` might be: + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference | BetaToolChangeToolDefinitionParam` - ```json - [{"type": "text", "text": "B)"}] - ``` + - `class BetaToolChangeToolReference` - - `class BetaTextBlock` + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. - - `type: :text` + - `type: :tool_reference` - - `citations: Array[BetaTextCitation]` + - `name: String` - Citations supporting the text block. + pattern: ^[a-zA-Z0-9_-]{1,128}$ - The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`. + - `class BetaToolChangeMCPToolReference` - - `class BetaCitationCharLocation` + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. - - `type: :char_location` + - `type: :mcp_tool_reference` - - `cited_text: String` + - `name: String` - - `document_index: Integer` + - `server_name: String` - minimum: 0 + - `class BetaToolChangeMCPToolsetReference` - - `document_title: String` + Reference to every tool in the named MCP server's toolset. - - `end_char_index: Integer` + - `type: :mcp_toolset_reference` - - `file_id: String` + - `server_name: String` - - `start_char_index: Integer` + - `class BetaToolChangeToolDefinitionParam` - minimum: 0 + A tool defined by value: `definition` is a `tools` entry (any kind + `tools` accepts, an MCP toolset included). An `mcp_toolset` given here + also requires the `mcp-client-2026-09-15` beta. - - `class BetaCitationPageLocation` + - `type: :tool_definition` - - `type: :page_location` + - `definition: BetaToolUnion` - - `cited_text: String` + - `class BetaTool` - - `document_index: Integer` + - `type: :custom` - minimum: 0 + - `input_schema: InputSchema` - - `document_title: String` + [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. - - `end_page_number: Integer` + This defines the shape of the `input` that your tool accepts and that the model will produce. - - `file_id: String` + - `type: :object` - - `start_page_number: Integer` + - `properties: Hash[Symbol, untyped]` - minimum: 1 + - `required: Array[String]` - - `class BetaCitationContentBlockLocation` + - `name: String` - - `type: :content_block_location` + Name of the tool. - - `cited_text: String` + This is how the tool will be called by the model and in `tool_use` blocks. - The full text of the cited block range, concatenated. + minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ - Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `document_index: Integer` + - `:direct` - minimum: 0 + - `:code_execution_20250825` - - `document_title: String` + - `:code_execution_20260120` - - `end_block_index: Integer` + - `:code_execution_20260521` - Exclusive 0-based end index of the cited block range in the source's `content` array. + - `cache_control: BetaCacheControlEphemeral` - Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + Create a cache control breakpoint at this content block. - - `file_id: String` + - `defer_loading: bool` - - `start_block_index: Integer` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - 0-based index of the first cited block in the source's `content` array. + - `description: String` - minimum: 0 + Description of what this tool does. - - `class BetaCitationsWebSearchResultLocation` + Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. - - `type: :web_search_result_location` + - `eager_input_streaming: bool` - - `cited_text: String` + Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. - - `encrypted_index: String` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `title: String` + - `strict: bool` - maxLength: 512 + When true, guarantees schema validation on tool names and inputs - - `url: String` + - `class BetaToolBash20241022` - - `class BetaCitationSearchResultLocation` + - `type: :bash_20241022` - - `type: :search_result_location` + - `name: :bash` - - `cited_text: String` + Name of the tool. - The full text of the cited block range, concatenated. + This is how the tool will be called by the model and in `tool_use` blocks. - Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `end_block_index: Integer` + - `:direct` - Exclusive 0-based end index of the cited block range in the source's `content` array. + - `:code_execution_20250825` - Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + - `:code_execution_20260120` - - `search_result_index: Integer` + - `:code_execution_20260521` - 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. + - `cache_control: BetaCacheControlEphemeral` - Counted separately from `document_index`; server-side web search results are not included in this count. + Create a cache control breakpoint at this content block. - minimum: 0 + - `defer_loading: bool` - - `source: String` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `start_block_index: Integer` + - `input_examples: Array[Hash[Symbol, untyped]]` - 0-based index of the first cited block in the source's `content` array. + - `strict: bool` - minimum: 0 + When true, guarantees schema validation on tool names and inputs - - `title: String` + - `class BetaToolBash20250124` - - `text: String` + - `type: :bash_20250124` - - `class BetaThinkingBlock` + - `name: :bash` - - `type: :thinking` + Name of the tool. - - `signature: String` + This is how the tool will be called by the model and in `tool_use` blocks. - A value used to verify that this thinking block was generated by Claude when it is passed back to the API. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - This is an opaque field and should not be interpreted or parsed. When passing thinking blocks back to the API (required when using tools with extended thinking), pass them back exactly as received, with this field intact. + - `:direct` - See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. + - `:code_execution_20250825` - - `thinking: String` + - `:code_execution_20260120` - The text of Claude's thinking process for this block. + - `:code_execution_20260521` - - `class BetaRedactedThinkingBlock` + - `cache_control: BetaCacheControlEphemeral` - - `type: :redacted_thinking` + Create a cache control breakpoint at this content block. - - `data: String` + - `defer_loading: bool` - The contents of this redacted thinking block, returned when portions of the model's thinking were safety-redacted. This field is opaque and encrypted, with no readable content. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Pass `redacted_thinking` blocks back to the API unchanged when continuing a multi-turn conversation. + - `input_examples: Array[Hash[Symbol, untyped]]` - See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby#redacted-thinking-blocks) for details. + - `strict: bool` - - `class BetaToolUseBlock` + When true, guarantees schema validation on tool names and inputs - - `type: :tool_use` + - `class BetaCodeExecutionTool20250522` - - `id: String` + - `type: :code_execution_20250522` - pattern: ^[a-zA-Z0-9_-]+$ + - `name: :code_execution` - - `input: Hash[Symbol, untyped]` + Name of the tool. - - `name: String` + This is how the tool will be called by the model and in `tool_use` blocks. - minLength: 1 + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `:direct` - - `class BetaDirectCaller` + - `:code_execution_20250825` - Tool invocation directly from the model. + - `:code_execution_20260120` - - `type: :direct` + - `:code_execution_20260521` - - `class BetaServerToolCaller` + - `cache_control: BetaCacheControlEphemeral` - Tool invocation generated by a server-side tool. + Create a cache control breakpoint at this content block. - - `type: :code_execution_20250825` + - `defer_loading: bool` - - `tool_id: String` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `strict: bool` - - `class BetaServerToolCaller20260120` + When true, guarantees schema validation on tool names and inputs - - `type: :code_execution_20260120` + - `class BetaCodeExecutionTool20250825` - - `tool_id: String` + - `type: :code_execution_20250825` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `name: :code_execution` - - `toolset_name: String` + Name of the tool. - For a toolset member tool_use, the toolset family. + This is how the tool will be called by the model and in `tool_use` blocks. - minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaServerToolUseBlock` + - `:direct` - - `type: :server_tool_use` + - `:code_execution_20250825` - - `id: String` + - `:code_execution_20260120` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `:code_execution_20260521` - - `input: Hash[Symbol, untyped]` + - `cache_control: BetaCacheControlEphemeral` - - `name: :advisor | :web_search | :web_fetch | 5 more` + Create a cache control breakpoint at this content block. - - `:advisor` + - `defer_loading: bool` - - `:web_search` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:web_fetch` + - `strict: bool` - - `:code_execution` + When true, guarantees schema validation on tool names and inputs - - `:bash_code_execution` + - `class BetaCodeExecutionTool20260120` - - `:text_editor_code_execution` + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - - `:tool_search_tool_regex` + - `type: :code_execution_20260120` - - `:tool_search_tool_bm25` + - `name: :code_execution` - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + Name of the tool. - - `class BetaDirectCaller` + This is how the tool will be called by the model and in `tool_use` blocks. - Tool invocation directly from the model. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaServerToolCaller` + - `:direct` - Tool invocation generated by a server-side tool. + - `:code_execution_20250825` - - `class BetaServerToolCaller20260120` + - `:code_execution_20260120` - - `class BetaWebSearchToolResultBlock` + - `:code_execution_20260521` - - `type: :web_search_tool_result` + - `cache_control: BetaCacheControlEphemeral` - - `content: BetaWebSearchToolResultBlockContent` + Create a cache control breakpoint at this content block. - - `class BetaWebSearchToolResultError` + - `defer_loading: bool` - - `type: :web_search_tool_result_error` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `error_code: BetaWebSearchToolResultErrorCode` + - `strict: bool` - - `:invalid_tool_input` + When true, guarantees schema validation on tool names and inputs - - `:unavailable` + - `class BetaCodeExecutionTool20260521` - - `:max_uses_exceeded` + Code execution tool with REPL state persistence. - - `:too_many_requests` + - `type: :code_execution_20260521` - - `:query_too_long` + - `name: :code_execution` - - `:request_too_large` + Name of the tool. - - `UnionMember1 = Array[BetaWebSearchResultBlock]` + This is how the tool will be called by the model and in `tool_use` blocks. - - `type: :web_search_result` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `encrypted_content: String` + - `:direct` - - `page_age: String` + - `:code_execution_20250825` - - `title: String` + - `:code_execution_20260120` - - `url: String` + - `:code_execution_20260521` - - `tool_use_id: String` + - `cache_control: BetaCacheControlEphemeral` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + Create a cache control breakpoint at this content block. - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `defer_loading: bool` - - `class BetaDirectCaller` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Tool invocation directly from the model. + - `strict: bool` - - `class BetaServerToolCaller` + When true, guarantees schema validation on tool names and inputs - Tool invocation generated by a server-side tool. + - `class BetaBrowserToolset20260801` - - `class BetaServerToolCaller20260120` + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. - - `class BetaWebFetchToolResultBlock` + - `type: :browser_toolset_20260801` - - `type: :web_fetch_tool_result` + - `cache_control: BetaCacheControlEphemeral` - - `content: BetaWebFetchToolResultErrorBlock | BetaWebFetchBlock` + Create a cache control breakpoint at this content block. - - `class BetaWebFetchToolResultErrorBlock` + - `configs: BetaBrowserToolsetConfigs` - - `type: :web_fetch_tool_result_error` + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - - `error_code: BetaWebFetchToolResultErrorCode` + - `type: BetaBrowserTypeConfig` - - `:invalid_tool_input` + `type`'s config overrides. - - `:url_too_long` + - `defer_loading: bool` - - `:url_not_allowed` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:url_not_in_prior_context` + - `enabled: bool` - - `:url_not_accessible` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:unsupported_content_type` + - `close_tab: BetaBrowserCloseTabConfig` - - `:too_many_requests` + `close_tab`'s config overrides. - - `:max_uses_exceeded` + - `defer_loading: bool` - - `:unavailable` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:content_too_large` + - `enabled: bool` - - `class BetaWebFetchBlock` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :web_fetch_result` + - `double_click: BetaBrowserDoubleClickConfig` - - `content: BetaDocumentBlock` + `double_click`'s config overrides. - - `type: :document` + - `defer_loading: bool` - - `citations: BetaCitationConfig` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Citation configuration for the document + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `source: BetaBase64PDFSource | BetaPlainTextSource` + - `file_upload: BetaBrowserFileUploadConfig` - - `class BetaBase64PDFSource` + `file_upload`'s config overrides. - - `type: :base64` + - `defer_loading: bool` - - `data: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - format: byte + - `enabled: bool` - - `media_type: :"application/pdf"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaPlainTextSource` + - `find: BetaBrowserFindConfig` - - `type: :text` + `find`'s config overrides. - - `data: String` + - `defer_loading: bool` - - `media_type: :"text/plain"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `title: String` + - `enabled: bool` - The title of the document + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `retrieved_at: String` + - `form_input: BetaBrowserFormInputConfig` - ISO 8601 timestamp when the content was retrieved + `form_input`'s config overrides. - - `url: String` + - `defer_loading: bool` - Fetched content URL + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `tool_use_id: String` + - `enabled: bool` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + - `get_page_text: BetaBrowserGetPageTextConfig` - - `class BetaDirectCaller` + `get_page_text`'s config overrides. - Tool invocation directly from the model. + - `defer_loading: bool` - - `class BetaServerToolCaller` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Tool invocation generated by a server-side tool. + - `enabled: bool` - - `class BetaServerToolCaller20260120` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaAdvisorToolResultBlock` + - `hold_key: BetaBrowserHoldKeyConfig` - - `type: :advisor_tool_result` + `hold_key`'s config overrides. - - `content: BetaAdvisorToolResultError | BetaAdvisorResultBlock | BetaAdvisorRedactedResultBlock` + - `defer_loading: bool` - - `class BetaAdvisorToolResultError` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :advisor_tool_result_error` + - `enabled: bool` - - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:max_uses_exceeded` + - `hover: BetaBrowserHoverConfig` - - `:prompt_too_long` + `hover`'s config overrides. - - `:too_many_requests` + - `defer_loading: bool` - - `:overloaded` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:unavailable` + - `enabled: bool` - - `:execution_time_exceeded` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:model_not_found` + - `javascript_exec: BetaBrowserJavascriptExecConfig` - - `class BetaAdvisorResultBlock` + `javascript_exec`'s config overrides. - - `type: :advisor_result` + - `defer_loading: bool` - - `stop_reason: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - The advisor sub-inference's stop reason (same values as the top-level message `stop_reason`). `max_tokens` indicates the advisor's output was truncated at the tool's `max_tokens` value or the advisor model's policy cap. + - `enabled: bool` - - `text: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaAdvisorRedactedResultBlock` + - `key: BetaBrowserKeyConfig` - - `type: :advisor_redacted_result` - - - `encrypted_content: String` - - Opaque blob containing the advisor's output. Round-trip verbatim; do not inspect or modify. - - - `stop_reason: String` - - The advisor sub-inference's stop reason (same values as the top-level message `stop_reason`). - - - `tool_use_id: String` - - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - - `class BetaCodeExecutionToolResultBlock` - - - `type: :code_execution_tool_result` - - - `content: BetaCodeExecutionToolResultBlockContent` - - - `class BetaCodeExecutionToolResultError` - - - `type: :code_execution_tool_result_error` - - - `error_code: BetaCodeExecutionToolResultErrorCode` - - - `:invalid_tool_input` - - - `:unavailable` - - - `:too_many_requests` - - - `:execution_time_exceeded` - - - `class BetaCodeExecutionResultBlock` - - - `type: :code_execution_result` - - - `content: Array[BetaCodeExecutionOutputBlock]` - - - `type: :code_execution_output` - - - `file_id: String` - - - `return_code: Integer` - - - `stderr: String` - - - `stdout: String` - - - `class BetaEncryptedCodeExecutionResultBlock` - - Code execution result with encrypted stdout for PFC + web_search results. - - - `type: :encrypted_code_execution_result` - - - `content: Array[BetaCodeExecutionOutputBlock]` - - - `type: :code_execution_output` - - - `file_id: String` - - - `encrypted_stdout: String` - - - `return_code: Integer` - - - `stderr: String` - - - `tool_use_id: String` - - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - - `class BetaBashCodeExecutionToolResultBlock` - - - `type: :bash_code_execution_tool_result` - - - `content: BetaBashCodeExecutionToolResultError | BetaBashCodeExecutionResultBlock` - - - `class BetaBashCodeExecutionToolResultError` - - - `type: :bash_code_execution_tool_result_error` - - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - - - `:invalid_tool_input` - - - `:unavailable` - - - `:too_many_requests` - - - `:execution_time_exceeded` - - - `:output_file_too_large` + `key`'s config overrides. - - `class BetaBashCodeExecutionResultBlock` + - `defer_loading: bool` - - `type: :bash_code_execution_result` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `content: Array[BetaBashCodeExecutionOutputBlock]` + - `enabled: bool` - - `type: :bash_code_execution_output` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `file_id: String` + - `left_click: BetaBrowserLeftClickConfig` - - `return_code: Integer` + `left_click`'s config overrides. - - `stderr: String` + - `defer_loading: bool` - - `stdout: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `tool_use_id: String` + - `enabled: bool` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaTextEditorCodeExecutionToolResultBlock` + - `left_click_drag: BetaBrowserLeftClickDragConfig` - - `type: :text_editor_code_execution_tool_result` + `left_click_drag`'s config overrides. - - `content: BetaTextEditorCodeExecutionToolResultError | BetaTextEditorCodeExecutionViewResultBlock | BetaTextEditorCodeExecutionCreateResultBlock | BetaTextEditorCodeExecutionStrReplaceResultBlock` + - `defer_loading: bool` - - `class BetaTextEditorCodeExecutionToolResultError` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :text_editor_code_execution_tool_result_error` + - `enabled: bool` - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:invalid_tool_input` + - `left_mouse_down: BetaBrowserLeftMouseDownConfig` - - `:unavailable` + `left_mouse_down`'s config overrides. - - `:too_many_requests` + - `defer_loading: bool` - - `:execution_time_exceeded` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:file_not_found` + - `enabled: bool` - - `error_message: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaTextEditorCodeExecutionViewResultBlock` + - `left_mouse_up: BetaBrowserLeftMouseUpConfig` - - `type: :text_editor_code_execution_view_result` + `left_mouse_up`'s config overrides. - - `content: String` + - `defer_loading: bool` - - `file_type: :text | :image | :pdf` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:text` + - `enabled: bool` - - `:image` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:pdf` + - `list_tabs: BetaBrowserListTabsConfig` - - `num_lines: Integer` + `list_tabs`'s config overrides. - - `start_line: Integer` + - `defer_loading: bool` - - `total_lines: Integer` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaTextEditorCodeExecutionCreateResultBlock` + - `enabled: bool` - - `type: :text_editor_code_execution_create_result` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `is_file_update: bool` + - `middle_click: BetaBrowserMiddleClickConfig` - - `class BetaTextEditorCodeExecutionStrReplaceResultBlock` + `middle_click`'s config overrides. - - `type: :text_editor_code_execution_str_replace_result` + - `defer_loading: bool` - - `lines: Array[String]` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `new_lines: Integer` + - `enabled: bool` - - `new_start: Integer` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `old_lines: Integer` + - `mouse_move: BetaBrowserMouseMoveConfig` - - `old_start: Integer` + `mouse_move`'s config overrides. - - `tool_use_id: String` + - `defer_loading: bool` - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaToolSearchToolResultBlock` + - `enabled: bool` - - `type: :tool_search_tool_result` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `content: BetaToolSearchToolResultError | BetaToolSearchToolSearchResultBlock` + - `navigate: BetaBrowserNavigateConfig` - - `class BetaToolSearchToolResultError` + `navigate`'s config overrides. - - `type: :tool_search_tool_result_error` + - `defer_loading: bool` - - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:invalid_tool_input` + - `enabled: bool` - - `:unavailable` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:too_many_requests` + - `new_tab: BetaBrowserNewTabConfig` - - `:execution_time_exceeded` + `new_tab`'s config overrides. - - `error_message: String` + - `defer_loading: bool` - - `class BetaToolSearchToolSearchResultBlock` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :tool_search_tool_search_result` + - `enabled: bool` - - `tool_references: Array[BetaToolReferenceBlock]` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :tool_reference` + - `read_console: BetaBrowserReadConsoleConfig` - - `tool_name: String` + `read_console`'s config overrides. - minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + - `defer_loading: bool` - - `tool_use_id: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + - `enabled: bool` - - `class BetaMCPToolUseBlock` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :mcp_tool_use` + - `read_network: BetaBrowserReadNetworkConfig` - - `id: String` + `read_network`'s config overrides. - pattern: ^[a-zA-Z0-9_-]+$ + - `defer_loading: bool` - - `input: Hash[Symbol, untyped]` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `name: String` + - `enabled: bool` - The name of the MCP tool + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `server_name: String` + - `read_page: BetaBrowserReadPageConfig` - The name of the MCP server + `read_page`'s config overrides. - - `class BetaMCPToolResultBlock` + - `defer_loading: bool` - - `type: :mcp_tool_result` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `content: String | Array[BetaTextBlock]` + - `enabled: bool` - - `String = String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `BetaMCPToolResultBlockContent = Array[BetaTextBlock]` + - `right_click: BetaBrowserRightClickConfig` - - `type: :text` + `right_click`'s config overrides. - - `citations: Array[BetaTextCitation]` + - `defer_loading: bool` - Citations supporting the text block. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`. + - `enabled: bool` - - `text: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `is_error: bool` + - `screenshot: BetaBrowserScreenshotConfig` - - `tool_use_id: String` + `screenshot`'s config overrides. - pattern: ^[a-zA-Z0-9_-]+$ + - `defer_loading: bool` - - `class BetaContainerUploadBlock` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Response model for a file uploaded to the container. + - `enabled: bool` - - `type: :container_upload` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `file_id: String` + - `scroll: BetaBrowserScrollConfig` - - `class BetaCompactionBlock` + `scroll`'s config overrides. - A compaction block returned when autocompact is triggered. + - `defer_loading: bool` - When content is None, it indicates the compaction failed to produce a valid - summary (e.g., malformed output from the model). Clients may round-trip - compaction blocks with null content; the server treats them as no-ops. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :compaction` + - `enabled: bool` - - `content: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Summary of compacted content, or null if compaction failed + - `scroll_to: BetaBrowserScrollToConfig` - - `encrypted_content: String` + `scroll_to`'s config overrides. - Opaque metadata from prior compaction, to be round-tripped verbatim + - `defer_loading: bool` - - `signature: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Signature over the summary, to be sent back with the block verbatim + - `enabled: bool` - - `tool_changes: Array[BetaResponseToolAdditionBlock | BetaResponseToolRemovalBlock]` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - The tool changes of the compacted range: the `tool_addition` and `tool_removal` blocks that take the request's `tools` to the tool set in effect at the end of the range, or `[]` when the range changed no tool. Absent when the server did not compute them. Send the block back unchanged. + - `switch_tab: BetaBrowserSwitchTabConfig` - - `class BetaResponseToolAdditionBlock` + `switch_tab`'s config overrides. - An entry of a `compaction` block's `tool_changes`: a tool the - compacted range made available, as a reference to a `tools` entry or - MCP toolset, or as the tool definition in effect at the end of the - range, by value. Send it back unchanged. + - `defer_loading: bool` - - `type: :tool_addition` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `tool: BetaResponseToolChangeToolReference | BetaResponseToolChangeMCPToolReference | BetaResponseToolChangeMCPToolsetReference | BetaToolChangeToolDefinition` + - `enabled: bool` - The tool made available: a reference to a `tools` entry or MCP toolset, or a `tool_definition` carrying the definition by value. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaResponseToolChangeToolReference` + - `triple_click: BetaBrowserTripleClickConfig` - Reference to a single tool, by the name the model uses to call it, as - a `compaction` block's `tool_changes` entry reports it: a tool - declared in `tools` or defined by an earlier `tool_addition` block. - Send it back unchanged with the block. + `triple_click`'s config overrides. - - `type: :tool_reference` + - `defer_loading: bool` - - `name: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaResponseToolChangeMCPToolReference` + - `enabled: bool` - Reference to a single MCP tool, by its server and its name on that - server, as a `compaction` block's `tool_changes` entry reports it. - Send it back unchanged with the block. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :mcp_tool_reference` + - `wait: BetaBrowserWaitConfig` - - `name: String` + `wait`'s config overrides. - - `server_name: String` + - `defer_loading: bool` - - `class BetaResponseToolChangeMCPToolsetReference` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Reference to every tool in the named MCP server's toolset, as a - `compaction` block's `tool_changes` entry reports it. Send it back - unchanged with the block. + - `enabled: bool` - - `type: :mcp_toolset_reference` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `server_name: String` + - `zoom: BetaBrowserZoomConfig` - - `class BetaToolChangeToolDefinition` + `zoom`'s config overrides. - A tool defined by value, as a `compaction` block's `tool_changes` entry - reports it: `definition` is the tool's definition as it was sent, in the - form of a `tools` entry, without `cache_control`. Send it back unchanged - with the block. + - `defer_loading: bool` - - `type: :tool_definition` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `definition: BetaResponseToolUnion` + - `enabled: bool` - - `class BetaResponseTool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - A custom tool definition, as sent. + - `class BetaToolComputerUse20241022` - - `type: :custom` + - `type: :computer_20241022` - - `input_schema: BetaResponseToolInputSchema` + - `display_height_px: Integer` - [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. + The height of the display in pixels. - This defines the shape of the `input` that your tool accepts and that the model will produce. + minimum: 1 - - `type: :object` + - `display_width_px: Integer` - - `properties: Hash[Symbol, untyped]` + The width of the display in pixels. - - `required: Array[String]` + minimum: 1 - - `name: String` + - `name: :computer` Name of the tool. This is how the tool will be called by the model and in `tool_use` blocks. - minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - `:direct` @@ -20080,19 +19921,19 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:code_execution_20260521` - - `defer_loading: bool` + - `cache_control: BetaCacheControlEphemeral` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Create a cache control breakpoint at this content block. - - `description: String` + - `defer_loading: bool` - Description of what this tool does. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. + - `display_number: Integer` - - `eager_input_streaming: bool` + The X11 display number (e.g. 0, 1) for the display. - Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. + minimum: 0 - `input_examples: Array[Hash[Symbol, untyped]]` @@ -20100,11 +19941,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl When true, guarantees schema validation on tool names and inputs - - `class BetaToolBash20241022` + - `class BetaMemoryTool20250818` - - `type: :bash_20241022` + - `type: :memory_20250818` - - `name: :bash` + - `name: :memory` Name of the tool. @@ -20124,38 +19965,33 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Create a cache control breakpoint at this content block. - - `type: :ephemeral` - - - `ttl: :"5m" | :"1h"` - - The time-to-live for the cache control breakpoint. + - `defer_loading: bool` - This may be one the following values: + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `5m`: 5 minutes - - `1h`: 1 hour + - `input_examples: Array[Hash[Symbol, untyped]]` - Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. + - `strict: bool` - - `:"5m"` + When true, guarantees schema validation on tool names and inputs - - `:"1h"` + - `class BetaToolComputerUse20250124` - - `defer_loading: bool` + - `type: :computer_20250124` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `display_height_px: Integer` - - `input_examples: Array[Hash[Symbol, untyped]]` + The height of the display in pixels. - - `strict: bool` + minimum: 1 - When true, guarantees schema validation on tool names and inputs + - `display_width_px: Integer` - - `class BetaToolBash20250124` + The width of the display in pixels. - - `type: :bash_20250124` + minimum: 1 - - `name: :bash` + - `name: :computer` Name of the tool. @@ -20179,17 +20015,23 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `display_number: Integer` + + The X11 display number (e.g. 0, 1) for the display. + + minimum: 0 + - `input_examples: Array[Hash[Symbol, untyped]]` - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaCodeExecutionTool20250522` + - `class BetaToolTextEditor20241022` - - `type: :code_execution_20250522` + - `type: :text_editor_20241022` - - `name: :code_execution` + - `name: :str_replace_editor` Name of the tool. @@ -20213,15 +20055,29 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `input_examples: Array[Hash[Symbol, untyped]]` + - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaCodeExecutionTool20250825` + - `class BetaToolComputerUse20251124` - - `type: :code_execution_20250825` + - `type: :computer_20251124` - - `name: :code_execution` + - `display_height_px: Integer` + + The height of the display in pixels. + + minimum: 1 + + - `display_width_px: Integer` + + The width of the display in pixels. + + minimum: 1 + + - `name: :computer` Name of the tool. @@ -20245,98 +20101,58 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `strict: bool` - - When true, guarantees schema validation on tool names and inputs - - - `class BetaCodeExecutionTool20260120` + - `display_number: Integer` - Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). + The X11 display number (e.g. 0, 1) for the display. - - `type: :code_execution_20260120` + minimum: 0 - - `name: :code_execution` + - `enable_zoom: bool` - Name of the tool. + Whether to enable an action to take a zoomed-in screenshot of the screen. - This is how the tool will be called by the model and in `tool_use` blocks. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `strict: bool` - - `:direct` + When true, guarantees schema validation on tool names and inputs - - `:code_execution_20250825` + - `class BetaComputerToolset20260801` - - `:code_execution_20260120` + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. - - `:code_execution_20260521` + - `type: :computer_toolset_20260801` - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. - - `defer_loading: bool` + - `configs: BetaComputerToolsetConfigs` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - - `strict: bool` + - `type: BetaComputerTypeConfig` - When true, guarantees schema validation on tool names and inputs + `type`'s config overrides. - - `class BetaCodeExecutionTool20260521` + - `defer_loading: bool` - Code execution tool with REPL state persistence. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :code_execution_20260521` + - `enabled: bool` - - `name: :code_execution` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Name of the tool. + - `cursor_position: BetaComputerCursorPositionConfig` - This is how the tool will be called by the model and in `tool_use` blocks. - - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - - `:direct` - - - `:code_execution_20250825` - - - `:code_execution_20260120` - - - `:code_execution_20260521` - - - `cache_control: BetaCacheControlEphemeral` - - Create a cache control breakpoint at this content block. - - - `defer_loading: bool` - - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - - `strict: bool` - - When true, guarantees schema validation on tool names and inputs - - - `class BetaBrowserToolset20260801` - - The browser toolset: a single `tools[]` entry (carrying no - `name`) that declares the browser tool family. The model is served - the family's tool with any members disabled via `configs` removed - from its schema. - - - `type: :browser_toolset_20260801` - - - `cache_control: BetaCacheControlEphemeral` - - Create a cache control breakpoint at this content block. - - - `configs: BetaBrowserToolsetConfigs` - - Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - - - `type: BetaBrowserTypeConfig` - - `type`'s config overrides. + `cursor_position`'s config overrides. - `defer_loading: bool` @@ -20346,9 +20162,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `close_tab: BetaBrowserCloseTabConfig` + - `double_click: BetaComputerDoubleClickConfig` - `close_tab`'s config overrides. + `double_click`'s config overrides. - `defer_loading: bool` @@ -20358,9 +20174,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `double_click: BetaBrowserDoubleClickConfig` + - `hold_key: BetaComputerHoldKeyConfig` - `double_click`'s config overrides. + `hold_key`'s config overrides. - `defer_loading: bool` @@ -20370,9 +20186,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `file_upload: BetaBrowserFileUploadConfig` + - `key: BetaComputerKeyConfig` - `file_upload`'s config overrides. + `key`'s config overrides. - `defer_loading: bool` @@ -20382,9 +20198,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `find: BetaBrowserFindConfig` + - `left_click: BetaComputerLeftClickConfig` - `find`'s config overrides. + `left_click`'s config overrides. - `defer_loading: bool` @@ -20394,9 +20210,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `form_input: BetaBrowserFormInputConfig` + - `left_click_drag: BetaComputerLeftClickDragConfig` - `form_input`'s config overrides. + `left_click_drag`'s config overrides. - `defer_loading: bool` @@ -20406,9 +20222,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `get_page_text: BetaBrowserGetPageTextConfig` + - `left_mouse_down: BetaComputerLeftMouseDownConfig` - `get_page_text`'s config overrides. + `left_mouse_down`'s config overrides. - `defer_loading: bool` @@ -20418,9 +20234,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `hold_key: BetaBrowserHoldKeyConfig` + - `left_mouse_up: BetaComputerLeftMouseUpConfig` - `hold_key`'s config overrides. + `left_mouse_up`'s config overrides. - `defer_loading: bool` @@ -20430,9 +20246,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `hover: BetaBrowserHoverConfig` + - `middle_click: BetaComputerMiddleClickConfig` - `hover`'s config overrides. + `middle_click`'s config overrides. - `defer_loading: bool` @@ -20442,9 +20258,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `javascript_exec: BetaBrowserJavascriptExecConfig` + - `mouse_move: BetaComputerMouseMoveConfig` - `javascript_exec`'s config overrides. + `mouse_move`'s config overrides. - `defer_loading: bool` @@ -20454,9 +20270,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `key: BetaBrowserKeyConfig` + - `right_click: BetaComputerRightClickConfig` - `key`'s config overrides. + `right_click`'s config overrides. - `defer_loading: bool` @@ -20466,9 +20282,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `left_click: BetaBrowserLeftClickConfig` + - `screenshot: BetaComputerScreenshotConfig` - `left_click`'s config overrides. + `screenshot`'s config overrides. - `defer_loading: bool` @@ -20478,9 +20294,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `left_click_drag: BetaBrowserLeftClickDragConfig` + - `scroll: BetaComputerScrollConfig` - `left_click_drag`'s config overrides. + `scroll`'s config overrides. - `defer_loading: bool` @@ -20490,9 +20306,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `left_mouse_down: BetaBrowserLeftMouseDownConfig` + - `triple_click: BetaComputerTripleClickConfig` - `left_mouse_down`'s config overrides. + `triple_click`'s config overrides. - `defer_loading: bool` @@ -20502,9 +20318,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `left_mouse_up: BetaBrowserLeftMouseUpConfig` + - `wait: BetaComputerWaitConfig` - `left_mouse_up`'s config overrides. + `wait`'s config overrides. - `defer_loading: bool` @@ -20514,9 +20330,9 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `list_tabs: BetaBrowserListTabsConfig` + - `zoom: BetaComputerZoomConfig` - `list_tabs`'s config overrides. + `zoom`'s config overrides. - `defer_loading: bool` @@ -20526,203 +20342,195 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `middle_click: BetaBrowserMiddleClickConfig` - - `middle_click`'s config overrides. - - - `defer_loading: bool` - - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - - `enabled: bool` + - `class BetaToolTextEditor20250124` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `type: :text_editor_20250124` - - `mouse_move: BetaBrowserMouseMoveConfig` + - `name: :str_replace_editor` - `mouse_move`'s config overrides. + Name of the tool. - - `defer_loading: bool` + This is how the tool will be called by the model and in `tool_use` blocks. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `enabled: bool` + - `:direct` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20250825` - - `navigate: BetaBrowserNavigateConfig` + - `:code_execution_20260120` - `navigate`'s config overrides. + - `:code_execution_20260521` - - `defer_loading: bool` + - `cache_control: BetaCacheControlEphemeral` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + Create a cache control breakpoint at this content block. - - `enabled: bool` + - `defer_loading: bool` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `new_tab: BetaBrowserNewTabConfig` + - `input_examples: Array[Hash[Symbol, untyped]]` - `new_tab`'s config overrides. + - `strict: bool` - - `defer_loading: bool` + When true, guarantees schema validation on tool names and inputs - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `class BetaToolTextEditor20250429` - - `enabled: bool` + - `type: :text_editor_20250429` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `name: :str_replace_based_edit_tool` - - `read_console: BetaBrowserReadConsoleConfig` + Name of the tool. - `read_console`'s config overrides. + This is how the tool will be called by the model and in `tool_use` blocks. - - `defer_loading: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:direct` - - `enabled: bool` + - `:code_execution_20250825` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20260120` - - `read_network: BetaBrowserReadNetworkConfig` + - `:code_execution_20260521` - `read_network`'s config overrides. + - `cache_control: BetaCacheControlEphemeral` - - `defer_loading: bool` + Create a cache control breakpoint at this content block. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `defer_loading: bool` - - `enabled: bool` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `read_page: BetaBrowserReadPageConfig` + - `strict: bool` - `read_page`'s config overrides. + When true, guarantees schema validation on tool names and inputs - - `defer_loading: bool` + - `class BetaToolTextEditor20250728` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `type: :text_editor_20250728` - - `enabled: bool` + - `name: :str_replace_based_edit_tool` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Name of the tool. - - `right_click: BetaBrowserRightClickConfig` + This is how the tool will be called by the model and in `tool_use` blocks. - `right_click`'s config overrides. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `defer_loading: bool` + - `:direct` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:code_execution_20250825` - - `enabled: bool` + - `:code_execution_20260120` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20260521` - - `screenshot: BetaBrowserScreenshotConfig` + - `cache_control: BetaCacheControlEphemeral` - `screenshot`'s config overrides. + Create a cache control breakpoint at this content block. - - `defer_loading: bool` + - `defer_loading: bool` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `enabled: bool` + - `input_examples: Array[Hash[Symbol, untyped]]` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `max_characters: Integer` - - `scroll: BetaBrowserScrollConfig` + Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. - `scroll`'s config overrides. + minimum: 1 - - `defer_loading: bool` + - `strict: bool` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + When true, guarantees schema validation on tool names and inputs - - `enabled: bool` + - `class BetaWebSearchTool20250305` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `type: :web_search_20250305` - - `scroll_to: BetaBrowserScrollToConfig` + - `name: :web_search` - `scroll_to`'s config overrides. + Name of the tool. - - `defer_loading: bool` + This is how the tool will be called by the model and in `tool_use` blocks. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `enabled: bool` + - `:direct` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20250825` - - `switch_tab: BetaBrowserSwitchTabConfig` + - `:code_execution_20260120` - `switch_tab`'s config overrides. + - `:code_execution_20260521` - - `defer_loading: bool` + - `allowed_domains: Array[String]` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - - `enabled: bool` + - `blocked_domains: Array[String]` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `triple_click: BetaBrowserTripleClickConfig` + - `cache_control: BetaCacheControlEphemeral` - `triple_click`'s config overrides. + Create a cache control breakpoint at this content block. - - `defer_loading: bool` + - `defer_loading: bool` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `enabled: bool` + - `max_uses: Integer` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Maximum number of times the tool can be used in the API request. - - `wait: BetaBrowserWaitConfig` + minimum: 1 - `wait`'s config overrides. + - `strict: bool` - - `defer_loading: bool` + When true, guarantees schema validation on tool names and inputs - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `user_location: BetaUserLocation` - - `enabled: bool` + Parameters for the user's location. Used to provide more relevant search results. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `type: :approximate` - - `zoom: BetaBrowserZoomConfig` + - `city: String` - `zoom`'s config overrides. + The city of the user. - - `defer_loading: bool` + minLength: 1, maxLength: 255 - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `country: String` - - `enabled: bool` + The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + minLength: 2, maxLength: 2 - - `class BetaToolComputerUse20241022` + - `region: String` - - `type: :computer_20241022` + The region of the user. - - `display_height_px: Integer` + minLength: 1, maxLength: 255 - The height of the display in pixels. + - `timezone: String` - minimum: 1 + The [IANA timezone](https://nodatime.org/TimeZones) of the user. - - `display_width_px: Integer` + minLength: 1, maxLength: 255 - The width of the display in pixels. + - `class BetaWebFetchTool20250910` - minimum: 1 + - `type: :web_fetch_20250910` - - `name: :computer` + - `name: :web_fetch` Name of the tool. @@ -20738,77 +20546,133 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:code_execution_20260521` + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + - `defer_loading: bool` If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `display_number: Integer` + - `max_content_tokens: Integer` - The X11 display number (e.g. 0, 1) for the display. + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - minimum: 0 + minimum: 1 - - `input_examples: Array[Hash[Symbol, untyped]]` + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaMemoryTool20250818` + - `url_sources: BetaWebFetchURLSources` - - `type: :memory_20250818` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `name: :memory` + - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` - Name of the tool. + Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaWebFetchURLSourceAll` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - - `:direct` + - `type: :all` - - `:code_execution_20250825` + - `class BetaWebFetchURLSourceNone` - - `:code_execution_20260120` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - - `:code_execution_20260521` + - `type: :none` - - `cache_control: BetaCacheControlEphemeral` + - `class BetaWebFetchURLSourceOnly` - Create a cache control breakpoint at this content block. + The tool filter variant under which only the named tools' results + contribute. - - `defer_loading: bool` + - `type: :only` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `tools: Array[BetaWebFetchURLSourceToolReference]` - - `input_examples: Array[Hash[Symbol, untyped]]` + - `type: :tool_reference` - - `strict: bool` + - `name: String` - When true, guarantees schema validation on tool names and inputs + - `class BetaWebFetchURLSourceExcept` - - `class BetaToolComputerUse20250124` + The tool filter variant under which every result but the named + tools' contributes. - - `type: :computer_20250124` + - `type: :except` - - `display_height_px: Integer` + - `tools: Array[BetaWebFetchURLSourceToolReference]` - The height of the display in pixels. + - `type: :tool_reference` - minimum: 1 + - `name: String` - - `display_width_px: Integer` + - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` - The width of the display in pixels. + Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. - minimum: 1 + - `class BetaWebFetchURLSourceAll` - - `name: :computer` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class BetaWebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class BetaWebFetchURLSourceOnly` + + The tool filter variant under which only the named tools' results + contribute. + + - `class BetaWebFetchURLSourceExcept` + + The tool filter variant under which every result but the named + tools' contributes. + + - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` + + Whether URLs in user messages are fetchable: "all" or "none". + + - `class BetaWebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class BetaWebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class BetaWebSearchTool20260209` + + - `type: :web_search_20260209` + + - `name: :web_search` Name of the tool. @@ -20824,6 +20688,14 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:code_execution_20260521` + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. @@ -20832,23 +20704,25 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `display_number: Integer` - - The X11 display number (e.g. 0, 1) for the display. + - `max_uses: Integer` - minimum: 0 + Maximum number of times the tool can be used in the API request. - - `input_examples: Array[Hash[Symbol, untyped]]` + minimum: 1 - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaToolTextEditor20241022` + - `user_location: BetaUserLocation` - - `type: :text_editor_20241022` + Parameters for the user's location. Used to provide more relevant search results. - - `name: :str_replace_editor` + - `class BetaWebFetchTool20260209` + + - `type: :web_fetch_20260209` + + - `name: :web_fetch` Name of the tool. @@ -20864,37 +20738,53 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:code_execution_20260521` + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + - `defer_loading: bool` If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `input_examples: Array[Hash[Symbol, untyped]]` + - `max_content_tokens: Integer` - - `strict: bool` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - When true, guarantees schema validation on tool names and inputs + minimum: 1 - - `class BetaToolComputerUse20251124` + - `max_uses: Integer` - - `type: :computer_20251124` + Maximum number of times the tool can be used in the API request. - - `display_height_px: Integer` + minimum: 1 - The height of the display in pixels. + - `strict: bool` - minimum: 1 + When true, guarantees schema validation on tool names and inputs - - `display_width_px: Integer` + - `url_sources: BetaWebFetchURLSources` - The width of the display in pixels. + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - minimum: 1 + - `class BetaWebFetchTool20260309` - - `name: :computer` + Web fetch tool with use_cache parameter for bypassing cached content. + + - `type: :web_fetch_20260309` + + - `name: :web_fetch` Name of the tool. @@ -20910,260 +20800,275 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:code_execution_20260521` + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + - `cache_control: BetaCacheControlEphemeral` Create a cache control breakpoint at this content block. + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + - `defer_loading: bool` If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `display_number: Integer` + - `max_content_tokens: Integer` - The X11 display number (e.g. 0, 1) for the display. + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - minimum: 0 + minimum: 1 - - `enable_zoom: bool` + - `max_uses: Integer` - Whether to enable an action to take a zoomed-in screenshot of the screen. + Maximum number of times the tool can be used in the API request. - - `input_examples: Array[Hash[Symbol, untyped]]` + minimum: 1 - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaComputerToolset20260801` + - `url_sources: BetaWebFetchURLSources` - The computer toolset: a single `tools[]` entry (carrying no - `name`) that declares the computer tool family. The model is - served the family's tool with any members disabled via `configs` - removed from its schema. Every member is enabled by default, zoom - included. The single-tool options `display_number` and - `enable_zoom` are not fields of a toolset entry — it carries only - `type`, `configs`, and `cache_control`; zoom is controlled - via `configs.zoom.enabled`. + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `type: :computer_toolset_20260801` + - `use_cache: bool` - - `cache_control: BetaCacheControlEphemeral` + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - Create a cache control breakpoint at this content block. + - `class BetaWebSearchTool20260318` - - `configs: BetaComputerToolsetConfigs` + - `type: :web_search_20260318` - Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + - `name: :web_search` - - `type: BetaComputerTypeConfig` + Name of the tool. - `type`'s config overrides. + This is how the tool will be called by the model and in `tool_use` blocks. - - `defer_loading: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:direct` - - `enabled: bool` + - `:code_execution_20250825` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20260120` - - `cursor_position: BetaComputerCursorPositionConfig` + - `:code_execution_20260521` - `cursor_position`'s config overrides. + - `allowed_domains: Array[String]` - - `defer_loading: bool` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `blocked_domains: Array[String]` - - `enabled: bool` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `cache_control: BetaCacheControlEphemeral` - - `double_click: BetaComputerDoubleClickConfig` + Create a cache control breakpoint at this content block. - `double_click`'s config overrides. + - `defer_loading: bool` - - `defer_loading: bool` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `max_uses: Integer` - - `enabled: bool` + Maximum number of times the tool can be used in the API request. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + minimum: 1 - - `hold_key: BetaComputerHoldKeyConfig` + - `response_inclusion: :full | :excluded` - `hold_key`'s config overrides. + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - - `defer_loading: bool` + - `:full` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:excluded` - - `enabled: bool` + - `strict: bool` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + When true, guarantees schema validation on tool names and inputs - - `key: BetaComputerKeyConfig` + - `user_location: BetaUserLocation` - `key`'s config overrides. + Parameters for the user's location. Used to provide more relevant search results. - - `defer_loading: bool` + - `class BetaWebFetchTool20260318` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `type: :web_fetch_20260318` - - `enabled: bool` + - `name: :web_fetch` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Name of the tool. - - `left_click: BetaComputerLeftClickConfig` + This is how the tool will be called by the model and in `tool_use` blocks. - `left_click`'s config overrides. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `defer_loading: bool` + - `:direct` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:code_execution_20250825` - - `enabled: bool` + - `:code_execution_20260120` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:code_execution_20260521` - - `left_click_drag: BetaComputerLeftClickDragConfig` + - `allowed_domains: Array[String]` - `left_click_drag`'s config overrides. + List of domains to allow fetching from - - `defer_loading: bool` + - `blocked_domains: Array[String]` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + List of domains to block fetching from - - `enabled: bool` + - `cache_control: BetaCacheControlEphemeral` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Create a cache control breakpoint at this content block. - - `left_mouse_down: BetaComputerLeftMouseDownConfig` + - `citations: BetaCitationsConfigParam` - `left_mouse_down`'s config overrides. + Citations configuration for fetched documents. Citations are disabled by default. - - `defer_loading: bool` + - `defer_loading: bool` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `enabled: bool` + - `max_content_tokens: Integer` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `left_mouse_up: BetaComputerLeftMouseUpConfig` + minimum: 1 - `left_mouse_up`'s config overrides. + - `max_uses: Integer` - - `defer_loading: bool` + Maximum number of times the tool can be used in the API request. - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + minimum: 1 - - `enabled: bool` + - `response_inclusion: :full | :excluded` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - - `middle_click: BetaComputerMiddleClickConfig` + - `:full` - `middle_click`'s config overrides. + - `:excluded` - - `defer_loading: bool` + - `strict: bool` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + When true, guarantees schema validation on tool names and inputs - - `enabled: bool` + - `url_sources: BetaWebFetchURLSources` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `mouse_move: BetaComputerMouseMoveConfig` + - `use_cache: bool` - `mouse_move`'s config overrides. + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - - `defer_loading: bool` + - `class BetaAdvisorTool20260301` - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `type: :advisor_20260301` - - `enabled: bool` + - `model: Model` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + The model that will complete your prompt. - - `right_click: BetaComputerRightClickConfig` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - `right_click`'s config overrides. + - `:"claude-haiku-5-5"` - - `defer_loading: bool` + Fastest model for high-volume, real-time tasks - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-sonnet-5-5"` - - `enabled: bool` + Efficient model for coding and agents - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:"claude-fable-5-1"` - - `screenshot: BetaComputerScreenshotConfig` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - `screenshot`'s config overrides. + - `:"claude-opus-5-5"` - - `defer_loading: bool` + Powerful intelligence for coding, knowledge work, and long-running agents - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-mythos-5-1"` - - `enabled: bool` + Our most capable model for cybersecurity and biology research, available through trusted access programs - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:"claude-sonnet-5"` - - `scroll: BetaComputerScrollConfig` + Efficient model for coding and agents - `scroll`'s config overrides. + - `:"claude-fable-5"` - - `defer_loading: bool` + Next generation of intelligence for the hardest knowledge work and coding problems - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-mythos-5"` - - `enabled: bool` + Most capable model for cybersecurity and biology research - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:"claude-opus-5"` - - `triple_click: BetaComputerTripleClickConfig` + Powerful intelligence for long-running agents and coding - `triple_click`'s config overrides. + - `:"claude-opus-4-8"` - - `defer_loading: bool` + Powerful intelligence for long-running agents and coding - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-opus-4-7"` - - `enabled: bool` + Powerful intelligence for long-running agents and coding - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:"claude-opus-4-6"` - - `wait: BetaComputerWaitConfig` + Powerful intelligence for long-running agents and coding - `wait`'s config overrides. + - `:"claude-sonnet-4-6"` - - `defer_loading: bool` + Best combination of speed and intelligence - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-haiku-4-5"` - - `enabled: bool` + - `:"claude-haiku-4-5-20251001"` - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + - `:"claude-opus-4-5"` - - `zoom: BetaComputerZoomConfig` + Powerful intelligence for long-running agents and coding - `zoom`'s config overrides. + - `:"claude-opus-4-5-20251101"` - - `defer_loading: bool` + Powerful intelligence for long-running agents and coding - Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + - `:"claude-mythos-preview"` - - `enabled: bool` + **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + New class of intelligence, strongest in coding and cybersecurity - - `class BetaToolTextEditor20250124` + - `:"claude-sonnet-4-5"` - - `type: :text_editor_20250124` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `name: :str_replace_editor` + High-performance model for agents and coding + + - `:"claude-sonnet-4-5-20250929"` + + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + High-performance model for agents and coding + + - `String = String` + + - `name: :advisor` Name of the tool. @@ -21183,21 +21088,39 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl Create a cache control breakpoint at this content block. + - `caching: BetaCacheControlEphemeral` + + Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. + - `defer_loading: bool` If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `input_examples: Array[Hash[Symbol, untyped]]` + - `max_tokens: Integer` + + Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. + + minimum: 1024 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaToolTextEditor20250429` + - `class BetaToolSearchToolBm25_20251119` - - `type: :text_editor_20250429` + - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` - - `name: :str_replace_based_edit_tool` + - `:tool_search_tool_bm25_20251119` + + - `:tool_search_tool_bm25` + + - `name: :tool_search_tool_bm25` Name of the tool. @@ -21221,17 +21144,19 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `input_examples: Array[Hash[Symbol, untyped]]` - - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaToolTextEditor20250728` + - `class BetaToolSearchToolRegex20251119` - - `type: :text_editor_20250728` + - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` - - `name: :str_replace_based_edit_tool` + - `:tool_search_tool_regex_20251119` + + - `:tool_search_tool_regex` + + - `name: :tool_search_tool_regex` Name of the tool. @@ -21255,6563 +21180,6958 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `input_examples: Array[Hash[Symbol, untyped]]` - - - `max_characters: Integer` - - Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. - - minimum: 1 - - `strict: bool` When true, guarantees schema validation on tool names and inputs - - `class BetaWebSearchTool20250305` + - `class BetaMCPToolset` - - `type: :web_search_20250305` + Configuration for a group of tools from an MCP server. - - `name: :web_search` + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. - Name of the tool. + - `type: :mcp_toolset` - This is how the tool will be called by the model and in `tool_use` blocks. + - `mcp_server_name: String` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Name of the MCP server to configure tools for - - `:direct` + minLength: 1, maxLength: 255 - - `:code_execution_20250825` + - `cache_control: BetaCacheControlEphemeral` - - `:code_execution_20260120` + Create a cache control breakpoint at this content block. - - `:code_execution_20260521` + - `configs: Hash[Symbol, BetaMCPToolConfig]` - - `allowed_domains: Array[String]` + Configuration overrides for specific tools, keyed by tool name - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + - `defer_loading: bool` - - `blocked_domains: Array[String]` + - `enabled: bool` - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `default_config: BetaMCPToolDefaultConfig` - - `cache_control: BetaCacheControlEphemeral` + Default configuration applied to all tools from this server - Create a cache control breakpoint at this content block. + - `defer_loading: bool` - - `defer_loading: bool` + - `enabled: bool` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `tools: Array[BetaMCPToolParam]` - - `max_uses: Integer` + The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. - Maximum number of times the tool can be used in the API request. + - `input_schema: Hash[Symbol, untyped]` - minimum: 1 + The tool's input schema as the MCP server lists it, verbatim. - - `strict: bool` + - `name: String` - When true, guarantees schema validation on tool names and inputs + The tool's name as the MCP server lists it (not prefixed with the server name). - - `user_location: BetaUserLocation` + minLength: 1 - Parameters for the user's location. Used to provide more relevant search results. + - `description: String` - - `type: :approximate` + The tool's description as the MCP server lists it. - - `city: String` + - `cache_control: BetaCacheControlEphemeral` - The city of the user. + Create a cache control breakpoint at this content block. - minLength: 1, maxLength: 255 + - `class BetaRequestToolRemovalBlock` - - `country: String` + Mid-conversation directive to withdraw a tool. - The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. - minLength: 2, maxLength: 2 + - `type: :tool_removal` - - `region: String` + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference` - The region of the user. + - `class BetaToolChangeToolReference` - minLength: 1, maxLength: 255 + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. - - `timezone: String` + - `class BetaToolChangeMCPToolReference` - The [IANA timezone](https://nodatime.org/TimeZones) of the user. + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. - minLength: 1, maxLength: 255 + - `class BetaToolChangeMCPToolsetReference` - - `class BetaWebFetchTool20250910` + Reference to every tool in the named MCP server's toolset. - - `type: :web_fetch_20250910` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_fetch` + Create a cache control breakpoint at this content block. - Name of the tool. + - `class BetaRequestToolAdditionBlock` - This is how the tool will be called by the model and in `tool_use` blocks. + Mid-conversation directive to make a tool available. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. - - `:direct` + - `class BetaRequestToolRemovalBlock` - - `:code_execution_20250825` + Mid-conversation directive to withdraw a tool. - - `:code_execution_20260120` + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. - - `:code_execution_20260521` + - `class BetaMCPToolListingBlockParam` - - `allowed_domains: Array[String]` + The tool listing an MCP server returned while an earlier response was + produced, as that response carried it. Send the assistant message back + unchanged, this block included, and the server uses this listing for the + matching `mcp_toolset` instead of asking the MCP server again. - List of domains to allow fetching from + - `type: :mcp_tool_listing` - - `blocked_domains: Array[String]` + - `mcp_server_name: String` - List of domains to block fetching from + The name of the MCP server this listing came from, as `mcp_servers` declares it. - - `cache_control: BetaCacheControlEphemeral` + minLength: 1, maxLength: 255 - Create a cache control breakpoint at this content block. + - `tools: Array[BetaMCPToolParam]` - - `citations: BetaCitationsConfigParam` + The server's tools, exactly as the response listed them. - Citations configuration for fetched documents. Citations are disabled by default. + - `input_schema: Hash[Symbol, untyped]` - - `enabled: bool` + The tool's input schema as the MCP server lists it, verbatim. - - `defer_loading: bool` + - `name: String` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + The tool's name as the MCP server lists it (not prefixed with the server name). - - `max_content_tokens: Integer` + minLength: 1 - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `description: String` - minimum: 1 + The tool's description as the MCP server lists it. - - `max_uses: Integer` + - `class BetaFallbackBlockParam` - Maximum number of times the tool can be used in the API request. + A `fallback` block echoed back from a prior response. - minimum: 1 + Accepted in `messages[].content` and not rendered into the prompt; not + validated against the request's `fallbacks` chain or top-level `model`. - - `strict: bool` + Echo the assistant turn back verbatim, including this block in its + original position. The block marks the boundary between content produced + before and after a fallback hop, and the server relies on that boundary + to validate the turn: when thinking runs flank the boundary, omitting + the block merges them into one span the server cannot validate (the + request is rejected), and moving it into the middle of a single run is + likewise rejected; between non-thinking blocks the block's placement has + no validation effect. - When true, guarantees schema validation on tool names and inputs + - `type: :fallback` - - `url_sources: BetaWebFetchURLSources` + - `from: BetaFallbackInfoParam` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + Identifies one hop of a fallback transition. - - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + - `model: Model` - Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. + The model that will complete your prompt. - - `class BetaWebFetchURLSourceAll` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + - `to: BetaFallbackInfoParam` - - `type: :all` + Identifies one hop of a fallback transition. - - `class BetaWebFetchURLSourceNone` + - `trigger: untyped` - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + The response block's `trigger`, echoed verbatim. Accepted and ignored by the server; any object or `null` is allowed. - - `type: :none` + - `role: :user | :assistant | :system` - - `class BetaWebFetchURLSourceOnly` + - `:user` - The tool filter variant under which only the named tools' results - contribute. + - `:assistant` - - `type: :only` + - `:system` - - `tools: Array[BetaWebFetchURLSourceToolReference]` + - `clear_at: :next_user_message | :never` - - `type: :tool_reference` + How long this system message's text stays in front of the model. `"never"` (the default) renders it on every request that includes it. `"next_user_message"` renders it only for the user turn it follows: once a later `role: "user"` message exists in `messages` the message stays in the array (send it unchanged) but is no longer shown to the model. Only permitted on `role: "system"` messages. - - `name: String` + - `:next_user_message` - - `class BetaWebFetchURLSourceExcept` + - `:never` - The tool filter variant under which every result but the named - tools' contributes. + - `output_config: BetaSystemMessageOutputConfig` - - `type: :except` + Per-message output configuration on a role:"system" input message. - - `tools: Array[BetaWebFetchURLSourceToolReference]` + Fields here apply per-turn; `format` remains top-level only. An + empty `{}` is accepted on a message that carries content; a message + with neither content nor output_config fields is rejected. - - `type: :tool_reference` + - `effort: :low | :medium | :high | 2 more` - - `name: String` + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. - - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. + - `:low` - - `class BetaWebFetchURLSourceAll` + - `:medium` - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + - `:high` - - `class BetaWebFetchURLSourceNone` + - `:xhigh` - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + - `:max` - - `class BetaWebFetchURLSourceOnly` + - `model: Model` - The tool filter variant under which only the named tools' results - contribute. + The model that will complete your prompt. - - `class BetaWebFetchURLSourceExcept` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - The tool filter variant under which every result but the named - tools' contributes. + - `cache_control: BetaCacheControlEphemeral` - - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` + Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. - Whether URLs in user messages are fetchable: "all" or "none". + - `compaction: BetaCompactionConfig` - - `class BetaWebFetchURLSourceAll` + Compaction configuration. - The `url_sources` variant under which a source contributes in - full: every result of the tool filter's source, or all user input. + When set on `POST /v1/messages`, the request is a compaction request: the conversation in `messages` is summarized and the response holds only the resulting `compaction` block (`stop_reason` `"compaction"`), which later requests send first in `messages` in place of the messages it summarizes. `POST /v1/messages/count_tokens` accepts this parameter and ignores it: the count it returns is for the conversation in `messages` as sent. Cannot be combined with `context_management`. - - `class BetaWebFetchURLSourceNone` + - `type: :summarize` - The `url_sources` variant under which a source contributes nothing: - no result of the tool filter's source, or no user input. + - `instructions: String` - - `class BetaWebSearchTool20260209` + Replaces the server's default summarization prompt for this request. An empty or whitespace-only value counts as absent. - - `type: :web_search_20260209` + maxLength: 16384 - - `name: :web_search` + - `container: BetaContainerParams | String` - Name of the tool. + Container identifier for reuse across requests. - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaContainerParams` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Container parameters with skills to be loaded. - - `:direct` + - `id: String` - - `:code_execution_20250825` + Container id - - `:code_execution_20260120` + - `skills: Array[BetaSkillParams]` - - `:code_execution_20260521` + List of skills to load in the container - - `allowed_domains: Array[String]` + maxItems: 20 - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + - `type: :anthropic | :custom` - - `blocked_domains: Array[String]` + Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `:anthropic` - - `cache_control: BetaCacheControlEphemeral` + - `:custom` - Create a cache control breakpoint at this content block. + - `skill_id: String` - - `defer_loading: bool` + Skill ID - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + minLength: 1, maxLength: 64 - - `max_uses: Integer` + - `version: String` - Maximum number of times the tool can be used in the API request. + Skill version or 'latest' for most recent version - minimum: 1 + minLength: 1, maxLength: 64 - - `strict: bool` + - `String = String` - When true, guarantees schema validation on tool names and inputs + - `context_management: BetaContextManagementConfig` - - `user_location: BetaUserLocation` + Context management configuration. - Parameters for the user's location. Used to provide more relevant search results. + This allows you to control how Claude manages context across multiple requests, such as whether to clear function results or not. - - `class BetaWebFetchTool20260209` + - `edits: Array[BetaClearToolUses20250919Edit | BetaClearThinking20251015Edit | BetaCompact20260112Edit]` - - `type: :web_fetch_20260209` + List of context management edits to apply - - `name: :web_fetch` + - `class BetaClearToolUses20250919Edit` - Name of the tool. + - `type: :clear_tool_uses_20250919` - This is how the tool will be called by the model and in `tool_use` blocks. + - `clear_at_least: BetaInputTokensClearAtLeast` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + Minimum number of tokens that must be cleared when triggered. Context will only be modified if at least this many tokens can be removed. - - `:direct` + - `type: :input_tokens` - - `:code_execution_20250825` + - `value: Integer` - - `:code_execution_20260120` + minimum: 0 - - `:code_execution_20260521` + - `clear_tool_inputs: bool | Array[String]` - - `allowed_domains: Array[String]` + Whether to clear all tool inputs (bool) or specific tool inputs to clear (list) - List of domains to allow fetching from + - `UnionMember0 = bool` - - `blocked_domains: Array[String]` + - `UnionMember1 = Array[String]` - List of domains to block fetching from + - `exclude_tools: Array[String]` - - `cache_control: BetaCacheControlEphemeral` + Tool names whose uses are preserved from clearing - Create a cache control breakpoint at this content block. + - `keep: BetaToolUsesKeep` - - `citations: BetaCitationsConfigParam` + Number of tool uses to retain in the conversation - Citations configuration for fetched documents. Citations are disabled by default. + - `type: :tool_uses` - - `defer_loading: bool` + - `value: Integer` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + minimum: 0 - - `max_content_tokens: Integer` + - `trigger: BetaInputTokensTrigger | BetaToolUsesTrigger` - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + Condition that triggers the context management strategy - minimum: 1 + - `class BetaInputTokensTrigger` - - `max_uses: Integer` + - `type: :input_tokens` - Maximum number of times the tool can be used in the API request. + - `value: Integer` - minimum: 1 + minimum: 1 - - `strict: bool` + - `class BetaToolUsesTrigger` - When true, guarantees schema validation on tool names and inputs + - `type: :tool_uses` - - `url_sources: BetaWebFetchURLSources` + - `value: Integer` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + minimum: 1 - - `class BetaWebFetchTool20260309` + - `class BetaClearThinking20251015Edit` - Web fetch tool with use_cache parameter for bypassing cached content. + - `type: :clear_thinking_20251015` - - `type: :web_fetch_20260309` + - `keep: BetaThinkingTurns | BetaAllThinkingTurns | :all` - - `name: :web_fetch` + Number of most recent assistant turns to keep thinking blocks for. Older turns will have their thinking blocks removed. - Name of the tool. + - `class BetaThinkingTurns` - This is how the tool will be called by the model and in `tool_use` blocks. + - `type: :thinking_turns` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `value: Integer` - - `:direct` + minimum: 1 - - `:code_execution_20250825` + - `class BetaAllThinkingTurns` - - `:code_execution_20260120` + - `type: :all` - - `:code_execution_20260521` + - `:all` - - `allowed_domains: Array[String]` + - `class BetaCompact20260112Edit` - List of domains to allow fetching from + Automatically compact older context when reaching the configured trigger threshold. - - `blocked_domains: Array[String]` + - `type: :compact_20260112` - List of domains to block fetching from + - `instructions: String` - - `cache_control: BetaCacheControlEphemeral` + Additional instructions for summarization. - Create a cache control breakpoint at this content block. + - `pause_after_compaction: bool` - - `citations: BetaCitationsConfigParam` + Whether to pause after compaction and return the compaction block to the user. - Citations configuration for fetched documents. Citations are disabled by default. + - `trigger: BetaInputTokensTrigger` - - `defer_loading: bool` + When to trigger compaction. Defaults to 150000 input tokens. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `diagnostics: BetaDiagnosticsParam` - - `max_content_tokens: Integer` + Request-level diagnostics. Supply `previous_message_id` to have the response include `diagnostics.cache_miss_reason` explaining any prompt-cache divergence from that prior request. - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `previous_message_id: String` - minimum: 1 + The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare. - - `max_uses: Integer` + maxLength: 256 - Maximum number of times the tool can be used in the API request. + - `fallback_credit_token: String | BetaFallbackCreditTokenParam` - minimum: 1 + The `fallback_credit_token` from a prior refusal's `stop_details`. - - `strict: bool` + When a preceding request was refused and returned a `fallback_credit_token`, + pass that code here on the retry to have the retry's cache-creation tokens + for the prefix that was warm on the refused model billed at the cache-read + rate. Must be redeemed by the same organization and workspace, with the same + request body (optionally extended by one appended `assistant` message whose + content is the partial text — with any trailing whitespace stripped from + the final text block — and paired server-tool blocks streamed before the + refusal; the appended-assistant form is not available for requests with + `output_format` set or forced `tool_choice`), on an eligible fallback + model, on the same platform, + and within 5 minutes of the refusal; a mismatch is a 400. A token minted + mid-server-tool-loop whose partial content was continuable may only be + redeemed with the appended-assistant form — if an exact-body retry is + rejected with a 400 saying the token must be redeemed by continuing the + partial response, retry with the appended-assistant form instead. - When true, guarantees schema validation on tool names and inputs + When the appended-assistant form is used on a model that otherwise disallows + assistant-turn prefill, this token also authorizes that one prefill. - - `url_sources: BetaWebFetchURLSources` + - `String = String` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + - `class BetaFallbackCreditTokenParam` - - `use_cache: bool` + Object form of `fallback_credit_token`: the token plus a redemption + mode. - Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + Requires `anthropic-beta: fallback-credit-2026-07-01`; without that + header the field accepts the bare string only. The bare string and the + mode-less object are equivalent (both select `strict`), so wrapping + an existing token changes nothing by itself. - - `class BetaWebSearchTool20260318` + - `token: String` - - `type: :web_search_20260318` + The opaque `fallback_credit_token` from a prior refusal's `stop_details` — the same string the bare-string form carries. - - `name: :web_search` + minLength: 1, maxLength: 2048 - Name of the tool. + - `mode: :strict | :best_effort` - This is how the tool will be called by the model and in `tool_use` blocks. + How a failing token affects the retry. `strict` (the default, and the bare-string behavior): a failing redemption is a 400 and the retry is not served. `best_effort`: the retry is served either way — a token-layer failure no longer rejects the request; the retry proceeds at normal price and the outcome is reported on the response's `usage.fallback_credit`. Two failures stay hard in both modes: a malformed token, and combining `fallback_credit_token` with `fallbacks`. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `:strict` - - `:direct` + - `:best_effort` - - `:code_execution_20250825` + - `fallbacks: BetaFallbacksParam` - - `:code_execution_20260120` + Opt-in server-side retry on one or more substitute models when the requested model declines for policy reasons. Tried in order: if the first entry also declines, the second is tried, and so on. Some models don't support fallbacks; on those models, a list of fallback models returns a 400 error. See [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#server-side-fallback). The string "default" requests the requested model's server-defined default fallback configuration. On a model that doesn't support fallbacks, the request runs on the requested model alone, so a declined request stays declined. - - `:code_execution_20260521` + - `UnionMember0 = Array[BetaFallbackParam]` - - `allowed_domains: Array[String]` + - `model: Model` - If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + The model that will complete your prompt. - - `blocked_domains: Array[String]` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + - `max_tokens: Integer` - - `cache_control: BetaCacheControlEphemeral` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. - Create a cache control breakpoint at this content block. + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. - - `defer_loading: bool` + - `output_config: BetaOutputConfig` - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. - - `max_uses: Integer` + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. - Maximum number of times the tool can be used in the API request. + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. - minimum: 1 + These rules apply with the `server-side-fallback-2026-07-01` beta header. - - `response_inclusion: :full | :excluded` + - `effort: :low | :medium | :high | 2 more` - How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. - - `:full` + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - - `:excluded` + - `:low` - - `strict: bool` + - `:medium` - When true, guarantees schema validation on tool names and inputs + - `:high` - - `user_location: BetaUserLocation` + - `:xhigh` - Parameters for the user's location. Used to provide more relevant search results. + - `:max` - - `class BetaWebFetchTool20260318` + - `format_: BetaJSONOutputFormat` - - `type: :web_fetch_20260318` + A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) - - `name: :web_fetch` + - `type: :json_schema` - Name of the tool. + - `schema: Hash[Symbol, untyped]` - This is how the tool will be called by the model and in `tool_use` blocks. + The JSON schema of the format - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `task_budget: BetaTokenTaskBudget` - - `:direct` + Configuration for token budget tracking across contexts. - - `:code_execution_20250825` + - `type: :tokens` - - `:code_execution_20260120` + The budget type. Currently only 'tokens' is supported. - - `:code_execution_20260521` + - `total: Integer` - - `allowed_domains: Array[String]` + Total token budget across all contexts in the session. - List of domains to allow fetching from + minimum: 1024 - - `blocked_domains: Array[String]` + - `remaining: Integer` - List of domains to block fetching from + Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. - - `cache_control: BetaCacheControlEphemeral` + minimum: 0 - Create a cache control breakpoint at this content block. + - `speed: :standard | :fast` - - `citations: BetaCitationsConfigParam` + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. - Citations configuration for fetched documents. Citations are disabled by default. + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. - - `defer_loading: bool` + These rules apply with the `server-side-fallback-2026-07-01` beta header. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `:standard` - - `max_content_tokens: Integer` + - `:fast` - Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` - minimum: 1 + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. - - `max_uses: Integer` + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. - Maximum number of times the tool can be used in the API request. + These rules apply with the `server-side-fallback-2026-07-01` beta header. - minimum: 1 + - `class BetaThinkingConfigEnabled` - - `response_inclusion: :full | :excluded` + - `type: :enabled` - How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + - `budget_tokens: Integer` - - `:full` + Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. - - `:excluded` + Must be ≥1024 and less than `max_tokens`. - - `strict: bool` + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. - When true, guarantees schema validation on tool names and inputs + minimum: 1024 - - `url_sources: BetaWebFetchURLSources` + - `block_binding: BetaThinkingBlockBinding` - Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. - - `use_cache: bool` + - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` - Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. - - `class BetaAdvisorTool20260301` + - `:error` - - `type: :advisor_20260301` + - `:drop_block` - - `model: Model` + - `display_: :summarized | :omitted | :updates` - The model that will complete your prompt. + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `:summarized` - - `:"claude-haiku-5-5"` + - `:omitted` - Fastest model for high-volume, real-time tasks + - `:updates` - - `:"claude-sonnet-5-5"` + - `class BetaThinkingConfigDisabled` - Efficient model for coding and agents + - `type: :disabled` - - `:"claude-fable-5-1"` + - `class BetaThinkingConfigBetweenTools` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `type: :between_tools` - - `:"claude-opus-5-5"` + - `class BetaThinkingConfigAdaptive` - Powerful intelligence for coding, knowledge work, and long-running agents + - `type: :adaptive` - - `:"claude-mythos-5-1"` + - `block_binding: BetaThinkingBlockBinding` - Our most capable model for cybersecurity and biology research, available through trusted access programs + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. - - `:"claude-sonnet-5"` + - `display_: :summarized | :omitted | :updates` - Efficient model for coding and agents + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). - - `:"claude-fable-5"` + - `:summarized` - Next generation of intelligence for the hardest knowledge work and coding problems + - `:omitted` - - `:"claude-mythos-5"` + - `:updates` - Most capable model for cybersecurity and biology research + - `:default` - - `:"claude-opus-5"` + - `inference_geo: String` - Powerful intelligence for long-running agents and coding + Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used. - - `:"claude-opus-4-8"` + - `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` - Powerful intelligence for long-running agents and coding + MCP servers to be utilized in this request - - `:"claude-opus-4-7"` + maxItems: 20 - Powerful intelligence for long-running agents and coding + - `type: :url` - - `:"claude-opus-4-6"` + - `name: String` - Powerful intelligence for long-running agents and coding + - `url: String` - - `:"claude-sonnet-4-6"` + - `authorization_token: String` - Best combination of speed and intelligence + - `tool_configuration: BetaRequestMCPServerToolConfiguration` - - `:"claude-haiku-4-5"` + - `allowed_tools: Array[String]` - - `:"claude-haiku-4-5-20251001"` + - `enabled: bool` - - `:"claude-opus-4-5"` + - `metadata: BetaMetadata` - Powerful intelligence for long-running agents and coding + An object describing metadata about the request. - - `:"claude-opus-4-5-20251101"` + - `user_id: String` - Powerful intelligence for long-running agents and coding + An external identifier for the user who is associated with the request. - - `:"claude-mythos-preview"` + This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number. - **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + maxLength: 512 - New class of intelligence, strongest in coding and cybersecurity + - `output_config: BetaOutputConfig` - - `:"claude-sonnet-4-5"` + Configuration options for the model's output, such as the output format. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `service_tier: :auto | :standard_only` - High-performance model for agents and coding + Determines whether to use priority capacity (if available) or standard capacity for this request. - - `:"claude-sonnet-4-5-20250929"` + Anthropic offers different levels of service for your API requests. See [service-tiers](https://platform.claude.com/docs/en/api/service-tiers?sdk_languages=ruby) for details. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:auto` - High-performance model for agents and coding + - `:standard_only` - - `String = String` + - `speed: :standard | :fast` - - `name: :advisor` + The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. - Name of the tool. + Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. - This is how the tool will be called by the model and in `tool_use` blocks. + - `:standard` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `:fast` - - `:direct` + - `stop_sequences: Array[String]` - - `:code_execution_20250825` + Custom text sequences that will cause the model to stop generating. - - `:code_execution_20260120` + Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_turn"`. - - `:code_execution_20260521` + If you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `"stop_sequence"` and the response `stop_sequence` value will contain the matched stop sequence. - - `cache_control: BetaCacheControlEphemeral` + - `stream: bool` - Create a cache control breakpoint at this content block. + Whether to incrementally stream the response using server-sent events. When `true`, SDKs return a raw event stream. - - `caching: BetaCacheControlEphemeral` + In the TypeScript, Python and Ruby SDKs, the recommended way to stream is `messages.stream()`. It sets `stream` for you and accumulates the events into the final message. See [Streaming with SDKs](https://platform.claude.com/docs/en/build-with-claude/streaming?sdk_languages=ruby#streaming-with-sdks) for an example in each language. - Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. + - `system_: String | Array[BetaTextBlockParam]` - - `defer_loading: bool` + System prompt. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). - - `max_tokens: Integer` + - `String = String` - Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. + - `UnionMember1 = Array[BetaTextBlockParam]` - minimum: 1024 + - `type: :text` - - `max_uses: Integer` + - `text: String` - Maximum number of times the tool can be used in the API request. + minLength: 1 - minimum: 1 + - `cache_control: BetaCacheControlEphemeral` - - `strict: bool` + Create a cache control breakpoint at this content block. - When true, guarantees schema validation on tool names and inputs + - `citations: Array[BetaTextCitationParam]` - - `class BetaToolSearchToolBm25_20251119` + - `thinking: BetaThinkingConfigParam` - - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` + Configuration for Claude's thinking. - - `:tool_search_tool_bm25_20251119` + With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. - - `:tool_search_tool_bm25` + Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. - - `name: :tool_search_tool_bm25` + - `class BetaThinkingConfigEnabled` - Name of the tool. + - `class BetaThinkingConfigDisabled` - This is how the tool will be called by the model and in `tool_use` blocks. + - `class BetaThinkingConfigBetweenTools` - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `class BetaThinkingConfigAdaptive` - - `:direct` + - `tool_choice: BetaToolChoice` - - `:code_execution_20250825` + How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all. - - `:code_execution_20260120` + - `class BetaToolChoiceAuto` - - `:code_execution_20260521` + The model will automatically decide whether to use tools. - - `cache_control: BetaCacheControlEphemeral` + - `type: :auto` - Create a cache control breakpoint at this content block. + - `disable_parallel_tool_use: bool` - - `defer_loading: bool` + Whether to disable parallel tool use. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + Defaults to `false`. If set to `true`, the model will output at most one tool use. - - `strict: bool` + - `class BetaToolChoiceAny` - When true, guarantees schema validation on tool names and inputs + The model will use any available tools. - - `class BetaToolSearchToolRegex20251119` + - `type: :any` - - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` + - `disable_parallel_tool_use: bool` - - `:tool_search_tool_regex_20251119` - - - `:tool_search_tool_regex` - - - `name: :tool_search_tool_regex` - - Name of the tool. + Whether to disable parallel tool use. - This is how the tool will be called by the model and in `tool_use` blocks. + Defaults to `false`. If set to `true`, the model will output exactly one tool use. - - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + - `class BetaToolChoiceTool` - - `:direct` + The model will use the specified tool with `tool_choice.name`. - - `:code_execution_20250825` + - `type: :tool` - - `:code_execution_20260120` + - `name: String` - - `:code_execution_20260521` + The name of the tool to use. - - `cache_control: BetaCacheControlEphemeral` + - `disable_parallel_tool_use: bool` - Create a cache control breakpoint at this content block. + Whether to disable parallel tool use. - - `defer_loading: bool` + Defaults to `false`. If set to `true`, the model will output exactly one tool use. - If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + - `class BetaToolChoiceNone` - - `strict: bool` + The model will not be allowed to use tools. - When true, guarantees schema validation on tool names and inputs + - `type: :none` - - `class BetaMCPToolset` + - `tools: Array[BetaToolUnion]` - Configuration for a group of tools from an MCP server. + Definitions of tools that the model may use. - Allows configuring enabled status and defer_loading for all tools - from an MCP server, with optional per-tool overrides. + If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks. - - `type: :mcp_toolset` + There are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools?sdk_languages=ruby), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool?sdk_languages=ruby)). - - `mcp_server_name: String` + Each tool definition includes: - Name of the MCP server to configure tools for + * `name`: Name of the tool. + * `description`: Optional, but strongly-recommended description of the tool. + * `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks. - minLength: 1, maxLength: 255 + For example, if you defined `tools` as: - - `cache_control: BetaCacheControlEphemeral` + ```json + [ + { + "name": "get_stock_price", + "description": "Get the current stock price for a given ticker symbol.", + "input_schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string", + "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." + } + }, + "required": ["ticker"] + } + } + ] + ``` - Create a cache control breakpoint at this content block. + And then asked the model "What's the S&P 500 at today?", the model might produce `tool_use` content blocks in the response like this: - - `configs: Hash[Symbol, BetaMCPToolConfig]` + ```json + [ + { + "type": "tool_use", + "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "name": "get_stock_price", + "input": { "ticker": "^GSPC" } + } + ] + ``` - Configuration overrides for specific tools, keyed by tool name + You might then run your `get_stock_price` tool with `{"ticker": "^GSPC"}` as an input, and return the following back to the model in a subsequent `user` message: - - `defer_loading: bool` + ```json + [ + { + "type": "tool_result", + "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "content": "259.75 USD" + } + ] + ``` - - `enabled: bool` + Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output. - - `default_config: BetaMCPToolDefaultConfig` + See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview?sdk_languages=ruby) for more details. - Default configuration applied to all tools from this server + - `class BetaTool` - - `defer_loading: bool` + - `class BetaToolBash20241022` - - `enabled: bool` + - `class BetaToolBash20250124` - - `tools: Array[BetaMCPToolParam]` + - `class BetaCodeExecutionTool20250522` - The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. + - `class BetaCodeExecutionTool20250825` - - `input_schema: Hash[Symbol, untyped]` + - `class BetaCodeExecutionTool20260120` - The tool's input schema as the MCP server lists it, verbatim. + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - - `name: String` + - `class BetaCodeExecutionTool20260521` - The tool's name as the MCP server lists it (not prefixed with the server name). + Code execution tool with REPL state persistence. - minLength: 1 + - `class BetaBrowserToolset20260801` - - `description: String` + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. - The tool's description as the MCP server lists it. + - `class BetaToolComputerUse20241022` - - `class BetaResponseToolRemovalBlock` + - `class BetaMemoryTool20250818` - An entry of a `compaction` block's `tool_changes`: a tool of the - request's `tools` (or an MCP tool or toolset) that the compacted range - withdrew. Send it back unchanged. + - `class BetaToolComputerUse20250124` - - `type: :tool_removal` + - `class BetaToolTextEditor20241022` - - `tool: BetaResponseToolChangeToolReference | BetaResponseToolChangeMCPToolReference | BetaResponseToolChangeMCPToolsetReference` + - `class BetaToolComputerUse20251124` - A reference to the withdrawn `tools` entry, MCP tool or MCP toolset. + - `class BetaComputerToolset20260801` - - `class BetaResponseToolChangeToolReference` + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. - Reference to a single tool, by the name the model uses to call it, as - a `compaction` block's `tool_changes` entry reports it: a tool - declared in `tools` or defined by an earlier `tool_addition` block. - Send it back unchanged with the block. + - `class BetaToolTextEditor20250124` - - `class BetaResponseToolChangeMCPToolReference` + - `class BetaToolTextEditor20250429` - Reference to a single MCP tool, by its server and its name on that - server, as a `compaction` block's `tool_changes` entry reports it. - Send it back unchanged with the block. + - `class BetaToolTextEditor20250728` - - `class BetaResponseToolChangeMCPToolsetReference` + - `class BetaWebSearchTool20250305` - Reference to every tool in the named MCP server's toolset, as a - `compaction` block's `tool_changes` entry reports it. Send it back - unchanged with the block. + - `class BetaWebFetchTool20250910` - - `class BetaFallbackBlock` + - `class BetaWebSearchTool20260209` - Marks the point in `content` where one model's output gives way to the next. + - `class BetaWebFetchTool20260209` - One block appears per hop where a preceding model actually ran this turn and - declined. A turn where no preceding model ran and declined has no such - boundary and carries no block — the signal for whether a fallback model - served the response is the presence of a `fallback_message` entry in - `usage.iterations`, not this block. + - `class BetaWebFetchTool20260309` - The block is treated like a server-tool content block for streaming: it - arrives via the standard `content_block_start` / `content_block_stop` - pair and carries no deltas. + Web fetch tool with use_cache parameter for bypassing cached content. - - `type: :fallback` + - `class BetaWebSearchTool20260318` - - `from: BetaFallbackInfo` + - `class BetaWebFetchTool20260318` - The model whose output ends at this point — the model that declined at this hop. When the declining hop is the requested model, its `model` echoes the top-level `model` string the caller sent (alias or canonical); when the declining hop is a fallback model, its `model` is that model's canonical id. + - `class BetaAdvisorTool20260301` - - `model: Model` + - `class BetaToolSearchToolBm25_20251119` - The model that will complete your prompt. + - `class BetaToolSearchToolRegex20251119` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `class BetaMCPToolset` - - `to: BetaFallbackInfo` + Configuration for a group of tools from an MCP server. - The fallback model producing the content that follows this block. Its `model` is always the canonical id. + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. - - `trigger: BetaFallbackRefusalTrigger` + - `output_format: BetaJSONOutputFormat` - What caused the `from` model to hand over at this hop. + **Deprecated** - - `type: :refusal` + Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) - - `category: :cyber | :bio | :frontier_llm | 2 more` + A schema to specify Claude's output format in responses. This parameter will be removed in a future release. - The policy category that triggered the `from` model's refusal at this hop. `null` when the refusal doesn't map to a named category. Same vocabulary as `stop_details.category`. + - `temperature: Float` - - `:cyber` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - The request could enable cyber harm, such as malware or exploit development. Benign cybersecurity work can also trigger this category. + Amount of randomness injected into the response. - - `:bio` + Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. - The request could enable biological harm, such as dangerous lab methods. Beneficial life sciences work can also trigger this category. + Note that even with `temperature` of `0.0`, the results will not be fully deterministic. - - `:frontier_llm` + minimum: 0, maximum: 1 - The request could assist the development of competing AI models, which is restricted under [Anthropic's commercial terms](https://www.anthropic.com/legal/commercial-terms). Benign machine learning work can also trigger this category. + - `top_k: Integer` - - `:reasoning_extraction` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error. - The request asks the model to reproduce its internal reasoning in the response text. To get reasoning in a structured form instead, use [adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking?sdk_languages=ruby). + Only sample from the top K options for each subsequent token. - - `:general_harms` + Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277). - The request could be related to an area that was determined as harmful. Benign work might sometimes trigger this category. + Recommended for advanced use cases only. - - `class BetaMCPToolListingBlock` + minimum: 0 - The tool listing the server fetched from an MCP server while producing - this response. Send the assistant message back unchanged, this block - included, so later requests use this listing instead of asking the MCP - server again. + - `top_p: Float` - - `type: :mcp_tool_listing` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - - `mcp_server_name: String` + Use nucleus sampling. - - `tools: Array[BetaMCPTool]` + In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. - - `input_schema: Hash[Symbol, untyped]` + Recommended for advanced use cases only. - - `name: String` + minimum: 0, maximum: 1 - - `description: String` +- `betas: Array[AnthropicBeta]` (header parameter) - - `context_management: BetaContextManagementResponse` + Optional header to specify the beta version(s) you want to use. - Context management response. + - `String = String` - Information about context management strategies applied during the request. + - `:"message-batches-2024-09-24"` - - `applied_edits: Array[BetaClearToolUses20250919EditResponse | BetaClearThinking20251015EditResponse]` + - `:"prompt-caching-2024-07-31"` - List of context management edits that were applied. + - `:"computer-use-2024-10-22"` - - `class BetaClearToolUses20250919EditResponse` + - `:"computer-use-2025-01-24"` - - `type: :clear_tool_uses_20250919` + - `:"pdfs-2024-09-25"` - The type of context management edit applied. + - `:"token-counting-2024-11-01"` - - `cleared_input_tokens: Integer` + - `:"token-efficient-tools-2025-02-19"` - Number of input tokens cleared by this edit. + - `:"output-128k-2025-02-19"` - minimum: 0 + - `:"files-api-2025-04-14"` - - `cleared_tool_uses: Integer` + - `:"mcp-client-2025-04-04"` - Number of tool uses that were cleared. + - `:"mcp-client-2025-11-20"` - minimum: 0 + - `:"dev-full-thinking-2025-05-14"` - - `class BetaClearThinking20251015EditResponse` + - `:"interleaved-thinking-2025-05-14"` - - `type: :clear_thinking_20251015` + - `:"code-execution-2025-05-22"` - The type of context management edit applied. + - `:"extended-cache-ttl-2025-04-11"` - - `cleared_input_tokens: Integer` + - `:"context-1m-2025-08-07"` - Number of input tokens cleared by this edit. + - `:"context-management-2025-06-27"` - minimum: 0 + - `:"model-context-window-exceeded-2025-08-26"` - - `cleared_thinking_turns: Integer` + - `:"skills-2025-10-02"` - Number of thinking turns that were cleared. + - `:"fast-mode-2026-02-01"` - minimum: 0 + - `:"output-300k-2026-03-24"` - - `diagnostics: BetaDiagnostics` + - `:"user-profiles-2026-03-24"` - Request-level diagnostics. `null` when the request did not supply `diagnostics`, or when it did and no prompt-cache divergence was detected. + - `:"user-profiles-2026-08-18"` - - `cache_miss_reason: BetaCacheMissReason` + - `:"user-profiles-2026-09-04"` - Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed. + - `:"advisor-tool-2026-03-01"` - - `class BetaCacheMissModelChanged` + - `:"managed-agents-2026-04-01"` - - `type: :model_changed` + - `:"cache-diagnosis-2026-04-07"` - - `cache_missed_input_tokens: Integer` + - `:"dreaming-2026-04-21"` - Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. + - `:"thinking-token-count-2026-05-13"` - - `class BetaCacheMissSystemChanged` + - `:"server-side-fallback-2026-06-01"` - - `type: :system_changed` + - `:"server-side-fallback-2026-07-01"` - - `cache_missed_input_tokens: Integer` + - `:"fallback-credit-2026-06-01"` - Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. + - `:"fallback-credit-2026-07-01"` - - `class BetaCacheMissToolsChanged` + - `:"agent-memory-2026-07-22"` - - `type: :tools_changed` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `cache_missed_input_tokens: Integer` + - `:"compact-2026-01-12"` - Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. + - `:"computer-use-2025-11-24"` - - `class BetaCacheMissMessagesChanged` + - `:"mcp-tunnels-2026-06-22"` - - `type: :messages_changed` + - `:"structured-outputs-2025-11-13"` - - `cache_missed_input_tokens: Integer` + - `:"task-budgets-2026-03-13"` - Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaCacheMissPreviousMessageNotFound` + - `:"ce-user-management-2026-07-13"` - - `type: :previous_message_not_found` + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaCacheMissUnavailable` + - `:"thinking-binding-controls-2026-08-01"` - - `type: :unavailable` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `model: Model` + - `:"compact-2026-09-04"` - The model that will complete your prompt. + - `:"inline-tools-2026-09-15"` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `:"mcp-client-2026-09-15"` - - `role: :assistant` + - `:"ce-plugins-2026-09-01"` - Conversational role of the generated message. + - `:"spend-limit-reads-2026-09-26"` - This will always be `"assistant"`. + - `:"telemetry-destinations-2026-08-11"` - - `stop_details: BetaRefusalStopDetails` + - `:"webhooks-2026-10-07"` - Structured information about why model output stopped. +- `user_profile_id: String` (header parameter) - This is `null` when the `stop_reason` has no additional detail to report. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - - `type: :refusal` +- `workspace_id: String` (header parameter) - - `category: :cyber | :bio | :frontier_llm | 2 more` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The policy category that triggered the refusal. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - `null` when the refusal doesn't map to a named category. +#### Returns - - `:cyber` +- `class BetaMessageBatch` - The request could enable cyber harm, such as malware or exploit development. Benign cybersecurity work can also trigger this category. + - `type: :message_batch` - - `:bio` + Object type. - The request could enable biological harm, such as dangerous lab methods. Beneficial life sciences work can also trigger this category. + For Message Batches, this is always `"message_batch"`. - - `:frontier_llm` + - `id: String` - The request could assist the development of competing AI models, which is restricted under [Anthropic's commercial terms](https://www.anthropic.com/legal/commercial-terms). Benign machine learning work can also trigger this category. + Unique object identifier. - - `:reasoning_extraction` + The format and length of IDs may change over time. - The request asks the model to reproduce its internal reasoning in the response text. To get reasoning in a structured form instead, use [adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking?sdk_languages=ruby). + - `archived_at: Time` - - `:general_harms` + RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. - The request could be related to an area that was determined as harmful. Benign work might sometimes trigger this category. + format: date-time - - `explanation: String` + - `cancel_initiated_at: Time` - Human-readable explanation of the refusal. + RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. - This text is not guaranteed to be stable. `null` when no explanation is available for the category. + format: date-time - - `fallback_credit_token: String` + - `created_at: Time` - Opaque code that refunds the cache-miss cost when retrying this refused - request on the fallback model. Pass it as `fallback_credit_token` on the - retry request. Expires 5 minutes after the refusal. + RFC 3339 datetime string representing the time at which the Message Batch was created. - The retry is sent either with the same request body (`system`, `messages`, - `tools`, and other render-shaping fields), or with the same body plus one - appended `assistant` message whose content is the partial text (with any - trailing whitespace stripped from the final text block) and paired - server-tool blocks from this refusal — which also authorizes that - appended turn as an assistant-prefill continuation on models that otherwise - disallow prefill. A token minted mid-server-tool-loop whose partial content - was continuable may only be redeemed the second way — if a same-body retry - is rejected with a 400 saying the token must be redeemed by continuing the - partial response, retry the second way instead. Either way: same workspace, - same platform; a mismatch is a 400. Resending a token for an already-warm - prefix is permitted but yields no additional credit. + format: date-time - `null` when the refused model isn't eligible for a fallback credit. + - `ended_at: Time` - - `fallback_has_prefill_claim: bool` + RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. - Whether the accompanying `fallback_credit_token` may be redeemed with the - appended-assistant retry form. Only set when `fallback_credit_token` is - present. + Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. - `true`: retry by resending the same request body plus one appended - `assistant` message whose content is this response's `content` with any - trailing whitespace stripped from the final text block and unpaired - `tool_use` blocks omitted (the same appended-turn shape described on - `fallback_credit_token`), with the token attached. `false`: retry by - resending the original request body unchanged, with the token attached — - the appended-assistant form is not available for this refusal (no - continuable partial content, or the request uses `output_format` or a - `tool_choice` that forces tool use). One exception: when the request used - `output_format` or a forced `tool_choice` and the refusal arrived after - server tools (including MCP connector tools) had already executed, the - token may not be redeemable by either retry form; if the exact-body retry - is then rejected with a 400 saying the token must be redeemed by - continuing the partial response, discard the token and retry without it. + format: date-time - Advisory: if an appended-assistant retry is rejected with a 400 despite - `true`, fall back to resending the original request body with the token. + - `expires_at: Time` - - `recommended_model: String` + RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. - The server's suggested retry target for this refusal. Populated when a fallback attempt could not be made (the fallback model's rate limit was exhausted, or it was overloaded); names the fallback model the caller can retry directly. Null otherwise. + format: date-time - - `stop_reason: BetaStopReason` + - `processing_status: :in_progress | :canceling | :ended` - The reason that we stopped. + Processing status of the Message Batch. - This may be one the following values: + - `:in_progress` - * `"end_turn"`: the model reached a natural stopping point - * `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum - * `"stop_sequence"`: one of your provided custom `stop_sequences` was generated - * `"tool_use"`: the model invoked one or more tools - * `"pause_turn"`: we paused a long-running turn. You may provide the response back as-is in a subsequent request to let the model continue. - * `"refusal"`: when streaming classifiers intervene to handle potential policy violations - * `"model_context_window_exceeded"`: we exceeded the model's context window + - `:canceling` - In non-streaming mode this value is always non-null. In streaming mode, it is null in the `message_start` event and non-null otherwise. + - `:ended` - - `:end_turn` + - `request_counts: BetaMessageBatchRequestCounts` - - `:max_tokens` + Tallies requests within the Message Batch, categorized by their status. - - `:stop_sequence` + Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. - - `:tool_use` + - `canceled: Integer` - - `:pause_turn` + Number of requests in the Message Batch that have been canceled. - - `:compaction` + This is zero until processing of the entire Message Batch has ended. - - `:refusal` + - `errored: Integer` - - `:model_context_window_exceeded` + Number of requests in the Message Batch that encountered an error. - - `stop_sequence: String` + This is zero until processing of the entire Message Batch has ended. - Which custom stop sequence was generated, if any. + - `expired: Integer` - This value will be a non-null string if one of your custom stop sequences was generated. + Number of requests in the Message Batch that have expired. - - `usage: BetaUsage` + This is zero until processing of the entire Message Batch has ended. - Billing and rate-limit usage. + - `processing: Integer` - Anthropic's API bills and rate-limits by token counts, as tokens represent the underlying cost to our systems. + Number of requests in the Message Batch that are processing. - Under the hood, the API transforms requests into a format suitable for the model. The model's output then goes through a parsing stage before becoming an API response. As a result, the token counts in `usage` will not match one-to-one with the exact visible content of an API request or response. + - `succeeded: Integer` - For example, `output_tokens` will be non-zero, even for an empty string response from Claude. + Number of requests in the Message Batch that have completed successfully. - Total input tokens in a request is the summation of `input_tokens`, `cache_creation_input_tokens`, and `cache_read_input_tokens`. + This is zero until processing of the entire Message Batch has ended. - - `cache_creation: BetaCacheCreation` + - `results_url: String` - Breakdown of cached tokens by TTL + URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. - - `ephemeral_1h_input_tokens: Integer` + Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - The number of input tokens used to create the 1 hour cache entry. +#### Example - minimum: 0 +```ruby +require "anthropic" - - `ephemeral_5m_input_tokens: Integer` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The number of input tokens used to create the 5 minute cache entry. +beta_message_batch = anthropic.beta.messages.batches.create( + requests: [ + { + custom_id: "my-custom-id-1", + params: {max_tokens: 1024, messages: [{content: "Hello, world", role: :user}], model: Anthropic::Model::CLAUDE_OPUS_5_5} + } + ] +) - minimum: 0 +puts(beta_message_batch) +``` - - `cache_creation_input_tokens: Integer` +##### Response (200) - The number of input tokens used to create the cache entry. +```json +{ + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "archived_at": "2024-08-20T18:37:24.100435Z", + "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", + "created_at": "2024-08-20T18:37:24.100435Z", + "ended_at": "2024-08-20T18:37:24.100435Z", + "expires_at": "2024-08-20T18:37:24.100435Z", + "processing_status": "in_progress", + "request_counts": { + "canceled": 10, + "errored": 30, + "expired": 10, + "processing": 100, + "succeeded": 50 + }, + "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", + "type": "message_batch" +} +``` - minimum: 0 +### Retrieve a Message Batch - - `cache_read_input_tokens: Integer` +`beta.messages.batches.retrieve(message_batch_id, **kwargs) -> BetaMessageBatch` - The number of input tokens read from the cache. +**GET** `/v1/messages/batches/{message_batch_id}` - minimum: 0 +This endpoint is idempotent and can be used to poll for Message Batch completion. To access the results of a Message Batch, make a request to the `results_url` field in the response. - - `fallback_credit: BetaFallbackCreditUsage` +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - Outcome of the `fallback_credit_token` presented on this request. +#### Parameters - Present on every response to a non-batch request that carried a - `fallback_credit_token`, in either redemption mode; absent otherwise (batch - items accept and ignore the token and carry no outcome object). +- `message_batch_id: String` (path parameter) - - `status: BetaFallbackCreditRedeemed | BetaFallbackCreditNotApplied` + ID of the Message Batch. - Whether the fallback-credit reprice was applied to this response's billing. +- `betas: Array[AnthropicBeta]` (header parameter) - A union discriminated on `type`. `redeemed`: the retry is billed as if - the conversation had been on the retry model all along — including when the - resulting shift is zero because there was nothing to move. `not_applied`: - no reprice was applied; the arm's `reason` says why. + Optional header to specify the beta version(s) you want to use. - - `class BetaFallbackCreditRedeemed` + - `String = String` - The reprice was applied: the retry is billed as if the conversation - had been on the retry model all along. + - `:"message-batches-2024-09-24"` - - `type: :redeemed` + - `:"prompt-caching-2024-07-31"` - - `class BetaFallbackCreditNotApplied` + - `:"computer-use-2024-10-22"` - No reprice was applied; `reason` says why. + - `:"computer-use-2025-01-24"` - - `type: :not_applied` + - `:"pdfs-2024-09-25"` - - `reason: :body_mismatch | :continuation_excluded | :continuation_only | 9 more` + - `:"token-counting-2024-11-01"` - Why the reprice was not applied. + - `:"token-efficient-tools-2025-02-19"` - A closed enum; additions to the redemption-check vocabulary arrive as - deliberate schema updates. + - `:"output-128k-2025-02-19"` - - `:body_mismatch` + - `:"files-api-2025-04-14"` - - `:continuation_excluded` + - `:"mcp-client-2025-04-04"` - - `:continuation_only` + - `:"mcp-client-2025-11-20"` - - `:expired` + - `:"dev-full-thinking-2025-05-14"` - - `:invalid_target_model` + - `:"interleaved-thinking-2025-05-14"` - - `:not_enabled` + - `:"code-execution-2025-05-22"` - - `:reprice_unavailable` + - `:"extended-cache-ttl-2025-04-11"` - - `:temporarily_unavailable` + - `:"context-1m-2025-08-07"` - - `:variant_fields_present` + - `:"context-management-2025-06-27"` - - `:wrong_organization` + - `:"model-context-window-exceeded-2025-08-26"` - - `:wrong_platform` + - `:"skills-2025-10-02"` - - `:wrong_workspace` + - `:"fast-mode-2026-02-01"` - - `remove_to_redeem: Array[String]` + - `:"output-300k-2026-03-24"` - Request fields to remove before retrying, so the retry can redeem this - token. + - `:"user-profiles-2026-03-24"` - Present exactly when `reason` is `variant_fields_present` — never null, - never an empty array; absent otherwise. Fields are named only from your own request, and only after - the sealed variant hash matched. A served best-effort retry has already - been billed at normal price; nothing redeems retroactively, but a corrected - re-send inside the token's five-minute window can still redeem. + - `:"user-profiles-2026-08-18"` - - `inference_geo: String` + - `:"user-profiles-2026-09-04"` - The geographic region where inference was performed for this request. + - `:"advisor-tool-2026-03-01"` - - `input_tokens: Integer` + - `:"managed-agents-2026-04-01"` - The number of input tokens which were used. + - `:"cache-diagnosis-2026-04-07"` - minimum: 0 + - `:"dreaming-2026-04-21"` - - `iterations: BetaIterationsUsage` + - `:"thinking-token-count-2026-05-13"` - Per-iteration token usage breakdown. + - `:"server-side-fallback-2026-06-01"` - Each entry represents one sampling iteration, with its own input/output token counts and cache statistics, discriminated by `type`. For `message` entries (model sampling iterations, such as the turns of a server-side tool use loop), this allows you to: + - `:"server-side-fallback-2026-07-01"` - - Calculate the context window size from the last `message` entry - - Understand token accumulation across server-side tool use loops + - `:"fallback-credit-2026-06-01"` - A `compaction` entry reports the token usage of the compaction operation itself — the server-side request that summarizes the context being closed — NOT the size of the context that was compacted away, and its token counts can be much smaller than that closed context (for example, a compaction that closes a ~200k-token context can report only a few thousand tokens). Do not derive the context window size from a `compaction` entry, even when it is the last entry. A `compaction` entry's tokens are not included in the top-level `usage` fields. When an input-token trigger is in effect (the default — 150,000 tokens unless configured otherwise), each `compaction` entry closes a context that had reached at least that threshold, though the context can exceed it by the final iteration's output and tool results. + - `:"fallback-credit-2026-07-01"` - - `class BetaMessageIterationUsage` + - `:"agent-memory-2026-07-22"` - Token usage for a sampling iteration. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `type: :message` + - `:"compact-2026-01-12"` - Usage for a sampling iteration + - `:"computer-use-2025-11-24"` - - `cache_creation: BetaCacheCreation` + - `:"mcp-tunnels-2026-06-22"` - Breakdown of cached tokens by TTL + - `:"structured-outputs-2025-11-13"` - - `cache_creation_input_tokens: Integer` + - `:"task-budgets-2026-03-13"` - The number of input tokens used to create the cache entry. + - `:"thinking-display-updates-2026-08-18"` - minimum: 0 + - `:"ce-user-management-2026-07-13"` - - `cache_read_input_tokens: Integer` + - `:"mid-conversation-output-config-2026-07-01"` - The number of input tokens read from the cache. + - `:"thinking-binding-controls-2026-08-01"` - minimum: 0 + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `input_tokens: Integer` + - `:"compact-2026-09-04"` - The number of input tokens which were used. + - `:"inline-tools-2026-09-15"` - minimum: 0 + - `:"mcp-client-2026-09-15"` - - `model: Model` + - `:"ce-plugins-2026-09-01"` - The model that will complete your prompt. + - `:"spend-limit-reads-2026-09-26"` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `:"telemetry-destinations-2026-08-11"` - - `output_tokens: Integer` + - `:"webhooks-2026-10-07"` - The number of output tokens which were used. +- `workspace_id: String` (header parameter) - minimum: 0 + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaCompactionIterationUsage` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Token usage for a compaction iteration. +#### Returns - - `type: :compaction` +- `class BetaMessageBatch` - Usage for a compaction iteration + - `type: :message_batch` - - `cache_creation: BetaCacheCreation` + Object type. - Breakdown of cached tokens by TTL + For Message Batches, this is always `"message_batch"`. - - `cache_creation_input_tokens: Integer` + - `id: String` - The number of input tokens used to create the cache entry. + Unique object identifier. - minimum: 0 + The format and length of IDs may change over time. - - `cache_read_input_tokens: Integer` + - `archived_at: Time` - The number of input tokens read from the cache. + RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. - minimum: 0 + format: date-time - - `input_tokens: Integer` + - `cancel_initiated_at: Time` - The number of input tokens which were used. + RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. - minimum: 0 + format: date-time - - `output_tokens: Integer` + - `created_at: Time` - The number of output tokens which were used. + RFC 3339 datetime string representing the time at which the Message Batch was created. - minimum: 0 + format: date-time - - `class BetaAdvisorMessageIterationUsage` + - `ended_at: Time` - Token usage for an advisor sub-inference iteration. + RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. - - `type: :advisor_message` + Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. - Usage for an advisor sub-inference iteration + format: date-time - - `cache_creation: BetaCacheCreation` + - `expires_at: Time` - Breakdown of cached tokens by TTL + RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. - - `cache_creation_input_tokens: Integer` + format: date-time - The number of input tokens used to create the cache entry. + - `processing_status: :in_progress | :canceling | :ended` - minimum: 0 + Processing status of the Message Batch. - - `cache_read_input_tokens: Integer` + - `:in_progress` - The number of input tokens read from the cache. + - `:canceling` - minimum: 0 + - `:ended` - - `input_tokens: Integer` + - `request_counts: BetaMessageBatchRequestCounts` - The number of input tokens which were used. + Tallies requests within the Message Batch, categorized by their status. - minimum: 0 + Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. - - `model: Model` + - `canceled: Integer` - The model that will complete your prompt. + Number of requests in the Message Batch that have been canceled. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + This is zero until processing of the entire Message Batch has ended. - - `output_tokens: Integer` + - `errored: Integer` - The number of output tokens which were used. + Number of requests in the Message Batch that encountered an error. - minimum: 0 + This is zero until processing of the entire Message Batch has ended. - - `class BetaFallbackMessageIterationUsage` + - `expired: Integer` - Token usage for the fallback-model attempt of a server-side fallback request. + Number of requests in the Message Batch that have expired. - The terminal entry of a fallback-served turn: when a fallback hop's - output is the returned message, the entry for the iteration that - completed it carries this type in place of `message`. A declined hop - and the serving hop's earlier tool-loop iterations produce `message` - entries. Whether a fallback model served the response is signalled by - the presence of this entry in `usage.iterations`. + This is zero until processing of the entire Message Batch has ended. - - `type: :fallback_message` + - `processing: Integer` - Usage for the fallback-model attempt that served the response + Number of requests in the Message Batch that are processing. - - `cache_creation: BetaCacheCreation` + - `succeeded: Integer` - Breakdown of cached tokens by TTL + Number of requests in the Message Batch that have completed successfully. - - `cache_creation_input_tokens: Integer` + This is zero until processing of the entire Message Batch has ended. - The number of input tokens used to create the cache entry. + - `results_url: String` - minimum: 0 + URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. - - `cache_read_input_tokens: Integer` + Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - The number of input tokens read from the cache. +#### Example - minimum: 0 +```ruby +require "anthropic" - - `input_tokens: Integer` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The number of input tokens which were used. +beta_message_batch = anthropic.beta.messages.batches.retrieve("message_batch_id") - minimum: 0 +puts(beta_message_batch) +``` - - `model: Model` +##### Response (200) - The model that will complete your prompt. +```json +{ + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "archived_at": "2024-08-20T18:37:24.100435Z", + "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", + "created_at": "2024-08-20T18:37:24.100435Z", + "ended_at": "2024-08-20T18:37:24.100435Z", + "expires_at": "2024-08-20T18:37:24.100435Z", + "processing_status": "in_progress", + "request_counts": { + "canceled": 10, + "errored": 30, + "expired": 10, + "processing": 100, + "succeeded": 50 + }, + "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", + "type": "message_batch" +} +``` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. +### List Message Batches - - `output_tokens: Integer` +`beta.messages.batches.list(**kwargs) -> Page` - The number of output tokens which were used. +**GET** `/v1/messages/batches` - minimum: 0 +List all Message Batches within a Workspace. Most recently created batches are returned first. - - `output_tokens: Integer` +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - The number of output tokens which were used. +#### Parameters - minimum: 0 +- `after_id: String` (query parameter) - - `output_tokens_details: BetaOutputTokensDetails` + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. - Breakdown of output tokens by category. +- `before_id: String` (query parameter) - `output_tokens` remains the inclusive, authoritative total used for billing. - This object provides a read-only decomposition for observability — for example, - how many of the billed output tokens were spent on internal reasoning that may - have been summarized before being returned to you. + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. - - `thinking_tokens: Integer` +- `limit: Integer` (query parameter) - Number of output tokens the model generated as internal reasoning, including - the thinking-block delimiter tokens. + Number of items to return per page. - Reflects the raw reasoning the model produced, not the (possibly shorter) - summarized thinking text returned in the response body. Computed by - re-tokenizing the raw reasoning text, so it may differ from the model's exact - generation count by a small number of tokens. Always ≤ `output_tokens`; - `output_tokens - thinking_tokens` approximates the non-reasoning output. + Defaults to `20`. Ranges from `1` to `1000`. - minimum: 0 + minimum: 1, maximum: 1000 - - `server_tool_use: BetaServerToolUsage` +- `betas: Array[AnthropicBeta]` (header parameter) - The number of server tool requests. + Optional header to specify the beta version(s) you want to use. - - `web_fetch_requests: Integer` + - `String = String` - The number of web fetch tool requests. + - `:"message-batches-2024-09-24"` - minimum: 0 + - `:"prompt-caching-2024-07-31"` - - `web_search_requests: Integer` + - `:"computer-use-2024-10-22"` - The number of web search tool requests. + - `:"computer-use-2025-01-24"` - minimum: 0 + - `:"pdfs-2024-09-25"` - - `service_tier: :standard | :priority | :batch` + - `:"token-counting-2024-11-01"` - If the request used the priority, standard, or batch tier. + - `:"token-efficient-tools-2025-02-19"` - - `:standard` + - `:"output-128k-2025-02-19"` - - `:priority` + - `:"files-api-2025-04-14"` - - `:batch` + - `:"mcp-client-2025-04-04"` - - `speed: :standard | :fast` + - `:"mcp-client-2025-11-20"` - The inference speed mode used for this request. + - `:"dev-full-thinking-2025-05-14"` - - `:standard` + - `:"interleaved-thinking-2025-05-14"` - - `:fast` + - `:"code-execution-2025-05-22"` - - `input_transformations: Array[BetaInputTransformation]` + - `:"extended-cache-ttl-2025-04-11"` - Changes the API made to the request's input before showing it to the model, - and blocks that failed a binding check but were left unchanged: one entry per - block, in request order. Two entry types today. `thinking_dropped` — a - `thinking`, `redacted_thinking` or `connector_text` block from the request's - `messages` that was removed from the prompt instead of being shown to the - model because it failed a binding check. `thinking_mismatch_allowed` — a - `thinking` or `redacted_thinking` block that failed the conversation check - (the conversation before it differs from the one it was created in, or it - carries no record of one on a model that requires it) and was shown to the - model all the same, because that check is not enforced for this request. - More entry types may be added over time; ignore types you do not recognize. + - `:"context-1m-2025-08-07"` - Requires `anthropic-beta: thinking-binding-controls-2026-08-01`. Present on - every such response from a model that supports extended thinking, as `[]` - when there is no entry to report; without the beta, blocks are removed or - left in place all the same but nothing is reported. Removed blocks contribute - nothing to `usage.input_tokens`; blocks left in place count as sent. When - streaming, the array is final in `message_start`; the final `message_delta` - event carries it only when a server-side model fallback happened mid-stream, - in which case it holds the serving model's entries and replaces the one in - `message_start`. + - `:"context-management-2025-06-27"` - - `class BetaThinkingDroppedInputTransformation` + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :thinking_dropped` + - `:"skills-2025-10-02"` - Always `thinking_dropped` for this entry type. + - `:"fast-mode-2026-02-01"` - - `path: String` + - `:"output-300k-2026-03-24"` - Where the removed block was in your request, as `messages.{i}.content.{j}`: - `i` indexes the `messages` array you sent and `j` that message's `content` - array — the same form error messages use. + - `:"user-profiles-2026-03-24"` - - `reason: :model_binding_mismatch | :prefix_binding_mismatch | :organization_binding_mismatch | :end_user_binding_mismatch` + - `:"user-profiles-2026-08-18"` - Which binding check removed the block: `model_binding_mismatch` — it was - created by a model whose reasoning the requested model may not read; - `prefix_binding_mismatch` — the conversation before it differs from the - conversation it was created in (the rest of that turn's consecutive thinking - blocks are removed with it, each with this reason); - `organization_binding_mismatch` — it was created under a different - organization (an Anthropic organization, AWS account or Google Cloud project) - and this organization is not one of its additional organizations; - `end_user_binding_mismatch` — it was created for a different end user, or - was removed by the consumer-organization binding. A block that would fail - several checks reports one reason, in this order of precedence: - `organization_binding_mismatch`, `end_user_binding_mismatch`, - `model_binding_mismatch`, `prefix_binding_mismatch`. + - `:"user-profiles-2026-09-04"` - - `:model_binding_mismatch` + - `:"advisor-tool-2026-03-01"` - - `:prefix_binding_mismatch` + - `:"managed-agents-2026-04-01"` - - `:organization_binding_mismatch` + - `:"cache-diagnosis-2026-04-07"` - - `:end_user_binding_mismatch` + - `:"dreaming-2026-04-21"` - - `class BetaThinkingMismatchAllowedInputTransformation` + - `:"thinking-token-count-2026-05-13"` - - `type: :thinking_mismatch_allowed` + - `:"server-side-fallback-2026-06-01"` - Always `thinking_mismatch_allowed` for this entry type. + - `:"server-side-fallback-2026-07-01"` - - `path: String` + - `:"fallback-credit-2026-06-01"` - Where the block is in your request, as `messages.{i}.content.{j}`: - `i` indexes the `messages` array you sent and `j` that message's `content` - array — the same form error messages use. + - `:"fallback-credit-2026-07-01"` - - `reason: :model_binding_mismatch | :prefix_binding_mismatch | :organization_binding_mismatch | :end_user_binding_mismatch` + - `:"agent-memory-2026-07-22"` - Which binding check the block failed; the block was shown to the model all - the same. Always `prefix_binding_mismatch` today — the conversation before - the block differs from the conversation it was created in, or the block - carries no record of one on a model that requires it. Were the check - enforced for this request, the block would have been removed or the request - rejected (`thinking.block_binding.prefix_mismatch_behavior`). A removal also - takes the rest of that turn's consecutive thinking blocks, whereas here each - block is checked on its own, so `thinking_mismatch_allowed` entries are a - lower bound on what enforcement would remove. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:model_binding_mismatch` + - `:"compact-2026-01-12"` - - `:prefix_binding_mismatch` + - `:"computer-use-2025-11-24"` - - `:organization_binding_mismatch` + - `:"mcp-tunnels-2026-06-22"` - - `:end_user_binding_mismatch` + - `:"structured-outputs-2025-11-13"` - - `class BetaMessageBatchErroredResult` + - `:"task-budgets-2026-03-13"` - - `type: :errored` + - `:"thinking-display-updates-2026-08-18"` - - `error: BetaErrorResponse` + - `:"ce-user-management-2026-07-13"` - - `type: :error` + - `:"mid-conversation-output-config-2026-07-01"` - - `error: BetaError` + - `:"thinking-binding-controls-2026-08-01"` - - `class BetaInvalidRequestError` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `type: :invalid_request_error` + - `:"compact-2026-09-04"` - - `message: String` + - `:"inline-tools-2026-09-15"` - - `class BetaAuthenticationError` + - `:"mcp-client-2026-09-15"` - - `type: :authentication_error` + - `:"ce-plugins-2026-09-01"` - - `message: String` + - `:"spend-limit-reads-2026-09-26"` - - `class BetaBillingError` + - `:"telemetry-destinations-2026-08-11"` - - `type: :billing_error` + - `:"webhooks-2026-10-07"` - - `message: String` +- `workspace_id: String` (header parameter) - - `class BetaPermissionError` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `type: :permission_error` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `message: String` +#### Returns - - `class BetaNotFoundError` +- `class BetaMessageBatch` - - `type: :not_found_error` + - `type: :message_batch` - - `message: String` + Object type. - - `class BetaRateLimitError` + For Message Batches, this is always `"message_batch"`. - - `type: :rate_limit_error` + - `id: String` - - `message: String` + Unique object identifier. - - `class BetaGatewayTimeoutError` + The format and length of IDs may change over time. - - `type: :timeout_error` + - `archived_at: Time` - - `message: String` + RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. - - `class BetaAPIError` + format: date-time - - `type: :api_error` + - `cancel_initiated_at: Time` - - `message: String` + RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. - - `class BetaOverloadedError` + format: date-time - - `type: :overloaded_error` + - `created_at: Time` - - `message: String` + RFC 3339 datetime string representing the time at which the Message Batch was created. - - `request_id: String` + format: date-time - - `class BetaMessageBatchCanceledResult` + - `ended_at: Time` - - `type: :canceled` + RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. - - `class BetaMessageBatchExpiredResult` + Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. - - `type: :expired` + format: date-time -#### Example + - `expires_at: Time` -```ruby -require "anthropic" + RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + format: date-time -stream = anthropic.beta.messages.batches.results_streaming("message_batch_id") + - `processing_status: :in_progress | :canceling | :ended` -stream.each do |batch| - puts(batch) -end -``` + Processing status of the Message Batch. -## Beta › Agents + - `:in_progress` -### Create Agent + - `:canceling` -`beta.agents.create(**kwargs) -> BetaManagedAgentsAgent` + - `:ended` -**POST** `/v1/agents` + - `request_counts: BetaMessageBatchRequestCounts` -Create Agent + Tallies requests within the Message Batch, categorized by their status. -#### Parameters + Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. -- `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` + - `canceled: Integer` - Model identifier. Accepts the [model string](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby#latest-models-comparison), e.g. `claude-opus-5-5`, or a `model_config` object for additional configuration control + Number of requests in the Message Batch that have been canceled. - - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` + This is zero until processing of the entire Message Batch has ended. - The model that will power your agent. + - `errored: Integer` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + Number of requests in the Message Batch that encountered an error. - - `:"claude-haiku-5-5"` + This is zero until processing of the entire Message Batch has ended. - Fastest model for high-volume, real-time tasks + - `expired: Integer` - - `:"claude-sonnet-5-5"` + Number of requests in the Message Batch that have expired. - Efficient model for coding and agents + This is zero until processing of the entire Message Batch has ended. - - `:"claude-opus-5-5"` + - `processing: Integer` - Powerful intelligence for coding, knowledge work, and long-running agents + Number of requests in the Message Batch that are processing. - - `:"claude-fable-5-1"` + - `succeeded: Integer` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Number of requests in the Message Batch that have completed successfully. - - `:"claude-sonnet-5"` + This is zero until processing of the entire Message Batch has ended. - Efficient model for coding and agents + - `results_url: String` - - `:"claude-fable-5"` + URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. - Next generation of intelligence for the hardest knowledge work and coding problems + Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - - `:"claude-opus-5"` +#### Example - Powerful intelligence for long-running agents and coding +```ruby +require "anthropic" - - `:"claude-opus-4-8"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Powerful intelligence for long-running agents and coding +page = anthropic.beta.messages.batches.list - - `:"claude-opus-4-7"` +puts(page) +``` - Powerful intelligence for long-running agents and coding +##### Response (200) - - `:"claude-opus-4-6"` +```json +{ + "data": [ + { + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "archived_at": "2024-08-20T18:37:24.100435Z", + "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", + "created_at": "2024-08-20T18:37:24.100435Z", + "ended_at": "2024-08-20T18:37:24.100435Z", + "expires_at": "2024-08-20T18:37:24.100435Z", + "processing_status": "in_progress", + "request_counts": { + "canceled": 10, + "errored": 30, + "expired": 10, + "processing": 100, + "succeeded": 50 + }, + "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", + "type": "message_batch" + } + ], + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" +} +``` - Powerful intelligence for long-running agents and coding +### Cancel a Message Batch - - `:"claude-sonnet-4-6"` +`beta.messages.batches.cancel(message_batch_id, **kwargs) -> BetaMessageBatch` - Best combination of speed and intelligence +**POST** `/v1/messages/batches/{message_batch_id}/cancel` - - `:"claude-haiku-4-5"` +Batches may be canceled any time before processing ends. Once cancellation is initiated, the batch enters a `canceling` state, at which time the system may complete any in-progress, non-interruptible requests before finalizing cancellation. - - `:"claude-haiku-4-5-20251001"` +The number of canceled requests is specified in `request_counts`. To determine which requests were canceled, check the individual results within the batch. Note that cancellation may not result in any canceled requests if they were non-interruptible. - - `:"claude-opus-4-5"` +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - Powerful intelligence for long-running agents and coding +#### Parameters - - `:"claude-opus-4-5-20251101"` +- `message_batch_id: String` (path parameter) - Powerful intelligence for long-running agents and coding + ID of the Message Batch. - - `:"claude-sonnet-4-5"` +- `betas: Array[AnthropicBeta]` (header parameter) - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Optional header to specify the beta version(s) you want to use. - High-performance model for agents and coding + - `String = String` - - `:"claude-sonnet-4-5-20250929"` + - `:"message-batches-2024-09-24"` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:"prompt-caching-2024-07-31"` - High-performance model for agents and coding + - `:"computer-use-2024-10-22"` - - `String = String` + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsModelConfigParams` + - `:"pdfs-2024-09-25"` - An object that defines additional configuration control over model use + - `:"token-counting-2024-11-01"` - - `id: BetaManagedAgentsModel` + - `:"token-efficient-tools-2025-02-19"` - The model that will power your agent. + - `:"output-128k-2025-02-19"` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `:"files-api-2025-04-14"` - - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` + - `:"mcp-client-2025-04-04"` - How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. + - `:"mcp-client-2025-11-20"` - - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` + - `:"dev-full-thinking-2025-05-14"` - How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. + - `:"interleaved-thinking-2025-05-14"` - - `:low` + - `:"code-execution-2025-05-22"` - Low effort. Favors latency over reasoning depth. + - `:"extended-cache-ttl-2025-04-11"` - - `:medium` + - `:"context-1m-2025-08-07"` - Medium effort. Balances latency and reasoning depth. + - `:"context-management-2025-06-27"` - - `:high` + - `:"model-context-window-exceeded-2025-08-26"` - High effort. Favors reasoning depth. + - `:"skills-2025-10-02"` - - `:xhigh` + - `:"fast-mode-2026-02-01"` - Extra-high effort. Not all models accept this level. + - `:"output-300k-2026-03-24"` - - `:max` + - `:"user-profiles-2026-03-24"` - Maximum effort. Favors reasoning depth over latency. + - `:"user-profiles-2026-08-18"` - - `class BetaManagedAgentsEffortLow` + - `:"user-profiles-2026-09-04"` - Low effort. Favors latency over reasoning depth. + - `:"advisor-tool-2026-03-01"` - - `type: :low` + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsEffortMedium` + - `:"cache-diagnosis-2026-04-07"` - Medium effort. Balances latency and reasoning depth. + - `:"dreaming-2026-04-21"` - - `type: :medium` + - `:"thinking-token-count-2026-05-13"` - - `class BetaManagedAgentsEffortHigh` + - `:"server-side-fallback-2026-06-01"` - High effort. Favors reasoning depth. + - `:"server-side-fallback-2026-07-01"` - - `type: :high` + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsEffortXhigh` + - `:"fallback-credit-2026-07-01"` - Extra-high effort. Not all models accept this level. + - `:"agent-memory-2026-07-22"` - - `type: :xhigh` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsEffortMax` + - `:"compact-2026-01-12"` - Maximum effort. Favors reasoning depth over latency. + - `:"computer-use-2025-11-24"` - - `type: :max` + - `:"mcp-tunnels-2026-06-22"` - - `inference_geo: String` + - `:"structured-outputs-2025-11-13"` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. + - `:"task-budgets-2026-03-13"` - - `speed: :standard | :fast` + - `:"thinking-display-updates-2026-08-18"` - Inference speed mode. Defaults to `standard`. + - `:"ce-user-management-2026-07-13"` - - `:standard` + - `:"mid-conversation-output-config-2026-07-01"` - - `:fast` + - `:"thinking-binding-controls-2026-08-01"` -- `name: String` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Human-readable name for the agent. + - `:"compact-2026-09-04"` - minLength: 1, maxLength: 256 + - `:"inline-tools-2026-09-15"` -- `description: String` + - `:"mcp-client-2026-09-15"` - Description of what the agent does. + - `:"ce-plugins-2026-09-01"` - maxLength: 2048 + - `:"spend-limit-reads-2026-09-26"` -- `execution_identity: BetaManagedAgentsExecutionIdentityParams` + - `:"telemetry-destinations-2026-08-11"` - Execution principal for runs of this agent. Omitting it, sending null, or sending `{"type": "service_account"}` stores the default. + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsAWSRoleExecutionIdentityParams` +- `workspace_id: String` (header parameter) - An AWS IAM role principal. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `type: :aws_role` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `role_arn: String` +#### Returns - The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters. +- `class BetaMessageBatch` - maxLength: 2048 + - `type: :message_batch` - - `class BetaManagedAgentsServiceAccountExecutionIdentityParams` + Object type. - The Anthropic-managed service account — the default execution principal. Carries no identifier. + For Message Batches, this is always `"message_batch"`. - - `type: :service_account` + - `id: String` -- `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` + Unique object identifier. - MCP servers this agent connects to. Maximum 20. Names must be unique within the array. Every server must be referenced by an `mcp_toolset` in `tools`; unreferenced servers are rejected. See the [MCP connector guide](https://platform.claude.com/docs/en/managed-agents/mcp-connector?sdk_languages=ruby). + The format and length of IDs may change over time. - - `type: :url` + - `archived_at: Time` - - `name: String` + RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. - Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. + format: date-time - minLength: 1, maxLength: 255 + - `cancel_initiated_at: Time` - - `url: String` + RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. - Endpoint URL for the MCP server. + format: date-time - maxLength: 2048 + - `created_at: Time` -- `metadata: Hash[Symbol, String]` + RFC 3339 datetime string representing the time at which the Message Batch was created. - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + format: date-time -- `multiagent: BetaManagedAgentsMultiagentParams` + - `ended_at: Time` - Multiagent orchestration configuration. + RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. - - `class BetaManagedAgentsMultiagentCoordinatorParams` + Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. - A coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the `agents` roster. + format: date-time - - `type: :coordinator` + - `expires_at: Time` - - `agents: Array[BetaManagedAgentsMultiagentRosterEntryParams]` + RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. - Agents the coordinator may spawn as session threads. 1–20 entries. Each entry is an agent ID string, a versioned `{"type":"agent","id","version"}` reference, or `{"type":"self"}` to allow recursive self-invocation. Entries must reference distinct agents (after resolving `self` and string forms); at most one `self`. Referenced agents must exist, must not be archived, and must not themselves have `multiagent` set (depth limit 1). + format: date-time - - `String = String` + - `processing_status: :in_progress | :canceling | :ended` - - `class BetaManagedAgentsAgentParams` + Processing status of the Message Batch. - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `:in_progress` - - `type: :agent` + - `:canceling` - - `id: String` + - `:ended` - The `agent` ID. + - `request_counts: BetaMessageBatchRequestCounts` - minLength: 1, maxLength: 128 + Tallies requests within the Message Batch, categorized by their status. - - `version: Integer` + Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. - The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. + - `canceled: Integer` - format: int32 + Number of requests in the Message Batch that have been canceled. - - `class BetaManagedAgentsMultiagentSelfParams` + This is zero until processing of the entire Message Batch has ended. - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + - `errored: Integer` - - `type: :self` + Number of requests in the Message Batch that encountered an error. - - `class BetaManagedAgentsAdvisorParams` + This is zero until processing of the entire Message Batch has ended. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. At most one per roster; the entry occupies the roster name `anthropic.advisor`. + - `expired: Integer` - - `type: :advisor` + Number of requests in the Message Batch that have expired. - - `model: String` + This is zero until processing of the entire Message Batch has ended. - A Claude model id. The model must be permitted as an advisor for this agent's model. + - `processing: Integer` - minLength: 1, maxLength: 256 + Number of requests in the Message Batch that are processing. - - `class BetaManagedAgentsMultiagent20261001Params` + - `succeeded: Integer` - Multiagent configuration with three members, each enabled or disabled on its own. On an update, if the agent's stored `multiagent` also has type `multiagent_20261001`, this configuration is merged into the stored one, level by level, instead of replacing it. A key that the update omits keeps its stored value. A key sent as null takes its default, on create as well, so `"workflows": null` enables workflows. An object sent with a `type` other than the stored one replaces the stored object, and the keys that it omits take their defaults. A `predefined_agents` list that is sent replaces the stored list. Every object that is sent needs its `type`, and an enabled `advisor` needs its `model`. Other validation applies to the merged result. + Number of requests in the Message Batch that have completed successfully. - - `type: :multiagent_20261001` + This is zero until processing of the entire Message Batch has ended. - - `advisor: BetaManagedAgentsMultiagentAdvisorParams` + - `results_url: String` - Whether the session's primary thread can consult an advisor model. Defaults to disabled. + URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. - - `class BetaManagedAgentsMultiagentAdvisorEnabledParams` + Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - The session's primary thread can consult `model` mid-turn. +#### Example - - `type: :enabled` +```ruby +require "anthropic" - - `model: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - A Claude model id. The model must be permitted as an advisor for this agent's model. +beta_message_batch = anthropic.beta.messages.batches.cancel("message_batch_id") - minLength: 1, maxLength: 256 +puts(beta_message_batch) +``` - - `class BetaManagedAgentsMultiagentAdvisorDisabledParams` +##### Response (200) - The agent has no advisor. +```json +{ + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "archived_at": "2024-08-20T18:37:24.100435Z", + "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", + "created_at": "2024-08-20T18:37:24.100435Z", + "ended_at": "2024-08-20T18:37:24.100435Z", + "expires_at": "2024-08-20T18:37:24.100435Z", + "processing_status": "in_progress", + "request_counts": { + "canceled": 10, + "errored": 30, + "expired": 10, + "processing": 100, + "succeeded": 50 + }, + "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", + "type": "message_batch" +} +``` - - `type: :disabled` +### Delete a Message Batch - - `subagents: BetaManagedAgentsMultiagentSubagentsParams` +`beta.messages.batches.delete(message_batch_id, **kwargs) -> BetaDeletedMessageBatch` - Whether the agent can spawn session threads. Defaults to enabled. +**DELETE** `/v1/messages/batches/{message_batch_id}` - - `class BetaManagedAgentsMultiagentSubagentsEnabledParams` +Delete a Message Batch. - The agent can spawn session threads. Each thread runs a predefined agent, which is a saved agent in `predefined_agents`, or an inline agent, which the agent defines when it spawns the thread and which is not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. +Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it. - - `type: :enabled` +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` +#### Parameters - Whether the agent can define inline agents when it spawns session threads. Defaults to enabled. +- `message_batch_id: String` (path parameter) - - `class BetaManagedAgentsMultiagentInlineAgentsEnabledParams` + ID of the Message Batch. - The agent can define inline agents. +- `betas: Array[AnthropicBeta]` (header parameter) - - `type: :enabled` + Optional header to specify the beta version(s) you want to use. - - `class BetaManagedAgentsMultiagentInlineAgentsDisabledParams` + - `String = String` - The agent cannot define inline agents. + - `:"message-batches-2024-09-24"` - - `type: :disabled` + - `:"prompt-caching-2024-07-31"` - - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + - `:"computer-use-2024-10-22"` - Predefined agents that this agent can spawn as session threads. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `workflows.predefined_agents`, and an agent in one list is not added to the other. + - `:"computer-use-2025-01-24"` - - `String = String` + - `:"pdfs-2024-09-25"` - - `class BetaManagedAgentsAgentParams` + - `:"token-counting-2024-11-01"` - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsMultiagentSelfParams` + - `:"output-128k-2025-02-19"` - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsMultiagentSubagentsDisabledParams` + - `:"mcp-client-2025-04-04"` - The agent cannot spawn session threads. + - `:"mcp-client-2025-11-20"` - - `type: :disabled` + - `:"dev-full-thinking-2025-05-14"` - - `workflows: BetaManagedAgentsMultiagentWorkflowsParams` + - `:"interleaved-thinking-2025-05-14"` - Whether the agent can start workflow runs. Defaults to enabled. + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsMultiagentWorkflowsEnabledParams` + - `:"extended-cache-ttl-2025-04-11"` - The agent can start workflow runs. Each run follows a plan, a program that the agent writes. A plan can use predefined agents, which are the saved agents in `predefined_agents`, and inline agents, which it defines itself and which are not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. + - `:"context-1m-2025-08-07"` - - `type: :enabled` + - `:"context-management-2025-06-27"` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` + - `:"model-context-window-exceeded-2025-08-26"` - Whether a run's plan can define inline agents. Defaults to enabled. + - `:"skills-2025-10-02"` - - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + - `:"fast-mode-2026-02-01"` - Predefined agents that a run's plan can use. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `subagents.predefined_agents`, and an agent in one list is not added to the other. + - `:"output-300k-2026-03-24"` - - `String = String` + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsAgentParams` + - `:"user-profiles-2026-08-18"` - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `:"user-profiles-2026-09-04"` - - `class BetaManagedAgentsMultiagentSelfParams` + - `:"advisor-tool-2026-03-01"` - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsMultiagentWorkflowsDisabledParams` + - `:"cache-diagnosis-2026-04-07"` - The agent cannot start workflow runs. + - `:"dreaming-2026-04-21"` - - `type: :disabled` + - `:"thinking-token-count-2026-05-13"` -- `skills: Array[BetaManagedAgentsSkillParams]` + - `:"server-side-fallback-2026-06-01"` - Skills available to the agent. + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsAnthropicSkillParams` + - `:"fallback-credit-2026-06-01"` - An Anthropic-managed skill. + - `:"fallback-credit-2026-07-01"` - - `type: :anthropic` + - `:"agent-memory-2026-07-22"` - - `skill_id: String` + - `:"mid-conversation-tool-changes-2026-07-01"` - Identifier of the Anthropic skill (e.g., "xlsx"). + - `:"compact-2026-01-12"` - minLength: 1, maxLength: 64 + - `:"computer-use-2025-11-24"` - - `version: String` + - `:"mcp-tunnels-2026-06-22"` - Version to pin. Defaults to latest if omitted. + - `:"structured-outputs-2025-11-13"` - minLength: 1, maxLength: 64 + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsCustomSkillParams` + - `:"thinking-display-updates-2026-08-18"` - A user-created custom skill. + - `:"ce-user-management-2026-07-13"` - - `type: :custom` + - `:"mid-conversation-output-config-2026-07-01"` - - `skill_id: String` + - `:"thinking-binding-controls-2026-08-01"` - Tagged ID of the custom skill (e.g., "skill_01XJ5..."). + - `:"mid-conversation-system-clear-at-2026-08-21"` - minLength: 1, maxLength: 64 + - `:"compact-2026-09-04"` - - `version: String` + - `:"inline-tools-2026-09-15"` - Version to pin. Defaults to latest if omitted. + - `:"mcp-client-2026-09-15"` - minLength: 1, maxLength: 64 + - `:"ce-plugins-2026-09-01"` -- `system_: String` + - `:"spend-limit-reads-2026-09-26"` - System prompt for the agent. + - `:"telemetry-destinations-2026-08-11"` - maxLength: 100000 + - `:"webhooks-2026-10-07"` -- `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` +- `workspace_id: String` (header parameter) - Tool configurations available to the agent. Maximum of 256 tools across all toolsets allowed. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaManagedAgentsAgentToolset20260401Params` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. +#### Returns - - `type: :agent_toolset_20260401` +- `class BetaDeletedMessageBatch` - - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` + - `type: :message_batch_deleted` - Per-tool configuration overrides. + Deleted object type. - - `class BetaManagedAgentsBashToolConfigParams` + For Message Batches, this is always `"message_batch_deleted"`. - Configuration override for the bash tool. + - `id: String` - - `type: :bash` + ID of the Message Batch. - - `name: :bash` +#### Example - Must be "bash". +```ruby +require "anthropic" - - `enabled: bool` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Whether this tool is enabled and available to Claude. Overrides the default_config setting. +beta_deleted_message_batch = anthropic.beta.messages.batches.delete("message_batch_id") - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +puts(beta_deleted_message_batch) +``` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. +##### Response (200) - - `class BetaManagedAgentsAlwaysAllowPolicy` +```json +{ + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "type": "message_batch_deleted" +} +``` - Tool calls are automatically approved without user confirmation. +### Retrieve Message Batch results - - `type: :always_allow` +`beta.messages.batches.results_streaming(message_batch_id, **kwargs) -> JsonLStream` - - `class BetaManagedAgentsAlwaysAskPolicy` +**GET** `/v1/messages/batches/{message_batch_id}/results` - Tool calls require user confirmation before execution. +Streams the results of a Message Batch as a `.jsonl` file. - - `type: :always_ask` +Each line in the file is a JSON object containing the result of a single request in the Message Batch. Results are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - - `class BetaManagedAgentsAutoPolicy` +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +#### Parameters - - `type: :auto` +- `message_batch_id: String` (path parameter) - - `class BetaManagedAgentsEditToolConfigParams` + ID of the Message Batch. - Configuration override for the edit tool. +- `betas: Array[AnthropicBeta]` (header parameter) - - `type: :edit` + Optional header to specify the beta version(s) you want to use. - - `name: :edit` + - `String = String` - Must be "edit". + - `:"message-batches-2024-09-24"` - - `enabled: bool` + - `:"prompt-caching-2024-07-31"` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `:"computer-use-2024-10-22"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"computer-use-2025-01-24"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:"pdfs-2024-09-25"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"token-counting-2024-11-01"` - Tool calls are automatically approved without user confirmation. + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"output-128k-2025-02-19"` - Tool calls require user confirmation before execution. + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsAutoPolicy` + - `:"mcp-client-2025-04-04"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"mcp-client-2025-11-20"` - - `class BetaManagedAgentsReadToolConfigParams` + - `:"dev-full-thinking-2025-05-14"` - Configuration override for the read tool. + - `:"interleaved-thinking-2025-05-14"` - - `type: :read` + - `:"code-execution-2025-05-22"` - - `name: :read` + - `:"extended-cache-ttl-2025-04-11"` - Must be "read". + - `:"context-1m-2025-08-07"` - - `enabled: bool` + - `:"context-management-2025-06-27"` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `:"model-context-window-exceeded-2025-08-26"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"skills-2025-10-02"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:"fast-mode-2026-02-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"output-300k-2026-03-24"` - Tool calls are automatically approved without user confirmation. + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"user-profiles-2026-08-18"` - Tool calls require user confirmation before execution. + - `:"user-profiles-2026-09-04"` - - `class BetaManagedAgentsAutoPolicy` + - `:"advisor-tool-2026-03-01"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsWriteToolConfigParams` + - `:"cache-diagnosis-2026-04-07"` - Configuration override for the write tool. + - `:"dreaming-2026-04-21"` - - `type: :write` + - `:"thinking-token-count-2026-05-13"` - - `name: :write` + - `:"server-side-fallback-2026-06-01"` - Must be "write". + - `:"server-side-fallback-2026-07-01"` - - `enabled: bool` + - `:"fallback-credit-2026-06-01"` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `:"fallback-credit-2026-07-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"agent-memory-2026-07-22"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"compact-2026-01-12"` - Tool calls are automatically approved without user confirmation. + - `:"computer-use-2025-11-24"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"mcp-tunnels-2026-06-22"` - Tool calls require user confirmation before execution. + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsAutoPolicy` + - `:"task-budgets-2026-03-13"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaManagedAgentsGlobToolConfigParams` + - `:"ce-user-management-2026-07-13"` - Configuration override for the glob tool. + - `:"mid-conversation-output-config-2026-07-01"` - - `type: :glob` + - `:"thinking-binding-controls-2026-08-01"` - - `name: :glob` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Must be "glob". + - `:"compact-2026-09-04"` - - `enabled: bool` + - `:"inline-tools-2026-09-15"` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `:"mcp-client-2026-09-15"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"ce-plugins-2026-09-01"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:"spend-limit-reads-2026-09-26"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"telemetry-destinations-2026-08-11"` - Tool calls are automatically approved without user confirmation. + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsAlwaysAskPolicy` +- `workspace_id: String` (header parameter) - Tool calls require user confirmation before execution. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaManagedAgentsAutoPolicy` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +#### Returns - - `class BetaManagedAgentsGrepToolConfigParams` +- `class BetaMessageBatchIndividualResponse` - Configuration override for the grep tool. + This is a single line in the response `.jsonl` file and does not represent the response as a whole. - - `type: :grep` + - `custom_id: String` - - `name: :grep` + Developer-provided ID created for each request in a Message Batch. Useful for matching results to requests, as results may be given out of request order. - Must be "grep". + Must be unique for each request within the Message Batch. - - `enabled: bool` + - `result: BetaMessageBatchResult` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + Processing result for this request. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Contains a Message output if processing was successful, an error response if processing failed, or the reason why processing was not attempted, such as cancellation or expiration. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `class BetaMessageBatchSucceededResult` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :succeeded` - Tool calls are automatically approved without user confirmation. + - `message: BetaMessage` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :message` - Tool calls require user confirmation before execution. + Object type. - - `class BetaManagedAgentsAutoPolicy` + For Messages, this is always `"message"`. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `id: String` - - `class BetaManagedAgentsWebFetchToolConfigParams` + Unique object identifier. - Configuration override for the web_fetch tool. + The format and length of IDs may change over time. - - `type: :web_fetch` + - `container: BetaContainer` - - `name: :web_fetch` + Information about the container used in this request. - Must be "web_fetch". + This will be non-null if a container tool (e.g. code execution) was used. - - `allowed_domains: Array[String]` + - `id: String` - Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + Identifier for the container used in this request - - `blocked_domains: Array[String]` + - `expires_at: Time` - Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + The time at which the container will expire. - - `enabled: bool` + format: date-time - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `skills: Array[BetaContainerSkill]` - - `max_content_tokens: Integer` + Skills loaded in the container - Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. + - `type: :anthropic | :custom` - format: int32 + Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:anthropic` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:custom` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `skill_id: String` - Tool calls are automatically approved without user confirmation. + Skill ID - - `class BetaManagedAgentsAlwaysAskPolicy` + minLength: 1, maxLength: 64 - Tool calls require user confirmation before execution. + - `version: String` - - `class BetaManagedAgentsAutoPolicy` + The resolved version: a skill version ID for custom skills. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + minLength: 1, maxLength: 64 - - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` + - `content: Array[BetaContentBlock]` - Which sources contribute URLs the tool may fetch. Omit to allow every source. + Content generated by the model. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + This is an array of content blocks, each of which has a `type` that determines its shape. - Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. + Example: - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + ```json + [{"type": "text", "text": "Hi, I'm Claude."}] + ``` - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + If the request input `messages` ended with an `assistant` turn, then the response `content` will continue directly from that last turn. You can use this to constrain the model's output. - - `:all` + For example, if the input `messages` were: - - `:none` + ```json + [ + {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, + {"role": "assistant", "content": "The best answer is ("} + ] + ``` - - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` + Then the response `content` might be: - Which tools' results contribute URLs that may be fetched. + ```json + [{"type": "text", "text": "B)"}] + ``` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `class BetaTextBlock` - Every URL from this source may be fetched. This is the default. + - `type: :text` - - `type: :all` + - `citations: Array[BetaTextCitation]` - - `class BetaManagedAgentsWebFetchURLSourceNone` + Citations supporting the text block. - This source contributes no URLs that may be fetched. + The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`. - - `type: :none` + - `class BetaCitationCharLocation` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `type: :char_location` - Only the named tools' results contribute URLs that may be fetched. + - `cited_text: String` - - `type: :only` + - `document_index: Integer` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + minimum: 0 - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `document_title: String` - - `type: :tool_reference` + - `end_char_index: Integer` - Must be "tool_reference". + - `file_id: String` - - `name: String` + - `start_char_index: Integer` - Name of the tool. Compared exactly, so upper and lower case letters are different. + minimum: 0 - minLength: 1, maxLength: 128 + - `class BetaCitationPageLocation` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `type: :page_location` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `cited_text: String` - - `type: :except` + - `document_index: Integer` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + minimum: 0 - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `document_title: String` - - `type: :tool_reference` + - `end_page_number: Integer` - Must be "tool_reference". + - `file_id: String` - - `name: String` + - `start_page_number: Integer` - Name of the tool. Compared exactly, so upper and lower case letters are different. + minimum: 1 - minLength: 1, maxLength: 128 + - `class BetaCitationContentBlockLocation` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + - `type: :content_block_location` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". + - `cited_text: String` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` + The full text of the cited block range, concatenated. - Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + - `document_index: Integer` - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + minimum: 0 - - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` + - `document_title: String` - Whether URLs in the text of user messages may be fetched. + - `end_block_index: Integer` - - `class BetaManagedAgentsWebFetchURLSourceAll` + Exclusive 0-based end index of the cited block range in the source's `content` array. - Every URL from this source may be fetched. This is the default. + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `file_id: String` - This source contributes no URLs that may be fetched. + - `start_block_index: Integer` - - `class BetaManagedAgentsWebSearchToolConfigParams` + 0-based index of the first cited block in the source's `content` array. - Configuration override for the web_search tool. + minimum: 0 - - `type: :web_search` + - `class BetaCitationsWebSearchResultLocation` - - `name: :web_search` + - `type: :web_search_result_location` - Must be "web_search". + - `cited_text: String` - - `allowed_domains: Array[String]` + - `encrypted_index: String` - Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + - `title: String` - - `blocked_domains: Array[String]` + maxLength: 512 - Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + - `url: String` - - `enabled: bool` + - `class BetaCitationSearchResultLocation` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `type: :search_result_location` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `cited_text: String` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + The full text of the cited block range, concatenated. - - `class BetaManagedAgentsAlwaysAllowPolicy` + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. - Tool calls are automatically approved without user confirmation. + - `end_block_index: Integer` - - `class BetaManagedAgentsAlwaysAskPolicy` + Exclusive 0-based end index of the cited block range in the source's `content` array. - Tool calls require user confirmation before execution. + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. - - `class BetaManagedAgentsAutoPolicy` + - `search_result_index: Integer` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. - - `user_location: BetaManagedAgentsUserLocation` + Counted separately from `document_index`; server-side web search results are not included in this count. - Approximate user location for search result localization. + minimum: 0 - - `type: :approximate` + - `source: String` - Location precision. Only "approximate" is supported. + - `start_block_index: Integer` - - `city: String` + 0-based index of the first cited block in the source's `content` array. - City name. + minimum: 0 - minLength: 1, maxLength: 255 + - `title: String` - - `country: String` + - `text: String` - Two-letter ISO 3166-1 country code, uppercase. + - `class BetaThinkingBlock` - - `region: String` + - `type: :thinking` - Region or state name. + - `signature: String` - minLength: 1, maxLength: 255 + A value used to verify that this thinking block was generated by Claude when it is passed back to the API. - - `timezone: String` + This is an opaque field and should not be interpreted or parsed. When passing thinking blocks back to the API (required when using tools with extended thinking), pass them back exactly as received, with this field intact. - IANA timezone identifier, e.g. "America/Los_Angeles". + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. - minLength: 1, maxLength: 255 + - `thinking: String` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` + The text of Claude's thinking process for this block. - Default configuration applied to all tools in this set. + - `class BetaRedactedThinkingBlock` - - `enabled: bool` + - `type: :redacted_thinking` - Whether tools are enabled and available to Claude by default. Defaults to true if not specified. + - `data: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The contents of this redacted thinking block, returned when portions of the model's thinking were safety-redacted. This field is opaque and encrypted, with no readable content. - Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. + Pass `redacted_thinking` blocks back to the API unchanged when continuing a multi-turn conversation. - - `class BetaManagedAgentsAlwaysAllowPolicy` + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby#redacted-thinking-blocks) for details. - Tool calls are automatically approved without user confirmation. + - `class BetaToolUseBlock` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :tool_use` - Tool calls require user confirmation before execution. + - `id: String` - - `class BetaManagedAgentsAutoPolicy` + pattern: ^[a-zA-Z0-9_-]+$ - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `input: Hash[Symbol, untyped]` - - `class BetaManagedAgentsMCPToolsetParams` + - `name: String` - Configuration for tools from an MCP server defined in `mcp_servers`. + minLength: 1 - - `type: :mcp_toolset` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `mcp_server_name: String` + - `class BetaDirectCaller` - Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. + Tool invocation directly from the model. - minLength: 1, maxLength: 255 + - `type: :direct` - - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` + - `class BetaServerToolCaller` - Per-tool configuration overrides. + Tool invocation generated by a server-side tool. - - `name: String` + - `type: :code_execution_20250825` - Name of the MCP tool to configure. 1-128 characters. + - `tool_id: String` - minLength: 1, maxLength: 128 + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `enabled: bool` + - `class BetaServerToolCaller20260120` - Whether this tool is enabled. Overrides the `default_config` setting. + - `type: :code_execution_20260120` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `tool_id: String` - Permission policy for this tool. Overrides the `default_config` setting. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `toolset_name: String` - Tool calls are automatically approved without user confirmation. + For a toolset member tool_use, the toolset family. - - `class BetaManagedAgentsAlwaysAskPolicy` + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ - Tool calls require user confirmation before execution. + - `class BetaServerToolUseBlock` - - `class BetaManagedAgentsAutoPolicy` + - `type: :server_tool_use` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `id: String` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - Default configuration for all tools from this server. + - `input: Hash[Symbol, untyped]` - - `enabled: bool` + - `name: :advisor | :web_search | :web_fetch | 5 more` - Whether tools are enabled by default. Defaults to true if not specified. + - `:advisor` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:web_search` - Default permission policy for tools from this server. + - `:web_fetch` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:code_execution` - Tool calls are automatically approved without user confirmation. + - `:bash_code_execution` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:text_editor_code_execution` - Tool calls require user confirmation before execution. + - `:tool_search_tool_regex` - - `class BetaManagedAgentsAutoPolicy` + - `:tool_search_tool_bm25` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `class BetaManagedAgentsCustomToolParams` + - `class BetaDirectCaller` - A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. + Tool invocation directly from the model. - - `type: :custom` + - `class BetaServerToolCaller` - - `description: String` + Tool invocation generated by a server-side tool. - Description of what the tool does, shown to the agent to help it decide when to use the tool. + - `class BetaServerToolCaller20260120` - minLength: 1 + - `class BetaWebSearchToolResultBlock` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `type: :web_search_tool_result` - JSON Schema defining the expected input parameters for the tool. + - `content: BetaWebSearchToolResultBlockContent` - - `type: :object` + - `class BetaWebSearchToolResultError` - - `properties: Hash[Symbol, untyped]` + - `type: :web_search_tool_result_error` - - `required: Array[String]` + - `error_code: BetaWebSearchToolResultErrorCode` - - `name: String` + - `:invalid_tool_input` - Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. + - `:unavailable` - minLength: 1, maxLength: 128 + - `:max_uses_exceeded` -- `betas: Array[AnthropicBeta]` (header parameter) + - `:too_many_requests` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `:query_too_long` - - `String = String` + - `:request_too_large` - - `:"message-batches-2024-09-24"` + - `UnionMember1 = Array[BetaWebSearchResultBlock]` - - `:"prompt-caching-2024-07-31"` + - `type: :web_search_result` - - `:"computer-use-2024-10-22"` + - `encrypted_content: String` - - `:"computer-use-2025-01-24"` + - `page_age: String` - - `:"pdfs-2024-09-25"` + - `title: String` - - `:"token-counting-2024-11-01"` + - `url: String` - - `:"token-efficient-tools-2025-02-19"` + - `tool_use_id: String` - - `:"output-128k-2025-02-19"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `:"files-api-2025-04-14"` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - - `:"mcp-client-2025-04-04"` + - `class BetaDirectCaller` - - `:"mcp-client-2025-11-20"` + Tool invocation directly from the model. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaServerToolCaller` - - `:"interleaved-thinking-2025-05-14"` + Tool invocation generated by a server-side tool. - - `:"code-execution-2025-05-22"` + - `class BetaServerToolCaller20260120` - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaWebFetchToolResultBlock` - - `:"context-1m-2025-08-07"` + - `type: :web_fetch_tool_result` - - `:"context-management-2025-06-27"` + - `content: BetaWebFetchToolResultErrorBlock | BetaWebFetchBlock` - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaWebFetchToolResultErrorBlock` - - `:"skills-2025-10-02"` + - `type: :web_fetch_tool_result_error` - - `:"fast-mode-2026-02-01"` + - `error_code: BetaWebFetchToolResultErrorCode` - - `:"output-300k-2026-03-24"` + - `:invalid_tool_input` - - `:"user-profiles-2026-03-24"` + - `:url_too_long` - - `:"user-profiles-2026-08-18"` + - `:url_not_allowed` - - `:"user-profiles-2026-09-04"` + - `:url_not_in_prior_context` - - `:"advisor-tool-2026-03-01"` + - `:url_not_accessible` - - `:"managed-agents-2026-04-01"` + - `:unsupported_content_type` - - `:"cache-diagnosis-2026-04-07"` + - `:too_many_requests` - - `:"dreaming-2026-04-21"` + - `:max_uses_exceeded` - - `:"thinking-token-count-2026-05-13"` + - `:unavailable` - - `:"server-side-fallback-2026-06-01"` + - `:content_too_large` - - `:"server-side-fallback-2026-07-01"` + - `class BetaWebFetchBlock` - - `:"fallback-credit-2026-06-01"` + - `type: :web_fetch_result` - - `:"fallback-credit-2026-07-01"` + - `content: BetaDocumentBlock` - - `:"agent-memory-2026-07-22"` + - `type: :document` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `citations: BetaCitationConfig` - - `:"compact-2026-01-12"` + Citation configuration for the document - - `:"computer-use-2025-11-24"` + - `enabled: bool` - - `:"mcp-tunnels-2026-06-22"` + - `source: BetaBase64PDFSource | BetaPlainTextSource` - - `:"structured-outputs-2025-11-13"` + - `class BetaBase64PDFSource` - - `:"task-budgets-2026-03-13"` + - `type: :base64` - - `:"thinking-display-updates-2026-08-18"` + - `data: String` - - `:"ce-user-management-2026-07-13"` + format: byte - - `:"mid-conversation-output-config-2026-07-01"` + - `media_type: :"application/pdf"` - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaPlainTextSource` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :text` - - `:"compact-2026-09-04"` + - `data: String` - - `:"inline-tools-2026-09-15"` + - `media_type: :"text/plain"` - - `:"mcp-client-2026-09-15"` + - `title: String` - - `:"ce-plugins-2026-09-01"` + The title of the document - - `:"spend-limit-reads-2026-09-26"` + - `retrieved_at: String` - - `:"telemetry-destinations-2026-08-11"` + ISO 8601 timestamp when the content was retrieved -- `workspace_id: String` (header parameter) + - `url: String` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Fetched content URL - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `tool_use_id: String` -#### Returns + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ -- `class BetaManagedAgentsAgent` + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` - A Managed Agents `agent`. + - `class BetaDirectCaller` - - `type: :agent` + Tool invocation directly from the model. - - `id: String` + - `class BetaServerToolCaller` - - `archived_at: Time` + Tool invocation generated by a server-side tool. - When the agent was archived. Null if not archived. + - `class BetaServerToolCaller20260120` - format: date-time + - `class BetaAdvisorToolResultBlock` - - `created_at: Time` + - `type: :advisor_tool_result` - A timestamp in RFC 3339 format + - `content: BetaAdvisorToolResultError | BetaAdvisorResultBlock | BetaAdvisorRedactedResultBlock` - format: date-time + - `class BetaAdvisorToolResultError` - - `description: String` + - `type: :advisor_tool_result_error` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` - Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `:max_uses_exceeded` - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `:prompt_too_long` - An AWS IAM role principal as returned in API responses. + - `:too_many_requests` - - `type: :aws_role` + - `:overloaded` - - `role_arn: String` + - `:unavailable` - The IAM role's ARN. + - `:execution_time_exceeded` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + - `:model_not_found` - The Anthropic-managed service account as returned in API responses. + - `class BetaAdvisorResultBlock` - - `type: :service_account` + - `type: :advisor_result` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `stop_reason: String` - - `type: :url` + The advisor sub-inference's stop reason (same values as the top-level message `stop_reason`). `max_tokens` indicates the advisor's output was truncated at the tool's `max_tokens` value or the advisor model's policy cap. - - `name: String` + - `text: String` - - `url: String` + - `class BetaAdvisorRedactedResultBlock` - - `metadata: Hash[Symbol, String]` + - `type: :advisor_redacted_result` - - `model: BetaManagedAgentsModelConfig` + - `encrypted_content: String` - Model identifier and configuration. + Opaque blob containing the advisor's output. Round-trip verbatim; do not inspect or modify. - - `id: BetaManagedAgentsModel` + - `stop_reason: String` - The model that will power your agent. + The advisor sub-inference's stop reason (same values as the top-level message `stop_reason`). - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `tool_use_id: String` - - `:"claude-haiku-5-5"` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - Fastest model for high-volume, real-time tasks + - `class BetaCodeExecutionToolResultBlock` - - `:"claude-sonnet-5-5"` + - `type: :code_execution_tool_result` - Efficient model for coding and agents + - `content: BetaCodeExecutionToolResultBlockContent` - - `:"claude-opus-5-5"` + - `class BetaCodeExecutionToolResultError` - Powerful intelligence for coding, knowledge work, and long-running agents + - `type: :code_execution_tool_result_error` - - `:"claude-fable-5-1"` + - `error_code: BetaCodeExecutionToolResultErrorCode` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `:invalid_tool_input` - - `:"claude-sonnet-5"` + - `:unavailable` - Efficient model for coding and agents + - `:too_many_requests` - - `:"claude-fable-5"` + - `:execution_time_exceeded` - Next generation of intelligence for the hardest knowledge work and coding problems + - `class BetaCodeExecutionResultBlock` - - `:"claude-opus-5"` + - `type: :code_execution_result` - Powerful intelligence for long-running agents and coding + - `content: Array[BetaCodeExecutionOutputBlock]` - - `:"claude-opus-4-8"` + - `type: :code_execution_output` - Powerful intelligence for long-running agents and coding + - `file_id: String` - - `:"claude-opus-4-7"` + - `return_code: Integer` - Powerful intelligence for long-running agents and coding + - `stderr: String` - - `:"claude-opus-4-6"` + - `stdout: String` - Powerful intelligence for long-running agents and coding + - `class BetaEncryptedCodeExecutionResultBlock` - - `:"claude-sonnet-4-6"` + Code execution result with encrypted stdout for PFC + web_search results. - Best combination of speed and intelligence + - `type: :encrypted_code_execution_result` - - `:"claude-haiku-4-5"` + - `content: Array[BetaCodeExecutionOutputBlock]` - - `:"claude-haiku-4-5-20251001"` + - `type: :code_execution_output` - - `:"claude-opus-4-5"` + - `file_id: String` - Powerful intelligence for long-running agents and coding + - `encrypted_stdout: String` - - `:"claude-opus-4-5-20251101"` + - `return_code: Integer` - Powerful intelligence for long-running agents and coding + - `stderr: String` - - `:"claude-sonnet-4-5"` + - `tool_use_id: String` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - High-performance model for agents and coding + - `class BetaBashCodeExecutionToolResultBlock` - - `:"claude-sonnet-4-5-20250929"` + - `type: :bash_code_execution_tool_result` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `content: BetaBashCodeExecutionToolResultError | BetaBashCodeExecutionResultBlock` - High-performance model for agents and coding + - `class BetaBashCodeExecutionToolResultError` - - `String = String` + - `type: :bash_code_execution_tool_result_error` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `:invalid_tool_input` - - `class BetaManagedAgentsEffortLow` + - `:unavailable` - Low effort. Favors latency over reasoning depth. + - `:too_many_requests` - - `type: :low` + - `:execution_time_exceeded` - - `class BetaManagedAgentsEffortMedium` + - `:output_file_too_large` - Medium effort. Balances latency and reasoning depth. + - `class BetaBashCodeExecutionResultBlock` - - `type: :medium` + - `type: :bash_code_execution_result` - - `class BetaManagedAgentsEffortHigh` + - `content: Array[BetaBashCodeExecutionOutputBlock]` - High effort. Favors reasoning depth. + - `type: :bash_code_execution_output` - - `type: :high` + - `file_id: String` - - `class BetaManagedAgentsEffortXhigh` + - `return_code: Integer` - Extra-high effort. Not all models accept this level. + - `stderr: String` - - `type: :xhigh` + - `stdout: String` - - `class BetaManagedAgentsEffortMax` + - `tool_use_id: String` - Maximum effort. Favors reasoning depth over latency. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `type: :max` + - `class BetaTextEditorCodeExecutionToolResultBlock` - - `inference_geo: String` + - `type: :text_editor_code_execution_tool_result` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `content: BetaTextEditorCodeExecutionToolResultError | BetaTextEditorCodeExecutionViewResultBlock | BetaTextEditorCodeExecutionCreateResultBlock | BetaTextEditorCodeExecutionStrReplaceResultBlock` - - `speed: :standard | :fast` + - `class BetaTextEditorCodeExecutionToolResultError` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `type: :text_editor_code_execution_tool_result_error` - - `:standard` + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` - - `:fast` + - `:invalid_tool_input` - - `multiagent: BetaManagedAgentsMultiagent` + - `:unavailable` - Multiagent orchestration configuration. Null when the agent is single-threaded. + - `:too_many_requests` - - `class BetaManagedAgentsMultiagentCoordinator` + - `:execution_time_exceeded` - Resolved coordinator topology with a concrete agent roster. + - `:file_not_found` - - `type: :coordinator` + - `error_message: String` - - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` + - `class BetaTextEditorCodeExecutionViewResultBlock` - Agents the coordinator may spawn as session threads, each resolved to a specific version. + - `type: :text_editor_code_execution_view_result` - - `class BetaManagedAgentsAgentReference` + - `content: String` - A resolved agent reference with a concrete version. + - `file_type: :text | :image | :pdf` - - `type: :agent` + - `:text` - - `id: String` + - `:image` - - `version: Integer` + - `:pdf` - format: int32 + - `num_lines: Integer` - - `class BetaManagedAgentsAdvisor` + - `start_line: Integer` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `total_lines: Integer` - - `type: :advisor` + - `class BetaTextEditorCodeExecutionCreateResultBlock` - - `model: String` + - `type: :text_editor_code_execution_create_result` - The advisor model id. + - `is_file_update: bool` - - `class BetaManagedAgentsMultiagent20261001` + - `class BetaTextEditorCodeExecutionStrReplaceResultBlock` - Resolved multiagent configuration with three members, each enabled or disabled on its own. + - `type: :text_editor_code_execution_str_replace_result` - - `type: :multiagent_20261001` + - `lines: Array[String]` - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `new_lines: Integer` - Whether the session's primary thread can consult an advisor model. + - `new_start: Integer` - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `old_lines: Integer` - The session's primary thread can consult `model` mid-turn. + - `old_start: Integer` - - `type: :enabled` + - `tool_use_id: String` - - `model: String` + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - The advisor model id. + - `class BetaToolSearchToolResultBlock` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + - `type: :tool_search_tool_result` - The agent has no advisor. + - `content: BetaToolSearchToolResultError | BetaToolSearchToolSearchResultBlock` - - `type: :disabled` + - `class BetaToolSearchToolResultError` - - `subagents: BetaManagedAgentsMultiagentSubagents` + - `type: :tool_search_tool_result_error` - Whether the agent can spawn session threads. + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` - - `class BetaManagedAgentsMultiagentSubagentsEnabled` + - `:invalid_tool_input` - The agent can spawn session threads. + - `:unavailable` - - `type: :enabled` + - `:too_many_requests` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:execution_time_exceeded` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + - `error_message: String` - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `class BetaToolSearchToolSearchResultBlock` - The agent can define inline agents. + - `type: :tool_search_tool_search_result` - - `type: :enabled` + - `tool_references: Array[BetaToolReferenceBlock]` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + - `type: :tool_reference` - The agent cannot define inline agents. + - `tool_name: String` - - `type: :disabled` + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + - `tool_use_id: String` - Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ - - `type: :agent` + - `class BetaMCPToolUseBlock` + + - `type: :mcp_tool_use` - `id: String` - - `version: Integer` + pattern: ^[a-zA-Z0-9_-]+$ - format: int32 + - `input: Hash[Symbol, untyped]` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `name: String` - The agent cannot spawn session threads. + The name of the MCP tool - - `type: :disabled` + - `server_name: String` - - `workflows: BetaManagedAgentsMultiagentWorkflows` + The name of the MCP server - Whether the agent can start workflow runs. + - `class BetaMCPToolResultBlock` - - `class BetaManagedAgentsMultiagentWorkflowsEnabled` + - `type: :mcp_tool_result` - The agent can start workflow runs. + - `content: String | Array[BetaTextBlock]` - - `type: :enabled` + - `String = String` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `BetaMCPToolResultBlockContent = Array[BetaTextBlock]` - Whether a run's plan can define inline agents, which are not saved. + - `type: :text` - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + - `citations: Array[BetaTextCitation]` - Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. + Citations supporting the text block. - - `type: :agent` + The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`. - - `id: String` + - `text: String` - - `version: Integer` + - `is_error: bool` - format: int32 + - `tool_use_id: String` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + pattern: ^[a-zA-Z0-9_-]+$ - The agent cannot start workflow runs. + - `class BetaContainerUploadBlock` - - `type: :disabled` + Response model for a file uploaded to the container. - - `name: String` + - `type: :container_upload` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `file_id: String` - - `class BetaManagedAgentsAnthropicSkill` + - `class BetaCompactionBlock` - A resolved Anthropic-managed skill. + A compaction block returned when autocompact is triggered. - - `type: :anthropic` + When content is None, it indicates the compaction failed to produce a valid + summary (e.g., malformed output from the model). Clients may round-trip + compaction blocks with null content; the server treats them as no-ops. - - `skill_id: String` + - `type: :compaction` - - `version: String` + - `content: String` - - `class BetaManagedAgentsCustomSkill` + Summary of compacted content, or null if compaction failed - A resolved user-created custom skill. + - `encrypted_content: String` - - `type: :custom` + Opaque metadata from prior compaction, to be round-tripped verbatim - - `skill_id: String` + - `signature: String` - - `version: String` + Signature over the summary, to be sent back with the block verbatim - - `system_: String` + - `tool_changes: Array[BetaResponseToolAdditionBlock | BetaResponseToolRemovalBlock]` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + The tool changes of the compacted range: the `tool_addition` and `tool_removal` blocks that take the request's `tools` to the tool set in effect at the end of the range, or `[]` when the range changed no tool. Absent when the server did not compute them. Send the block back unchanged. - - `class BetaManagedAgentsAgentToolset20260401` + - `class BetaResponseToolAdditionBlock` - - `type: :agent_toolset_20260401` + An entry of a `compaction` block's `tool_changes`: a tool the + compacted range made available, as a reference to a `tools` entry or + MCP toolset, or as the tool definition in effect at the end of the + range, by value. Send it back unchanged. - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `type: :tool_addition` - - `class BetaManagedAgentsBashToolConfig` + - `tool: BetaResponseToolChangeToolReference | BetaResponseToolChangeMCPToolReference | BetaResponseToolChangeMCPToolsetReference | BetaToolChangeToolDefinition` - Configuration for the bash tool. + The tool made available: a reference to a `tools` entry or MCP toolset, or a `tool_definition` carrying the definition by value. - - `type: :bash` + - `class BetaResponseToolChangeToolReference` - - `enabled: bool` + Reference to a single tool, by the name the model uses to call it, as + a `compaction` block's `tool_changes` entry reports it: a tool + declared in `tools` or defined by an earlier `tool_addition` block. + Send it back unchanged with the block. - - `name: :bash` + - `type: :tool_reference` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `name: String` - Permission policy for tool execution. + - `class BetaResponseToolChangeMCPToolReference` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Reference to a single MCP tool, by its server and its name on that + server, as a `compaction` block's `tool_changes` entry reports it. + Send it back unchanged with the block. - Tool calls are automatically approved without user confirmation. + - `type: :mcp_tool_reference` - - `type: :always_allow` + - `name: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `server_name: String` - Tool calls require user confirmation before execution. + - `class BetaResponseToolChangeMCPToolsetReference` - - `type: :always_ask` + Reference to every tool in the named MCP server's toolset, as a + `compaction` block's `tool_changes` entry reports it. Send it back + unchanged with the block. - - `class BetaManagedAgentsAutoPolicy` + - `type: :mcp_toolset_reference` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `server_name: String` - - `type: :auto` + - `class BetaToolChangeToolDefinition` - - `class BetaManagedAgentsEditToolConfig` + A tool defined by value, as a `compaction` block's `tool_changes` entry + reports it: `definition` is the tool's definition as it was sent, in the + form of a `tools` entry, without `cache_control`. Send it back unchanged + with the block. - Configuration for the edit tool. + - `type: :tool_definition` - - `type: :edit` + - `definition: BetaResponseToolUnion` - - `enabled: bool` + - `class BetaResponseTool` - - `name: :edit` + A custom tool definition, as sent. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :custom` - Permission policy for tool execution. + - `input_schema: BetaResponseToolInputSchema` - - `class BetaManagedAgentsAlwaysAllowPolicy` + [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. - Tool calls are automatically approved without user confirmation. + This defines the shape of the `input` that your tool accepts and that the model will produce. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :object` - Tool calls require user confirmation before execution. + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsAutoPolicy` + - `required: Array[String]` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `name: String` - - `class BetaManagedAgentsReadToolConfig` + Name of the tool. - Configuration for the read tool. + This is how the tool will be called by the model and in `tool_use` blocks. - - `type: :read` + minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ - - `enabled: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `name: :read` + - `:direct` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:code_execution_20250825` - Permission policy for tool execution. + - `:code_execution_20260120` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:code_execution_20260521` - Tool calls are automatically approved without user confirmation. + - `defer_loading: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Tool calls require user confirmation before execution. + - `description: String` - - `class BetaManagedAgentsAutoPolicy` + Description of what this tool does. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. - - `class BetaManagedAgentsWriteToolConfig` + - `eager_input_streaming: bool` - Configuration for the write tool. + Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. - - `type: :write` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `enabled: bool` + - `strict: bool` - - `name: :write` + When true, guarantees schema validation on tool names and inputs - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaToolBash20241022` - Permission policy for tool execution. + - `type: :bash_20241022` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `name: :bash` - Tool calls are automatically approved without user confirmation. + Name of the tool. - - `class BetaManagedAgentsAlwaysAskPolicy` + This is how the tool will be called by the model and in `tool_use` blocks. - Tool calls require user confirmation before execution. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsAutoPolicy` + - `:direct` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:code_execution_20250825` - - `class BetaManagedAgentsGlobToolConfig` + - `:code_execution_20260120` - Configuration for the glob tool. + - `:code_execution_20260521` - - `type: :glob` + - `cache_control: BetaCacheControlEphemeral` - - `enabled: bool` + Create a cache control breakpoint at this content block. - - `name: :glob` + - `type: :ephemeral` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `ttl: :"5m" | :"1h"` - Permission policy for tool execution. + The time-to-live for the cache control breakpoint. - - `class BetaManagedAgentsAlwaysAllowPolicy` + This may be one the following values: - Tool calls are automatically approved without user confirmation. + - `5m`: 5 minutes + - `1h`: 1 hour - - `class BetaManagedAgentsAlwaysAskPolicy` + Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. - Tool calls require user confirmation before execution. + - `:"5m"` - - `class BetaManagedAgentsAutoPolicy` + - `:"1h"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `defer_loading: bool` - - `class BetaManagedAgentsGrepToolConfig` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Configuration for the grep tool. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `type: :grep` + - `strict: bool` - - `enabled: bool` + When true, guarantees schema validation on tool names and inputs - - `name: :grep` + - `class BetaToolBash20250124` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :bash_20250124` - Permission policy for tool execution. + - `name: :bash` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Name of the tool. - Tool calls are automatically approved without user confirmation. + This is how the tool will be called by the model and in `tool_use` blocks. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Tool calls require user confirmation before execution. + - `:direct` - - `class BetaManagedAgentsAutoPolicy` + - `:code_execution_20250825` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:code_execution_20260120` - - `class BetaManagedAgentsWebFetchToolConfig` + - `:code_execution_20260521` - Configuration for the web_fetch tool. + - `cache_control: BetaCacheControlEphemeral` - - `type: :web_fetch` + Create a cache control breakpoint at this content block. - - `enabled: bool` + - `defer_loading: bool` - - `name: :web_fetch` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `input_examples: Array[Hash[Symbol, untyped]]` - Permission policy for tool execution. + - `strict: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + When true, guarantees schema validation on tool names and inputs - Tool calls are automatically approved without user confirmation. + - `class BetaCodeExecutionTool20250522` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :code_execution_20250522` - Tool calls require user confirmation before execution. + - `name: :code_execution` - - `class BetaManagedAgentsAutoPolicy` + Name of the tool. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + This is how the tool will be called by the model and in `tool_use` blocks. - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `:direct` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `:code_execution_20250825` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `:code_execution_20260120` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `:code_execution_20260521` - Every URL from this source may be fetched. This is the default. + - `cache_control: BetaCacheControlEphemeral` - - `type: :all` + Create a cache control breakpoint at this content block. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `defer_loading: bool` - This source contributes no URLs that may be fetched. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :none` + - `strict: bool` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + When true, guarantees schema validation on tool names and inputs - Only the named tools' results contribute URLs that may be fetched. + - `class BetaCodeExecutionTool20250825` - - `type: :only` + - `type: :code_execution_20250825` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `name: :code_execution` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + Name of the tool. - - `type: :tool_reference` + This is how the tool will be called by the model and in `tool_use` blocks. - Must be "tool_reference". + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `name: String` + - `:direct` - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `:code_execution_20250825` - minLength: 1, maxLength: 128 + - `:code_execution_20260120` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `:code_execution_20260521` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `cache_control: BetaCacheControlEphemeral` - - `type: :except` + Create a cache control breakpoint at this content block. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `defer_loading: bool` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :tool_reference` + - `strict: bool` - Must be "tool_reference". + When true, guarantees schema validation on tool names and inputs - - `name: String` + - `class BetaCodeExecutionTool20260120` - Name of the tool. Compared exactly, so upper and lower case letters are different. + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). - minLength: 1, maxLength: 128 + - `type: :code_execution_20260120` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `name: :code_execution` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + Name of the tool. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + This is how the tool will be called by the model and in `tool_use` blocks. - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `:direct` - Every URL from this source may be fetched. This is the default. + - `:code_execution_20250825` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `:code_execution_20260120` - This source contributes no URLs that may be fetched. + - `:code_execution_20260521` - - `allowed_domains: Array[String]` + - `cache_control: BetaCacheControlEphemeral` - - `blocked_domains: Array[String]` + Create a cache control breakpoint at this content block. - - `max_content_tokens: Integer` + - `defer_loading: bool` - format: int32 + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaManagedAgentsWebSearchToolConfig` + - `strict: bool` - Configuration for the web_search tool. + When true, guarantees schema validation on tool names and inputs - - `type: :web_search` + - `class BetaCodeExecutionTool20260521` - - `enabled: bool` + Code execution tool with REPL state persistence. - - `name: :web_search` + - `type: :code_execution_20260521` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `name: :code_execution` - Permission policy for tool execution. + Name of the tool. - - `class BetaManagedAgentsAlwaysAllowPolicy` + This is how the tool will be called by the model and in `tool_use` blocks. - Tool calls are automatically approved without user confirmation. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:direct` - Tool calls require user confirmation before execution. + - `:code_execution_20250825` - - `class BetaManagedAgentsAutoPolicy` + - `:code_execution_20260120` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:code_execution_20260521` - - `allowed_domains: Array[String]` + - `cache_control: BetaCacheControlEphemeral` - - `blocked_domains: Array[String]` + Create a cache control breakpoint at this content block. - - `user_location: BetaManagedAgentsUserLocation` + - `defer_loading: bool` - Approximate user location for search result localization. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :approximate` + - `strict: bool` - Location precision. Only "approximate" is supported. + When true, guarantees schema validation on tool names and inputs - - `city: String` + - `class BetaBrowserToolset20260801` - City name. + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. - minLength: 1, maxLength: 255 + - `type: :browser_toolset_20260801` - - `country: String` + - `cache_control: BetaCacheControlEphemeral` - Two-letter ISO 3166-1 country code, uppercase. + Create a cache control breakpoint at this content block. - - `region: String` + - `configs: BetaBrowserToolsetConfigs` - Region or state name. + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - minLength: 1, maxLength: 255 + - `type: BetaBrowserTypeConfig` - - `timezone: String` + `type`'s config overrides. - IANA timezone identifier, e.g. "America/Los_Angeles". + - `defer_loading: bool` - minLength: 1, maxLength: 255 + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `enabled: bool` - Resolved default configuration for agent tools. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `enabled: bool` + - `close_tab: BetaBrowserCloseTabConfig` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + `close_tab`'s config overrides. - Permission policy for tool execution. + - `defer_loading: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Tool calls are automatically approved without user confirmation. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Tool calls require user confirmation before execution. + - `double_click: BetaBrowserDoubleClickConfig` - - `class BetaManagedAgentsAutoPolicy` + `double_click`'s config overrides. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `defer_loading: bool` - - `class BetaManagedAgentsMCPToolset` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :mcp_toolset` + - `enabled: bool` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `enabled: bool` + - `file_upload: BetaBrowserFileUploadConfig` - - `name: String` + `file_upload`'s config overrides. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - Permission policy for tool execution. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `enabled: bool` - Tool calls are automatically approved without user confirmation. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `find: BetaBrowserFindConfig` - Tool calls require user confirmation before execution. + `find`'s config overrides. - - `class BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `enabled: bool` - Resolved default configuration for all tools from an MCP server. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `enabled: bool` + - `form_input: BetaBrowserFormInputConfig` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + `form_input`'s config overrides. - Permission policy for tool execution. + - `defer_loading: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Tool calls are automatically approved without user confirmation. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Tool calls require user confirmation before execution. + - `get_page_text: BetaBrowserGetPageTextConfig` - - `class BetaManagedAgentsAutoPolicy` + `get_page_text`'s config overrides. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `defer_loading: bool` - - `mcp_server_name: String` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsCustomTool` + - `enabled: bool` - A custom tool as returned in API responses. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :custom` + - `hold_key: BetaBrowserHoldKeyConfig` - - `description: String` + `hold_key`'s config overrides. - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `defer_loading: bool` - JSON Schema for custom tool input parameters. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :object` + - `enabled: bool` - - `properties: Hash[Symbol, untyped]` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `required: Array[String]` + - `hover: BetaBrowserHoverConfig` - - `name: String` + `hover`'s config overrides. - - `updated_at: Time` + - `defer_loading: bool` - A timestamp in RFC 3339 format + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - format: date-time + - `enabled: bool` - - `version: Integer` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - The agent's current version. Starts at 1 and increments when the agent is modified. + - `javascript_exec: BetaBrowserJavascriptExecConfig` - format: int32 + `javascript_exec`'s config overrides. -#### Example + - `defer_loading: bool` -```ruby -require "anthropic" + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `enabled: bool` -beta_managed_agents_agent = anthropic.beta.agents.create( - model: Anthropic::Beta::BetaManagedAgentsModel::CLAUDE_OPUS_5_5, - name: "My First Agent" -) + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. -puts(beta_managed_agents_agent) -``` + - `key: BetaBrowserKeyConfig` -##### Response (200) + `key`'s config overrides. -```json -{ - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "metadata": { - "foo": "bar" - }, - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "advisor": { - "type": "disabled" - }, - "subagents": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - }, - "type": "multiagent_20261001", - "workflows": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - } - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "updated_at": "2026-03-15T10:00:00Z", - "version": 1 -} -``` + - `defer_loading: bool` -### List Agents + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. -`beta.agents.list(**kwargs) -> PageCursor` + - `enabled: bool` -**GET** `/v1/agents` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. -List Agents + - `left_click: BetaBrowserLeftClickConfig` -#### Parameters + `left_click`'s config overrides. -- `created_at_gte: Time` (query parameter) + - `defer_loading: bool` - Return agents created at or after this time (inclusive). + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - format: date-time + - `enabled: bool` -- `created_at_lte: Time` (query parameter) + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Return agents created at or before this time (inclusive). + - `left_click_drag: BetaBrowserLeftClickDragConfig` - format: date-time + `left_click_drag`'s config overrides. -- `include_archived: bool` (query parameter) + - `defer_loading: bool` - Include archived agents in results. Defaults to false. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. -- `limit: Integer` (query parameter) + - `enabled: bool` - Maximum results per page. Default 20, maximum 100. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - format: int32 + - `left_mouse_down: BetaBrowserLeftMouseDownConfig` -- `page: String` (query parameter) + `left_mouse_down`'s config overrides. - Opaque pagination cursor from a previous response. + - `defer_loading: bool` -- `betas: Array[AnthropicBeta]` (header parameter) + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `enabled: bool` - - `String = String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"message-batches-2024-09-24"` + - `left_mouse_up: BetaBrowserLeftMouseUpConfig` - - `:"prompt-caching-2024-07-31"` + `left_mouse_up`'s config overrides. - - `:"computer-use-2024-10-22"` + - `defer_loading: bool` - - `:"computer-use-2025-01-24"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"pdfs-2024-09-25"` + - `enabled: bool` - - `:"token-counting-2024-11-01"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"token-efficient-tools-2025-02-19"` + - `list_tabs: BetaBrowserListTabsConfig` - - `:"output-128k-2025-02-19"` + `list_tabs`'s config overrides. - - `:"files-api-2025-04-14"` + - `defer_loading: bool` - - `:"mcp-client-2025-04-04"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"mcp-client-2025-11-20"` + - `enabled: bool` - - `:"dev-full-thinking-2025-05-14"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"interleaved-thinking-2025-05-14"` + - `middle_click: BetaBrowserMiddleClickConfig` - - `:"code-execution-2025-05-22"` + `middle_click`'s config overrides. - - `:"extended-cache-ttl-2025-04-11"` + - `defer_loading: bool` - - `:"context-1m-2025-08-07"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"context-management-2025-06-27"` + - `enabled: bool` - - `:"model-context-window-exceeded-2025-08-26"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"skills-2025-10-02"` + - `mouse_move: BetaBrowserMouseMoveConfig` - - `:"fast-mode-2026-02-01"` + `mouse_move`'s config overrides. - - `:"output-300k-2026-03-24"` + - `defer_loading: bool` - - `:"user-profiles-2026-03-24"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"user-profiles-2026-08-18"` + - `enabled: bool` - - `:"user-profiles-2026-09-04"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"advisor-tool-2026-03-01"` + - `navigate: BetaBrowserNavigateConfig` - - `:"managed-agents-2026-04-01"` + `navigate`'s config overrides. - - `:"cache-diagnosis-2026-04-07"` + - `defer_loading: bool` - - `:"dreaming-2026-04-21"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"thinking-token-count-2026-05-13"` + - `enabled: bool` - - `:"server-side-fallback-2026-06-01"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"server-side-fallback-2026-07-01"` + - `new_tab: BetaBrowserNewTabConfig` - - `:"fallback-credit-2026-06-01"` + `new_tab`'s config overrides. - - `:"fallback-credit-2026-07-01"` + - `defer_loading: bool` - - `:"agent-memory-2026-07-22"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `enabled: bool` - - `:"compact-2026-01-12"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"computer-use-2025-11-24"` + - `read_console: BetaBrowserReadConsoleConfig` - - `:"mcp-tunnels-2026-06-22"` + `read_console`'s config overrides. - - `:"structured-outputs-2025-11-13"` + - `defer_loading: bool` - - `:"task-budgets-2026-03-13"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"thinking-display-updates-2026-08-18"` + - `enabled: bool` - - `:"ce-user-management-2026-07-13"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"mid-conversation-output-config-2026-07-01"` + - `read_network: BetaBrowserReadNetworkConfig` - - `:"thinking-binding-controls-2026-08-01"` + `read_network`'s config overrides. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `defer_loading: bool` - - `:"compact-2026-09-04"` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"inline-tools-2026-09-15"` + - `enabled: bool` - - `:"mcp-client-2026-09-15"` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"ce-plugins-2026-09-01"` + - `read_page: BetaBrowserReadPageConfig` - - `:"spend-limit-reads-2026-09-26"` + `read_page`'s config overrides. - - `:"telemetry-destinations-2026-08-11"` + - `defer_loading: bool` -- `workspace_id: String` (header parameter) + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `enabled: bool` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. -#### Returns + - `right_click: BetaBrowserRightClickConfig` -- `class BetaManagedAgentsAgent` + `right_click`'s config overrides. - A Managed Agents `agent`. + - `defer_loading: bool` - - `type: :agent` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `id: String` + - `enabled: bool` - - `archived_at: Time` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - When the agent was archived. Null if not archived. + - `screenshot: BetaBrowserScreenshotConfig` - format: date-time + `screenshot`'s config overrides. - - `created_at: Time` + - `defer_loading: bool` - A timestamp in RFC 3339 format + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - format: date-time + - `enabled: bool` - - `description: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `scroll: BetaBrowserScrollConfig` - Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + `scroll`'s config overrides. - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `defer_loading: bool` - An AWS IAM role principal as returned in API responses. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :aws_role` + - `enabled: bool` - - `role_arn: String` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - The IAM role's ARN. + - `scroll_to: BetaBrowserScrollToConfig` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + `scroll_to`'s config overrides. - The Anthropic-managed service account as returned in API responses. + - `defer_loading: bool` - - `type: :service_account` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `enabled: bool` - - `type: :url` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `name: String` + - `switch_tab: BetaBrowserSwitchTabConfig` - - `url: String` + `switch_tab`'s config overrides. - - `metadata: Hash[Symbol, String]` + - `defer_loading: bool` - - `model: BetaManagedAgentsModelConfig` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Model identifier and configuration. + - `enabled: bool` - - `id: BetaManagedAgentsModel` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - The model that will power your agent. + - `triple_click: BetaBrowserTripleClickConfig` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + `triple_click`'s config overrides. - - `:"claude-haiku-5-5"` + - `defer_loading: bool` - Fastest model for high-volume, real-time tasks + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"claude-sonnet-5-5"` + - `enabled: bool` - Efficient model for coding and agents + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"claude-opus-5-5"` + - `wait: BetaBrowserWaitConfig` - Powerful intelligence for coding, knowledge work, and long-running agents + `wait`'s config overrides. - - `:"claude-fable-5-1"` + - `defer_loading: bool` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"claude-sonnet-5"` + - `enabled: bool` - Efficient model for coding and agents + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"claude-fable-5"` + - `zoom: BetaBrowserZoomConfig` - Next generation of intelligence for the hardest knowledge work and coding problems + `zoom`'s config overrides. - - `:"claude-opus-5"` + - `defer_loading: bool` - Powerful intelligence for long-running agents and coding + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `:"claude-opus-4-8"` + - `enabled: bool` - Powerful intelligence for long-running agents and coding + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `:"claude-opus-4-7"` + - `class BetaToolComputerUse20241022` - Powerful intelligence for long-running agents and coding + - `type: :computer_20241022` - - `:"claude-opus-4-6"` + - `display_height_px: Integer` - Powerful intelligence for long-running agents and coding + The height of the display in pixels. - - `:"claude-sonnet-4-6"` + minimum: 1 - Best combination of speed and intelligence + - `display_width_px: Integer` - - `:"claude-haiku-4-5"` + The width of the display in pixels. - - `:"claude-haiku-4-5-20251001"` + minimum: 1 - - `:"claude-opus-4-5"` + - `name: :computer` - Powerful intelligence for long-running agents and coding + Name of the tool. - - `:"claude-opus-4-5-20251101"` + This is how the tool will be called by the model and in `tool_use` blocks. - Powerful intelligence for long-running agents and coding + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:"claude-sonnet-4-5"` + - `:direct` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:code_execution_20250825` - High-performance model for agents and coding + - `:code_execution_20260120` - - `:"claude-sonnet-4-5-20250929"` + - `:code_execution_20260521` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `cache_control: BetaCacheControlEphemeral` - High-performance model for agents and coding + Create a cache control breakpoint at this content block. - - `String = String` + - `defer_loading: bool` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `display_number: Integer` - - `class BetaManagedAgentsEffortLow` + The X11 display number (e.g. 0, 1) for the display. - Low effort. Favors latency over reasoning depth. + minimum: 0 - - `type: :low` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `class BetaManagedAgentsEffortMedium` + - `strict: bool` - Medium effort. Balances latency and reasoning depth. + When true, guarantees schema validation on tool names and inputs - - `type: :medium` + - `class BetaMemoryTool20250818` - - `class BetaManagedAgentsEffortHigh` + - `type: :memory_20250818` - High effort. Favors reasoning depth. + - `name: :memory` - - `type: :high` + Name of the tool. - - `class BetaManagedAgentsEffortXhigh` + This is how the tool will be called by the model and in `tool_use` blocks. - Extra-high effort. Not all models accept this level. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `type: :xhigh` + - `:direct` - - `class BetaManagedAgentsEffortMax` + - `:code_execution_20250825` - Maximum effort. Favors reasoning depth over latency. + - `:code_execution_20260120` - - `type: :max` + - `:code_execution_20260521` - - `inference_geo: String` + - `cache_control: BetaCacheControlEphemeral` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + Create a cache control breakpoint at this content block. - - `speed: :standard | :fast` + - `defer_loading: bool` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:standard` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `:fast` + - `strict: bool` - - `multiagent: BetaManagedAgentsMultiagent` + When true, guarantees schema validation on tool names and inputs - Multiagent orchestration configuration. Null when the agent is single-threaded. + - `class BetaToolComputerUse20250124` - - `class BetaManagedAgentsMultiagentCoordinator` + - `type: :computer_20250124` - Resolved coordinator topology with a concrete agent roster. + - `display_height_px: Integer` - - `type: :coordinator` + The height of the display in pixels. - - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` + minimum: 1 - Agents the coordinator may spawn as session threads, each resolved to a specific version. + - `display_width_px: Integer` - - `class BetaManagedAgentsAgentReference` + The width of the display in pixels. - A resolved agent reference with a concrete version. + minimum: 1 - - `type: :agent` + - `name: :computer` - - `id: String` + Name of the tool. - - `version: Integer` + This is how the tool will be called by the model and in `tool_use` blocks. - format: int32 + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsAdvisor` + - `:direct` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `:code_execution_20250825` - - `type: :advisor` + - `:code_execution_20260120` - - `model: String` + - `:code_execution_20260521` - The advisor model id. + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsMultiagent20261001` + Create a cache control breakpoint at this content block. - Resolved multiagent configuration with three members, each enabled or disabled on its own. + - `defer_loading: bool` - - `type: :multiagent_20261001` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `display_number: Integer` - Whether the session's primary thread can consult an advisor model. + The X11 display number (e.g. 0, 1) for the display. - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + minimum: 0 - The session's primary thread can consult `model` mid-turn. + - `input_examples: Array[Hash[Symbol, untyped]]` - - `type: :enabled` + - `strict: bool` - - `model: String` + When true, guarantees schema validation on tool names and inputs - The advisor model id. + - `class BetaToolTextEditor20241022` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + - `type: :text_editor_20241022` - The agent has no advisor. + - `name: :str_replace_editor` - - `type: :disabled` + Name of the tool. - - `subagents: BetaManagedAgentsMultiagentSubagents` + This is how the tool will be called by the model and in `tool_use` blocks. - Whether the agent can spawn session threads. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsMultiagentSubagentsEnabled` + - `:direct` - The agent can spawn session threads. + - `:code_execution_20250825` - - `type: :enabled` + - `:code_execution_20260120` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:code_execution_20260521` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + Create a cache control breakpoint at this content block. - The agent can define inline agents. + - `defer_loading: bool` - - `type: :enabled` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + - `input_examples: Array[Hash[Symbol, untyped]]` - The agent cannot define inline agents. + - `strict: bool` - - `type: :disabled` + When true, guarantees schema validation on tool names and inputs - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + - `class BetaToolComputerUse20251124` - Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. + - `type: :computer_20251124` - - `type: :agent` + - `display_height_px: Integer` - - `id: String` + The height of the display in pixels. - - `version: Integer` + minimum: 1 - format: int32 + - `display_width_px: Integer` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + The width of the display in pixels. - The agent cannot spawn session threads. + minimum: 1 - - `type: :disabled` + - `name: :computer` - - `workflows: BetaManagedAgentsMultiagentWorkflows` + Name of the tool. - Whether the agent can start workflow runs. + This is how the tool will be called by the model and in `tool_use` blocks. - - `class BetaManagedAgentsMultiagentWorkflowsEnabled` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - The agent can start workflow runs. + - `:direct` - - `type: :enabled` + - `:code_execution_20250825` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:code_execution_20260120` - Whether a run's plan can define inline agents, which are not saved. + - `:code_execution_20260521` - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + - `cache_control: BetaCacheControlEphemeral` - Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. + Create a cache control breakpoint at this content block. - - `type: :agent` + - `defer_loading: bool` - - `id: String` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `version: Integer` + - `display_number: Integer` - format: int32 + The X11 display number (e.g. 0, 1) for the display. - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + minimum: 0 - The agent cannot start workflow runs. + - `enable_zoom: bool` - - `type: :disabled` + Whether to enable an action to take a zoomed-in screenshot of the screen. - - `name: String` + - `input_examples: Array[Hash[Symbol, untyped]]` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `strict: bool` - - `class BetaManagedAgentsAnthropicSkill` + When true, guarantees schema validation on tool names and inputs - A resolved Anthropic-managed skill. + - `class BetaComputerToolset20260801` - - `type: :anthropic` + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. - - `skill_id: String` + - `type: :computer_toolset_20260801` - - `version: String` + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsCustomSkill` + Create a cache control breakpoint at this content block. - A resolved user-created custom skill. + - `configs: BetaComputerToolsetConfigs` - - `type: :custom` + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. - - `skill_id: String` + - `type: BetaComputerTypeConfig` - - `version: String` + `type`'s config overrides. - - `system_: String` + - `defer_loading: bool` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsAgentToolset20260401` + - `enabled: bool` - - `type: :agent_toolset_20260401` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `cursor_position: BetaComputerCursorPositionConfig` - - `class BetaManagedAgentsBashToolConfig` + `cursor_position`'s config overrides. - Configuration for the bash tool. + - `defer_loading: bool` - - `type: :bash` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `enabled: bool` + - `enabled: bool` - - `name: :bash` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `double_click: BetaComputerDoubleClickConfig` - Permission policy for tool execution. + `double_click`'s config overrides. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `defer_loading: bool` - Tool calls are automatically approved without user confirmation. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :always_allow` + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Tool calls require user confirmation before execution. + - `hold_key: BetaComputerHoldKeyConfig` - - `type: :always_ask` + `hold_key`'s config overrides. - - `class BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :auto` + - `enabled: bool` - - `class BetaManagedAgentsEditToolConfig` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Configuration for the edit tool. + - `key: BetaComputerKeyConfig` - - `type: :edit` + `key`'s config overrides. - - `enabled: bool` + - `defer_loading: bool` - - `name: :edit` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `enabled: bool` - Permission policy for tool execution. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `left_click: BetaComputerLeftClickConfig` - Tool calls are automatically approved without user confirmation. + `left_click`'s config overrides. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `defer_loading: bool` - Tool calls require user confirmation before execution. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsAutoPolicy` + - `enabled: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaManagedAgentsReadToolConfig` + - `left_click_drag: BetaComputerLeftClickDragConfig` - Configuration for the read tool. + `left_click_drag`'s config overrides. - - `type: :read` + - `defer_loading: bool` - - `enabled: bool` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `name: :read` + - `enabled: bool` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Permission policy for tool execution. + - `left_mouse_down: BetaComputerLeftMouseDownConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + `left_mouse_down`'s config overrides. - Tool calls are automatically approved without user confirmation. + - `defer_loading: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Tool calls require user confirmation before execution. + - `enabled: bool` - - `class BetaManagedAgentsAutoPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `left_mouse_up: BetaComputerLeftMouseUpConfig` - - `class BetaManagedAgentsWriteToolConfig` + `left_mouse_up`'s config overrides. - Configuration for the write tool. + - `defer_loading: bool` - - `type: :write` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `enabled: bool` + - `enabled: bool` - - `name: :write` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `middle_click: BetaComputerMiddleClickConfig` - Permission policy for tool execution. + `middle_click`'s config overrides. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `defer_loading: bool` - Tool calls are automatically approved without user confirmation. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaManagedAgentsAutoPolicy` + - `mouse_move: BetaComputerMouseMoveConfig` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + `mouse_move`'s config overrides. - - `class BetaManagedAgentsGlobToolConfig` + - `defer_loading: bool` - Configuration for the glob tool. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `type: :glob` + - `enabled: bool` - - `enabled: bool` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `name: :glob` + - `right_click: BetaComputerRightClickConfig` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + `right_click`'s config overrides. - Permission policy for tool execution. + - `defer_loading: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Tool calls are automatically approved without user confirmation. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Tool calls require user confirmation before execution. + - `screenshot: BetaComputerScreenshotConfig` - - `class BetaManagedAgentsAutoPolicy` + `screenshot`'s config overrides. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `defer_loading: bool` - - `class BetaManagedAgentsGrepToolConfig` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Configuration for the grep tool. + - `enabled: bool` - - `type: :grep` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `enabled: bool` + - `scroll: BetaComputerScrollConfig` - - `name: :grep` + `scroll`'s config overrides. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - Permission policy for tool execution. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `enabled: bool` - Tool calls are automatically approved without user confirmation. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `triple_click: BetaComputerTripleClickConfig` - Tool calls require user confirmation before execution. + `triple_click`'s config overrides. - - `class BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - - `class BetaManagedAgentsWebFetchToolConfig` + - `enabled: bool` - Configuration for the web_fetch tool. + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - - `type: :web_fetch` + - `wait: BetaComputerWaitConfig` - - `enabled: bool` + `wait`'s config overrides. - - `name: :web_fetch` + - `defer_loading: bool` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - Permission policy for tool execution. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Tool calls are automatically approved without user confirmation. + - `zoom: BetaComputerZoomConfig` - - `class BetaManagedAgentsAlwaysAskPolicy` + `zoom`'s config overrides. - Tool calls require user confirmation before execution. + - `defer_loading: bool` - - `class BetaManagedAgentsAutoPolicy` + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `enabled: bool` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `class BetaToolTextEditor20250124` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `type: :text_editor_20250124` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `name: :str_replace_editor` - - `class BetaManagedAgentsWebFetchURLSourceAll` + Name of the tool. - Every URL from this source may be fetched. This is the default. + This is how the tool will be called by the model and in `tool_use` blocks. - - `type: :all` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `:direct` - This source contributes no URLs that may be fetched. + - `:code_execution_20250825` - - `type: :none` + - `:code_execution_20260120` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `:code_execution_20260521` - Only the named tools' results contribute URLs that may be fetched. + - `cache_control: BetaCacheControlEphemeral` - - `type: :only` + Create a cache control breakpoint at this content block. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `defer_loading: bool` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :tool_reference` + - `input_examples: Array[Hash[Symbol, untyped]]` - Must be "tool_reference". + - `strict: bool` - - `name: String` + When true, guarantees schema validation on tool names and inputs - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaToolTextEditor20250429` - minLength: 1, maxLength: 128 + - `type: :text_editor_20250429` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `name: :str_replace_based_edit_tool` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + Name of the tool. - - `type: :except` + This is how the tool will be called by the model and in `tool_use` blocks. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `:direct` - - `type: :tool_reference` + - `:code_execution_20250825` - Must be "tool_reference". + - `:code_execution_20260120` - - `name: String` + - `:code_execution_20260521` - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `cache_control: BetaCacheControlEphemeral` - minLength: 1, maxLength: 128 + Create a cache control breakpoint at this content block. - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `defer_loading: bool` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `input_examples: Array[Hash[Symbol, untyped]]` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `strict: bool` - - `class BetaManagedAgentsWebFetchURLSourceAll` + When true, guarantees schema validation on tool names and inputs - Every URL from this source may be fetched. This is the default. + - `class BetaToolTextEditor20250728` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `type: :text_editor_20250728` - This source contributes no URLs that may be fetched. + - `name: :str_replace_based_edit_tool` - - `allowed_domains: Array[String]` + Name of the tool. - - `blocked_domains: Array[String]` + This is how the tool will be called by the model and in `tool_use` blocks. - - `max_content_tokens: Integer` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - format: int32 + - `:direct` - - `class BetaManagedAgentsWebSearchToolConfig` + - `:code_execution_20250825` - Configuration for the web_search tool. + - `:code_execution_20260120` - - `type: :web_search` + - `:code_execution_20260521` - - `enabled: bool` + - `cache_control: BetaCacheControlEphemeral` - - `name: :web_search` + Create a cache control breakpoint at this content block. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - Permission policy for tool execution. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `input_examples: Array[Hash[Symbol, untyped]]` - Tool calls are automatically approved without user confirmation. + - `max_characters: Integer` - - `class BetaManagedAgentsAlwaysAskPolicy` + Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. - Tool calls require user confirmation before execution. + minimum: 1 - - `class BetaManagedAgentsAutoPolicy` + - `strict: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + When true, guarantees schema validation on tool names and inputs - - `allowed_domains: Array[String]` + - `class BetaWebSearchTool20250305` - - `blocked_domains: Array[String]` + - `type: :web_search_20250305` - - `user_location: BetaManagedAgentsUserLocation` + - `name: :web_search` - Approximate user location for search result localization. + Name of the tool. - - `type: :approximate` + This is how the tool will be called by the model and in `tool_use` blocks. - Location precision. Only "approximate" is supported. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `city: String` + - `:direct` - City name. + - `:code_execution_20250825` - minLength: 1, maxLength: 255 + - `:code_execution_20260120` - - `country: String` + - `:code_execution_20260521` - Two-letter ISO 3166-1 country code, uppercase. + - `allowed_domains: Array[String]` - - `region: String` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - Region or state name. + - `blocked_domains: Array[String]` - minLength: 1, maxLength: 255 + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `timezone: String` + - `cache_control: BetaCacheControlEphemeral` - IANA timezone identifier, e.g. "America/Los_Angeles". + Create a cache control breakpoint at this content block. - minLength: 1, maxLength: 255 + - `defer_loading: bool` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Resolved default configuration for agent tools. + - `max_uses: Integer` - - `enabled: bool` + Maximum number of times the tool can be used in the API request. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + minimum: 1 - Permission policy for tool execution. + - `strict: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + When true, guarantees schema validation on tool names and inputs - Tool calls are automatically approved without user confirmation. + - `user_location: BetaUserLocation` - - `class BetaManagedAgentsAlwaysAskPolicy` + Parameters for the user's location. Used to provide more relevant search results. - Tool calls require user confirmation before execution. + - `type: :approximate` - - `class BetaManagedAgentsAutoPolicy` + - `city: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The city of the user. - - `class BetaManagedAgentsMCPToolset` + minLength: 1, maxLength: 255 - - `type: :mcp_toolset` + - `country: String` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. - - `enabled: bool` + minLength: 2, maxLength: 2 - - `name: String` + - `region: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The region of the user. - Permission policy for tool execution. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `timezone: String` - Tool calls are automatically approved without user confirmation. + The [IANA timezone](https://nodatime.org/TimeZones) of the user. - - `class BetaManagedAgentsAlwaysAskPolicy` + minLength: 1, maxLength: 255 - Tool calls require user confirmation before execution. + - `class BetaWebFetchTool20250910` - - `class BetaManagedAgentsAutoPolicy` + - `type: :web_fetch_20250910` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `name: :web_fetch` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + Name of the tool. - Resolved default configuration for all tools from an MCP server. + This is how the tool will be called by the model and in `tool_use` blocks. - - `enabled: bool` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:direct` - Permission policy for tool execution. + - `:code_execution_20250825` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:code_execution_20260120` - Tool calls are automatically approved without user confirmation. + - `:code_execution_20260521` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `allowed_domains: Array[String]` - Tool calls require user confirmation before execution. + List of domains to allow fetching from - - `class BetaManagedAgentsAutoPolicy` + - `blocked_domains: Array[String]` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + List of domains to block fetching from - - `mcp_server_name: String` + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsCustomTool` + Create a cache control breakpoint at this content block. - A custom tool as returned in API responses. + - `citations: BetaCitationsConfigParam` - - `type: :custom` + Citations configuration for fetched documents. Citations are disabled by default. - - `description: String` + - `enabled: bool` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `defer_loading: bool` - JSON Schema for custom tool input parameters. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :object` + - `max_content_tokens: Integer` - - `properties: Hash[Symbol, untyped]` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `required: Array[String]` + minimum: 1 - - `name: String` + - `max_uses: Integer` - - `updated_at: Time` + Maximum number of times the tool can be used in the API request. - A timestamp in RFC 3339 format + minimum: 1 - format: date-time + - `strict: bool` - - `version: Integer` + When true, guarantees schema validation on tool names and inputs - The agent's current version. Starts at 1 and increments when the agent is modified. + - `url_sources: BetaWebFetchURLSources` - format: int32 + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. -#### Example + - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` -```ruby -require "anthropic" + Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaWebFetchURLSourceAll` -page = anthropic.beta.agents.list + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. -puts(page) -``` + - `type: :all` -##### Response (200) + - `class BetaWebFetchURLSourceNone` -```json -{ - "data": [ - { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "metadata": { - "foo": "bar" - }, - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "advisor": { - "type": "disabled" - }, - "subagents": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - }, - "type": "multiagent_20261001", - "workflows": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - } - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "updated_at": "2026-03-15T10:00:00Z", - "version": 1 - } - ], - "next_page": "next_page" -} -``` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. -### Get Agent + - `type: :none` -`beta.agents.retrieve(agent_id, **kwargs) -> BetaManagedAgentsAgent` + - `class BetaWebFetchURLSourceOnly` -**GET** `/v1/agents/{agent_id}` + The tool filter variant under which only the named tools' results + contribute. -Get Agent + - `type: :only` -#### Parameters + - `tools: Array[BetaWebFetchURLSourceToolReference]` -- `agent_id: String` (path parameter) + - `type: :tool_reference` - Unique identifier of the agent to retrieve. + - `name: String` -- `version: Integer` (query parameter) + - `class BetaWebFetchURLSourceExcept` - Agent version. Omit for the most recent version. Must be at least 1 if specified. + The tool filter variant under which every result but the named + tools' contributes. - format: int32 + - `type: :except` -- `betas: Array[AnthropicBeta]` (header parameter) + - `tools: Array[BetaWebFetchURLSourceToolReference]` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `type: :tool_reference` - - `String = String` + - `name: String` - - `:"message-batches-2024-09-24"` + - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` - - `:"prompt-caching-2024-07-31"` + Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. - - `:"computer-use-2024-10-22"` + - `class BetaWebFetchURLSourceAll` - - `:"computer-use-2025-01-24"` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - - `:"pdfs-2024-09-25"` + - `class BetaWebFetchURLSourceNone` - - `:"token-counting-2024-11-01"` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - - `:"token-efficient-tools-2025-02-19"` + - `class BetaWebFetchURLSourceOnly` - - `:"output-128k-2025-02-19"` + The tool filter variant under which only the named tools' results + contribute. - - `:"files-api-2025-04-14"` + - `class BetaWebFetchURLSourceExcept` - - `:"mcp-client-2025-04-04"` + The tool filter variant under which every result but the named + tools' contributes. - - `:"mcp-client-2025-11-20"` + - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` - - `:"dev-full-thinking-2025-05-14"` + Whether URLs in user messages are fetchable: "all" or "none". - - `:"interleaved-thinking-2025-05-14"` + - `class BetaWebFetchURLSourceAll` - - `:"code-execution-2025-05-22"` + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaWebFetchURLSourceNone` - - `:"context-1m-2025-08-07"` + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. - - `:"context-management-2025-06-27"` + - `class BetaWebSearchTool20260209` - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :web_search_20260209` - - `:"skills-2025-10-02"` + - `name: :web_search` - - `:"fast-mode-2026-02-01"` + Name of the tool. - - `:"output-300k-2026-03-24"` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:"user-profiles-2026-03-24"` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:"user-profiles-2026-08-18"` + - `:direct` - - `:"user-profiles-2026-09-04"` + - `:code_execution_20250825` - - `:"advisor-tool-2026-03-01"` + - `:code_execution_20260120` - - `:"managed-agents-2026-04-01"` + - `:code_execution_20260521` - - `:"cache-diagnosis-2026-04-07"` + - `allowed_domains: Array[String]` - - `:"dreaming-2026-04-21"` + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - - `:"thinking-token-count-2026-05-13"` + - `blocked_domains: Array[String]` - - `:"server-side-fallback-2026-06-01"` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - - `:"server-side-fallback-2026-07-01"` + - `cache_control: BetaCacheControlEphemeral` - - `:"fallback-credit-2026-06-01"` + Create a cache control breakpoint at this content block. - - `:"fallback-credit-2026-07-01"` + - `defer_loading: bool` - - `:"agent-memory-2026-07-22"` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `max_uses: Integer` - - `:"compact-2026-01-12"` + Maximum number of times the tool can be used in the API request. - - `:"computer-use-2025-11-24"` + minimum: 1 - - `:"mcp-tunnels-2026-06-22"` + - `strict: bool` - - `:"structured-outputs-2025-11-13"` + When true, guarantees schema validation on tool names and inputs - - `:"task-budgets-2026-03-13"` + - `user_location: BetaUserLocation` - - `:"thinking-display-updates-2026-08-18"` + Parameters for the user's location. Used to provide more relevant search results. - - `:"ce-user-management-2026-07-13"` + - `class BetaWebFetchTool20260209` - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :web_fetch_20260209` - - `:"thinking-binding-controls-2026-08-01"` + - `name: :web_fetch` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Name of the tool. - - `:"compact-2026-09-04"` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:"inline-tools-2026-09-15"` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:"mcp-client-2026-09-15"` + - `:direct` - - `:"ce-plugins-2026-09-01"` + - `:code_execution_20250825` - - `:"spend-limit-reads-2026-09-26"` + - `:code_execution_20260120` - - `:"telemetry-destinations-2026-08-11"` + - `:code_execution_20260521` -- `workspace_id: String` (header parameter) + - `allowed_domains: Array[String]` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + List of domains to allow fetching from - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `blocked_domains: Array[String]` -#### Returns + List of domains to block fetching from -- `class BetaManagedAgentsAgent` + - `cache_control: BetaCacheControlEphemeral` - A Managed Agents `agent`. + Create a cache control breakpoint at this content block. - - `type: :agent` + - `citations: BetaCitationsConfigParam` - - `id: String` + Citations configuration for fetched documents. Citations are disabled by default. - - `archived_at: Time` + - `defer_loading: bool` - When the agent was archived. Null if not archived. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - format: date-time + - `max_content_tokens: Integer` - - `created_at: Time` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - A timestamp in RFC 3339 format + minimum: 1 - format: date-time + - `max_uses: Integer` - - `description: String` + Maximum number of times the tool can be used in the API request. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + minimum: 1 - Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `strict: bool` - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + When true, guarantees schema validation on tool names and inputs - An AWS IAM role principal as returned in API responses. + - `url_sources: BetaWebFetchURLSources` - - `type: :aws_role` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `role_arn: String` + - `class BetaWebFetchTool20260309` - The IAM role's ARN. + Web fetch tool with use_cache parameter for bypassing cached content. - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + - `type: :web_fetch_20260309` - The Anthropic-managed service account as returned in API responses. + - `name: :web_fetch` - - `type: :service_account` + Name of the tool. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + This is how the tool will be called by the model and in `tool_use` blocks. - - `type: :url` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `name: String` + - `:direct` - - `url: String` + - `:code_execution_20250825` - - `metadata: Hash[Symbol, String]` + - `:code_execution_20260120` - - `model: BetaManagedAgentsModelConfig` + - `:code_execution_20260521` - Model identifier and configuration. + - `allowed_domains: Array[String]` - - `id: BetaManagedAgentsModel` + List of domains to allow fetching from - The model that will power your agent. + - `blocked_domains: Array[String]` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + List of domains to block fetching from - - `:"claude-haiku-5-5"` + - `cache_control: BetaCacheControlEphemeral` - Fastest model for high-volume, real-time tasks + Create a cache control breakpoint at this content block. - - `:"claude-sonnet-5-5"` + - `citations: BetaCitationsConfigParam` - Efficient model for coding and agents + Citations configuration for fetched documents. Citations are disabled by default. - - `:"claude-opus-5-5"` + - `defer_loading: bool` - Powerful intelligence for coding, knowledge work, and long-running agents + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:"claude-fable-5-1"` + - `max_content_tokens: Integer` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `:"claude-sonnet-5"` + minimum: 1 - Efficient model for coding and agents + - `max_uses: Integer` - - `:"claude-fable-5"` + Maximum number of times the tool can be used in the API request. - Next generation of intelligence for the hardest knowledge work and coding problems + minimum: 1 - - `:"claude-opus-5"` + - `strict: bool` - Powerful intelligence for long-running agents and coding + When true, guarantees schema validation on tool names and inputs - - `:"claude-opus-4-8"` + - `url_sources: BetaWebFetchURLSources` - Powerful intelligence for long-running agents and coding + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `:"claude-opus-4-7"` + - `use_cache: bool` - Powerful intelligence for long-running agents and coding + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - - `:"claude-opus-4-6"` + - `class BetaWebSearchTool20260318` - Powerful intelligence for long-running agents and coding + - `type: :web_search_20260318` - - `:"claude-sonnet-4-6"` + - `name: :web_search` - Best combination of speed and intelligence + Name of the tool. - - `:"claude-haiku-4-5"` + This is how the tool will be called by the model and in `tool_use` blocks. - - `:"claude-haiku-4-5-20251001"` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `:"claude-opus-4-5"` + - `:direct` - Powerful intelligence for long-running agents and coding + - `:code_execution_20250825` - - `:"claude-opus-4-5-20251101"` + - `:code_execution_20260120` - Powerful intelligence for long-running agents and coding + - `:code_execution_20260521` - - `:"claude-sonnet-4-5"` + - `allowed_domains: Array[String]` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. - High-performance model for agents and coding + - `blocked_domains: Array[String]` - - `:"claude-sonnet-4-5-20250929"` + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `cache_control: BetaCacheControlEphemeral` - High-performance model for agents and coding + Create a cache control breakpoint at this content block. - - `String = String` + - `defer_loading: bool` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `max_uses: Integer` - - `class BetaManagedAgentsEffortLow` + Maximum number of times the tool can be used in the API request. - Low effort. Favors latency over reasoning depth. + minimum: 1 - - `type: :low` + - `response_inclusion: :full | :excluded` - - `class BetaManagedAgentsEffortMedium` + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - Medium effort. Balances latency and reasoning depth. + - `:full` - - `type: :medium` + - `:excluded` - - `class BetaManagedAgentsEffortHigh` + - `strict: bool` - High effort. Favors reasoning depth. + When true, guarantees schema validation on tool names and inputs - - `type: :high` + - `user_location: BetaUserLocation` - - `class BetaManagedAgentsEffortXhigh` + Parameters for the user's location. Used to provide more relevant search results. - Extra-high effort. Not all models accept this level. + - `class BetaWebFetchTool20260318` - - `type: :xhigh` + - `type: :web_fetch_20260318` - - `class BetaManagedAgentsEffortMax` + - `name: :web_fetch` - Maximum effort. Favors reasoning depth over latency. + Name of the tool. - - `type: :max` + This is how the tool will be called by the model and in `tool_use` blocks. - - `inference_geo: String` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `:direct` - - `speed: :standard | :fast` + - `:code_execution_20250825` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `:code_execution_20260120` - - `:standard` + - `:code_execution_20260521` - - `:fast` + - `allowed_domains: Array[String]` - - `multiagent: BetaManagedAgentsMultiagent` + List of domains to allow fetching from - Multiagent orchestration configuration. Null when the agent is single-threaded. + - `blocked_domains: Array[String]` - - `class BetaManagedAgentsMultiagentCoordinator` + List of domains to block fetching from - Resolved coordinator topology with a concrete agent roster. + - `cache_control: BetaCacheControlEphemeral` - - `type: :coordinator` + Create a cache control breakpoint at this content block. - - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` + - `citations: BetaCitationsConfigParam` - Agents the coordinator may spawn as session threads, each resolved to a specific version. + Citations configuration for fetched documents. Citations are disabled by default. - - `class BetaManagedAgentsAgentReference` + - `defer_loading: bool` - A resolved agent reference with a concrete version. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :agent` + - `max_content_tokens: Integer` - - `id: String` + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - - `version: Integer` + minimum: 1 - format: int32 + - `max_uses: Integer` - - `class BetaManagedAgentsAdvisor` + Maximum number of times the tool can be used in the API request. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + minimum: 1 - - `type: :advisor` + - `response_inclusion: :full | :excluded` - - `model: String` + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - The advisor model id. + - `:full` - - `class BetaManagedAgentsMultiagent20261001` + - `:excluded` - Resolved multiagent configuration with three members, each enabled or disabled on its own. + - `strict: bool` - - `type: :multiagent_20261001` + When true, guarantees schema validation on tool names and inputs - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `url_sources: BetaWebFetchURLSources` - Whether the session's primary thread can consult an advisor model. + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `use_cache: bool` - The session's primary thread can consult `model` mid-turn. + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - - `type: :enabled` + - `class BetaAdvisorTool20260301` - - `model: String` + - `type: :advisor_20260301` - The advisor model id. + - `model: Model` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + The model that will complete your prompt. - The agent has no advisor. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `type: :disabled` + - `:"claude-haiku-5-5"` - - `subagents: BetaManagedAgentsMultiagentSubagents` + Fastest model for high-volume, real-time tasks - Whether the agent can spawn session threads. + - `:"claude-sonnet-5-5"` - - `class BetaManagedAgentsMultiagentSubagentsEnabled` + Efficient model for coding and agents - The agent can spawn session threads. + - `:"claude-fable-5-1"` - - `type: :enabled` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:"claude-opus-5-5"` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + Powerful intelligence for coding, knowledge work, and long-running agents - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `:"claude-mythos-5-1"` - The agent can define inline agents. + Our most capable model for cybersecurity and biology research, available through trusted access programs - - `type: :enabled` + - `:"claude-sonnet-5"` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + Efficient model for coding and agents - The agent cannot define inline agents. + - `:"claude-fable-5"` - - `type: :disabled` + Next generation of intelligence for the hardest knowledge work and coding problems - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + - `:"claude-mythos-5"` - Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. + Most capable model for cybersecurity and biology research - - `type: :agent` + - `:"claude-opus-5"` - - `id: String` + Powerful intelligence for long-running agents and coding - - `version: Integer` - - format: int32 + - `:"claude-opus-4-8"` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + Powerful intelligence for long-running agents and coding - The agent cannot spawn session threads. + - `:"claude-opus-4-7"` - - `type: :disabled` + Powerful intelligence for long-running agents and coding - - `workflows: BetaManagedAgentsMultiagentWorkflows` + - `:"claude-opus-4-6"` - Whether the agent can start workflow runs. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsMultiagentWorkflowsEnabled` + - `:"claude-sonnet-4-6"` - The agent can start workflow runs. + Best combination of speed and intelligence - - `type: :enabled` + - `:"claude-haiku-4-5"` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:"claude-haiku-4-5-20251001"` - Whether a run's plan can define inline agents, which are not saved. + - `:"claude-opus-4-5"` - - `predefined_agents: Array[BetaManagedAgentsAgentReference]` + Powerful intelligence for long-running agents and coding - Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. + - `:"claude-opus-4-5-20251101"` - - `type: :agent` + Powerful intelligence for long-running agents and coding - - `id: String` + - `:"claude-mythos-preview"` - - `version: Integer` + **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - format: int32 + New class of intelligence, strongest in coding and cybersecurity - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `:"claude-sonnet-4-5"` - The agent cannot start workflow runs. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `type: :disabled` + High-performance model for agents and coding - - `name: String` + - `:"claude-sonnet-4-5-20250929"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `class BetaManagedAgentsAnthropicSkill` + High-performance model for agents and coding - A resolved Anthropic-managed skill. + - `String = String` - - `type: :anthropic` + - `name: :advisor` - - `skill_id: String` + Name of the tool. - - `version: String` + This is how the tool will be called by the model and in `tool_use` blocks. - - `class BetaManagedAgentsCustomSkill` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - A resolved user-created custom skill. + - `:direct` - - `type: :custom` + - `:code_execution_20250825` - - `skill_id: String` + - `:code_execution_20260120` - - `version: String` + - `:code_execution_20260521` - - `system_: String` + - `cache_control: BetaCacheControlEphemeral` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Create a cache control breakpoint at this content block. - - `class BetaManagedAgentsAgentToolset20260401` + - `caching: BetaCacheControlEphemeral` - - `type: :agent_toolset_20260401` + Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `defer_loading: bool` - - `class BetaManagedAgentsBashToolConfig` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Configuration for the bash tool. + - `max_tokens: Integer` - - `type: :bash` + Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. - - `enabled: bool` + minimum: 1024 - - `name: :bash` + - `max_uses: Integer` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Maximum number of times the tool can be used in the API request. - Permission policy for tool execution. + minimum: 1 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `strict: bool` - Tool calls are automatically approved without user confirmation. + When true, guarantees schema validation on tool names and inputs - - `type: :always_allow` + - `class BetaToolSearchToolBm25_20251119` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` - Tool calls require user confirmation before execution. + - `:tool_search_tool_bm25_20251119` - - `type: :always_ask` + - `:tool_search_tool_bm25` - - `class BetaManagedAgentsAutoPolicy` + - `name: :tool_search_tool_bm25` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Name of the tool. - - `type: :auto` + This is how the tool will be called by the model and in `tool_use` blocks. - - `class BetaManagedAgentsEditToolConfig` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Configuration for the edit tool. + - `:direct` - - `type: :edit` + - `:code_execution_20250825` - - `enabled: bool` + - `:code_execution_20260120` - - `name: :edit` + - `:code_execution_20260521` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `cache_control: BetaCacheControlEphemeral` - Permission policy for tool execution. + Create a cache control breakpoint at this content block. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `defer_loading: bool` - Tool calls are automatically approved without user confirmation. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `strict: bool` - Tool calls require user confirmation before execution. + When true, guarantees schema validation on tool names and inputs - - `class BetaManagedAgentsAutoPolicy` + - `class BetaToolSearchToolRegex20251119` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` - - `class BetaManagedAgentsReadToolConfig` + - `:tool_search_tool_regex_20251119` - Configuration for the read tool. + - `:tool_search_tool_regex` - - `type: :read` + - `name: :tool_search_tool_regex` - - `enabled: bool` + Name of the tool. - - `name: :read` + This is how the tool will be called by the model and in `tool_use` blocks. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - Permission policy for tool execution. + - `:direct` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:code_execution_20250825` - Tool calls are automatically approved without user confirmation. + - `:code_execution_20260120` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:code_execution_20260521` - Tool calls require user confirmation before execution. + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsAutoPolicy` + Create a cache control breakpoint at this content block. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `defer_loading: bool` - - `class BetaManagedAgentsWriteToolConfig` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - Configuration for the write tool. + - `strict: bool` - - `type: :write` + When true, guarantees schema validation on tool names and inputs - - `enabled: bool` + - `class BetaMCPToolset` - - `name: :write` + Configuration for a group of tools from an MCP server. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. - Permission policy for tool execution. + - `type: :mcp_toolset` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `mcp_server_name: String` - Tool calls are automatically approved without user confirmation. + Name of the MCP server to configure tools for - - `class BetaManagedAgentsAlwaysAskPolicy` + minLength: 1, maxLength: 255 - Tool calls require user confirmation before execution. + - `cache_control: BetaCacheControlEphemeral` - - `class BetaManagedAgentsAutoPolicy` + Create a cache control breakpoint at this content block. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `configs: Hash[Symbol, BetaMCPToolConfig]` - - `class BetaManagedAgentsGlobToolConfig` + Configuration overrides for specific tools, keyed by tool name - Configuration for the glob tool. + - `defer_loading: bool` - - `type: :glob` + - `enabled: bool` - - `enabled: bool` + - `default_config: BetaMCPToolDefaultConfig` - - `name: :glob` + Default configuration applied to all tools from this server - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `defer_loading: bool` - Permission policy for tool execution. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `tools: Array[BetaMCPToolParam]` - Tool calls are automatically approved without user confirmation. + The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `input_schema: Hash[Symbol, untyped]` - Tool calls require user confirmation before execution. + The tool's input schema as the MCP server lists it, verbatim. - - `class BetaManagedAgentsAutoPolicy` + - `name: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The tool's name as the MCP server lists it (not prefixed with the server name). - - `class BetaManagedAgentsGrepToolConfig` + minLength: 1 - Configuration for the grep tool. + - `description: String` - - `type: :grep` + The tool's description as the MCP server lists it. - - `enabled: bool` + - `class BetaResponseToolRemovalBlock` - - `name: :grep` + An entry of a `compaction` block's `tool_changes`: a tool of the + request's `tools` (or an MCP tool or toolset) that the compacted range + withdrew. Send it back unchanged. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :tool_removal` - Permission policy for tool execution. + - `tool: BetaResponseToolChangeToolReference | BetaResponseToolChangeMCPToolReference | BetaResponseToolChangeMCPToolsetReference` - - `class BetaManagedAgentsAlwaysAllowPolicy` + A reference to the withdrawn `tools` entry, MCP tool or MCP toolset. - Tool calls are automatically approved without user confirmation. + - `class BetaResponseToolChangeToolReference` - - `class BetaManagedAgentsAlwaysAskPolicy` + Reference to a single tool, by the name the model uses to call it, as + a `compaction` block's `tool_changes` entry reports it: a tool + declared in `tools` or defined by an earlier `tool_addition` block. + Send it back unchanged with the block. - Tool calls require user confirmation before execution. + - `class BetaResponseToolChangeMCPToolReference` - - `class BetaManagedAgentsAutoPolicy` + Reference to a single MCP tool, by its server and its name on that + server, as a `compaction` block's `tool_changes` entry reports it. + Send it back unchanged with the block. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaResponseToolChangeMCPToolsetReference` - - `class BetaManagedAgentsWebFetchToolConfig` + Reference to every tool in the named MCP server's toolset, as a + `compaction` block's `tool_changes` entry reports it. Send it back + unchanged with the block. - Configuration for the web_fetch tool. + - `class BetaFallbackBlock` - - `type: :web_fetch` + Marks the point in `content` where one model's output gives way to the next. - - `enabled: bool` + One block appears per hop where a preceding model actually ran this turn and + declined. A turn where no preceding model ran and declined has no such + boundary and carries no block — the signal for whether a fallback model + served the response is the presence of a `fallback_message` entry in + `usage.iterations`, not this block. - - `name: :web_fetch` + The block is treated like a server-tool content block for streaming: it + arrives via the standard `content_block_start` / `content_block_stop` + pair and carries no deltas. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :fallback` - Permission policy for tool execution. + - `from: BetaFallbackInfo` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The model whose output ends at this point — the model that declined at this hop. When the declining hop is the requested model, its `model` echoes the top-level `model` string the caller sent (alias or canonical); when the declining hop is a fallback model, its `model` is that model's canonical id. - Tool calls are automatically approved without user confirmation. + - `model: Model` - - `class BetaManagedAgentsAlwaysAskPolicy` + The model that will complete your prompt. - Tool calls require user confirmation before execution. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `class BetaManagedAgentsAutoPolicy` + - `to: BetaFallbackInfo` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The fallback model producing the content that follows this block. Its `model` is always the canonical id. - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `trigger: BetaFallbackRefusalTrigger` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + What caused the `from` model to hand over at this hop. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `type: :refusal` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `category: :cyber | :bio | :frontier_llm | 2 more` - - `class BetaManagedAgentsWebFetchURLSourceAll` + The policy category that triggered the `from` model's refusal at this hop. `null` when the refusal doesn't map to a named category. Same vocabulary as `stop_details.category`. - Every URL from this source may be fetched. This is the default. + - `:cyber` - - `type: :all` + The request could enable cyber harm, such as malware or exploit development. Benign cybersecurity work can also trigger this category. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `:bio` - This source contributes no URLs that may be fetched. + The request could enable biological harm, such as dangerous lab methods. Beneficial life sciences work can also trigger this category. - - `type: :none` + - `:frontier_llm` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + The request could assist the development of competing AI models, which is restricted under [Anthropic's commercial terms](https://www.anthropic.com/legal/commercial-terms). Benign machine learning work can also trigger this category. - Only the named tools' results contribute URLs that may be fetched. + - `:reasoning_extraction` - - `type: :only` + The request asks the model to reproduce its internal reasoning in the response text. To get reasoning in a structured form instead, use [adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking?sdk_languages=ruby). - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `:general_harms` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + The request could be related to an area that was determined as harmful. Benign work might sometimes trigger this category. - - `type: :tool_reference` + - `class BetaMCPToolListingBlock` - Must be "tool_reference". + The tool listing the server fetched from an MCP server while producing + this response. Send the assistant message back unchanged, this block + included, so later requests use this listing instead of asking the MCP + server again. - - `name: String` + - `type: :mcp_tool_listing` - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `mcp_server_name: String` - minLength: 1, maxLength: 128 + - `tools: Array[BetaMCPTool]` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `input_schema: Hash[Symbol, untyped]` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `name: String` - - `type: :except` + - `description: String` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `context_management: BetaContextManagementResponse` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + Context management response. - - `type: :tool_reference` + Information about context management strategies applied during the request. - Must be "tool_reference". + - `applied_edits: Array[BetaClearToolUses20250919EditResponse | BetaClearThinking20251015EditResponse]` - - `name: String` + List of context management edits that were applied. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaClearToolUses20250919EditResponse` - minLength: 1, maxLength: 128 + - `type: :clear_tool_uses_20250919` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + The type of context management edit applied. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `cleared_input_tokens: Integer` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + Number of input tokens cleared by this edit. - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + minimum: 0 - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `cleared_tool_uses: Integer` - Every URL from this source may be fetched. This is the default. + Number of tool uses that were cleared. - - `class BetaManagedAgentsWebFetchURLSourceNone` + minimum: 0 - This source contributes no URLs that may be fetched. + - `class BetaClearThinking20251015EditResponse` - - `allowed_domains: Array[String]` + - `type: :clear_thinking_20251015` - - `blocked_domains: Array[String]` + The type of context management edit applied. - - `max_content_tokens: Integer` + - `cleared_input_tokens: Integer` - format: int32 + Number of input tokens cleared by this edit. - - `class BetaManagedAgentsWebSearchToolConfig` + minimum: 0 - Configuration for the web_search tool. + - `cleared_thinking_turns: Integer` - - `type: :web_search` + Number of thinking turns that were cleared. - - `enabled: bool` + minimum: 0 - - `name: :web_search` + - `diagnostics: BetaDiagnostics` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Request-level diagnostics. `null` when the request did not supply `diagnostics`, or when it did and no prompt-cache divergence was detected. - Permission policy for tool execution. + - `cache_miss_reason: BetaCacheMissReason` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed. - Tool calls are automatically approved without user confirmation. + - `class BetaCacheMissModelChanged` - - `class BetaManagedAgentsAlwaysAskPolicy` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. - Tool calls require user confirmation before execution. + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - - `class BetaManagedAgentsAutoPolicy` + - `type: :model_changed` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `cache_missed_input_tokens: Integer` - - `allowed_domains: Array[String]` + Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. - - `blocked_domains: Array[String]` + - `class BetaCacheMissSystemChanged` - - `user_location: BetaManagedAgentsUserLocation` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. - Approximate user location for search result localization. + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - - `type: :approximate` + - `type: :system_changed` - Location precision. Only "approximate" is supported. + - `cache_missed_input_tokens: Integer` - - `city: String` + Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. - City name. + - `class BetaCacheMissToolsChanged` - minLength: 1, maxLength: 255 + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. - - `country: String` + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - Two-letter ISO 3166-1 country code, uppercase. + - `type: :tools_changed` - - `region: String` + - `cache_missed_input_tokens: Integer` - Region or state name. + Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. - minLength: 1, maxLength: 255 + - `class BetaCacheMissMessagesChanged` - - `timezone: String` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. - IANA timezone identifier, e.g. "America/Los_Angeles". + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - minLength: 1, maxLength: 255 + - `type: :messages_changed` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `cache_missed_input_tokens: Integer` - Resolved default configuration for agent tools. + Approximate number of input tokens that would have been read from cache had the prefix matched the previous request. - - `enabled: bool` + - `class BetaCacheMissPreviousMessageNotFound` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. - Permission policy for tool execution. + This doesn't mean that this request changed. - - `class BetaManagedAgentsAlwaysAllowPolicy` + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - Tool calls are automatically approved without user confirmation. + - `type: :previous_message_not_found` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaCacheMissUnavailable` - Tool calls require user confirmation before execution. + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. - - `class BetaManagedAgentsAutoPolicy` + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. - - `class BetaManagedAgentsMCPToolset` + - `type: :unavailable` - - `type: :mcp_toolset` + - `model: Model` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + The model that will complete your prompt. - - `enabled: bool` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `name: String` + - `role: :assistant` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Conversational role of the generated message. - Permission policy for tool execution. + This will always be `"assistant"`. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `stop_details: BetaRefusalStopDetails` - Tool calls are automatically approved without user confirmation. + Structured information about why model output stopped. - - `class BetaManagedAgentsAlwaysAskPolicy` + This is `null` when the `stop_reason` has no additional detail to report. - Tool calls require user confirmation before execution. + - `type: :refusal` - - `class BetaManagedAgentsAutoPolicy` + - `category: :cyber | :bio | :frontier_llm | 2 more` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The policy category that triggered the refusal. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + `null` when the refusal doesn't map to a named category. - Resolved default configuration for all tools from an MCP server. + - `:cyber` - - `enabled: bool` + The request could enable cyber harm, such as malware or exploit development. Benign cybersecurity work can also trigger this category. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:bio` - Permission policy for tool execution. + The request could enable biological harm, such as dangerous lab methods. Beneficial life sciences work can also trigger this category. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:frontier_llm` - Tool calls are automatically approved without user confirmation. + The request could assist the development of competing AI models, which is restricted under [Anthropic's commercial terms](https://www.anthropic.com/legal/commercial-terms). Benign machine learning work can also trigger this category. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:reasoning_extraction` - Tool calls require user confirmation before execution. + The request asks the model to reproduce its internal reasoning in the response text. To get reasoning in a structured form instead, use [adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking?sdk_languages=ruby). - - `class BetaManagedAgentsAutoPolicy` + - `:general_harms` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The request could be related to an area that was determined as harmful. Benign work might sometimes trigger this category. - - `mcp_server_name: String` + - `explanation: String` - - `class BetaManagedAgentsCustomTool` + Human-readable explanation of the refusal. - A custom tool as returned in API responses. + This text is not guaranteed to be stable. `null` when no explanation is available for the category. - - `type: :custom` + - `fallback_credit_token: String` - - `description: String` + Opaque code that refunds the cache-miss cost when retrying this refused + request on the fallback model. Pass it as `fallback_credit_token` on the + retry request. Expires 5 minutes after the refusal. - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + The retry is sent either with the same request body (`system`, `messages`, + `tools`, and other render-shaping fields), or with the same body plus one + appended `assistant` message whose content is the partial text (with any + trailing whitespace stripped from the final text block) and paired + server-tool blocks from this refusal — which also authorizes that + appended turn as an assistant-prefill continuation on models that otherwise + disallow prefill. A token minted mid-server-tool-loop whose partial content + was continuable may only be redeemed the second way — if a same-body retry + is rejected with a 400 saying the token must be redeemed by continuing the + partial response, retry the second way instead. Either way: same workspace, + same platform; a mismatch is a 400. Resending a token for an already-warm + prefix is permitted but yields no additional credit. - JSON Schema for custom tool input parameters. + `null` when the refused model isn't eligible for a fallback credit. - - `type: :object` + - `fallback_has_prefill_claim: bool` - - `properties: Hash[Symbol, untyped]` + Whether the accompanying `fallback_credit_token` may be redeemed with the + appended-assistant retry form. Only set when `fallback_credit_token` is + present. - - `required: Array[String]` + `true`: retry by resending the same request body plus one appended + `assistant` message whose content is this response's `content` with any + trailing whitespace stripped from the final text block and unpaired + `tool_use` blocks omitted (the same appended-turn shape described on + `fallback_credit_token`), with the token attached. `false`: retry by + resending the original request body unchanged, with the token attached — + the appended-assistant form is not available for this refusal (no + continuable partial content, or the request uses `output_format` or a + `tool_choice` that forces tool use). One exception: when the request used + `output_format` or a forced `tool_choice` and the refusal arrived after + server tools (including MCP connector tools) had already executed, the + token may not be redeemable by either retry form; if the exact-body retry + is then rejected with a 400 saying the token must be redeemed by + continuing the partial response, discard the token and retry without it. - - `name: String` + Advisory: if an appended-assistant retry is rejected with a 400 despite + `true`, fall back to resending the original request body with the token. - - `updated_at: Time` + - `recommended_model: String` - A timestamp in RFC 3339 format + The server's suggested retry target for this refusal. Populated when a fallback attempt could not be made (the fallback model's rate limit was exhausted, or it was overloaded); names the fallback model the caller can retry directly. Null otherwise. - format: date-time + - `stop_reason: BetaStopReason` - - `version: Integer` + The reason that we stopped. - The agent's current version. Starts at 1 and increments when the agent is modified. + This may be one the following values: - format: int32 + * `"end_turn"`: the model reached a natural stopping point + * `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum + * `"stop_sequence"`: one of your provided custom `stop_sequences` was generated + * `"tool_use"`: the model invoked one or more tools + * `"pause_turn"`: we paused a long-running turn. You may provide the response back as-is in a subsequent request to let the model continue. + * `"refusal"`: when streaming classifiers intervene to handle potential policy violations + * `"model_context_window_exceeded"`: we exceeded the model's context window -#### Example + In non-streaming mode this value is always non-null. In streaming mode, it is null in the `message_start` event and non-null otherwise. -```ruby -require "anthropic" + - `:end_turn` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:max_tokens` -beta_managed_agents_agent = anthropic.beta.agents.retrieve("agent_011CZkYpogX7uDKUyvBTophP") + - `:stop_sequence` -puts(beta_managed_agents_agent) -``` + - `:tool_use` -##### Response (200) + - `:pause_turn` -```json -{ - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "metadata": { - "foo": "bar" - }, - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "advisor": { - "type": "disabled" - }, - "subagents": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - }, - "type": "multiagent_20261001", - "workflows": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - } - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "updated_at": "2026-03-15T10:00:00Z", - "version": 1 -} -``` + - `:compaction` -### Update Agent + - `:refusal` -`beta.agents.update(agent_id, **kwargs) -> BetaManagedAgentsAgent` + - `:model_context_window_exceeded` -**POST** `/v1/agents/{agent_id}` + - `stop_sequence: String` -Update Agent + Which custom stop sequence was generated, if any. -#### Parameters + This value will be a non-null string if one of your custom stop sequences was generated. -- `agent_id: String` (path parameter) + - `usage: BetaUsage` - Unique identifier of the agent to update. + Billing and rate-limit usage. -- `description: String` + Anthropic's API bills and rate-limits by token counts, as tokens represent the underlying cost to our systems. - Description. Omit to preserve; send empty string or null to clear. + Under the hood, the API transforms requests into a format suitable for the model. The model's output then goes through a parsing stage before becoming an API response. As a result, the token counts in `usage` will not match one-to-one with the exact visible content of an API request or response. - maxLength: 2048 + For example, `output_tokens` will be non-zero, even for an empty string response from Claude. -- `execution_identity: BetaManagedAgentsExecutionIdentityParams` + Total input tokens in a request is the summation of `input_tokens`, `cache_creation_input_tokens`, and `cache_read_input_tokens`. - Execution principal for runs of this agent. Full replacement. Omit to preserve; send null or `{"type": "service_account"}` to restore the default. + - `cache_creation: BetaCacheCreation` - - `class BetaManagedAgentsAWSRoleExecutionIdentityParams` + Breakdown of cached tokens by TTL - An AWS IAM role principal. + - `ephemeral_1h_input_tokens: Integer` - - `type: :aws_role` + The number of input tokens used to create the 1 hour cache entry. - - `role_arn: String` + minimum: 0 - The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters. + - `ephemeral_5m_input_tokens: Integer` - maxLength: 2048 + The number of input tokens used to create the 5 minute cache entry. - - `class BetaManagedAgentsServiceAccountExecutionIdentityParams` + minimum: 0 - The Anthropic-managed service account — the default execution principal. Carries no identifier. + - `cache_creation_input_tokens: Integer` - - `type: :service_account` + The number of input tokens used to create the cache entry. -- `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` + minimum: 0 - MCP servers. Full replacement. Omit to preserve; send empty array or `null` to clear. Names must be unique. Maximum 20. Every server must be referenced by an `mcp_toolset` in the agent's resulting `tools`; unreferenced servers are rejected. See the [MCP connector guide](https://platform.claude.com/docs/en/managed-agents/mcp-connector?sdk_languages=ruby). + - `cache_read_input_tokens: Integer` - - `type: :url` + The number of input tokens read from the cache. - - `name: String` + minimum: 0 - Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. + - `fallback_credit: BetaFallbackCreditUsage` - minLength: 1, maxLength: 255 + Outcome of the `fallback_credit_token` presented on this request. - - `url: String` + Present on every response to a non-batch request that carried a + `fallback_credit_token`, in either redemption mode; absent otherwise (batch + items accept and ignore the token and carry no outcome object). - Endpoint URL for the MCP server. + - `status: BetaFallbackCreditRedeemed | BetaFallbackCreditNotApplied` - maxLength: 2048 + Whether the fallback-credit reprice was applied to this response's billing. -- `metadata: Hash[Symbol, String]` + A union discriminated on `type`. `redeemed`: the retry is billed as if + the conversation had been on the retry model all along — including when the + resulting shift is zero because there was nothing to move. `not_applied`: + no reprice was applied; the arm's `reason` says why. - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + - `class BetaFallbackCreditRedeemed` -- `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` + The reprice was applied: the retry is billed as if the conversation + had been on the retry model all along. - Model identifier. Accepts the [model string](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby#latest-models-comparison), e.g. `claude-opus-5-5`, or a `model_config` object for additional configuration control. Omit to preserve. Cannot be cleared. + - `type: :redeemed` - - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` + - `class BetaFallbackCreditNotApplied` - The model that will power your agent. + No reprice was applied; `reason` says why. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `type: :not_applied` - - `:"claude-haiku-5-5"` + - `reason: :body_mismatch | :continuation_excluded | :continuation_only | 9 more` - Fastest model for high-volume, real-time tasks + Why the reprice was not applied. - - `:"claude-sonnet-5-5"` + A closed enum; additions to the redemption-check vocabulary arrive as + deliberate schema updates. - Efficient model for coding and agents + - `:body_mismatch` - - `:"claude-opus-5-5"` + - `:continuation_excluded` - Powerful intelligence for coding, knowledge work, and long-running agents + - `:continuation_only` - - `:"claude-fable-5-1"` + - `:expired` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `:invalid_target_model` - - `:"claude-sonnet-5"` + - `:not_enabled` - Efficient model for coding and agents + - `:reprice_unavailable` - - `:"claude-fable-5"` + - `:temporarily_unavailable` - Next generation of intelligence for the hardest knowledge work and coding problems + - `:variant_fields_present` - - `:"claude-opus-5"` + - `:wrong_organization` - Powerful intelligence for long-running agents and coding + - `:wrong_platform` - - `:"claude-opus-4-8"` + - `:wrong_workspace` - Powerful intelligence for long-running agents and coding + - `remove_to_redeem: Array[String]` - - `:"claude-opus-4-7"` + Request fields to remove before retrying, so the retry can redeem this + token. - Powerful intelligence for long-running agents and coding + Present exactly when `reason` is `variant_fields_present` — never null, + never an empty array; absent otherwise. Fields are named only from your own request, and only after + the sealed variant hash matched. A served best-effort retry has already + been billed at normal price; nothing redeems retroactively, but a corrected + re-send inside the token's five-minute window can still redeem. - - `:"claude-opus-4-6"` + - `inference_geo: String` - Powerful intelligence for long-running agents and coding + The geographic region where inference was performed for this request. - - `:"claude-sonnet-4-6"` + - `input_tokens: Integer` - Best combination of speed and intelligence + The number of input tokens which were used. - - `:"claude-haiku-4-5"` + minimum: 0 - - `:"claude-haiku-4-5-20251001"` + - `iterations: BetaIterationsUsage` - - `:"claude-opus-4-5"` + Per-iteration token usage breakdown. - Powerful intelligence for long-running agents and coding + Each entry represents one sampling iteration, with its own input/output token counts and cache statistics, discriminated by `type`. For `message` entries (model sampling iterations, such as the turns of a server-side tool use loop), this allows you to: - - `:"claude-opus-4-5-20251101"` + - Calculate the context window size from the last `message` entry + - Understand token accumulation across server-side tool use loops - Powerful intelligence for long-running agents and coding + A `compaction` entry reports the token usage of the compaction operation itself — the server-side request that summarizes the context being closed — NOT the size of the context that was compacted away, and its token counts can be much smaller than that closed context (for example, a compaction that closes a ~200k-token context can report only a few thousand tokens). Do not derive the context window size from a `compaction` entry, even when it is the last entry. A `compaction` entry's tokens are not included in the top-level `usage` fields. When an input-token trigger is in effect (the default — 150,000 tokens unless configured otherwise), each `compaction` entry closes a context that had reached at least that threshold, though the context can exceed it by the final iteration's output and tool results. - - `:"claude-sonnet-4-5"` + - `class BetaMessageIterationUsage` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Token usage for a sampling iteration. - High-performance model for agents and coding + - `type: :message` - - `:"claude-sonnet-4-5-20250929"` + Usage for a sampling iteration - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `cache_creation: BetaCacheCreation` - High-performance model for agents and coding + Breakdown of cached tokens by TTL - - `String = String` + - `cache_creation_input_tokens: Integer` - - `class BetaManagedAgentsModelConfigParams` + The number of input tokens used to create the cache entry. - An object that defines additional configuration control over model use + minimum: 0 - - `id: BetaManagedAgentsModel` + - `cache_read_input_tokens: Integer` - The model that will power your agent. + The number of input tokens read from the cache. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + minimum: 0 - - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` + - `input_tokens: Integer` - How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. + The number of input tokens which were used. - - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` + minimum: 0 - How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. + - `model: Model` - - `:low` + The model that will complete your prompt. - Low effort. Favors latency over reasoning depth. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:medium` + - `output_tokens: Integer` - Medium effort. Balances latency and reasoning depth. + The number of output tokens which were used. - - `:high` + minimum: 0 - High effort. Favors reasoning depth. + - `class BetaCompactionIterationUsage` - - `:xhigh` + Token usage for a compaction iteration. - Extra-high effort. Not all models accept this level. + - `type: :compaction` - - `:max` + Usage for a compaction iteration - Maximum effort. Favors reasoning depth over latency. + - `cache_creation: BetaCacheCreation` - - `class BetaManagedAgentsEffortLow` + Breakdown of cached tokens by TTL - Low effort. Favors latency over reasoning depth. + - `cache_creation_input_tokens: Integer` - - `type: :low` + The number of input tokens used to create the cache entry. - - `class BetaManagedAgentsEffortMedium` + minimum: 0 - Medium effort. Balances latency and reasoning depth. + - `cache_read_input_tokens: Integer` - - `type: :medium` + The number of input tokens read from the cache. - - `class BetaManagedAgentsEffortHigh` + minimum: 0 - High effort. Favors reasoning depth. + - `input_tokens: Integer` - - `type: :high` + The number of input tokens which were used. - - `class BetaManagedAgentsEffortXhigh` + minimum: 0 - Extra-high effort. Not all models accept this level. + - `output_tokens: Integer` - - `type: :xhigh` + The number of output tokens which were used. - - `class BetaManagedAgentsEffortMax` + minimum: 0 - Maximum effort. Favors reasoning depth over latency. + - `class BetaAdvisorMessageIterationUsage` - - `type: :max` + Token usage for an advisor sub-inference iteration. - - `inference_geo: String` + - `type: :advisor_message` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. + Usage for an advisor sub-inference iteration - - `speed: :standard | :fast` + - `cache_creation: BetaCacheCreation` - Inference speed mode. Defaults to `standard`. + Breakdown of cached tokens by TTL - - `:standard` + - `cache_creation_input_tokens: Integer` - - `:fast` + The number of input tokens used to create the cache entry. -- `multiagent: BetaManagedAgentsMultiagentParams` + minimum: 0 - Multiagent orchestration configuration. Full replacement. Omit to preserve; send null to clear. + - `cache_read_input_tokens: Integer` - - `class BetaManagedAgentsMultiagentCoordinatorParams` + The number of input tokens read from the cache. - A coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the `agents` roster. + minimum: 0 - - `type: :coordinator` + - `input_tokens: Integer` - - `agents: Array[BetaManagedAgentsMultiagentRosterEntryParams]` + The number of input tokens which were used. - Agents the coordinator may spawn as session threads. 1–20 entries. Each entry is an agent ID string, a versioned `{"type":"agent","id","version"}` reference, or `{"type":"self"}` to allow recursive self-invocation. Entries must reference distinct agents (after resolving `self` and string forms); at most one `self`. Referenced agents must exist, must not be archived, and must not themselves have `multiagent` set (depth limit 1). + minimum: 0 - - `String = String` + - `model: Model` - - `class BetaManagedAgentsAgentParams` + The model that will complete your prompt. - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `type: :agent` + - `output_tokens: Integer` - - `id: String` + The number of output tokens which were used. - The `agent` ID. + minimum: 0 - minLength: 1, maxLength: 128 + - `class BetaFallbackMessageIterationUsage` - - `version: Integer` + Token usage for the fallback-model attempt of a server-side fallback request. - The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. + The terminal entry of a fallback-served turn: when a fallback hop's + output is the returned message, the entry for the iteration that + completed it carries this type in place of `message`. A declined hop + and the serving hop's earlier tool-loop iterations produce `message` + entries. Whether a fallback model served the response is signalled by + the presence of this entry in `usage.iterations`. - format: int32 + - `type: :fallback_message` - - `class BetaManagedAgentsMultiagentSelfParams` + Usage for the fallback-model attempt that served the response - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + - `cache_creation: BetaCacheCreation` - - `type: :self` + Breakdown of cached tokens by TTL - - `class BetaManagedAgentsAdvisorParams` + - `cache_creation_input_tokens: Integer` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. At most one per roster; the entry occupies the roster name `anthropic.advisor`. + The number of input tokens used to create the cache entry. - - `type: :advisor` + minimum: 0 - - `model: String` + - `cache_read_input_tokens: Integer` - A Claude model id. The model must be permitted as an advisor for this agent's model. + The number of input tokens read from the cache. - minLength: 1, maxLength: 256 + minimum: 0 - - `class BetaManagedAgentsMultiagent20261001Params` + - `input_tokens: Integer` - Multiagent configuration with three members, each enabled or disabled on its own. On an update, if the agent's stored `multiagent` also has type `multiagent_20261001`, this configuration is merged into the stored one, level by level, instead of replacing it. A key that the update omits keeps its stored value. A key sent as null takes its default, on create as well, so `"workflows": null` enables workflows. An object sent with a `type` other than the stored one replaces the stored object, and the keys that it omits take their defaults. A `predefined_agents` list that is sent replaces the stored list. Every object that is sent needs its `type`, and an enabled `advisor` needs its `model`. Other validation applies to the merged result. + The number of input tokens which were used. - - `type: :multiagent_20261001` + minimum: 0 - - `advisor: BetaManagedAgentsMultiagentAdvisorParams` + - `model: Model` - Whether the session's primary thread can consult an advisor model. Defaults to disabled. + The model that will complete your prompt. - - `class BetaManagedAgentsMultiagentAdvisorEnabledParams` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - The session's primary thread can consult `model` mid-turn. + - `output_tokens: Integer` - - `type: :enabled` + The number of output tokens which were used. - - `model: String` + minimum: 0 - A Claude model id. The model must be permitted as an advisor for this agent's model. + - `output_tokens: Integer` - minLength: 1, maxLength: 256 + The number of output tokens which were used. - - `class BetaManagedAgentsMultiagentAdvisorDisabledParams` + minimum: 0 - The agent has no advisor. + - `output_tokens_details: BetaOutputTokensDetails` - - `type: :disabled` + Breakdown of output tokens by category. - - `subagents: BetaManagedAgentsMultiagentSubagentsParams` + `output_tokens` remains the inclusive, authoritative total used for billing. + This object provides a read-only decomposition for observability — for example, + how many of the billed output tokens were spent on internal reasoning that may + have been summarized before being returned to you. - Whether the agent can spawn session threads. Defaults to enabled. + - `thinking_tokens: Integer` - - `class BetaManagedAgentsMultiagentSubagentsEnabledParams` + Number of output tokens the model generated as internal reasoning, including + the thinking-block delimiter tokens. - The agent can spawn session threads. Each thread runs a predefined agent, which is a saved agent in `predefined_agents`, or an inline agent, which the agent defines when it spawns the thread and which is not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. + Reflects the raw reasoning the model produced, not the (possibly shorter) + summarized thinking text returned in the response body. Computed by + re-tokenizing the raw reasoning text, so it may differ from the model's exact + generation count by a small number of tokens. Always ≤ `output_tokens`; + `output_tokens - thinking_tokens` approximates the non-reasoning output. - - `type: :enabled` + minimum: 0 - - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` + - `server_tool_use: BetaServerToolUsage` - Whether the agent can define inline agents when it spawns session threads. Defaults to enabled. + The number of server tool requests. - - `class BetaManagedAgentsMultiagentInlineAgentsEnabledParams` + - `web_fetch_requests: Integer` - The agent can define inline agents. + The number of web fetch tool requests. - - `type: :enabled` + minimum: 0 - - `class BetaManagedAgentsMultiagentInlineAgentsDisabledParams` + - `web_search_requests: Integer` - The agent cannot define inline agents. + The number of web search tool requests. - - `type: :disabled` + minimum: 0 - - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + - `service_tier: :standard | :priority | :batch` - Predefined agents that this agent can spawn as session threads. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `workflows.predefined_agents`, and an agent in one list is not added to the other. + If the request used the priority, standard, or batch tier. - - `String = String` + - `:standard` - - `class BetaManagedAgentsAgentParams` + - `:priority` - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `:batch` - - `class BetaManagedAgentsMultiagentSelfParams` + - `speed: :standard | :fast` - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + The inference speed mode used for this request. - - `class BetaManagedAgentsMultiagentSubagentsDisabledParams` + - `:standard` - The agent cannot spawn session threads. + - `:fast` - - `type: :disabled` + - `input_transformations: Array[BetaInputTransformation]` - - `workflows: BetaManagedAgentsMultiagentWorkflowsParams` + Changes the API made to the request's input before showing it to the model, + and blocks that failed a binding check but were left unchanged: one entry per + block, in request order. Two entry types today. `thinking_dropped` — a + `thinking`, `redacted_thinking` or `connector_text` block from the request's + `messages` that was removed from the prompt instead of being shown to the + model because it failed a binding check. `thinking_mismatch_allowed` — a + `thinking` or `redacted_thinking` block that failed the conversation check + (the conversation before it differs from the one it was created in, or it + carries no record of one on a model that requires it) and was shown to the + model all the same, because that check is not enforced for this request. + More entry types may be added over time; ignore types you do not recognize. - Whether the agent can start workflow runs. Defaults to enabled. + Requires `anthropic-beta: thinking-binding-controls-2026-08-01`. Present on + every such response from a model that supports extended thinking, as `[]` + when there is no entry to report; without the beta, blocks are removed or + left in place all the same but nothing is reported. Removed blocks contribute + nothing to `usage.input_tokens`; blocks left in place count as sent. When + streaming, the array is final in `message_start`; the final `message_delta` + event carries it only when a server-side model fallback happened mid-stream, + in which case it holds the serving model's entries and replaces the one in + `message_start`. - - `class BetaManagedAgentsMultiagentWorkflowsEnabledParams` + - `class BetaThinkingDroppedInputTransformation` - The agent can start workflow runs. Each run follows a plan, a program that the agent writes. A plan can use predefined agents, which are the saved agents in `predefined_agents`, and inline agents, which it defines itself and which are not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. + - `type: :thinking_dropped` - - `type: :enabled` + Always `thinking_dropped` for this entry type. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` + - `path: String` - Whether a run's plan can define inline agents. Defaults to enabled. + Where the removed block was in your request, as `messages.{i}.content.{j}`: + `i` indexes the `messages` array you sent and `j` that message's `content` + array — the same form error messages use. - - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + - `reason: :model_binding_mismatch | :prefix_binding_mismatch | :organization_binding_mismatch | :end_user_binding_mismatch` - Predefined agents that a run's plan can use. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `subagents.predefined_agents`, and an agent in one list is not added to the other. + Which binding check removed the block: `model_binding_mismatch` — it was + created by a model whose reasoning the requested model may not read; + `prefix_binding_mismatch` — the conversation before it differs from the + conversation it was created in (the rest of that turn's consecutive thinking + blocks are removed with it, each with this reason); + `organization_binding_mismatch` — it was created under a different + organization (an Anthropic organization, AWS account or Google Cloud project) + and this organization is not one of its additional organizations; + `end_user_binding_mismatch` — it was created for a different end user, or + was removed by the consumer-organization binding. A block that would fail + several checks reports one reason, in this order of precedence: + `organization_binding_mismatch`, `end_user_binding_mismatch`, + `model_binding_mismatch`, `prefix_binding_mismatch`. - - `String = String` + - `:model_binding_mismatch` - - `class BetaManagedAgentsAgentParams` + - `:prefix_binding_mismatch` - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `:organization_binding_mismatch` - - `class BetaManagedAgentsMultiagentSelfParams` + - `:end_user_binding_mismatch` - Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + - `class BetaThinkingMismatchAllowedInputTransformation` - - `class BetaManagedAgentsMultiagentWorkflowsDisabledParams` + - `type: :thinking_mismatch_allowed` - The agent cannot start workflow runs. + Always `thinking_mismatch_allowed` for this entry type. - - `type: :disabled` + - `path: String` -- `name: String` + Where the block is in your request, as `messages.{i}.content.{j}`: + `i` indexes the `messages` array you sent and `j` that message's `content` + array — the same form error messages use. - Human-readable name. Must be non-empty. Omit to preserve. Cannot be cleared. + - `reason: :model_binding_mismatch | :prefix_binding_mismatch | :organization_binding_mismatch | :end_user_binding_mismatch` - maxLength: 256 + Which binding check the block failed; the block was shown to the model all + the same. Always `prefix_binding_mismatch` today — the conversation before + the block differs from the conversation it was created in, or the block + carries no record of one on a model that requires it. Were the check + enforced for this request, the block would have been removed or the request + rejected (`thinking.block_binding.prefix_mismatch_behavior`). A removal also + takes the rest of that turn's consecutive thinking blocks, whereas here each + block is checked on its own, so `thinking_mismatch_allowed` entries are a + lower bound on what enforcement would remove. -- `skills: Array[BetaManagedAgentsSkillParams]` + - `:model_binding_mismatch` - Skills. Full replacement. Omit to preserve; send empty array or null to clear. + - `:prefix_binding_mismatch` - - `class BetaManagedAgentsAnthropicSkillParams` + - `:organization_binding_mismatch` - An Anthropic-managed skill. + - `:end_user_binding_mismatch` - - `type: :anthropic` + - `class BetaMessageBatchErroredResult` - - `skill_id: String` + - `type: :errored` - Identifier of the Anthropic skill (e.g., "xlsx"). + - `error: BetaErrorResponse` - minLength: 1, maxLength: 64 + - `type: :error` - - `version: String` + - `error: BetaError` - Version to pin. Defaults to latest if omitted. + - `class BetaInvalidRequestError` - minLength: 1, maxLength: 64 + - `type: :invalid_request_error` - - `class BetaManagedAgentsCustomSkillParams` + - `message: String` - A user-created custom skill. + - `class BetaAuthenticationError` - - `type: :custom` + - `type: :authentication_error` - - `skill_id: String` + - `message: String` - Tagged ID of the custom skill (e.g., "skill_01XJ5..."). + - `class BetaBillingError` - minLength: 1, maxLength: 64 + - `type: :billing_error` - - `version: String` + - `message: String` - Version to pin. Defaults to latest if omitted. + - `class BetaPermissionError` - minLength: 1, maxLength: 64 + - `type: :permission_error` -- `system_: String` + - `message: String` - System prompt. Omit to preserve; send empty string or null to clear. + - `class BetaNotFoundError` - maxLength: 100000 + - `type: :not_found_error` -- `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` + - `message: String` - Tool configurations available to the agent. Full replacement. Omit to preserve; send empty array or null to clear. Maximum of 256 tools across all toolsets allowed. + - `class BetaRateLimitError` - - `class BetaManagedAgentsAgentToolset20260401Params` + - `type: :rate_limit_error` - Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. + - `message: String` - - `type: :agent_toolset_20260401` + - `class BetaGatewayTimeoutError` - - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` + - `type: :timeout_error` - Per-tool configuration overrides. + - `message: String` - - `class BetaManagedAgentsBashToolConfigParams` + - `class BetaAPIError` - Configuration override for the bash tool. + - `type: :api_error` - - `type: :bash` + - `message: String` - - `name: :bash` + - `class BetaOverloadedError` - Must be "bash". + - `type: :overloaded_error` - - `enabled: bool` + - `message: String` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `request_id: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaMessageBatchCanceledResult` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `type: :canceled` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaMessageBatchExpiredResult` - Tool calls are automatically approved without user confirmation. + - `type: :expired` - - `type: :always_allow` +#### Example - - `class BetaManagedAgentsAlwaysAskPolicy` +```ruby +require "anthropic" - Tool calls require user confirmation before execution. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :always_ask` +stream = anthropic.beta.messages.batches.results_streaming("message_batch_id") - - `class BetaManagedAgentsAutoPolicy` +stream.each do |batch| + puts(batch) +end +``` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +## Beta › Agents - - `type: :auto` +### Create Agent - - `class BetaManagedAgentsEditToolConfigParams` +`beta.agents.create(**kwargs) -> BetaManagedAgentsAgent` - Configuration override for the edit tool. +**POST** `/v1/agents` - - `type: :edit` +Create Agent - - `name: :edit` +#### Parameters - Must be "edit". +- `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` - - `enabled: bool` + Model identifier. Accepts the [model string](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby#latest-models-comparison), e.g. `claude-opus-5-5`, or a `model_config` object for additional configuration control - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The model that will power your agent. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"claude-haiku-5-5"` - Tool calls are automatically approved without user confirmation. + Fastest model for high-volume, real-time tasks - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"claude-sonnet-5-5"` - Tool calls require user confirmation before execution. + Efficient model for coding and agents - - `class BetaManagedAgentsAutoPolicy` + - `:"claude-opus-5-5"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Powerful intelligence for coding, knowledge work, and long-running agents - - `class BetaManagedAgentsReadToolConfigParams` + - `:"claude-fable-5-1"` - Configuration override for the read tool. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `type: :read` + - `:"claude-sonnet-5"` - - `name: :read` + Efficient model for coding and agents - Must be "read". + - `:"claude-fable-5"` - - `enabled: bool` + Next generation of intelligence for the hardest knowledge work and coding problems - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `:"claude-opus-5"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Powerful intelligence for long-running agents and coding - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:"claude-opus-4-8"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Powerful intelligence for long-running agents and coding - Tool calls are automatically approved without user confirmation. + - `:"claude-opus-4-7"` - - `class BetaManagedAgentsAlwaysAskPolicy` + Powerful intelligence for long-running agents and coding - Tool calls require user confirmation before execution. + - `:"claude-opus-4-6"` - - `class BetaManagedAgentsAutoPolicy` + Powerful intelligence for long-running agents and coding - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"claude-sonnet-4-6"` - - `class BetaManagedAgentsWriteToolConfigParams` + Best combination of speed and intelligence - Configuration override for the write tool. + - `:"claude-haiku-4-5"` - - `type: :write` + - `:"claude-haiku-4-5-20251001"` - - `name: :write` + - `:"claude-opus-4-5"` - Must be "write". + Powerful intelligence for long-running agents and coding - - `enabled: bool` + - `:"claude-opus-4-5-20251101"` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + Powerful intelligence for long-running agents and coding - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-4-5"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `class BetaManagedAgentsAlwaysAllowPolicy` + High-performance model for agents and coding - Tool calls are automatically approved without user confirmation. + - `:"claude-sonnet-4-5-20250929"` - - `class BetaManagedAgentsAlwaysAskPolicy` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Tool calls require user confirmation before execution. + High-performance model for agents and coding - - `class BetaManagedAgentsAutoPolicy` + - `String = String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsModelConfigParams` - - `class BetaManagedAgentsGlobToolConfigParams` + An object that defines additional configuration control over model use - Configuration override for the glob tool. + - `id: BetaManagedAgentsModel` - - `type: :glob` + The model that will power your agent. - - `name: :glob` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Must be "glob". + - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` - - `enabled: bool` + How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `:low` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Low effort. Favors latency over reasoning depth. - Tool calls are automatically approved without user confirmation. + - `:medium` - - `class BetaManagedAgentsAlwaysAskPolicy` + Medium effort. Balances latency and reasoning depth. - Tool calls require user confirmation before execution. + - `:high` - - `class BetaManagedAgentsAutoPolicy` + High effort. Favors reasoning depth. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:xhigh` - - `class BetaManagedAgentsGrepToolConfigParams` + Extra-high effort. Not all models accept this level. - Configuration override for the grep tool. + - `:max` - - `type: :grep` + Maximum effort. Favors reasoning depth over latency. - - `name: :grep` + - `class BetaManagedAgentsEffortLow` - Must be "grep". + Low effort. Favors latency over reasoning depth. - - `enabled: bool` + - `type: :low` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `class BetaManagedAgentsEffortMedium` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Medium effort. Balances latency and reasoning depth. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `type: :medium` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsEffortHigh` - Tool calls are automatically approved without user confirmation. + High effort. Favors reasoning depth. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :high` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsEffortXhigh` - - `class BetaManagedAgentsAutoPolicy` + Extra-high effort. Not all models accept this level. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :xhigh` - - `class BetaManagedAgentsWebFetchToolConfigParams` + - `class BetaManagedAgentsEffortMax` - Configuration override for the web_fetch tool. + Maximum effort. Favors reasoning depth over latency. - - `type: :web_fetch` + - `type: :max` - - `name: :web_fetch` + - `inference_geo: String` - Must be "web_fetch". + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. - - `allowed_domains: Array[String]` + - `speed: :standard | :fast` - Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + Inference speed mode. Defaults to `standard`. - - `blocked_domains: Array[String]` + - `:standard` - Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + - `:fast` - - `enabled: bool` +- `name: String` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + Human-readable name for the agent. - - `max_content_tokens: Integer` + minLength: 1, maxLength: 256 - Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. +- `description: String` - format: int32 + Description of what the agent does. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + maxLength: 2048 - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. +- `execution_identity: BetaManagedAgentsExecutionIdentityParams` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Execution principal for runs of this agent. Omitting it, sending null, or sending `{"type": "service_account"}` stores the default. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsAWSRoleExecutionIdentityParams` - - `class BetaManagedAgentsAlwaysAskPolicy` + An AWS IAM role principal. - Tool calls require user confirmation before execution. + - `type: :aws_role` - - `class BetaManagedAgentsAutoPolicy` + - `role_arn: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters. - - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` + maxLength: 2048 - Which sources contribute URLs the tool may fetch. Omit to allow every source. + - `class BetaManagedAgentsServiceAccountExecutionIdentityParams` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + The Anthropic-managed service account — the default execution principal. Carries no identifier. - Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. + - `type: :service_account` - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` +- `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + MCP servers this agent connects to. Maximum 20. Names must be unique within the array. Every server must be referenced by an `mcp_toolset` in `tools`; unreferenced servers are rejected. See the [MCP connector guide](https://platform.claude.com/docs/en/managed-agents/mcp-connector?sdk_languages=ruby). - - `:all` + - `type: :url` - - `:none` + - `name: String` - - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` + Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. - Which tools' results contribute URLs that may be fetched. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `url: String` - Every URL from this source may be fetched. This is the default. + Endpoint URL for the MCP server. - - `type: :all` + maxLength: 2048 - - `class BetaManagedAgentsWebFetchURLSourceNone` +- `metadata: Hash[Symbol, String]` - This source contributes no URLs that may be fetched. + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - - `type: :none` +- `multiagent: BetaManagedAgentsMultiagentParams` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + Multiagent orchestration configuration. - Only the named tools' results contribute URLs that may be fetched. + - `class BetaManagedAgentsMultiagentCoordinatorParams` - - `type: :only` + A coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the `agents` roster. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `type: :coordinator` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `agents: Array[BetaManagedAgentsMultiagentRosterEntryParams]` - - `type: :tool_reference` + Agents the coordinator may spawn as session threads. 1–20 entries. Each entry is an agent ID string, a versioned `{"type":"agent","id","version"}` reference, or `{"type":"self"}` to allow recursive self-invocation. Entries must reference distinct agents (after resolving `self` and string forms); at most one `self`. Referenced agents must exist, must not be archived, and must not themselves have `multiagent` set (depth limit 1). - Must be "tool_reference". + - `String = String` - - `name: String` + - `class BetaManagedAgentsAgentParams` - Name of the tool. Compared exactly, so upper and lower case letters are different. + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - minLength: 1, maxLength: 128 + - `type: :agent` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `id: String` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + The `agent` ID. - - `type: :except` + minLength: 1, maxLength: 128 - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `version: Integer` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. - - `type: :tool_reference` + format: int32 - Must be "tool_reference". + - `class BetaManagedAgentsMultiagentSelfParams` - - `name: String` + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `type: :self` - minLength: 1, maxLength: 128 + - `class BetaManagedAgentsAdvisorParams` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. At most one per roster; the entry occupies the roster name `anthropic.advisor`. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". + - `type: :advisor` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` + - `model: String` - Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". + A Claude model id. The model must be permitted as an advisor for this agent's model. - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + minLength: 1, maxLength: 256 - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + - `class BetaManagedAgentsMultiagent20261001Params` - - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` + Multiagent configuration with three members, each enabled or disabled on its own. On an update, if the agent's stored `multiagent` also has type `multiagent_20261001`, this configuration is merged into the stored one, level by level, instead of replacing it. A key that the update omits keeps its stored value. A key sent as null takes its default, on create as well, so `"workflows": null` enables workflows. An object sent with a `type` other than the stored one replaces the stored object, and the keys that it omits take their defaults. A `predefined_agents` list that is sent replaces the stored list. Every object that is sent needs its `type`, and an enabled `advisor` needs its `model`. Other validation applies to the merged result. - Whether URLs in the text of user messages may be fetched. + - `type: :multiagent_20261001` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `advisor: BetaManagedAgentsMultiagentAdvisorParams` - Every URL from this source may be fetched. This is the default. + Whether the session's primary thread can consult an advisor model. Defaults to disabled. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `class BetaManagedAgentsMultiagentAdvisorEnabledParams` - This source contributes no URLs that may be fetched. + The session's primary thread can consult `model` mid-turn. - - `class BetaManagedAgentsWebSearchToolConfigParams` + - `type: :enabled` - Configuration override for the web_search tool. + - `model: String` - - `type: :web_search` + A Claude model id. The model must be permitted as an advisor for this agent's model. - - `name: :web_search` + minLength: 1, maxLength: 256 - Must be "web_search". + - `class BetaManagedAgentsMultiagentAdvisorDisabledParams` - - `allowed_domains: Array[String]` + The agent has no advisor. - Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + - `type: :disabled` - - `blocked_domains: Array[String]` + - `subagents: BetaManagedAgentsMultiagentSubagentsParams` - Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + Whether the agent can spawn session threads. Defaults to enabled. - - `enabled: bool` + - `class BetaManagedAgentsMultiagentSubagentsEnabledParams` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + The agent can spawn session threads. Each thread runs a predefined agent, which is a saved agent in `predefined_agents`, or an inline agent, which the agent defines when it spawns the thread and which is not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. + + - `type: :enabled` + + - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` + + Whether the agent can define inline agents when it spawns session threads. Defaults to enabled. + + - `class BetaManagedAgentsMultiagentInlineAgentsEnabledParams` + + The agent can define inline agents. + + - `type: :enabled` + + - `class BetaManagedAgentsMultiagentInlineAgentsDisabledParams` + + The agent cannot define inline agents. + + - `type: :disabled` + + - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + + Predefined agents that this agent can spawn as session threads. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `workflows.predefined_agents`, and an agent in one list is not added to the other. + + - `String = String` + + - `class BetaManagedAgentsAgentParams` + + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + + - `class BetaManagedAgentsMultiagentSelfParams` + + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + + - `class BetaManagedAgentsMultiagentSubagentsDisabledParams` + + The agent cannot spawn session threads. + + - `type: :disabled` + + - `workflows: BetaManagedAgentsMultiagentWorkflowsParams` + + Whether the agent can start workflow runs. Defaults to enabled. + + - `class BetaManagedAgentsMultiagentWorkflowsEnabledParams` + + The agent can start workflow runs. Each run follows a plan, a program that the agent writes. A plan can use predefined agents, which are the saved agents in `predefined_agents`, and inline agents, which it defines itself and which are not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. + + - `type: :enabled` + + - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` + + Whether a run's plan can define inline agents. Defaults to enabled. + + - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` + + Predefined agents that a run's plan can use. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `subagents.predefined_agents`, and an agent in one list is not added to the other. + + - `String = String` + + - `class BetaManagedAgentsAgentParams` + + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + + - `class BetaManagedAgentsMultiagentSelfParams` + + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. + + - `class BetaManagedAgentsMultiagentWorkflowsDisabledParams` + + The agent cannot start workflow runs. + + - `type: :disabled` + +- `skills: Array[BetaManagedAgentsSkillParams]` + + Skills available to the agent. + + - `class BetaManagedAgentsAnthropicSkillParams` + + An Anthropic-managed skill. + + - `type: :anthropic` + + - `skill_id: String` + + Identifier of the Anthropic skill (e.g., "xlsx"). + + minLength: 1, maxLength: 64 + + - `version: String` + + Version to pin. Defaults to latest if omitted. + + minLength: 1, maxLength: 64 + + - `class BetaManagedAgentsCustomSkillParams` + + A user-created custom skill. + + - `type: :custom` + + - `skill_id: String` + + Tagged ID of the custom skill (e.g., "skill_01XJ5..."). + + minLength: 1, maxLength: 64 + + - `version: String` + + Version to pin. Defaults to latest if omitted. + + minLength: 1, maxLength: 64 + +- `system_: String` + + System prompt for the agent. + + maxLength: 100000 + +- `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` + + Tool configurations available to the agent. Maximum of 256 tools across all toolsets allowed. + + - `class BetaManagedAgentsAgentToolset20260401Params` + + Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. + + - `type: :agent_toolset_20260401` + + - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` + + Per-tool configuration overrides. + + - `class BetaManagedAgentsBashToolConfigParams` + + Configuration override for the bash tool. + + - `type: :bash` + + - `name: :bash` + + Must be "bash". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `type: :always_allow` + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `type: :always_ask` + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `type: :auto` + + - `class BetaManagedAgentsEditToolConfigParams` + + Configuration override for the edit tool. + + - `type: :edit` + + - `name: :edit` + + Must be "edit". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `class BetaManagedAgentsReadToolConfigParams` + + Configuration override for the read tool. + + - `type: :read` + + - `name: :read` + + Must be "read". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `class BetaManagedAgentsWriteToolConfigParams` + + Configuration override for the write tool. + + - `type: :write` + + - `name: :write` + + Must be "write". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `class BetaManagedAgentsGlobToolConfigParams` + + Configuration override for the glob tool. + + - `type: :glob` + + - `name: :glob` + + Must be "glob". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `class BetaManagedAgentsGrepToolConfigParams` + + Configuration override for the grep tool. + + - `type: :grep` + + - `name: :grep` + + Must be "grep". + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `class BetaManagedAgentsWebFetchToolConfigParams` + + Configuration override for the web_fetch tool. + + - `type: :web_fetch` + + - `name: :web_fetch` + + Must be "web_fetch". + + - `allowed_domains: Array[String]` + + Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + + - `blocked_domains: Array[String]` + + Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. + + - `max_content_tokens: Integer` + + Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. + + format: int32 + + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + + - `class BetaManagedAgentsAlwaysAllowPolicy` + + Tool calls are automatically approved without user confirmation. + + - `class BetaManagedAgentsAlwaysAskPolicy` + + Tool calls require user confirmation before execution. + + - `class BetaManagedAgentsAutoPolicy` + + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + + - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` + + Which sources contribute URLs the tool may fetch. Omit to allow every source. + + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + + Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. + + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + + - `:all` + + - `:none` + + - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` + + Which tools' results contribute URLs that may be fetched. + + - `class BetaManagedAgentsWebFetchURLSourceAll` + + Every URL from this source may be fetched. This is the default. + + - `type: :all` + + - `class BetaManagedAgentsWebFetchURLSourceNone` + + This source contributes no URLs that may be fetched. + + - `type: :none` + + - `class BetaManagedAgentsWebFetchURLSourceOnly` + + Only the named tools' results contribute URLs that may be fetched. + + - `type: :only` + + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + + - `type: :tool_reference` + + Must be "tool_reference". + + - `name: String` + + Name of the tool. Compared exactly, so upper and lower case letters are different. + + minLength: 1, maxLength: 128 + + - `class BetaManagedAgentsWebFetchURLSourceExcept` + + Every tool's results contribute URLs that may be fetched, except the named tools' results. + + - `type: :except` + + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + + - `type: :tool_reference` + + Must be "tool_reference". + + - `name: String` + + Name of the tool. Compared exactly, so upper and lower case letters are different. + + minLength: 1, maxLength: 128 + + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". + + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` + + Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". + + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + + - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` + + Whether URLs in the text of user messages may be fetched. + + - `class BetaManagedAgentsWebFetchURLSourceAll` + + Every URL from this source may be fetched. This is the default. + + - `class BetaManagedAgentsWebFetchURLSourceNone` + + This source contributes no URLs that may be fetched. + + - `class BetaManagedAgentsWebSearchToolConfigParams` + + Configuration override for the web_search tool. + + - `type: :web_search` + + - `name: :web_search` + + Must be "web_search". + + - `allowed_domains: Array[String]` + + Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + + - `blocked_domains: Array[String]` + + Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + + - `enabled: bool` + + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` @@ -27977,12 +28297,6 @@ Update Agent minLength: 1, maxLength: 128 -- `version: Integer` - - The agent's current version, used to prevent concurrent overwrites. Obtain this value from a create or retrieve response. Must be at least 1 if specified. When supplied, the request fails if it does not match the server's current version; omit to apply the update unconditionally. - - format: int32 - - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. @@ -28091,6 +28405,8 @@ Update Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28892,7 +29208,10 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_agent = anthropic.beta.agents.update("agent_011CZkYpogX7uDKUyvBTophP") +beta_managed_agents_agent = anthropic.beta.agents.create( + model: Anthropic::Beta::BetaManagedAgentsModel::CLAUDE_OPUS_5_5, + name: "My First Agent" +) puts(beta_managed_agents_agent) ``` @@ -28999,19 +29318,41 @@ puts(beta_managed_agents_agent) } ``` -### Archive Agent +### List Agents -`beta.agents.archive(agent_id, **kwargs) -> BetaManagedAgentsAgent` +`beta.agents.list(**kwargs) -> PageCursor` -**POST** `/v1/agents/{agent_id}/archive` +**GET** `/v1/agents` -Archive Agent +List Agents #### Parameters -- `agent_id: String` (path parameter) +- `created_at_gte: Time` (query parameter) - Unique identifier of the agent to archive. + Return agents created at or after this time (inclusive). + + format: date-time + +- `created_at_lte: Time` (query parameter) + + Return agents created at or before this time (inclusive). + + format: date-time + +- `include_archived: bool` (query parameter) + + Include archived agents in results. Defaults to false. + +- `limit: Integer` (query parameter) + + Maximum results per page. Default 20, maximum 100. + + format: int32 + +- `page: String` (query parameter) + + Opaque pagination cursor from a previous response. - `betas: Array[AnthropicBeta]` (header parameter) @@ -29121,6 +29462,8 @@ Archive Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29922,139 +30265,138 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_agent = anthropic.beta.agents.archive("agent_011CZkYpogX7uDKUyvBTophP") +page = anthropic.beta.agents.list -puts(beta_managed_agents_agent) +puts(page) ``` ##### Response (200) ```json { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ + "data": [ { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "metadata": { - "foo": "bar" - }, - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "advisor": { - "type": "disabled" - }, - "subagents": { - "inline_agents": { - "type": "enabled" + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" }, - "predefined_agents": [ + "mcp_servers": [ { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" } ], - "type": "enabled" - }, - "type": "multiagent_20261001", - "workflows": { - "inline_agents": { - "type": "enabled" + "metadata": { + "foo": "bar" }, - "predefined_agents": [ + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "advisor": { + "type": "disabled" + }, + "subagents": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + }, + "type": "multiagent_20261001", + "workflows": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + } + }, + "name": "My First Agent", + "skills": [ { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" } ], - "type": "enabled" - } - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } }, - "type": "bash" + "type": "agent_toolset_20260401" } ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" + "type": "agent", + "updated_at": "2026-03-15T10:00:00Z", + "version": 1 } ], - "type": "agent", - "updated_at": "2026-03-15T10:00:00Z", - "version": 1 + "next_page": "next_page" } ``` -## Beta › Agents › Versions - -### List Agent Versions +### Get Agent -`beta.agents.versions.list(agent_id, **kwargs) -> PageCursor` +`beta.agents.retrieve(agent_id, **kwargs) -> BetaManagedAgentsAgent` -**GET** `/v1/agents/{agent_id}/versions` +**GET** `/v1/agents/{agent_id}` -List Agent Versions +Get Agent #### Parameters - `agent_id: String` (path parameter) - Agent ID to list versions for. + Unique identifier of the agent to retrieve. -- `limit: Integer` (query parameter) +- `version: Integer` (query parameter) - Maximum results per page. Default 20, maximum 100. + Agent version. Omit for the most recent version. Must be at least 1 if specified. format: int32 -- `page: String` (query parameter) - - Opaque pagination cursor. - - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. @@ -30163,6 +30505,8 @@ List Agent Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30964,1343 +31308,1098 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.agents.versions.list("agent_011CZkYpogX7uDKUyvBTophP") +beta_managed_agents_agent = anthropic.beta.agents.retrieve("agent_011CZkYpogX7uDKUyvBTophP") -puts(page) +puts(beta_managed_agents_agent) ``` ##### Response (200) ```json { - "data": [ + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "metadata": { + "foo": "bar" + }, + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "advisor": { + "type": "disabled" + }, + "subagents": { + "inline_agents": { + "type": "enabled" }, - "mcp_servers": [ + "predefined_agents": [ { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 } ], - "metadata": { - "foo": "bar" - }, - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "advisor": { - "type": "disabled" - }, - "subagents": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - }, - "type": "multiagent_20261001", - "workflows": { - "inline_agents": { - "type": "enabled" - }, - "predefined_agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - } - ], - "type": "enabled" - } + "type": "enabled" + }, + "type": "multiagent_20261001", + "workflows": { + "inline_agents": { + "type": "enabled" }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, + "predefined_agents": [ { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 } ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ + "type": "enabled" + } + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" }, - "type": "agent_toolset_20260401" + "type": "bash" } ], - "type": "agent", - "updated_at": "2026-03-15T10:00:00Z", - "version": 1 + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" } ], - "next_page": "next_page" + "type": "agent", + "updated_at": "2026-03-15T10:00:00Z", + "version": 1 } ``` -## Beta › Environments - -### Create Environment +### Update Agent -`beta.environments.create(**kwargs) -> BetaEnvironment` +`beta.agents.update(agent_id, **kwargs) -> BetaManagedAgentsAgent` -**POST** `/v1/environments` +**POST** `/v1/agents/{agent_id}` -Create a new environment with the specified configuration. +Update Agent #### Parameters -- `name: String` +- `agent_id: String` (path parameter) - Human-readable name for the environment + Unique identifier of the agent to update. - minLength: 1, maxLength: 256 +- `description: String` -- `config: BetaCloudConfigParams | BetaSelfHostedConfigParams` + Description. Omit to preserve; send empty string or null to clear. - Environment configuration + maxLength: 2048 - - `class BetaCloudConfigParams` +- `execution_identity: BetaManagedAgentsExecutionIdentityParams` - Request params for `cloud` environment configuration. + Execution principal for runs of this agent. Full replacement. Omit to preserve; send null or `{"type": "service_account"}` to restore the default. - Fields default to null; on update, omitted fields preserve the - existing value. + - `class BetaManagedAgentsAWSRoleExecutionIdentityParams` - - `type: :cloud` + An AWS IAM role principal. - Environment type + - `type: :aws_role` - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetworkParams` + - `role_arn: String` - Network configuration policy. Omit on update to preserve the existing value. + The IAM role's ARN, e.g. "arn:aws:iam::123456789012:role/my-agent-runner". Maximum 2048 characters. - - `class BetaUnrestrictedNetwork` + maxLength: 2048 - Unrestricted network access. + - `class BetaManagedAgentsServiceAccountExecutionIdentityParams` - - `type: :unrestricted` + The Anthropic-managed service account — the default execution principal. Carries no identifier. - Network policy type + - `type: :service_account` - - `class BetaLimitedNetworkParams` +- `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` - Limited network request params. + MCP servers. Full replacement. Omit to preserve; send empty array or `null` to clear. Names must be unique. Maximum 20. Every server must be referenced by an `mcp_toolset` in the agent's resulting `tools`; unreferenced servers are rejected. See the [MCP connector guide](https://platform.claude.com/docs/en/managed-agents/mcp-connector?sdk_languages=ruby). - Fields default to null; on update, omitted fields preserve the - existing value. + - `type: :url` - - `type: :limited` + - `name: String` - Network policy type + Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. - - `allow_mcp_servers: bool` + minLength: 1, maxLength: 255 - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. Defaults to `false`. + - `url: String` - - `allow_package_managers: bool` + Endpoint URL for the MCP server. - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. Defaults to `false` on creation. Must be `true` when `packages` are specified. + maxLength: 2048 - - `allowed_hosts: Array[String]` +- `metadata: Hash[Symbol, String]` - Specifies domains the container can reach. + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. - - `packages: BetaPackagesParams` +- `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` - Package manager configuration. Under `limited` networking, requires `networking.allow_package_managers` to be `true`. Omit on update to preserve the existing value. + Model identifier. Accepts the [model string](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby#latest-models-comparison), e.g. `claude-opus-5-5`, or a `model_config` object for additional configuration control. Omit to preserve. Cannot be cleared. - - `type: :packages` + - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` - Package configuration type + The model that will power your agent. - - `apt: Array[String]` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Ubuntu/Debian packages to install + - `:"claude-haiku-5-5"` - - `cargo: Array[String]` + Fastest model for high-volume, real-time tasks - Rust packages to install + - `:"claude-sonnet-5-5"` - - `gem_: Array[String]` + Efficient model for coding and agents - Ruby packages to install + - `:"claude-opus-5-5"` - - `go: Array[String]` + Powerful intelligence for coding, knowledge work, and long-running agents - Go packages to install + - `:"claude-fable-5-1"` - - `npm: Array[String]` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - Node.js packages to install + - `:"claude-sonnet-5"` - - `pip: Array[String]` + Efficient model for coding and agents - Python packages to install + - `:"claude-fable-5"` - - `class BetaSelfHostedConfigParams` + Next generation of intelligence for the hardest knowledge work and coding problems - Request params for `self_hosted` environment configuration. + - `:"claude-opus-5"` - - `type: :self_hosted` + Powerful intelligence for long-running agents and coding - Environment type + - `:"claude-opus-4-8"` -- `description: String` + Powerful intelligence for long-running agents and coding - Optional description of the environment + - `:"claude-opus-4-7"` - maxLength: 1024 + Powerful intelligence for long-running agents and coding -- `metadata: Hash[Symbol, String]` + - `:"claude-opus-4-6"` - User-provided metadata key-value pairs + Powerful intelligence for long-running agents and coding -- `scope: :organization | :account` + - `:"claude-sonnet-4-6"` - The visibility scope for this environment. 'organization' makes the environment visible to all accounts. 'account' restricts visibility to the owning account only. API organizations support only 'organization'; 'account' is rejected. If not specified, defaults based on organization type. + Best combination of speed and intelligence - - `:organization` + - `:"claude-haiku-4-5"` - - `:account` + - `:"claude-haiku-4-5-20251001"` -- `betas: Array[AnthropicBeta]` (header parameter) + - `:"claude-opus-4-5"` - Optional header to specify the beta version(s) you want to use. + Powerful intelligence for long-running agents and coding - - `String = String` + - `:"claude-opus-4-5-20251101"` - - `:"message-batches-2024-09-24"` + Powerful intelligence for long-running agents and coding - - `:"prompt-caching-2024-07-31"` + - `:"claude-sonnet-4-5"` - - `:"computer-use-2024-10-22"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"computer-use-2025-01-24"` + High-performance model for agents and coding - - `:"pdfs-2024-09-25"` + - `:"claude-sonnet-4-5-20250929"` - - `:"token-counting-2024-11-01"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"token-efficient-tools-2025-02-19"` + High-performance model for agents and coding - - `:"output-128k-2025-02-19"` + - `String = String` - - `:"files-api-2025-04-14"` + - `class BetaManagedAgentsModelConfigParams` - - `:"mcp-client-2025-04-04"` + An object that defines additional configuration control over model use - - `:"mcp-client-2025-11-20"` + - `id: BetaManagedAgentsModel` - - `:"dev-full-thinking-2025-05-14"` + The model that will power your agent. - - `:"interleaved-thinking-2025-05-14"` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:"code-execution-2025-05-22"` + - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` - - `:"extended-cache-ttl-2025-04-11"` + How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. - - `:"context-1m-2025-08-07"` + - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` - - `:"context-management-2025-06-27"` + How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. - - `:"model-context-window-exceeded-2025-08-26"` + - `:low` - - `:"skills-2025-10-02"` + Low effort. Favors latency over reasoning depth. - - `:"fast-mode-2026-02-01"` + - `:medium` - - `:"output-300k-2026-03-24"` + Medium effort. Balances latency and reasoning depth. - - `:"user-profiles-2026-03-24"` + - `:high` - - `:"user-profiles-2026-08-18"` + High effort. Favors reasoning depth. - - `:"user-profiles-2026-09-04"` + - `:xhigh` - - `:"advisor-tool-2026-03-01"` + Extra-high effort. Not all models accept this level. - - `:"managed-agents-2026-04-01"` + - `:max` - - `:"cache-diagnosis-2026-04-07"` + Maximum effort. Favors reasoning depth over latency. - - `:"dreaming-2026-04-21"` + - `class BetaManagedAgentsEffortLow` - - `:"thinking-token-count-2026-05-13"` + Low effort. Favors latency over reasoning depth. - - `:"server-side-fallback-2026-06-01"` + - `type: :low` - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsEffortMedium` - - `:"fallback-credit-2026-06-01"` + Medium effort. Balances latency and reasoning depth. - - `:"fallback-credit-2026-07-01"` + - `type: :medium` - - `:"agent-memory-2026-07-22"` + - `class BetaManagedAgentsEffortHigh` - - `:"mid-conversation-tool-changes-2026-07-01"` + High effort. Favors reasoning depth. - - `:"compact-2026-01-12"` + - `type: :high` - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsEffortXhigh` - - `:"mcp-tunnels-2026-06-22"` + Extra-high effort. Not all models accept this level. - - `:"structured-outputs-2025-11-13"` + - `type: :xhigh` - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsEffortMax` - - `:"thinking-display-updates-2026-08-18"` + Maximum effort. Favors reasoning depth over latency. - - `:"ce-user-management-2026-07-13"` + - `type: :max` - - `:"mid-conversation-output-config-2026-07-01"` + - `inference_geo: String` - - `:"thinking-binding-controls-2026-08-01"` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `speed: :standard | :fast` - - `:"compact-2026-09-04"` + Inference speed mode. Defaults to `standard`. - - `:"inline-tools-2026-09-15"` + - `:standard` - - `:"mcp-client-2026-09-15"` + - `:fast` - - `:"ce-plugins-2026-09-01"` +- `multiagent: BetaManagedAgentsMultiagentParams` - - `:"spend-limit-reads-2026-09-26"` + Multiagent orchestration configuration. Full replacement. Omit to preserve; send null to clear. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsMultiagentCoordinatorParams` -- `workspace_id: String` (header parameter) + A coordinator topology: the session's primary thread orchestrates work by spawning session threads, each running an agent drawn from the `agents` roster. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :coordinator` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `agents: Array[BetaManagedAgentsMultiagentRosterEntryParams]` -#### Returns + Agents the coordinator may spawn as session threads. 1–20 entries. Each entry is an agent ID string, a versioned `{"type":"agent","id","version"}` reference, or `{"type":"self"}` to allow recursive self-invocation. Entries must reference distinct agents (after resolving `self` and string forms); at most one `self`. Referenced agents must exist, must not be archived, and must not themselves have `multiagent` set (depth limit 1). -- `class BetaEnvironment` + - `String = String` - Unified Environment resource for both cloud and self-hosted environments. + - `class BetaManagedAgentsAgentParams` - - `type: :environment` + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - The type of object (always 'environment') + - `type: :agent` - - `id: String` + - `id: String` - Environment identifier (e.g., 'env_...') + The `agent` ID. - - `archived_at: String` + minLength: 1, maxLength: 128 - RFC 3339 timestamp when environment was archived, or null if not archived + - `version: Integer` - - `config: BetaCloudConfig | BetaSelfHostedConfig` + The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. - Environment configuration (either Anthropic Cloud or self-hosted) + format: int32 - - `class BetaCloudConfig` + - `class BetaManagedAgentsMultiagentSelfParams` - `cloud` environment configuration. + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. - - `type: :cloud` + - `type: :self` - Environment type + - `class BetaManagedAgentsAdvisorParams` - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. At most one per roster; the entry occupies the roster name `anthropic.advisor`. - Network configuration policy. + - `type: :advisor` - - `class BetaUnrestrictedNetwork` + - `model: String` - Unrestricted network access. + A Claude model id. The model must be permitted as an advisor for this agent's model. - - `type: :unrestricted` + minLength: 1, maxLength: 256 - Network policy type + - `class BetaManagedAgentsMultiagent20261001Params` - - `class BetaLimitedNetwork` + Multiagent configuration with three members, each enabled or disabled on its own. On an update, if the agent's stored `multiagent` also has type `multiagent_20261001`, this configuration is merged into the stored one, level by level, instead of replacing it. A key that the update omits keeps its stored value. A key sent as null takes its default, on create as well, so `"workflows": null` enables workflows. An object sent with a `type` other than the stored one replaces the stored object, and the keys that it omits take their defaults. A `predefined_agents` list that is sent replaces the stored list. Every object that is sent needs its `type`, and an enabled `advisor` needs its `model`. Other validation applies to the merged result. - Limited network access. + - `type: :multiagent_20261001` - - `type: :limited` + - `advisor: BetaManagedAgentsMultiagentAdvisorParams` - Network policy type + Whether the session's primary thread can consult an advisor model. Defaults to disabled. - - `allow_mcp_servers: bool` + - `class BetaManagedAgentsMultiagentAdvisorEnabledParams` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. + The session's primary thread can consult `model` mid-turn. - - `allow_package_managers: bool` + - `type: :enabled` - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. + - `model: String` - - `allowed_hosts: Array[String]` + A Claude model id. The model must be permitted as an advisor for this agent's model. - Specifies domains the container can reach. + minLength: 1, maxLength: 256 - - `packages: BetaPackages` + - `class BetaManagedAgentsMultiagentAdvisorDisabledParams` - Package manager configuration. + The agent has no advisor. - - `type: :packages` + - `type: :disabled` - Package configuration type + - `subagents: BetaManagedAgentsMultiagentSubagentsParams` - - `apt: Array[String]` + Whether the agent can spawn session threads. Defaults to enabled. - Ubuntu/Debian packages to install + - `class BetaManagedAgentsMultiagentSubagentsEnabledParams` - - `cargo: Array[String]` + The agent can spawn session threads. Each thread runs a predefined agent, which is a saved agent in `predefined_agents`, or an inline agent, which the agent defines when it spawns the thread and which is not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. - Rust packages to install + - `type: :enabled` - - `gem_: Array[String]` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` - Ruby packages to install + Whether the agent can define inline agents when it spawns session threads. Defaults to enabled. - - `go: Array[String]` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabledParams` - Go packages to install + The agent can define inline agents. - - `npm: Array[String]` + - `type: :enabled` - Node.js packages to install + - `class BetaManagedAgentsMultiagentInlineAgentsDisabledParams` - - `pip: Array[String]` + The agent cannot define inline agents. - Python packages to install + - `type: :disabled` - - `class BetaSelfHostedConfig` + - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` - Configuration for self-hosted environments. + Predefined agents that this agent can spawn as session threads. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `workflows.predefined_agents`, and an agent in one list is not added to the other. - - `type: :self_hosted` + - `String = String` - Environment type + - `class BetaManagedAgentsAgentParams` - - `created_at: String` + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - RFC 3339 timestamp when environment was created + - `class BetaManagedAgentsMultiagentSelfParams` - - `description: String` + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. - User-provided description for the environment; null when unset + - `class BetaManagedAgentsMultiagentSubagentsDisabledParams` - - `metadata: Hash[Symbol, String]` + The agent cannot spawn session threads. - User-provided metadata key-value pairs + - `type: :disabled` - - `name: String` + - `workflows: BetaManagedAgentsMultiagentWorkflowsParams` - Human-readable name for the environment + Whether the agent can start workflow runs. Defaults to enabled. - - `updated_at: String` + - `class BetaManagedAgentsMultiagentWorkflowsEnabledParams` - RFC 3339 timestamp when environment was last updated + The agent can start workflow runs. Each run follows a plan, a program that the agent writes. A plan can use predefined agents, which are the saved agents in `predefined_agents`, and inline agents, which it defines itself and which are not saved. If `inline_agents` is disabled, `predefined_agents` must name at least one agent. - - `scope: :organization | :account` + - `type: :enabled` - The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + - `inline_agents: BetaManagedAgentsMultiagentInlineAgentsParams` - - `:organization` + Whether a run's plan can define inline agents. Defaults to enabled. - - `:account` + - `predefined_agents: Array[BetaManagedAgentsMultiagentPredefinedAgentParams]` -#### Example + Predefined agents that a run's plan can use. At most 20. Defaults to null. Null and an empty list both mean no predefined agents. This list is separate from `subagents.predefined_agents`, and an agent in one list is not added to the other. -```ruby -require "anthropic" + - `String = String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsAgentParams` -beta_environment = anthropic.beta.environments.create(name: "python-data-analysis") + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version -puts(beta_environment) -``` + - `class BetaManagedAgentsMultiagentSelfParams` -##### Response (200) + Sentinel roster entry meaning "the agent that owns this configuration". Resolved server-side to a concrete agent reference. -```json -{ - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "archived_at": null, - "config": { - "networking": { - "allow_mcp_servers": false, - "allow_package_managers": true, - "allowed_hosts": [ - "api.example.com" - ], - "type": "limited" - }, - "packages": { - "apt": [ - "string" - ], - "cargo": [ - "string" - ], - "gem": [ - "string" - ], - "go": [ - "string" - ], - "npm": [ - "string" - ], - "pip": [ - "pandas", - "numpy" - ], - "type": "packages" - }, - "type": "cloud" - }, - "created_at": "2026-03-15T10:00:00Z", - "description": "Python environment with data-analysis packages.", - "metadata": {}, - "name": "python-data-analysis", - "type": "environment", - "updated_at": "2026-03-15T10:00:00Z", - "scope": "organization" -} -``` + - `class BetaManagedAgentsMultiagentWorkflowsDisabledParams` -### List Environments + The agent cannot start workflow runs. -`beta.environments.list(**kwargs) -> PageCursor` + - `type: :disabled` -**GET** `/v1/environments` +- `name: String` -List environments with pagination support. + Human-readable name. Must be non-empty. Omit to preserve. Cannot be cleared. -#### Parameters + maxLength: 256 -- `include_archived: bool` (query parameter) +- `skills: Array[BetaManagedAgentsSkillParams]` - Include archived environments in the response + Skills. Full replacement. Omit to preserve; send empty array or null to clear. -- `limit: Integer` (query parameter) + - `class BetaManagedAgentsAnthropicSkillParams` - Maximum number of environments to return + An Anthropic-managed skill. - minimum: 1, maximum: 1000 + - `type: :anthropic` -- `page: String` (query parameter) + - `skill_id: String` - Opaque cursor from previous response for pagination. Pass the `next_page` value from the previous response. + Identifier of the Anthropic skill (e.g., "xlsx"). -- `betas: Array[AnthropicBeta]` (header parameter) + minLength: 1, maxLength: 64 - Optional header to specify the beta version(s) you want to use. + - `version: String` - - `String = String` + Version to pin. Defaults to latest if omitted. - - `:"message-batches-2024-09-24"` + minLength: 1, maxLength: 64 - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsCustomSkillParams` - - `:"computer-use-2024-10-22"` + A user-created custom skill. - - `:"computer-use-2025-01-24"` + - `type: :custom` - - `:"pdfs-2024-09-25"` + - `skill_id: String` - - `:"token-counting-2024-11-01"` + Tagged ID of the custom skill (e.g., "skill_01XJ5..."). - - `:"token-efficient-tools-2025-02-19"` + minLength: 1, maxLength: 64 - - `:"output-128k-2025-02-19"` + - `version: String` - - `:"files-api-2025-04-14"` + Version to pin. Defaults to latest if omitted. - - `:"mcp-client-2025-04-04"` + minLength: 1, maxLength: 64 - - `:"mcp-client-2025-11-20"` +- `system_: String` - - `:"dev-full-thinking-2025-05-14"` + System prompt. Omit to preserve; send empty string or null to clear. - - `:"interleaved-thinking-2025-05-14"` + maxLength: 100000 - - `:"code-execution-2025-05-22"` +- `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` - - `:"extended-cache-ttl-2025-04-11"` + Tool configurations available to the agent. Full replacement. Omit to preserve; send empty array or null to clear. Maximum of 256 tools across all toolsets allowed. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsAgentToolset20260401Params` - - `:"context-management-2025-06-27"` + Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :agent_toolset_20260401` - - `:"skills-2025-10-02"` + - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` - - `:"fast-mode-2026-02-01"` + Per-tool configuration overrides. - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsBashToolConfigParams` - - `:"user-profiles-2026-03-24"` + Configuration override for the bash tool. - - `:"user-profiles-2026-08-18"` + - `type: :bash` - - `:"user-profiles-2026-09-04"` + - `name: :bash` - - `:"advisor-tool-2026-03-01"` + Must be "bash". - - `:"managed-agents-2026-04-01"` + - `enabled: bool` - - `:"cache-diagnosis-2026-04-07"` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `:"dreaming-2026-04-21"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"thinking-token-count-2026-05-13"` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"server-side-fallback-2026-07-01"` + Tool calls are automatically approved without user confirmation. - - `:"fallback-credit-2026-06-01"` + - `type: :always_allow` - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"agent-memory-2026-07-22"` + Tool calls require user confirmation before execution. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :always_ask` - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsAutoPolicy` - - `:"computer-use-2025-11-24"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"mcp-tunnels-2026-06-22"` + - `type: :auto` - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsEditToolConfigParams` - - `:"task-budgets-2026-03-13"` + Configuration override for the edit tool. - - `:"thinking-display-updates-2026-08-18"` + - `type: :edit` - - `:"ce-user-management-2026-07-13"` + - `name: :edit` - - `:"mid-conversation-output-config-2026-07-01"` + Must be "edit". - - `:"thinking-binding-controls-2026-08-01"` + - `enabled: bool` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `:"compact-2026-09-04"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"inline-tools-2026-09-15"` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"ce-plugins-2026-09-01"` + Tool calls are automatically approved without user confirmation. - - `:"spend-limit-reads-2026-09-26"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"telemetry-destinations-2026-08-11"` + Tool calls require user confirmation before execution. -- `workspace_id: String` (header parameter) + - `class BetaManagedAgentsAutoPolicy` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsReadToolConfigParams` -#### Returns + Configuration override for the read tool. -- `class BetaEnvironment` + - `type: :read` - Unified Environment resource for both cloud and self-hosted environments. + - `name: :read` - - `type: :environment` + Must be "read". - The type of object (always 'environment') + - `enabled: bool` - - `id: String` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Environment identifier (e.g., 'env_...') + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `archived_at: String` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - RFC 3339 timestamp when environment was archived, or null if not archived + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `config: BetaCloudConfig | BetaSelfHostedConfig` + Tool calls are automatically approved without user confirmation. - Environment configuration (either Anthropic Cloud or self-hosted) + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaCloudConfig` + Tool calls require user confirmation before execution. - `cloud` environment configuration. + - `class BetaManagedAgentsAutoPolicy` - - `type: :cloud` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Environment type + - `class BetaManagedAgentsWriteToolConfigParams` - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` + Configuration override for the write tool. - Network configuration policy. + - `type: :write` - - `class BetaUnrestrictedNetwork` + - `name: :write` - Unrestricted network access. + Must be "write". - - `type: :unrestricted` + - `enabled: bool` - Network policy type + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `class BetaLimitedNetwork` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Limited network access. + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `type: :limited` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Network policy type + Tool calls are automatically approved without user confirmation. - - `allow_mcp_servers: bool` + - `class BetaManagedAgentsAlwaysAskPolicy` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. + Tool calls require user confirmation before execution. - - `allow_package_managers: bool` + - `class BetaManagedAgentsAutoPolicy` - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `allowed_hosts: Array[String]` + - `class BetaManagedAgentsGlobToolConfigParams` - Specifies domains the container can reach. + Configuration override for the glob tool. - - `packages: BetaPackages` + - `type: :glob` - Package manager configuration. + - `name: :glob` - - `type: :packages` + Must be "glob". - Package configuration type + - `enabled: bool` - - `apt: Array[String]` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Ubuntu/Debian packages to install + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `cargo: Array[String]` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Rust packages to install + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `gem_: Array[String]` + Tool calls are automatically approved without user confirmation. - Ruby packages to install + - `class BetaManagedAgentsAlwaysAskPolicy` - - `go: Array[String]` + Tool calls require user confirmation before execution. - Go packages to install + - `class BetaManagedAgentsAutoPolicy` - - `npm: Array[String]` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Node.js packages to install + - `class BetaManagedAgentsGrepToolConfigParams` - - `pip: Array[String]` + Configuration override for the grep tool. - Python packages to install + - `type: :grep` - - `class BetaSelfHostedConfig` + - `name: :grep` - Configuration for self-hosted environments. + Must be "grep". - - `type: :self_hosted` + - `enabled: bool` - Environment type + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `created_at: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - RFC 3339 timestamp when environment was created + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `description: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - User-provided description for the environment; null when unset + Tool calls are automatically approved without user confirmation. - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsAlwaysAskPolicy` - User-provided metadata key-value pairs + Tool calls require user confirmation before execution. - - `name: String` + - `class BetaManagedAgentsAutoPolicy` - Human-readable name for the environment + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `updated_at: String` + - `class BetaManagedAgentsWebFetchToolConfigParams` - RFC 3339 timestamp when environment was last updated + Configuration override for the web_fetch tool. - - `scope: :organization | :account` + - `type: :web_fetch` - The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + - `name: :web_fetch` - - `:organization` + Must be "web_fetch". - - `:account` + - `allowed_domains: Array[String]` -#### Example + Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. -```ruby -require "anthropic" + - `blocked_domains: Array[String]` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. -page = anthropic.beta.environments.list + - `enabled: bool` -puts(page) -``` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. -##### Response (200) + - `max_content_tokens: Integer` -```json -{ - "data": [ - { - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "archived_at": null, - "config": { - "networking": { - "allow_mcp_servers": false, - "allow_package_managers": true, - "allowed_hosts": [ - "api.example.com" - ], - "type": "limited" - }, - "packages": { - "apt": [ - "string" - ], - "cargo": [ - "string" - ], - "gem": [ - "string" - ], - "go": [ - "string" - ], - "npm": [ - "string" - ], - "pip": [ - "pandas", - "numpy" - ], - "type": "packages" - }, - "type": "cloud" - }, - "created_at": "2026-03-15T10:00:00Z", - "description": "Python environment with data-analysis packages.", - "metadata": {}, - "name": "python-data-analysis", - "type": "environment", - "updated_at": "2026-03-15T10:00:00Z", - "scope": "organization" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. -### Get Environment + format: int32 -`beta.environments.retrieve(environment_id, **kwargs) -> BetaEnvironment` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -**GET** `/v1/environments/{environment_id}` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. -Retrieve a specific environment by ID. + - `class BetaManagedAgentsAlwaysAllowPolicy` -#### Parameters + Tool calls are automatically approved without user confirmation. -- `environment_id: String` (path parameter) + - `class BetaManagedAgentsAlwaysAskPolicy` -- `betas: Array[AnthropicBeta]` (header parameter) + Tool calls require user confirmation before execution. - Optional header to specify the beta version(s) you want to use. + - `class BetaManagedAgentsAutoPolicy` - - `String = String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"message-batches-2024-09-24"` + - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` - - `:"prompt-caching-2024-07-31"` + Which sources contribute URLs the tool may fetch. Omit to allow every source. - - `:"computer-use-2024-10-22"` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - `:"computer-use-2025-01-24"` + Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. - - `:"pdfs-2024-09-25"` + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - - `:"token-counting-2024-11-01"` + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - `:"token-efficient-tools-2025-02-19"` + - `:all` - - `:"output-128k-2025-02-19"` + - `:none` - - `:"files-api-2025-04-14"` + - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` - - `:"mcp-client-2025-04-04"` + Which tools' results contribute URLs that may be fetched. - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"dev-full-thinking-2025-05-14"` + Every URL from this source may be fetched. This is the default. - - `:"interleaved-thinking-2025-05-14"` + - `type: :all` - - `:"code-execution-2025-05-22"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"extended-cache-ttl-2025-04-11"` + This source contributes no URLs that may be fetched. - - `:"context-1m-2025-08-07"` + - `type: :none` - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `:"model-context-window-exceeded-2025-08-26"` + Only the named tools' results contribute URLs that may be fetched. - - `:"skills-2025-10-02"` + - `type: :only` - - `:"fast-mode-2026-02-01"` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `:"output-300k-2026-03-24"` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `:"user-profiles-2026-03-24"` + - `type: :tool_reference` - - `:"user-profiles-2026-08-18"` + Must be "tool_reference". - - `:"user-profiles-2026-09-04"` + - `name: String` - - `:"advisor-tool-2026-03-01"` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `:"managed-agents-2026-04-01"` + minLength: 1, maxLength: 128 - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `:"dreaming-2026-04-21"` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `:"thinking-token-count-2026-05-13"` + - `type: :except` - - `:"server-side-fallback-2026-06-01"` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `:"server-side-fallback-2026-07-01"` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `:"fallback-credit-2026-06-01"` + - `type: :tool_reference` - - `:"fallback-credit-2026-07-01"` + Must be "tool_reference". - - `:"agent-memory-2026-07-22"` + - `name: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `:"compact-2026-01-12"` + minLength: 1, maxLength: 128 - - `:"computer-use-2025-11-24"` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - `:"mcp-tunnels-2026-06-22"` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". - - `:"structured-outputs-2025-11-13"` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` - - `:"task-budgets-2026-03-13"` + Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". - - `:"thinking-display-updates-2026-08-18"` + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - - `:"ce-user-management-2026-07-13"` + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - `:"mid-conversation-output-config-2026-07-01"` + - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` - - `:"thinking-binding-controls-2026-08-01"` + Whether URLs in the text of user messages may be fetched. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"compact-2026-09-04"` + Every URL from this source may be fetched. This is the default. - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"mcp-client-2026-09-15"` + This source contributes no URLs that may be fetched. - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsWebSearchToolConfigParams` - - `:"spend-limit-reads-2026-09-26"` + Configuration override for the web_search tool. - - `:"telemetry-destinations-2026-08-11"` + - `type: :web_search` -- `workspace_id: String` (header parameter) + - `name: :web_search` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Must be "web_search". - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `allowed_domains: Array[String]` -#### Returns + Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. -- `class BetaEnvironment` + - `blocked_domains: Array[String]` - Unified Environment resource for both cloud and self-hosted environments. + Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - `type: :environment` + - `enabled: bool` - The type of object (always 'environment') + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Environment identifier (e.g., 'env_...') + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `archived_at: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - RFC 3339 timestamp when environment was archived, or null if not archived + Tool calls are automatically approved without user confirmation. - - `config: BetaCloudConfig | BetaSelfHostedConfig` + - `class BetaManagedAgentsAlwaysAskPolicy` - Environment configuration (either Anthropic Cloud or self-hosted) + Tool calls require user confirmation before execution. - - `class BetaCloudConfig` + - `class BetaManagedAgentsAutoPolicy` - `cloud` environment configuration. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :cloud` + - `user_location: BetaManagedAgentsUserLocation` - Environment type + Approximate user location for search result localization. - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` + - `type: :approximate` - Network configuration policy. + Location precision. Only "approximate" is supported. - - `class BetaUnrestrictedNetwork` + - `city: String` - Unrestricted network access. + City name. - - `type: :unrestricted` + minLength: 1, maxLength: 255 - Network policy type + - `country: String` - - `class BetaLimitedNetwork` + Two-letter ISO 3166-1 country code, uppercase. - Limited network access. + - `region: String` - - `type: :limited` + Region or state name. - Network policy type + minLength: 1, maxLength: 255 - - `allow_mcp_servers: bool` + - `timezone: String` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. + IANA timezone identifier, e.g. "America/Los_Angeles". - - `allow_package_managers: bool` + minLength: 1, maxLength: 255 - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` - - `allowed_hosts: Array[String]` + Default configuration applied to all tools in this set. - Specifies domains the container can reach. + - `enabled: bool` - - `packages: BetaPackages` + Whether tools are enabled and available to Claude by default. Defaults to true if not specified. - Package manager configuration. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :packages` + Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. - Package configuration type + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `apt: Array[String]` + Tool calls are automatically approved without user confirmation. - Ubuntu/Debian packages to install + - `class BetaManagedAgentsAlwaysAskPolicy` - - `cargo: Array[String]` + Tool calls require user confirmation before execution. - Rust packages to install + - `class BetaManagedAgentsAutoPolicy` - - `gem_: Array[String]` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Ruby packages to install + - `class BetaManagedAgentsMCPToolsetParams` - - `go: Array[String]` + Configuration for tools from an MCP server defined in `mcp_servers`. - Go packages to install + - `type: :mcp_toolset` - - `npm: Array[String]` + - `mcp_server_name: String` - Node.js packages to install + Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. - - `pip: Array[String]` + minLength: 1, maxLength: 255 - Python packages to install + - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` - - `class BetaSelfHostedConfig` + Per-tool configuration overrides. - Configuration for self-hosted environments. + - `name: String` - - `type: :self_hosted` + Name of the MCP tool to configure. 1-128 characters. - Environment type + minLength: 1, maxLength: 128 - - `created_at: String` + - `enabled: bool` - RFC 3339 timestamp when environment was created + Whether this tool is enabled. Overrides the `default_config` setting. - - `description: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - User-provided description for the environment; null when unset + Permission policy for this tool. Overrides the `default_config` setting. - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - User-provided metadata key-value pairs + Tool calls are automatically approved without user confirmation. - - `name: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Human-readable name for the environment + Tool calls require user confirmation before execution. - - `updated_at: String` + - `class BetaManagedAgentsAutoPolicy` - RFC 3339 timestamp when environment was last updated + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `scope: :organization | :account` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` - The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + Default configuration for all tools from this server. - - `:organization` + - `enabled: bool` - - `:account` + Whether tools are enabled by default. Defaults to true if not specified. -#### Example + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -```ruby -require "anthropic" + Default permission policy for tools from this server. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsAlwaysAllowPolicy` -beta_environment = anthropic.beta.environments.retrieve("env_011CZkZ9X2dpNyB7HsEFoRfW") + Tool calls are automatically approved without user confirmation. -puts(beta_environment) -``` + - `class BetaManagedAgentsAlwaysAskPolicy` -##### Response (200) + Tool calls require user confirmation before execution. -```json -{ - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "archived_at": null, - "config": { - "networking": { - "allow_mcp_servers": false, - "allow_package_managers": true, - "allowed_hosts": [ - "api.example.com" - ], - "type": "limited" - }, - "packages": { - "apt": [ - "string" - ], - "cargo": [ - "string" - ], - "gem": [ - "string" - ], - "go": [ - "string" - ], - "npm": [ - "string" - ], - "pip": [ - "pandas", - "numpy" - ], - "type": "packages" - }, - "type": "cloud" - }, - "created_at": "2026-03-15T10:00:00Z", - "description": "Python environment with data-analysis packages.", - "metadata": {}, - "name": "python-data-analysis", - "type": "environment", - "updated_at": "2026-03-15T10:00:00Z", - "scope": "organization" -} -``` + - `class BetaManagedAgentsAutoPolicy` -### Update Environment + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -`beta.environments.update(environment_id, **kwargs) -> BetaEnvironment` + - `class BetaManagedAgentsCustomToolParams` -**POST** `/v1/environments/{environment_id}` + A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. -Update an existing environment's configuration. + - `type: :custom` -#### Parameters + - `description: String` -- `environment_id: String` (path parameter) + Description of what the tool does, shown to the agent to help it decide when to use the tool. -- `config: BetaCloudConfigParams | BetaSelfHostedConfigParams` + minLength: 1 - Updated environment configuration + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `class BetaCloudConfigParams` + JSON Schema defining the expected input parameters for the tool. - Request params for `cloud` environment configuration. + - `type: :object` - Fields default to null; on update, omitted fields preserve the - existing value. + - `properties: Hash[Symbol, untyped]` - - `type: :cloud` + - `required: Array[String]` - Environment type + - `name: String` - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetworkParams` + Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. - Network configuration policy. Omit on update to preserve the existing value. + minLength: 1, maxLength: 128 - - `class BetaUnrestrictedNetwork` +- `version: Integer` - Unrestricted network access. + The agent's current version, used to prevent concurrent overwrites. Obtain this value from a create or retrieve response. Must be at least 1 if specified. When supplied, the request fails if it does not match the server's current version; omit to apply the update unconditionally. - - `type: :unrestricted` + format: int32 - Network policy type +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaLimitedNetworkParams` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - Limited network request params. + - `String = String` - Fields default to null; on update, omitted fields preserve the - existing value. + - `:"message-batches-2024-09-24"` - - `type: :limited` + - `:"prompt-caching-2024-07-31"` - Network policy type + - `:"computer-use-2024-10-22"` - - `allow_mcp_servers: bool` + - `:"computer-use-2025-01-24"` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. Defaults to `false`. + - `:"pdfs-2024-09-25"` - - `allow_package_managers: bool` - - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. Defaults to `false` on creation. Must be `true` when `packages` are specified. - - - `allowed_hosts: Array[String]` - - Specifies domains the container can reach. - - - `packages: BetaPackagesParams` - - Package manager configuration. Under `limited` networking, requires `networking.allow_package_managers` to be `true`. Omit on update to preserve the existing value. - - - `type: :packages` - - Package configuration type - - - `apt: Array[String]` - - Ubuntu/Debian packages to install - - - `cargo: Array[String]` - - Rust packages to install - - - `gem_: Array[String]` - - Ruby packages to install - - - `go: Array[String]` - - Go packages to install - - - `npm: Array[String]` - - Node.js packages to install - - - `pip: Array[String]` - - Python packages to install - - - `class BetaSelfHostedConfigParams` - - Request params for `self_hosted` environment configuration. - - - `type: :self_hosted` - - Environment type - -- `description: String` - - Updated description of the environment. Omit to preserve; null clears to null; an empty string is stored as an empty string. - - maxLength: 1024 - -- `metadata: Hash[Symbol, String]` - - User-provided metadata key-value pairs. Set a value to null or empty string to delete the key. - -- `name: String` - - Updated name for the environment - - minLength: 1, maxLength: 256 - -- `scope: :organization | :account` - - The visibility scope for this environment. 'organization' makes the environment visible to all accounts. 'account' restricts visibility to the owning account only. - - - `:organization` - - - `:account` - -- `betas: Array[AnthropicBeta]` (header parameter) - - Optional header to specify the beta version(s) you want to use. - - - `String = String` - - - `:"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-counting-2024-11-01"` - `:"token-efficient-tools-2025-02-19"` @@ -32392,6 +32491,8 @@ Update an existing environment's configuration. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32400,884 +32501,791 @@ Update an existing environment's configuration. #### Returns -- `class BetaEnvironment` - - Unified Environment resource for both cloud and self-hosted environments. +- `class BetaManagedAgentsAgent` - - `type: :environment` + A Managed Agents `agent`. - The type of object (always 'environment') + - `type: :agent` - `id: String` - Environment identifier (e.g., 'env_...') + - `archived_at: Time` - - `archived_at: String` + When the agent was archived. Null if not archived. - RFC 3339 timestamp when environment was archived, or null if not archived + format: date-time - - `config: BetaCloudConfig | BetaSelfHostedConfig` + - `created_at: Time` - Environment configuration (either Anthropic Cloud or self-hosted) + A timestamp in RFC 3339 format - - `class BetaCloudConfig` + format: date-time - `cloud` environment configuration. + - `description: String` - - `type: :cloud` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Environment type + Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - Network configuration policy. + An AWS IAM role principal as returned in API responses. - - `class BetaUnrestrictedNetwork` + - `type: :aws_role` - Unrestricted network access. + - `role_arn: String` - - `type: :unrestricted` + The IAM role's ARN. - Network policy type + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `class BetaLimitedNetwork` + The Anthropic-managed service account as returned in API responses. - Limited network access. + - `type: :service_account` - - `type: :limited` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Network policy type + - `type: :url` - - `allow_mcp_servers: bool` + - `name: String` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. + - `url: String` - - `allow_package_managers: bool` + - `metadata: Hash[Symbol, String]` - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. + - `model: BetaManagedAgentsModelConfig` - - `allowed_hosts: Array[String]` + Model identifier and configuration. - Specifies domains the container can reach. + - `id: BetaManagedAgentsModel` - - `packages: BetaPackages` + The model that will power your agent. - Package manager configuration. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `type: :packages` + - `:"claude-haiku-5-5"` - Package configuration type + Fastest model for high-volume, real-time tasks - - `apt: Array[String]` + - `:"claude-sonnet-5-5"` - Ubuntu/Debian packages to install + Efficient model for coding and agents - - `cargo: Array[String]` + - `:"claude-opus-5-5"` - Rust packages to install + Powerful intelligence for coding, knowledge work, and long-running agents - - `gem_: Array[String]` + - `:"claude-fable-5-1"` - Ruby packages to install + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `go: Array[String]` + - `:"claude-sonnet-5"` - Go packages to install + Efficient model for coding and agents - - `npm: Array[String]` + - `:"claude-fable-5"` - Node.js packages to install + Next generation of intelligence for the hardest knowledge work and coding problems - - `pip: Array[String]` + - `:"claude-opus-5"` - Python packages to install + Powerful intelligence for long-running agents and coding - - `class BetaSelfHostedConfig` + - `:"claude-opus-4-8"` - Configuration for self-hosted environments. + Powerful intelligence for long-running agents and coding - - `type: :self_hosted` + - `:"claude-opus-4-7"` - Environment type + Powerful intelligence for long-running agents and coding - - `created_at: String` + - `:"claude-opus-4-6"` - RFC 3339 timestamp when environment was created + Powerful intelligence for long-running agents and coding - - `description: String` + - `:"claude-sonnet-4-6"` - User-provided description for the environment; null when unset + Best combination of speed and intelligence - - `metadata: Hash[Symbol, String]` + - `:"claude-haiku-4-5"` - User-provided metadata key-value pairs + - `:"claude-haiku-4-5-20251001"` - - `name: String` + - `:"claude-opus-4-5"` - Human-readable name for the environment + Powerful intelligence for long-running agents and coding - - `updated_at: String` + - `:"claude-opus-4-5-20251101"` - RFC 3339 timestamp when environment was last updated + Powerful intelligence for long-running agents and coding - - `scope: :organization | :account` + - `:"claude-sonnet-4-5"` - The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:organization` + High-performance model for agents and coding - - `:account` + - `:"claude-sonnet-4-5-20250929"` -#### Example + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. -```ruby -require "anthropic" + High-performance model for agents and coding -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `String = String` -beta_environment = anthropic.beta.environments.update("env_011CZkZ9X2dpNyB7HsEFoRfW") + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` -puts(beta_environment) -``` + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. -##### Response (200) + - `class BetaManagedAgentsEffortLow` -```json -{ - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "archived_at": null, - "config": { - "networking": { - "allow_mcp_servers": false, - "allow_package_managers": true, - "allowed_hosts": [ - "api.example.com" - ], - "type": "limited" - }, - "packages": { - "apt": [ - "string" - ], - "cargo": [ - "string" - ], - "gem": [ - "string" - ], - "go": [ - "string" - ], - "npm": [ - "string" - ], - "pip": [ - "pandas", - "numpy" - ], - "type": "packages" - }, - "type": "cloud" - }, - "created_at": "2026-03-15T10:00:00Z", - "description": "Python environment with data-analysis packages.", - "metadata": {}, - "name": "python-data-analysis", - "type": "environment", - "updated_at": "2026-03-15T10:00:00Z", - "scope": "organization" -} -``` + Low effort. Favors latency over reasoning depth. -### Delete Environment + - `type: :low` -`beta.environments.delete(environment_id, **kwargs) -> BetaEnvironmentDeleteResponse` + - `class BetaManagedAgentsEffortMedium` -**DELETE** `/v1/environments/{environment_id}` + Medium effort. Balances latency and reasoning depth. -Delete an environment by ID. Returns a confirmation of the deletion. + - `type: :medium` -#### Parameters + - `class BetaManagedAgentsEffortHigh` -- `environment_id: String` (path parameter) + High effort. Favors reasoning depth. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :high` - Optional header to specify the beta version(s) you want to use. + - `class BetaManagedAgentsEffortXhigh` - - `String = String` + Extra-high effort. Not all models accept this level. - - `:"message-batches-2024-09-24"` + - `type: :xhigh` - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsEffortMax` - - `:"computer-use-2024-10-22"` + Maximum effort. Favors reasoning depth over latency. - - `:"computer-use-2025-01-24"` + - `type: :max` - - `:"pdfs-2024-09-25"` + - `inference_geo: String` - - `:"token-counting-2024-11-01"` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `:"token-efficient-tools-2025-02-19"` + - `speed: :standard | :fast` - - `:"output-128k-2025-02-19"` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `:"files-api-2025-04-14"` + - `:standard` - - `:"mcp-client-2025-04-04"` + - `:fast` - - `:"mcp-client-2025-11-20"` + - `multiagent: BetaManagedAgentsMultiagent` - - `:"dev-full-thinking-2025-05-14"` + Multiagent orchestration configuration. Null when the agent is single-threaded. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsMultiagentCoordinator` - - `:"code-execution-2025-05-22"` + Resolved coordinator topology with a concrete agent roster. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :coordinator` - - `:"context-1m-2025-08-07"` + - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` - - `:"context-management-2025-06-27"` + Agents the coordinator may spawn as session threads, each resolved to a specific version. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsAgentReference` - - `:"skills-2025-10-02"` + A resolved agent reference with a concrete version. - - `:"fast-mode-2026-02-01"` + - `type: :agent` - - `:"output-300k-2026-03-24"` + - `id: String` - - `:"user-profiles-2026-03-24"` + - `version: Integer` - - `:"user-profiles-2026-08-18"` + format: int32 - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsAdvisor` - - `:"advisor-tool-2026-03-01"` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `:"managed-agents-2026-04-01"` + - `type: :advisor` - - `:"cache-diagnosis-2026-04-07"` + - `model: String` - - `:"dreaming-2026-04-21"` + The advisor model id. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsMultiagent20261001` - - `:"server-side-fallback-2026-06-01"` + Resolved multiagent configuration with three members, each enabled or disabled on its own. - - `:"server-side-fallback-2026-07-01"` + - `type: :multiagent_20261001` - - `:"fallback-credit-2026-06-01"` + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `:"fallback-credit-2026-07-01"` + Whether the session's primary thread can consult an advisor model. - - `:"agent-memory-2026-07-22"` + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - - `:"mid-conversation-tool-changes-2026-07-01"` + The session's primary thread can consult `model` mid-turn. - - `:"compact-2026-01-12"` + - `type: :enabled` - - `:"computer-use-2025-11-24"` + - `model: String` - - `:"mcp-tunnels-2026-06-22"` + The advisor model id. - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - - `:"task-budgets-2026-03-13"` + The agent has no advisor. - - `:"thinking-display-updates-2026-08-18"` + - `type: :disabled` - - `:"ce-user-management-2026-07-13"` + - `subagents: BetaManagedAgentsMultiagentSubagents` - - `:"mid-conversation-output-config-2026-07-01"` + Whether the agent can spawn session threads. - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaManagedAgentsMultiagentSubagentsEnabled` - - `:"mid-conversation-system-clear-at-2026-08-21"` + The agent can spawn session threads. - - `:"compact-2026-09-04"` + - `type: :enabled` - - `:"inline-tools-2026-09-15"` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `:"mcp-client-2026-09-15"` + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `:"spend-limit-reads-2026-09-26"` + The agent can define inline agents. - - `:"telemetry-destinations-2026-08-11"` + - `type: :enabled` -- `workspace_id: String` (header parameter) + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + The agent cannot define inline agents. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `type: :disabled` -#### Returns + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` -- `class BetaEnvironmentDeleteResponse` + Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. - Response after deleting an environment. + - `type: :agent` - - `type: :environment_deleted` + - `id: String` - The type of response + - `version: Integer` - - `id: String` + format: int32 - Environment identifier + - `class BetaManagedAgentsMultiagentSubagentsDisabled` -#### Example + The agent cannot spawn session threads. -```ruby -require "anthropic" + - `type: :disabled` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `workflows: BetaManagedAgentsMultiagentWorkflows` -beta_environment_delete_response = anthropic.beta.environments.delete("env_011CZkZ9X2dpNyB7HsEFoRfW") + Whether the agent can start workflow runs. -puts(beta_environment_delete_response) -``` + - `class BetaManagedAgentsMultiagentWorkflowsEnabled` -##### Response (200) + The agent can start workflow runs. -```json -{ - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "type": "environment_deleted" -} -``` + - `type: :enabled` -### Archive Environment + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` -`beta.environments.archive(environment_id, **kwargs) -> BetaEnvironment` + Whether a run's plan can define inline agents, which are not saved. -**POST** `/v1/environments/{environment_id}/archive` + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` -Archive an environment by ID. Archived environments cannot be used to create new sessions. + Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. -#### Parameters + - `type: :agent` -- `environment_id: String` (path parameter) + - `id: String` -- `betas: Array[AnthropicBeta]` (header parameter) + - `version: Integer` - Optional header to specify the beta version(s) you want to use. + format: int32 - - `String = String` + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `:"message-batches-2024-09-24"` + The agent cannot start workflow runs. - - `:"prompt-caching-2024-07-31"` + - `type: :disabled` - - `:"computer-use-2024-10-22"` + - `name: String` - - `:"computer-use-2025-01-24"` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsAnthropicSkill` - - `:"token-counting-2024-11-01"` + A resolved Anthropic-managed skill. - - `:"token-efficient-tools-2025-02-19"` + - `type: :anthropic` - - `:"output-128k-2025-02-19"` + - `skill_id: String` - - `:"files-api-2025-04-14"` + - `version: String` - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsCustomSkill` - - `:"mcp-client-2025-11-20"` + A resolved user-created custom skill. - - `:"dev-full-thinking-2025-05-14"` + - `type: :custom` - - `:"interleaved-thinking-2025-05-14"` + - `skill_id: String` - - `:"code-execution-2025-05-22"` + - `version: String` - - `:"extended-cache-ttl-2025-04-11"` + - `system_: String` - - `:"context-1m-2025-08-07"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsAgentToolset20260401` - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :agent_toolset_20260401` - - `:"skills-2025-10-02"` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsBashToolConfig` - - `:"output-300k-2026-03-24"` + Configuration for the bash tool. - - `:"user-profiles-2026-03-24"` + - `type: :bash` - - `:"user-profiles-2026-08-18"` + - `enabled: bool` - - `:"user-profiles-2026-09-04"` + - `name: :bash` - - `:"advisor-tool-2026-03-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"managed-agents-2026-04-01"` + Permission policy for tool execution. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"dreaming-2026-04-21"` + Tool calls are automatically approved without user confirmation. - - `:"thinking-token-count-2026-05-13"` + - `type: :always_allow` - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"server-side-fallback-2026-07-01"` + Tool calls require user confirmation before execution. - - `:"fallback-credit-2026-06-01"` + - `type: :always_ask` - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsAutoPolicy` - - `:"agent-memory-2026-07-22"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :auto` - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsEditToolConfig` - - `:"computer-use-2025-11-24"` + Configuration for the edit tool. - - `:"mcp-tunnels-2026-06-22"` + - `type: :edit` - - `:"structured-outputs-2025-11-13"` + - `enabled: bool` - - `:"task-budgets-2026-03-13"` + - `name: :edit` - - `:"thinking-display-updates-2026-08-18"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"ce-user-management-2026-07-13"` + Permission policy for tool execution. - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"thinking-binding-controls-2026-08-01"` + Tool calls are automatically approved without user confirmation. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"compact-2026-09-04"` + Tool calls require user confirmation before execution. - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsAutoPolicy` - - `:"mcp-client-2026-09-15"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsReadToolConfig` - - `:"spend-limit-reads-2026-09-26"` + Configuration for the read tool. - - `:"telemetry-destinations-2026-08-11"` + - `type: :read` -- `workspace_id: String` (header parameter) + - `enabled: bool` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `name: :read` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -#### Returns + Permission policy for tool execution. -- `class BetaEnvironment` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unified Environment resource for both cloud and self-hosted environments. + Tool calls are automatically approved without user confirmation. - - `type: :environment` + - `class BetaManagedAgentsAlwaysAskPolicy` - The type of object (always 'environment') + Tool calls require user confirmation before execution. - - `id: String` + - `class BetaManagedAgentsAutoPolicy` - Environment identifier (e.g., 'env_...') + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `archived_at: String` + - `class BetaManagedAgentsWriteToolConfig` - RFC 3339 timestamp when environment was archived, or null if not archived + Configuration for the write tool. - - `config: BetaCloudConfig | BetaSelfHostedConfig` + - `type: :write` - Environment configuration (either Anthropic Cloud or self-hosted) + - `enabled: bool` - - `class BetaCloudConfig` + - `name: :write` - `cloud` environment configuration. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :cloud` + Permission policy for tool execution. - Environment type + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` + Tool calls are automatically approved without user confirmation. - Network configuration policy. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaUnrestrictedNetwork` + Tool calls require user confirmation before execution. - Unrestricted network access. + - `class BetaManagedAgentsAutoPolicy` - - `type: :unrestricted` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Network policy type + - `class BetaManagedAgentsGlobToolConfig` - - `class BetaLimitedNetwork` + Configuration for the glob tool. - Limited network access. + - `type: :glob` - - `type: :limited` + - `enabled: bool` - Network policy type + - `name: :glob` - - `allow_mcp_servers: bool` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. + Permission policy for tool execution. - - `allow_package_managers: bool` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. + Tool calls are automatically approved without user confirmation. - - `allowed_hosts: Array[String]` + - `class BetaManagedAgentsAlwaysAskPolicy` - Specifies domains the container can reach. + Tool calls require user confirmation before execution. - - `packages: BetaPackages` + - `class BetaManagedAgentsAutoPolicy` - Package manager configuration. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :packages` + - `class BetaManagedAgentsGrepToolConfig` - Package configuration type + Configuration for the grep tool. - - `apt: Array[String]` + - `type: :grep` - Ubuntu/Debian packages to install + - `enabled: bool` - - `cargo: Array[String]` + - `name: :grep` - Rust packages to install + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `gem_: Array[String]` + Permission policy for tool execution. - Ruby packages to install + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `go: Array[String]` + Tool calls are automatically approved without user confirmation. - Go packages to install + - `class BetaManagedAgentsAlwaysAskPolicy` - - `npm: Array[String]` + Tool calls require user confirmation before execution. - Node.js packages to install + - `class BetaManagedAgentsAutoPolicy` - - `pip: Array[String]` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Python packages to install + - `class BetaManagedAgentsWebFetchToolConfig` - - `class BetaSelfHostedConfig` + Configuration for the web_fetch tool. - Configuration for self-hosted environments. + - `type: :web_fetch` - - `type: :self_hosted` + - `enabled: bool` - Environment type + - `name: :web_fetch` - - `created_at: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - RFC 3339 timestamp when environment was created + Permission policy for tool execution. - - `description: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - User-provided description for the environment; null when unset + Tool calls are automatically approved without user confirmation. - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsAlwaysAskPolicy` - User-provided metadata key-value pairs + Tool calls require user confirmation before execution. - - `name: String` + - `class BetaManagedAgentsAutoPolicy` - Human-readable name for the environment + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `updated_at: String` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - RFC 3339 timestamp when environment was last updated + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `scope: :organization | :account` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `:organization` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:account` + Every URL from this source may be fetched. This is the default. -#### Example + - `type: :all` -```ruby -require "anthropic" + - `class BetaManagedAgentsWebFetchURLSourceNone` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + This source contributes no URLs that may be fetched. -beta_environment = anthropic.beta.environments.archive("env_011CZkZ9X2dpNyB7HsEFoRfW") + - `type: :none` -puts(beta_environment) -``` + - `class BetaManagedAgentsWebFetchURLSourceOnly` -##### Response (200) + Only the named tools' results contribute URLs that may be fetched. -```json -{ - "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "archived_at": null, - "config": { - "networking": { - "allow_mcp_servers": false, - "allow_package_managers": true, - "allowed_hosts": [ - "api.example.com" - ], - "type": "limited" - }, - "packages": { - "apt": [ - "string" - ], - "cargo": [ - "string" - ], - "gem": [ - "string" - ], - "go": [ - "string" - ], - "npm": [ - "string" - ], - "pip": [ - "pandas", - "numpy" - ], - "type": "packages" - }, - "type": "cloud" - }, - "created_at": "2026-03-15T10:00:00Z", - "description": "Python environment with data-analysis packages.", - "metadata": {}, - "name": "python-data-analysis", - "type": "environment", - "updated_at": "2026-03-15T10:00:00Z", - "scope": "organization" -} -``` + - `type: :only` -## Beta › Environments › Work + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` -### Get Work Item + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. -`beta.environments.work.retrieve(work_id, **kwargs) -> BetaSelfHostedWork` + - `type: :tool_reference` -**GET** `/v1/environments/{environment_id}/work/{work_id}` + Must be "tool_reference". -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + - `name: String` -Retrieve detailed information about a specific work item. + Name of the tool. Compared exactly, so upper and lower case letters are different. -#### Parameters + minLength: 1, maxLength: 128 -- `environment_id: String` (path parameter) + - `class BetaManagedAgentsWebFetchURLSourceExcept` -- `work_id: String` (path parameter) + Every tool's results contribute URLs that may be fetched, except the named tools' results. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :except` - Optional header to specify the beta version(s) you want to use. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `String = String` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `:"message-batches-2024-09-24"` + - `type: :tool_reference` - - `:"prompt-caching-2024-07-31"` + Must be "tool_reference". - - `:"computer-use-2024-10-22"` + - `name: String` - - `:"computer-use-2025-01-24"` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `:"pdfs-2024-09-25"` + minLength: 1, maxLength: 128 - - `:"token-counting-2024-11-01"` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:"token-efficient-tools-2025-02-19"` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `:"output-128k-2025-02-19"` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `:"files-api-2025-04-14"` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"mcp-client-2025-11-20"` + Every URL from this source may be fetched. This is the default. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"interleaved-thinking-2025-05-14"` + This source contributes no URLs that may be fetched. - - `:"code-execution-2025-05-22"` + - `allowed_domains: Array[String]` - - `:"extended-cache-ttl-2025-04-11"` + - `blocked_domains: Array[String]` - - `:"context-1m-2025-08-07"` + - `max_content_tokens: Integer` - - `:"context-management-2025-06-27"` + format: int32 - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsWebSearchToolConfig` - - `:"skills-2025-10-02"` + Configuration for the web_search tool. - - `:"fast-mode-2026-02-01"` + - `type: :web_search` - - `:"output-300k-2026-03-24"` + - `enabled: bool` - - `:"user-profiles-2026-03-24"` + - `name: :web_search` - - `:"user-profiles-2026-08-18"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-09-04"` + Permission policy for tool execution. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"managed-agents-2026-04-01"` + Tool calls are automatically approved without user confirmation. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"dreaming-2026-04-21"` + Tool calls require user confirmation before execution. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"server-side-fallback-2026-06-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"server-side-fallback-2026-07-01"` + - `allowed_domains: Array[String]` - - `:"fallback-credit-2026-06-01"` + - `blocked_domains: Array[String]` - - `:"fallback-credit-2026-07-01"` + - `user_location: BetaManagedAgentsUserLocation` - - `:"agent-memory-2026-07-22"` + Approximate user location for search result localization. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :approximate` - - `:"compact-2026-01-12"` + Location precision. Only "approximate" is supported. - - `:"computer-use-2025-11-24"` + - `city: String` - - `:"mcp-tunnels-2026-06-22"` + City name. - - `:"structured-outputs-2025-11-13"` + minLength: 1, maxLength: 255 - - `:"task-budgets-2026-03-13"` + - `country: String` - - `:"thinking-display-updates-2026-08-18"` + Two-letter ISO 3166-1 country code, uppercase. - - `:"ce-user-management-2026-07-13"` + - `region: String` - - `:"mid-conversation-output-config-2026-07-01"` + Region or state name. - - `:"thinking-binding-controls-2026-08-01"` + minLength: 1, maxLength: 255 - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `timezone: String` - - `:"compact-2026-09-04"` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `:"inline-tools-2026-09-15"` + minLength: 1, maxLength: 255 - - `:"mcp-client-2026-09-15"` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `:"ce-plugins-2026-09-01"` + Resolved default configuration for agent tools. - - `:"spend-limit-reads-2026-09-26"` + - `enabled: bool` - - `:"telemetry-destinations-2026-08-11"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -- `workspace_id: String` (header parameter) + Permission policy for tool execution. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsAlwaysAllowPolicy` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Tool calls are automatically approved without user confirmation. -#### Returns + - `class BetaManagedAgentsAlwaysAskPolicy` -- `class BetaSelfHostedWork` + Tool calls require user confirmation before execution. - Work resource representing a unit of work in a self-hosted environment. + - `class BetaManagedAgentsAutoPolicy` - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :work` + - `class BetaManagedAgentsMCPToolset` - The type of object (always 'work') + - `type: :mcp_toolset` - - `id: String` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - Work identifier (e.g., 'work_...') + - `enabled: bool` - - `acknowledged_at: String` + - `name: String` - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `created_at: String` + Permission policy for tool execution. - RFC 3339 timestamp when work was created + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `data: BetaSessionWorkData` + Tool calls are automatically approved without user confirmation. - The actual work to be performed + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :session` + Tool calls require user confirmation before execution. - Type of work data + - `class BetaManagedAgentsAutoPolicy` - - `id: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Session identifier (e.g., 'session_...') + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `environment_id: String` + Resolved default configuration for all tools from an MCP server. - Environment identifier this work belongs to (e.g., `env_...`) + - `enabled: bool` - - `latest_heartbeat_at: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - RFC 3339 timestamp of the most recent heartbeat + Permission policy for tool execution. - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - User-provided metadata key-value pairs associated with this work item + Tool calls are automatically approved without user confirmation. - - `secret: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. + Tool calls require user confirmation before execution. - - `started_at: String` + - `class BetaManagedAgentsAutoPolicy` - RFC 3339 timestamp when work execution started + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `state: :queued | :starting | :active | 2 more` + - `mcp_server_name: String` - Current state of the work item + - `class BetaManagedAgentsCustomTool` - - `:queued` + A custom tool as returned in API responses. - - `:starting` + - `type: :custom` - - `:active` + - `description: String` - - `:stopping` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `:stopped` + JSON Schema for custom tool input parameters. - - `stop_requested_at: String` + - `type: :object` - RFC 3339 timestamp when stop was requested + - `properties: Hash[Symbol, untyped]` - - `stopped_at: String` + - `required: Array[String]` - RFC 3339 timestamp when work execution stopped + - `name: String` + + - `updated_at: Time` + + A timestamp in RFC 3339 format + + format: date-time + + - `version: Integer` + + The agent's current version. Starts at 1 and increments when the agent is modified. + + format: int32 #### Example @@ -33286,65 +33294,130 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_self_hosted_work = anthropic.beta.environments.work.retrieve("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") +beta_managed_agents_agent = anthropic.beta.agents.update("agent_011CZkYpogX7uDKUyvBTophP") -puts(beta_self_hosted_work) +puts(beta_managed_agents_agent) ``` ##### Response (200) ```json { - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], "metadata": { - "foo": "string" + "foo": "bar" }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" -} -``` - -### Poll for Work - -`beta.environments.work.poll(environment_id, **kwargs) -> BetaSelfHostedWork` - -**GET** `/v1/environments/{environment_id}/work/poll` - -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - -Long poll for work items in the queue. - -#### Parameters + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "advisor": { + "type": "disabled" + }, + "subagents": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + }, + "type": "multiagent_20261001", + "workflows": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + } + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "updated_at": "2026-03-15T10:00:00Z", + "version": 1 +} +``` -- `environment_id: String` (path parameter) +### Archive Agent -- `block_ms: Integer` (query parameter) +`beta.agents.archive(agent_id, **kwargs) -> BetaManagedAgentsAgent` - How long to wait for work to arrive before returning. Must be 1-999 in milliseconds. Defaults to non-blocking (returns immediately if no work is available). +**POST** `/v1/agents/{agent_id}/archive` - minimum: 1 +Archive Agent -- `reclaim_older_than_ms: Integer` (query parameter) +#### Parameters - Reclaim unacknowledged work items older than this many milliseconds. If omitted, uses the default (5000ms). +- `agent_id: String` (path parameter) - minimum: 1 + Unique identifier of the agent to archive. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -33450,1088 +33523,945 @@ Long poll for work items in the queue. - `:"telemetry-destinations-2026-08-11"` -- `anthropic_worker_id: String` (header parameter) + - `:"webhooks-2026-10-07"` - Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console +- `workspace_id: String` (header parameter) -#### Returns + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). -- `class BetaSelfHostedWork` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Work resource representing a unit of work in a self-hosted environment. +#### Returns - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. +- `class BetaManagedAgentsAgent` - - `type: :work` + A Managed Agents `agent`. - The type of object (always 'work') + - `type: :agent` - `id: String` - Work identifier (e.g., 'work_...') + - `archived_at: Time` - - `acknowledged_at: String` + When the agent was archived. Null if not archived. - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox + format: date-time - - `created_at: String` + - `created_at: Time` - RFC 3339 timestamp when work was created + A timestamp in RFC 3339 format - - `data: BetaSessionWorkData` + format: date-time - The actual work to be performed + - `description: String` - - `type: :session` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Type of work data + Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `id: String` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - Session identifier (e.g., 'session_...') + An AWS IAM role principal as returned in API responses. - - `environment_id: String` + - `type: :aws_role` - Environment identifier this work belongs to (e.g., `env_...`) + - `role_arn: String` - - `latest_heartbeat_at: String` + The IAM role's ARN. - RFC 3339 timestamp of the most recent heartbeat + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `metadata: Hash[Symbol, String]` + The Anthropic-managed service account as returned in API responses. - User-provided metadata key-value pairs associated with this work item + - `type: :service_account` - - `secret: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. + - `type: :url` - - `started_at: String` + - `name: String` - RFC 3339 timestamp when work execution started + - `url: String` - - `state: :queued | :starting | :active | 2 more` + - `metadata: Hash[Symbol, String]` - Current state of the work item + - `model: BetaManagedAgentsModelConfig` - - `:queued` + Model identifier and configuration. - - `:starting` + - `id: BetaManagedAgentsModel` - - `:active` + The model that will power your agent. - - `:stopping` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:stopped` + - `:"claude-haiku-5-5"` - - `stop_requested_at: String` + Fastest model for high-volume, real-time tasks - RFC 3339 timestamp when stop was requested + - `:"claude-sonnet-5-5"` - - `stopped_at: String` + Efficient model for coding and agents - RFC 3339 timestamp when work execution stopped + - `:"claude-opus-5-5"` -#### Example + Powerful intelligence for coding, knowledge work, and long-running agents -```ruby -require "anthropic" + - `:"claude-fable-5-1"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows -beta_self_hosted_work = anthropic.beta.environments.work.poll("env_011CZkZ9X2dpNyB7HsEFoRfW") + - `:"claude-sonnet-5"` -puts(beta_self_hosted_work) -``` + Efficient model for coding and agents -##### Response (200) + - `:"claude-fable-5"` -```json -{ - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" - }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", - "metadata": { - "foo": "string" - }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" -} -``` + Next generation of intelligence for the hardest knowledge work and coding problems -### Acknowledge Work + - `:"claude-opus-5"` -`beta.environments.work.ack(work_id, **kwargs) -> BetaSelfHostedWork` + Powerful intelligence for long-running agents and coding -**POST** `/v1/environments/{environment_id}/work/{work_id}/ack` + - `:"claude-opus-4-8"` -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + Powerful intelligence for long-running agents and coding -Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' and removing it from the queue. + - `:"claude-opus-4-7"` -#### Parameters + Powerful intelligence for long-running agents and coding -- `environment_id: String` (path parameter) + - `:"claude-opus-4-6"` -- `work_id: String` (path parameter) + Powerful intelligence for long-running agents and coding -- `betas: Array[AnthropicBeta]` (header parameter) + - `:"claude-sonnet-4-6"` - Optional header to specify the beta version(s) you want to use. + Best combination of speed and intelligence - - `String = String` + - `:"claude-haiku-4-5"` - - `:"message-batches-2024-09-24"` + - `:"claude-haiku-4-5-20251001"` - - `:"prompt-caching-2024-07-31"` + - `:"claude-opus-4-5"` - - `:"computer-use-2024-10-22"` + Powerful intelligence for long-running agents and coding - - `:"computer-use-2025-01-24"` + - `:"claude-opus-4-5-20251101"` - - `:"pdfs-2024-09-25"` + Powerful intelligence for long-running agents and coding - - `:"token-counting-2024-11-01"` + - `:"claude-sonnet-4-5"` - - `:"token-efficient-tools-2025-02-19"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"output-128k-2025-02-19"` + High-performance model for agents and coding - - `:"files-api-2025-04-14"` + - `:"claude-sonnet-4-5-20250929"` - - `:"mcp-client-2025-04-04"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"mcp-client-2025-11-20"` + High-performance model for agents and coding - - `:"dev-full-thinking-2025-05-14"` + - `String = String` - - `:"interleaved-thinking-2025-05-14"` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - - `:"code-execution-2025-05-22"` + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsEffortLow` - - `:"context-1m-2025-08-07"` + Low effort. Favors latency over reasoning depth. - - `:"context-management-2025-06-27"` + - `type: :low` - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsEffortMedium` - - `:"skills-2025-10-02"` + Medium effort. Balances latency and reasoning depth. - - `:"fast-mode-2026-02-01"` + - `type: :medium` - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsEffortHigh` - - `:"user-profiles-2026-03-24"` + High effort. Favors reasoning depth. - - `:"user-profiles-2026-08-18"` + - `type: :high` - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsEffortXhigh` - - `:"advisor-tool-2026-03-01"` + Extra-high effort. Not all models accept this level. - - `:"managed-agents-2026-04-01"` + - `type: :xhigh` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsEffortMax` - - `:"dreaming-2026-04-21"` + Maximum effort. Favors reasoning depth over latency. - - `:"thinking-token-count-2026-05-13"` + - `type: :max` - - `:"server-side-fallback-2026-06-01"` + - `inference_geo: String` - - `:"server-side-fallback-2026-07-01"` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `:"fallback-credit-2026-06-01"` + - `speed: :standard | :fast` - - `:"fallback-credit-2026-07-01"` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `:"agent-memory-2026-07-22"` + - `:standard` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `:fast` - - `:"compact-2026-01-12"` + - `multiagent: BetaManagedAgentsMultiagent` - - `:"computer-use-2025-11-24"` + Multiagent orchestration configuration. Null when the agent is single-threaded. - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsMultiagentCoordinator` - - `:"structured-outputs-2025-11-13"` + Resolved coordinator topology with a concrete agent roster. - - `:"task-budgets-2026-03-13"` + - `type: :coordinator` - - `:"thinking-display-updates-2026-08-18"` + - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` - - `:"ce-user-management-2026-07-13"` + Agents the coordinator may spawn as session threads, each resolved to a specific version. - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsAgentReference` - - `:"thinking-binding-controls-2026-08-01"` + A resolved agent reference with a concrete version. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :agent` - - `:"compact-2026-09-04"` + - `id: String` - - `:"inline-tools-2026-09-15"` + - `version: Integer` - - `:"mcp-client-2026-09-15"` + format: int32 - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsAdvisor` - - `:"spend-limit-reads-2026-09-26"` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `:"telemetry-destinations-2026-08-11"` + - `type: :advisor` -#### Returns + - `model: String` -- `class BetaSelfHostedWork` + The advisor model id. - Work resource representing a unit of work in a self-hosted environment. + - `class BetaManagedAgentsMultiagent20261001` - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. + Resolved multiagent configuration with three members, each enabled or disabled on its own. - - `type: :work` + - `type: :multiagent_20261001` - The type of object (always 'work') + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `id: String` + Whether the session's primary thread can consult an advisor model. - Work identifier (e.g., 'work_...') + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - - `acknowledged_at: String` + The session's primary thread can consult `model` mid-turn. - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox + - `type: :enabled` - - `created_at: String` + - `model: String` - RFC 3339 timestamp when work was created + The advisor model id. - - `data: BetaSessionWorkData` + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - The actual work to be performed + The agent has no advisor. - - `type: :session` + - `type: :disabled` - Type of work data + - `subagents: BetaManagedAgentsMultiagentSubagents` - - `id: String` + Whether the agent can spawn session threads. - Session identifier (e.g., 'session_...') + - `class BetaManagedAgentsMultiagentSubagentsEnabled` - - `environment_id: String` + The agent can spawn session threads. - Environment identifier this work belongs to (e.g., `env_...`) + - `type: :enabled` - - `latest_heartbeat_at: String` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - RFC 3339 timestamp of the most recent heartbeat + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - User-provided metadata key-value pairs associated with this work item + The agent can define inline agents. - - `secret: String` + - `type: :enabled` - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - - `started_at: String` + The agent cannot define inline agents. - RFC 3339 timestamp when work execution started + - `type: :disabled` - - `state: :queued | :starting | :active | 2 more` + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` - Current state of the work item + Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. - - `:queued` + - `type: :agent` - - `:starting` + - `id: String` - - `:active` + - `version: Integer` - - `:stopping` + format: int32 - - `:stopped` + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - - `stop_requested_at: String` + The agent cannot spawn session threads. - RFC 3339 timestamp when stop was requested + - `type: :disabled` - - `stopped_at: String` + - `workflows: BetaManagedAgentsMultiagentWorkflows` - RFC 3339 timestamp when work execution stopped + Whether the agent can start workflow runs. -#### Example + - `class BetaManagedAgentsMultiagentWorkflowsEnabled` -```ruby -require "anthropic" + The agent can start workflow runs. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :enabled` -beta_self_hosted_work = anthropic.beta.environments.work.ack("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` -puts(beta_self_hosted_work) -``` + Whether a run's plan can define inline agents, which are not saved. -##### Response (200) + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` -```json -{ - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" - }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", - "metadata": { - "foo": "string" - }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" -} -``` + Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. -### Record Heartbeat + - `type: :agent` -`beta.environments.work.heartbeat(work_id, **kwargs) -> BetaSelfHostedWorkHeartbeatResponse` + - `id: String` -**POST** `/v1/environments/{environment_id}/work/{work_id}/heartbeat` + - `version: Integer` -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + format: int32 -Record a heartbeat for a work item to maintain the lease. + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` -#### Parameters + The agent cannot start workflow runs. -- `environment_id: String` (path parameter) + - `type: :disabled` -- `work_id: String` (path parameter) + - `name: String` -- `desired_ttl_seconds: Integer` (query parameter) + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Desired TTL in seconds + - `class BetaManagedAgentsAnthropicSkill` -- `expected_last_heartbeat: String` (query parameter) + A resolved Anthropic-managed skill. - Expected last_heartbeat for conditional update (optimistic concurrency). Use literal 'NO_HEARTBEAT' to claim an unclaimed lease (first heartbeat). For subsequent heartbeats, echo the server's previous last_heartbeat value exactly. Returns 412 Precondition Failed if the actual value doesn't match. + - `type: :anthropic` -- `betas: Array[AnthropicBeta]` (header parameter) + - `skill_id: String` - Optional header to specify the beta version(s) you want to use. + - `version: String` - - `String = String` + - `class BetaManagedAgentsCustomSkill` - - `:"message-batches-2024-09-24"` + A resolved user-created custom skill. - - `:"prompt-caching-2024-07-31"` + - `type: :custom` - - `:"computer-use-2024-10-22"` + - `skill_id: String` - - `:"computer-use-2025-01-24"` + - `version: String` - - `:"pdfs-2024-09-25"` + - `system_: String` - - `:"token-counting-2024-11-01"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"token-efficient-tools-2025-02-19"` + - `class BetaManagedAgentsAgentToolset20260401` - - `:"output-128k-2025-02-19"` + - `type: :agent_toolset_20260401` - - `:"files-api-2025-04-14"` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsBashToolConfig` - - `:"mcp-client-2025-11-20"` + Configuration for the bash tool. - - `:"dev-full-thinking-2025-05-14"` + - `type: :bash` - - `:"interleaved-thinking-2025-05-14"` + - `enabled: bool` - - `:"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"` + - `name: :bash` - - `:"fallback-credit-2026-07-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"agent-memory-2026-07-22"` + Permission policy for tool execution. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"compact-2026-01-12"` + Tool calls are automatically approved without user confirmation. - - `:"computer-use-2025-11-24"` + - `type: :always_allow` - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"structured-outputs-2025-11-13"` + Tool calls require user confirmation before execution. - - `:"task-budgets-2026-03-13"` + - `type: :always_ask` - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsAutoPolicy` - - `:"ce-user-management-2026-07-13"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :auto` - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaManagedAgentsEditToolConfig` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Configuration for the edit tool. - - `:"compact-2026-09-04"` + - `type: :edit` - - `:"inline-tools-2026-09-15"` + - `enabled: bool` - - `:"mcp-client-2026-09-15"` + - `name: :edit` - - `:"ce-plugins-2026-09-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"spend-limit-reads-2026-09-26"` + Permission policy for tool execution. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsAlwaysAllowPolicy` -#### Returns + Tool calls are automatically approved without user confirmation. -- `class BetaSelfHostedWorkHeartbeatResponse` + - `class BetaManagedAgentsAlwaysAskPolicy` - Response after recording a heartbeat for a work item. + Tool calls require user confirmation before execution. - - `type: :work_heartbeat` + - `class BetaManagedAgentsAutoPolicy` - The type of response + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `last_heartbeat: String` + - `class BetaManagedAgentsReadToolConfig` - RFC 3339 timestamp of the actual heartbeat from DB + Configuration for the read tool. - - `lease_extended: bool` + - `type: :read` - Whether the heartbeat succeeded in extending the lease + - `enabled: bool` - - `state: :queued | :starting | :active | 2 more` + - `name: :read` - Current state of the work item (active/stopping/stopped) + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:queued` + Permission policy for tool execution. - - `:starting` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:active` + Tool calls are automatically approved without user confirmation. - - `:stopping` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:stopped` + Tool calls require user confirmation before execution. - - `ttl_seconds: Integer` + - `class BetaManagedAgentsAutoPolicy` - Effective TTL applied to the lease + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -#### Example + - `class BetaManagedAgentsWriteToolConfig` -```ruby -require "anthropic" + Configuration for the write tool. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :write` -beta_self_hosted_work_heartbeat_response = anthropic.beta.environments.work.heartbeat("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") + - `enabled: bool` -puts(beta_self_hosted_work_heartbeat_response) -``` + - `name: :write` -##### Response (200) + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -```json -{ - "last_heartbeat": "last_heartbeat", - "lease_extended": true, - "state": "queued", - "ttl_seconds": 0, - "type": "work_heartbeat" -} -``` + Permission policy for tool execution. -### Stop Work + - `class BetaManagedAgentsAlwaysAllowPolicy` -`beta.environments.work.stop(work_id, **kwargs) -> BetaSelfHostedWork` + Tool calls are automatically approved without user confirmation. -**POST** `/v1/environments/{environment_id}/work/{work_id}/stop` + - `class BetaManagedAgentsAlwaysAskPolicy` -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + Tool calls require user confirmation before execution. -Stop a work item, initiating graceful or forced shutdown. + - `class BetaManagedAgentsAutoPolicy` -#### Parameters + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -- `environment_id: String` (path parameter) + - `class BetaManagedAgentsGlobToolConfig` -- `work_id: String` (path parameter) + Configuration for the glob tool. -- `force: bool` + - `type: :glob` - If true, immediately stop work without graceful shutdown + - `enabled: bool` -- `betas: Array[AnthropicBeta]` (header parameter) + - `name: :glob` - Optional header to specify the beta version(s) you want to use. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `String = String` + Permission policy for tool execution. - - `:"message-batches-2024-09-24"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"prompt-caching-2024-07-31"` + Tool calls are automatically approved without user confirmation. - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"computer-use-2025-01-24"` + Tool calls require user confirmation before execution. - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsAutoPolicy` - - `:"token-counting-2024-11-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"token-efficient-tools-2025-02-19"` + - `class BetaManagedAgentsGrepToolConfig` - - `:"output-128k-2025-02-19"` + Configuration for the grep tool. - - `:"files-api-2025-04-14"` + - `type: :grep` - - `:"mcp-client-2025-04-04"` + - `enabled: bool` - - `:"mcp-client-2025-11-20"` + - `name: :grep` - - `:"dev-full-thinking-2025-05-14"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"interleaved-thinking-2025-05-14"` + Permission policy for tool execution. - - `:"code-execution-2025-05-22"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"extended-cache-ttl-2025-04-11"` + Tool calls are automatically approved without user confirmation. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"context-management-2025-06-27"` + Tool calls require user confirmation before execution. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsAutoPolicy` - - `:"skills-2025-10-02"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsWebFetchToolConfig` - - `:"output-300k-2026-03-24"` + Configuration for the web_fetch tool. - - `:"user-profiles-2026-03-24"` + - `type: :web_fetch` - - `:"user-profiles-2026-08-18"` + - `enabled: bool` - - `:"user-profiles-2026-09-04"` + - `name: :web_fetch` - - `:"advisor-tool-2026-03-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"managed-agents-2026-04-01"` + Permission policy for tool execution. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"dreaming-2026-04-21"` + Tool calls are automatically approved without user confirmation. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"server-side-fallback-2026-06-01"` + Tool calls require user confirmation before execution. - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsAutoPolicy` - - `:"fallback-credit-2026-06-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"fallback-credit-2026-07-01"` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `:"agent-memory-2026-07-22"` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:"compact-2026-01-12"` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"mcp-tunnels-2026-06-22"` + Every URL from this source may be fetched. This is the default. - - `:"structured-outputs-2025-11-13"` + - `type: :all` - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"thinking-display-updates-2026-08-18"` + This source contributes no URLs that may be fetched. - - `:"ce-user-management-2026-07-13"` + - `type: :none` - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `:"thinking-binding-controls-2026-08-01"` + Only the named tools' results contribute URLs that may be fetched. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :only` - - `:"compact-2026-09-04"` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `:"inline-tools-2026-09-15"` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `:"mcp-client-2026-09-15"` + - `type: :tool_reference` - - `:"ce-plugins-2026-09-01"` + Must be "tool_reference". - - `:"spend-limit-reads-2026-09-26"` + - `name: String` - - `:"telemetry-destinations-2026-08-11"` + Name of the tool. Compared exactly, so upper and lower case letters are different. -- `workspace_id: String` (header parameter) + minLength: 1, maxLength: 128 - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsWebFetchURLSourceExcept` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Every tool's results contribute URLs that may be fetched, except the named tools' results. -#### Returns + - `type: :except` -- `class BetaSelfHostedWork` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - Work resource representing a unit of work in a self-hosted environment. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. + - `type: :tool_reference` - - `type: :work` + Must be "tool_reference". - The type of object (always 'work') + - `name: String` - - `id: String` + Name of the tool. Compared exactly, so upper and lower case letters are different. - Work identifier (e.g., 'work_...') + minLength: 1, maxLength: 128 - - `acknowledged_at: String` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `created_at: String` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - RFC 3339 timestamp when work was created + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `data: BetaSessionWorkData` + - `class BetaManagedAgentsWebFetchURLSourceAll` - The actual work to be performed + Every URL from this source may be fetched. This is the default. - - `type: :session` + - `class BetaManagedAgentsWebFetchURLSourceNone` - Type of work data + This source contributes no URLs that may be fetched. - - `id: String` + - `allowed_domains: Array[String]` - Session identifier (e.g., 'session_...') + - `blocked_domains: Array[String]` - - `environment_id: String` + - `max_content_tokens: Integer` - Environment identifier this work belongs to (e.g., `env_...`) + format: int32 - - `latest_heartbeat_at: String` + - `class BetaManagedAgentsWebSearchToolConfig` - RFC 3339 timestamp of the most recent heartbeat + Configuration for the web_search tool. - - `metadata: Hash[Symbol, String]` + - `type: :web_search` - User-provided metadata key-value pairs associated with this work item + - `enabled: bool` - - `secret: String` + - `name: :web_search` - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `started_at: String` + Permission policy for tool execution. - RFC 3339 timestamp when work execution started + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `state: :queued | :starting | :active | 2 more` + Tool calls are automatically approved without user confirmation. - Current state of the work item + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:queued` + Tool calls require user confirmation before execution. - - `:starting` + - `class BetaManagedAgentsAutoPolicy` - - `:active` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:stopping` + - `allowed_domains: Array[String]` - - `:stopped` + - `blocked_domains: Array[String]` - - `stop_requested_at: String` + - `user_location: BetaManagedAgentsUserLocation` - RFC 3339 timestamp when stop was requested + Approximate user location for search result localization. - - `stopped_at: String` + - `type: :approximate` - RFC 3339 timestamp when work execution stopped + Location precision. Only "approximate" is supported. -#### Example + - `city: String` -```ruby -require "anthropic" + City name. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + minLength: 1, maxLength: 255 -beta_self_hosted_work = anthropic.beta.environments.work.stop("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") + - `country: String` -puts(beta_self_hosted_work) -``` + Two-letter ISO 3166-1 country code, uppercase. -##### Response (200) + - `region: String` -```json -{ - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" - }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", - "metadata": { - "foo": "string" - }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" -} -``` + Region or state name. -### List Work Items + minLength: 1, maxLength: 255 -`beta.environments.work.list(environment_id, **kwargs) -> PageCursor` + - `timezone: String` -**GET** `/v1/environments/{environment_id}/work` + IANA timezone identifier, e.g. "America/Los_Angeles". -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + minLength: 1, maxLength: 255 -List work items in an environment. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` -#### Parameters + Resolved default configuration for agent tools. -- `environment_id: String` (path parameter) + - `enabled: bool` -- `limit: Integer` (query parameter) + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Maximum number of work items to return + Permission policy for tool execution. - minimum: 1, maximum: 1000 + - `class BetaManagedAgentsAlwaysAllowPolicy` -- `page: String` (query parameter) + Tool calls are automatically approved without user confirmation. - Opaque cursor from previous response for pagination + - `class BetaManagedAgentsAlwaysAskPolicy` -- `betas: Array[AnthropicBeta]` (header parameter) + Tool calls require user confirmation before execution. - Optional header to specify the beta version(s) you want to use. + - `class BetaManagedAgentsAutoPolicy` - - `String = String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"message-batches-2024-09-24"` + - `class BetaManagedAgentsMCPToolset` - - `:"prompt-caching-2024-07-31"` + - `type: :mcp_toolset` - - `:"computer-use-2024-10-22"` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `:"computer-use-2025-01-24"` + - `enabled: bool` - - `:"pdfs-2024-09-25"` + - `name: String` - - `:"token-counting-2024-11-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"token-efficient-tools-2025-02-19"` + Permission policy for tool execution. - - `:"output-128k-2025-02-19"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"files-api-2025-04-14"` + Tool calls are automatically approved without user confirmation. - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"mcp-client-2025-11-20"` + Tool calls require user confirmation before execution. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsAutoPolicy` - - `:"interleaved-thinking-2025-05-14"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"code-execution-2025-05-22"` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `:"extended-cache-ttl-2025-04-11"` + Resolved default configuration for all tools from an MCP server. - - `:"context-1m-2025-08-07"` + - `enabled: bool` - - `:"context-management-2025-06-27"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"model-context-window-exceeded-2025-08-26"` + Permission policy for tool execution. - - `:"skills-2025-10-02"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"fast-mode-2026-02-01"` + Tool calls are automatically approved without user confirmation. - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"user-profiles-2026-03-24"` + Tool calls require user confirmation before execution. - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-09-04"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"advisor-tool-2026-03-01"` + - `mcp_server_name: String` - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsCustomTool` - - `:"cache-diagnosis-2026-04-07"` + A custom tool as returned in API responses. - - `:"dreaming-2026-04-21"` + - `type: :custom` - - `:"thinking-token-count-2026-05-13"` + - `description: String` - - `:"server-side-fallback-2026-06-01"` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `:"server-side-fallback-2026-07-01"` + JSON Schema for custom tool input parameters. - - `:"fallback-credit-2026-06-01"` + - `type: :object` - - `:"fallback-credit-2026-07-01"` + - `properties: Hash[Symbol, untyped]` - - `:"agent-memory-2026-07-22"` + - `required: Array[String]` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `name: String` - - `:"compact-2026-01-12"` + - `updated_at: Time` - - `:"computer-use-2025-11-24"` + A timestamp in RFC 3339 format - - `:"mcp-tunnels-2026-06-22"` + format: date-time - - `:"structured-outputs-2025-11-13"` + - `version: Integer` - - `:"task-budgets-2026-03-13"` + The agent's current version. Starts at 1 and increments when the agent is modified. - - `:"thinking-display-updates-2026-08-18"` + format: int32 - - `:"ce-user-management-2026-07-13"` +#### Example - - `:"mid-conversation-output-config-2026-07-01"` +```ruby +require "anthropic" - - `:"thinking-binding-controls-2026-08-01"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"mid-conversation-system-clear-at-2026-08-21"` +beta_managed_agents_agent = anthropic.beta.agents.archive("agent_011CZkYpogX7uDKUyvBTophP") - - `:"compact-2026-09-04"` +puts(beta_managed_agents_agent) +``` - - `:"inline-tools-2026-09-15"` - - - `:"mcp-client-2026-09-15"` - - - `:"ce-plugins-2026-09-01"` - - - `:"spend-limit-reads-2026-09-26"` - - - `:"telemetry-destinations-2026-08-11"` - -#### Returns - -- `class BetaSelfHostedWork` - - Work resource representing a unit of work in a self-hosted environment. - - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. - - - `type: :work` - - The type of object (always 'work') - - - `id: String` - - Work identifier (e.g., 'work_...') - - - `acknowledged_at: String` - - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - - `created_at: String` - - RFC 3339 timestamp when work was created - - - `data: BetaSessionWorkData` - - The actual work to be performed - - - `type: :session` - - Type of work data - - - `id: String` - - Session identifier (e.g., 'session_...') - - - `environment_id: String` - - Environment identifier this work belongs to (e.g., `env_...`) - - - `latest_heartbeat_at: String` - - RFC 3339 timestamp of the most recent heartbeat - - - `metadata: Hash[Symbol, String]` - - User-provided metadata key-value pairs associated with this work item - - - `secret: String` - - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - - - `started_at: String` - - RFC 3339 timestamp when work execution started - - - `state: :queued | :starting | :active | 2 more` - - Current state of the work item - - - `:queued` - - - `:starting` - - - `:active` - - - `:stopping` - - - `:stopped` - - - `stop_requested_at: String` - - RFC 3339 timestamp when stop was requested - - - `stopped_at: String` - - RFC 3339 timestamp when work execution stopped - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -page = anthropic.beta.environments.work.list("env_011CZkZ9X2dpNyB7HsEFoRfW") - -puts(page) -``` - -##### Response (200) +##### Response (200) ```json { - "data": [ + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ { - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "metadata": { + "foo": "bar" + }, + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "advisor": { + "type": "disabled" + }, + "subagents": { + "inline_agents": { + "type": "enabled" }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", - "metadata": { - "foo": "string" + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + }, + "type": "multiagent_20261001", + "workflows": { + "inline_agents": { + "type": "enabled" }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + } + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" } ], - "next_page": "next_page" + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "updated_at": "2026-03-15T10:00:00Z", + "version": 1 } ``` -### Update Work Item +## Beta › Agents › Versions -`beta.environments.work.update(work_id, **kwargs) -> BetaSelfHostedWork` +### List Agent Versions -**POST** `/v1/environments/{environment_id}/work/{work_id}` +`beta.agents.versions.list(agent_id, **kwargs) -> PageCursor` -Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. +**GET** `/v1/agents/{agent_id}/versions` -Update work item metadata with merge semantics. +List Agent Versions #### Parameters -- `environment_id: String` (path parameter) +- `agent_id: String` (path parameter) -- `work_id: String` (path parameter) + Agent ID to list versions for. -- `metadata: Hash[Symbol, String]` +- `limit: Integer` (query parameter) - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve existing metadata. + Maximum results per page. Default 20, maximum 100. + + format: int32 + +- `page: String` (query parameter) + + Opaque pagination cursor. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -34637,6 +34567,8 @@ Update work item metadata with merge semantics. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34645,1444 +34577,1695 @@ Update work item metadata with merge semantics. #### Returns -- `class BetaSelfHostedWork` +- `class BetaManagedAgentsAgent` - Work resource representing a unit of work in a self-hosted environment. + A Managed Agents `agent`. - Work items are queued when sessions are created or when long-dormant sessions - receive new messages. The environment worker polls for work to execute in a - self-hosted sandbox. + - `type: :agent` - - `type: :work` + - `id: String` - The type of object (always 'work') + - `archived_at: Time` - - `id: String` + When the agent was archived. Null if not archived. - Work identifier (e.g., 'work_...') + format: date-time - - `acknowledged_at: String` + - `created_at: Time` - RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox + A timestamp in RFC 3339 format - - `created_at: String` + format: date-time - RFC 3339 timestamp when work was created + - `description: String` - - `data: BetaSessionWorkData` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - The actual work to be performed + Execution principal for runs of this agent. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :session` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - Type of work data + An AWS IAM role principal as returned in API responses. - - `id: String` + - `type: :aws_role` - Session identifier (e.g., 'session_...') + - `role_arn: String` - - `environment_id: String` + The IAM role's ARN. - Environment identifier this work belongs to (e.g., `env_...`) + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `latest_heartbeat_at: String` + The Anthropic-managed service account as returned in API responses. - RFC 3339 timestamp of the most recent heartbeat + - `type: :service_account` - - `metadata: Hash[Symbol, String]` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - User-provided metadata key-value pairs associated with this work item + - `type: :url` - - `secret: String` + - `name: String` - Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. + - `url: String` - - `started_at: String` + - `metadata: Hash[Symbol, String]` - RFC 3339 timestamp when work execution started + - `model: BetaManagedAgentsModelConfig` - - `state: :queued | :starting | :active | 2 more` + Model identifier and configuration. - Current state of the work item + - `id: BetaManagedAgentsModel` - - `:queued` + The model that will power your agent. - - `:starting` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `:active` + - `:"claude-haiku-5-5"` - - `:stopping` + Fastest model for high-volume, real-time tasks - - `:stopped` + - `:"claude-sonnet-5-5"` - - `stop_requested_at: String` + Efficient model for coding and agents - RFC 3339 timestamp when stop was requested + - `:"claude-opus-5-5"` - - `stopped_at: String` + Powerful intelligence for coding, knowledge work, and long-running agents - RFC 3339 timestamp when work execution stopped + - `:"claude-fable-5-1"` -#### Example + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows -```ruby -require "anthropic" + - `:"claude-sonnet-5"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Efficient model for coding and agents -beta_self_hosted_work = anthropic.beta.environments.work.update( - "work_id", - environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW", - metadata: {foo: "string"} -) + - `:"claude-fable-5"` -puts(beta_self_hosted_work) -``` + Next generation of intelligence for the hardest knowledge work and coding problems -##### Response (200) + - `:"claude-opus-5"` -```json -{ - "id": "id", - "acknowledged_at": "acknowledged_at", - "created_at": "created_at", - "data": { - "id": "id", - "type": "session" - }, - "environment_id": "environment_id", - "latest_heartbeat_at": "latest_heartbeat_at", - "metadata": { - "foo": "string" - }, - "secret": "secret", - "started_at": "started_at", - "state": "queued", - "stop_requested_at": "stop_requested_at", - "stopped_at": "stopped_at", - "type": "work" -} -``` + Powerful intelligence for long-running agents and coding -### Get Queue Statistics + - `:"claude-opus-4-8"` -`beta.environments.work.stats(environment_id, **kwargs) -> BetaSelfHostedWorkQueueStats` + Powerful intelligence for long-running agents and coding -**GET** `/v1/environments/{environment_id}/work/stats` + - `:"claude-opus-4-7"` -Get statistics about the work queue for an environment. + Powerful intelligence for long-running agents and coding -#### Parameters + - `:"claude-opus-4-6"` -- `environment_id: String` (path parameter) + Powerful intelligence for long-running agents and coding -- `betas: Array[AnthropicBeta]` (header parameter) + - `:"claude-sonnet-4-6"` - Optional header to specify the beta version(s) you want to use. + Best combination of speed and intelligence - - `String = String` + - `:"claude-haiku-4-5"` - - `:"message-batches-2024-09-24"` + - `:"claude-haiku-4-5-20251001"` - - `:"prompt-caching-2024-07-31"` + - `:"claude-opus-4-5"` - - `:"computer-use-2024-10-22"` + Powerful intelligence for long-running agents and coding - - `:"computer-use-2025-01-24"` + - `:"claude-opus-4-5-20251101"` - - `:"pdfs-2024-09-25"` + Powerful intelligence for long-running agents and coding - - `:"token-counting-2024-11-01"` + - `:"claude-sonnet-4-5"` - - `:"token-efficient-tools-2025-02-19"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"output-128k-2025-02-19"` + High-performance model for agents and coding - - `:"files-api-2025-04-14"` + - `:"claude-sonnet-4-5-20250929"` - - `:"mcp-client-2025-04-04"` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `:"mcp-client-2025-11-20"` + High-performance model for agents and coding - - `:"dev-full-thinking-2025-05-14"` + - `String = String` - - `:"interleaved-thinking-2025-05-14"` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - - `:"code-execution-2025-05-22"` + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsEffortLow` - - `:"context-1m-2025-08-07"` + Low effort. Favors latency over reasoning depth. - - `:"context-management-2025-06-27"` + - `type: :low` - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsEffortMedium` - - `:"skills-2025-10-02"` + Medium effort. Balances latency and reasoning depth. - - `:"fast-mode-2026-02-01"` + - `type: :medium` - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsEffortHigh` - - `:"user-profiles-2026-03-24"` + High effort. Favors reasoning depth. - - `:"user-profiles-2026-08-18"` + - `type: :high` - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsEffortXhigh` - - `:"advisor-tool-2026-03-01"` + Extra-high effort. Not all models accept this level. - - `:"managed-agents-2026-04-01"` + - `type: :xhigh` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsEffortMax` - - `:"dreaming-2026-04-21"` + Maximum effort. Favors reasoning depth over latency. - - `:"thinking-token-count-2026-05-13"` + - `type: :max` - - `:"server-side-fallback-2026-06-01"` + - `inference_geo: String` - - `:"server-side-fallback-2026-07-01"` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `:"fallback-credit-2026-06-01"` + - `speed: :standard | :fast` - - `:"fallback-credit-2026-07-01"` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `:"agent-memory-2026-07-22"` + - `:standard` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `:fast` - - `:"compact-2026-01-12"` + - `multiagent: BetaManagedAgentsMultiagent` - - `:"computer-use-2025-11-24"` + Multiagent orchestration configuration. Null when the agent is single-threaded. - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsMultiagentCoordinator` - - `:"structured-outputs-2025-11-13"` + Resolved coordinator topology with a concrete agent roster. - - `:"task-budgets-2026-03-13"` + - `type: :coordinator` - - `:"thinking-display-updates-2026-08-18"` + - `agents: Array[BetaManagedAgentsAgentReference | BetaManagedAgentsAdvisor]` - - `:"ce-user-management-2026-07-13"` + Agents the coordinator may spawn as session threads, each resolved to a specific version. - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsAgentReference` - - `:"thinking-binding-controls-2026-08-01"` + A resolved agent reference with a concrete version. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :agent` - - `:"compact-2026-09-04"` + - `id: String` - - `:"inline-tools-2026-09-15"` + - `version: Integer` - - `:"mcp-client-2026-09-15"` + format: int32 - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsAdvisor` - - `:"spend-limit-reads-2026-09-26"` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `:"telemetry-destinations-2026-08-11"` + - `type: :advisor` -- `workspace_id: String` (header parameter) + - `model: String` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + The advisor model id. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsMultiagent20261001` -#### Returns + Resolved multiagent configuration with three members, each enabled or disabled on its own. -- `class BetaSelfHostedWorkQueueStats` + - `type: :multiagent_20261001` - Statistics about the work queue for an environment. + - `advisor: BetaManagedAgentsMultiagentAdvisor` - Uses Redis Stream consumer group metrics for O(1) queries. + Whether the session's primary thread can consult an advisor model. - - `type: :work_queue_stats` + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - The type of object + The session's primary thread can consult `model` mid-turn. - - `depth: Integer` + - `type: :enabled` - Number of work items waiting to be picked up (lag from consumer group) + - `model: String` - - `oldest_queued_at: String` + The advisor model id. - RFC 3339 timestamp of oldest item in the work stream (includes both queued and pending items), null if stream empty + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - - `pending: Integer` + The agent has no advisor. - Number of work items being processed (polled but not acknowledged) + - `type: :disabled` - - `workers_polling: Integer` + - `subagents: BetaManagedAgentsMultiagentSubagents` - Number of workers that have polled for work in the last 30 seconds. Requires worker_id to be sent with poll requests. + Whether the agent can spawn session threads. -#### Example + - `class BetaManagedAgentsMultiagentSubagentsEnabled` -```ruby -require "anthropic" + The agent can spawn session threads. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :enabled` -beta_self_hosted_work_queue_stats = anthropic.beta.environments.work.stats("env_011CZkZ9X2dpNyB7HsEFoRfW") + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` -puts(beta_self_hosted_work_queue_stats) -``` + Whether the agent can define inline agents, which are not saved, when it spawns session threads. -##### Response (200) + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` -```json -{ - "depth": 0, - "oldest_queued_at": "oldest_queued_at", - "pending": 0, - "type": "work_queue_stats", - "workers_polling": 0 -} -``` + The agent can define inline agents. -## Beta › Sessions + - `type: :enabled` -### Create Session + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` -`beta.sessions.create(**kwargs) -> BetaManagedAgentsSession` + The agent cannot define inline agents. -**POST** `/v1/sessions` + - `type: :disabled` -Create Session + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` -#### Parameters + Predefined agents, which are saved agents that this agent can spawn as session threads, each resolved to a specific version. -- `agent: String | BetaManagedAgentsAgentParams | BetaManagedAgentsAgentWithOverridesParams` + - `type: :agent` - Agent identifier. Accepts the `agent` ID string, which pins the latest version for the session, or an `agent` object with both id and version specified. + - `id: String` - - `String = String` + - `version: Integer` - - `class BetaManagedAgentsAgentParams` + format: int32 - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - - `type: :agent` + The agent cannot spawn session threads. - - `id: String` + - `type: :disabled` - The `agent` ID. + - `workflows: BetaManagedAgentsMultiagentWorkflows` - minLength: 1, maxLength: 128 + Whether the agent can start workflow runs. - - `version: Integer` + - `class BetaManagedAgentsMultiagentWorkflowsEnabled` - The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. + The agent can start workflow runs. - format: int32 + - `type: :enabled` - - `class BetaManagedAgentsAgentWithOverridesParams` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Reference to an `agent` plus optional configuration overrides. Each provided field replaces the agent's value for the caller's use; the agent resource is unchanged. + Whether a run's plan can define inline agents, which are not saved. - - `type: :agent_with_overrides` + - `predefined_agents: Array[BetaManagedAgentsAgentReference]` - - `id: String` + Predefined agents, which are saved agents that a run's plan can use, each resolved to a specific version. - The `agent` ID. + - `type: :agent` - minLength: 1, maxLength: 128 + - `id: String` - - `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` + - `version: Integer` - Replacement MCP server list. Full replacement: the provided array becomes the MCP servers. Send an empty array to clear; omit to preserve the agent's servers. + format: int32 - - `type: :url` + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `name: String` + The agent cannot start workflow runs. - Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. + - `type: :disabled` - minLength: 1, maxLength: 255 + - `name: String` - - `url: String` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Endpoint URL for the MCP server. + - `class BetaManagedAgentsAnthropicSkill` - maxLength: 2048 + A resolved Anthropic-managed skill. - - `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` + - `type: :anthropic` - Replacement model. Accepts the model string, e.g. `claude-opus-5-5`, or a `model_config` object. Omit to use the agent's model. + - `skill_id: String` - - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` + - `version: String` - The model that will power your agent. + - `class BetaManagedAgentsCustomSkill` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + A resolved user-created custom skill. - - `:"claude-haiku-5-5"` + - `type: :custom` - Fastest model for high-volume, real-time tasks + - `skill_id: String` - - `:"claude-sonnet-5-5"` + - `version: String` - Efficient model for coding and agents + - `system_: String` - - `:"claude-opus-5-5"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Powerful intelligence for coding, knowledge work, and long-running agents + - `class BetaManagedAgentsAgentToolset20260401` - - `:"claude-fable-5-1"` + - `type: :agent_toolset_20260401` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `:"claude-sonnet-5"` + - `class BetaManagedAgentsBashToolConfig` - Efficient model for coding and agents + Configuration for the bash tool. - - `:"claude-fable-5"` + - `type: :bash` - Next generation of intelligence for the hardest knowledge work and coding problems + - `enabled: bool` - - `:"claude-opus-5"` + - `name: :bash` - Powerful intelligence for long-running agents and coding + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"claude-opus-4-8"` + Permission policy for tool execution. - Powerful intelligence for long-running agents and coding + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"claude-opus-4-7"` + Tool calls are automatically approved without user confirmation. - Powerful intelligence for long-running agents and coding + - `type: :always_allow` - - `:"claude-opus-4-6"` + - `class BetaManagedAgentsAlwaysAskPolicy` - Powerful intelligence for long-running agents and coding + Tool calls require user confirmation before execution. - - `:"claude-sonnet-4-6"` + - `type: :always_ask` - Best combination of speed and intelligence + - `class BetaManagedAgentsAutoPolicy` - - `:"claude-haiku-4-5"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"claude-haiku-4-5-20251001"` + - `type: :auto` - - `:"claude-opus-4-5"` + - `class BetaManagedAgentsEditToolConfig` - Powerful intelligence for long-running agents and coding + Configuration for the edit tool. - - `:"claude-opus-4-5-20251101"` + - `type: :edit` - Powerful intelligence for long-running agents and coding + - `enabled: bool` - - `:"claude-sonnet-4-5"` + - `name: :edit` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - High-performance model for agents and coding + Permission policy for tool execution. - - `:"claude-sonnet-4-5-20250929"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Tool calls are automatically approved without user confirmation. - High-performance model for agents and coding + - `class BetaManagedAgentsAlwaysAskPolicy` - - `String = String` + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsModelConfigParams` + - `class BetaManagedAgentsAutoPolicy` - An object that defines additional configuration control over model use + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `id: BetaManagedAgentsModel` + - `class BetaManagedAgentsReadToolConfig` - The model that will power your agent. + Configuration for the read tool. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `type: :read` - - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` + - `enabled: bool` - How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. + - `name: :read` - - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. + Permission policy for tool execution. - - `:low` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Low effort. Favors latency over reasoning depth. + Tool calls are automatically approved without user confirmation. - - `:medium` + - `class BetaManagedAgentsAlwaysAskPolicy` - Medium effort. Balances latency and reasoning depth. + Tool calls require user confirmation before execution. - - `:high` + - `class BetaManagedAgentsAutoPolicy` - High effort. Favors reasoning depth. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:xhigh` + - `class BetaManagedAgentsWriteToolConfig` - Extra-high effort. Not all models accept this level. + Configuration for the write tool. - - `:max` + - `type: :write` - Maximum effort. Favors reasoning depth over latency. + - `enabled: bool` - - `class BetaManagedAgentsEffortLow` + - `name: :write` - Low effort. Favors latency over reasoning depth. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :low` + Permission policy for tool execution. - - `class BetaManagedAgentsEffortMedium` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Medium effort. Balances latency and reasoning depth. + Tool calls are automatically approved without user confirmation. - - `type: :medium` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsEffortHigh` + Tool calls require user confirmation before execution. - High effort. Favors reasoning depth. + - `class BetaManagedAgentsAutoPolicy` - - `type: :high` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsEffortXhigh` + - `class BetaManagedAgentsGlobToolConfig` - Extra-high effort. Not all models accept this level. + Configuration for the glob tool. - - `type: :xhigh` + - `type: :glob` - - `class BetaManagedAgentsEffortMax` + - `enabled: bool` - Maximum effort. Favors reasoning depth over latency. + - `name: :glob` - - `type: :max` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `inference_geo: String` + Permission policy for tool execution. - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `speed: :standard | :fast` + Tool calls are automatically approved without user confirmation. - Inference speed mode. Defaults to `standard`. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:standard` + Tool calls require user confirmation before execution. - - `:fast` + - `class BetaManagedAgentsAutoPolicy` - - `skills: Array[BetaManagedAgentsSkillParams]` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Replacement skill list. Full replacement: the provided array becomes the skills. Send an empty array to clear; omit to preserve the agent's skills. + - `class BetaManagedAgentsGrepToolConfig` - - `class BetaManagedAgentsAnthropicSkillParams` + Configuration for the grep tool. - An Anthropic-managed skill. + - `type: :grep` - - `type: :anthropic` + - `enabled: bool` - - `skill_id: String` + - `name: :grep` - Identifier of the Anthropic skill (e.g., "xlsx"). + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - minLength: 1, maxLength: 64 + Permission policy for tool execution. - - `version: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Version to pin. Defaults to latest if omitted. + Tool calls are automatically approved without user confirmation. - minLength: 1, maxLength: 64 + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsCustomSkillParams` + Tool calls require user confirmation before execution. - A user-created custom skill. + - `class BetaManagedAgentsAutoPolicy` - - `type: :custom` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `skill_id: String` + - `class BetaManagedAgentsWebFetchToolConfig` - Tagged ID of the custom skill (e.g., "skill_01XJ5..."). + Configuration for the web_fetch tool. - minLength: 1, maxLength: 64 + - `type: :web_fetch` - - `version: String` + - `enabled: bool` - Version to pin. Defaults to latest if omitted. + - `name: :web_fetch` - minLength: 1, maxLength: 64 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `system_: String` + Permission policy for tool execution. - Replacement system prompt. Up to 100,000 characters. Set to null to clear the agent's system prompt; omit to preserve it. + - `class BetaManagedAgentsAlwaysAllowPolicy` - maxLength: 100000 + Tool calls are automatically approved without user confirmation. - - `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` + - `class BetaManagedAgentsAlwaysAskPolicy` - Replacement tool list. Full replacement: the provided array becomes the tool configuration. Send an empty array to clear; omit to preserve the agent's tools. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsAgentToolset20260401Params` + - `class BetaManagedAgentsAutoPolicy` - Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :agent_toolset_20260401` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - Per-tool configuration overrides. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `class BetaManagedAgentsBashToolConfigParams` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - Configuration override for the bash tool. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `type: :bash` + Every URL from this source may be fetched. This is the default. - - `name: :bash` + - `type: :all` - Must be "bash". + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `enabled: bool` + This source contributes no URLs that may be fetched. - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `type: :none` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + Only the named tools' results contribute URLs that may be fetched. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :only` - Tool calls are automatically approved without user confirmation. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `type: :always_allow` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :tool_reference` - Tool calls require user confirmation before execution. + Must be "tool_reference". - - `type: :always_ask` + - `name: String` - - `class BetaManagedAgentsAutoPolicy` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + minLength: 1, maxLength: 128 - - `type: :auto` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `class BetaManagedAgentsEditToolConfigParams` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - Configuration override for the edit tool. + - `type: :except` - - `type: :edit` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `name: :edit` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Must be "edit". + - `type: :tool_reference` - - `enabled: bool` + Must be "tool_reference". - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `name: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Name of the tool. Compared exactly, so upper and lower case letters are different. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Tool calls are automatically approved without user confirmation. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - Tool calls require user confirmation before execution. + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsWebFetchURLSourceAll` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Every URL from this source may be fetched. This is the default. - - `class BetaManagedAgentsReadToolConfigParams` + - `class BetaManagedAgentsWebFetchURLSourceNone` - Configuration override for the read tool. + This source contributes no URLs that may be fetched. - - `type: :read` + - `allowed_domains: Array[String]` - - `name: :read` + - `blocked_domains: Array[String]` - Must be "read". + - `max_content_tokens: Integer` - - `enabled: bool` + format: int32 - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `class BetaManagedAgentsWebSearchToolConfig` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Configuration for the web_search tool. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `type: :web_search` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `enabled: bool` - Tool calls are automatically approved without user confirmation. + - `name: :web_search` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Tool calls require user confirmation before execution. + Permission policy for tool execution. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAlwaysAllowPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsWriteToolConfigParams` + - `class BetaManagedAgentsAlwaysAskPolicy` - Configuration override for the write tool. + Tool calls require user confirmation before execution. - - `type: :write` + - `class BetaManagedAgentsAutoPolicy` - - `name: :write` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Must be "write". + - `allowed_domains: Array[String]` - - `enabled: bool` + - `blocked_domains: Array[String]` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `user_location: BetaManagedAgentsUserLocation` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Approximate user location for search result localization. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `type: :approximate` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Location precision. Only "approximate" is supported. - Tool calls are automatically approved without user confirmation. + - `city: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + City name. - Tool calls require user confirmation before execution. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsAutoPolicy` + - `country: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Two-letter ISO 3166-1 country code, uppercase. - - `class BetaManagedAgentsGlobToolConfigParams` + - `region: String` - Configuration override for the glob tool. + Region or state name. - - `type: :glob` + minLength: 1, maxLength: 255 - - `name: :glob` + - `timezone: String` - Must be "glob". + IANA timezone identifier, e.g. "America/Los_Angeles". - - `enabled: bool` + minLength: 1, maxLength: 255 - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Resolved default configuration for agent tools. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Tool calls are automatically approved without user confirmation. + Permission policy for tool execution. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Tool calls require user confirmation before execution. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAlwaysAskPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsGrepToolConfigParams` + - `class BetaManagedAgentsAutoPolicy` - Configuration override for the grep tool. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :grep` + - `class BetaManagedAgentsMCPToolset` - - `name: :grep` + - `type: :mcp_toolset` - Must be "grep". + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `enabled: bool` + - `enabled: bool` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `name: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + Permission policy for tool execution. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Tool calls are automatically approved without user confirmation. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAlwaysAskPolicy` - Tool calls require user confirmation before execution. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsWebFetchToolConfigParams` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - Configuration override for the web_fetch tool. + Resolved default configuration for all tools from an MCP server. - - `type: :web_fetch` + - `enabled: bool` - - `name: :web_fetch` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Must be "web_fetch". + Permission policy for tool execution. - - `allowed_domains: Array[String]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + Tool calls are automatically approved without user confirmation. - - `blocked_domains: Array[String]` + - `class BetaManagedAgentsAlwaysAskPolicy` - Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + Tool calls require user confirmation before execution. - - `enabled: bool` + - `class BetaManagedAgentsAutoPolicy` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `max_content_tokens: Integer` + - `mcp_server_name: String` - Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. + - `class BetaManagedAgentsCustomTool` - format: int32 + A custom tool as returned in API responses. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :custom` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `description: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - Tool calls are automatically approved without user confirmation. + JSON Schema for custom tool input parameters. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :object` - Tool calls require user confirmation before execution. + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsAutoPolicy` + - `required: Array[String]` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `name: String` - - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` + - `updated_at: Time` - Which sources contribute URLs the tool may fetch. Omit to allow every source. + A timestamp in RFC 3339 format - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + format: date-time - Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. + - `version: Integer` - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + The agent's current version. Starts at 1 and increments when the agent is modified. - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + format: int32 - - `:all` +#### Example - - `:none` +```ruby +require "anthropic" - - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Which tools' results contribute URLs that may be fetched. +page = anthropic.beta.agents.versions.list("agent_011CZkYpogX7uDKUyvBTophP") - - `class BetaManagedAgentsWebFetchURLSourceAll` +puts(page) +``` - Every URL from this source may be fetched. This is the default. +##### Response (200) - - `type: :all` +```json +{ + "data": [ + { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "metadata": { + "foo": "bar" + }, + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "advisor": { + "type": "disabled" + }, + "subagents": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + }, + "type": "multiagent_20261001", + "workflows": { + "inline_agents": { + "type": "enabled" + }, + "predefined_agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + } + ], + "type": "enabled" + } + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "updated_at": "2026-03-15T10:00:00Z", + "version": 1 + } + ], + "next_page": "next_page" +} +``` - - `class BetaManagedAgentsWebFetchURLSourceNone` +## Beta › Environments - This source contributes no URLs that may be fetched. +### Create Environment - - `type: :none` +`beta.environments.create(**kwargs) -> BetaEnvironment` - - `class BetaManagedAgentsWebFetchURLSourceOnly` +**POST** `/v1/environments` - Only the named tools' results contribute URLs that may be fetched. +Create a new environment with the specified configuration. - - `type: :only` +#### Parameters - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` +- `name: String` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + Human-readable name for the environment - - `type: :tool_reference` + minLength: 1, maxLength: 256 - Must be "tool_reference". +- `config: BetaCloudConfigParams | BetaSelfHostedConfigParams` - - `name: String` + Environment configuration - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaCloudConfigParams` - minLength: 1, maxLength: 128 + Request params for `cloud` environment configuration. - - `class BetaManagedAgentsWebFetchURLSourceExcept` + Fields default to null; on update, omitted fields preserve the + existing value. - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `type: :cloud` - - `type: :except` + Environment type - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetworkParams` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + Network configuration policy. Omit on update to preserve the existing value. - - `type: :tool_reference` + - `class BetaUnrestrictedNetwork` - Must be "tool_reference". + Unrestricted network access. - - `name: String` + - `type: :unrestricted` - Name of the tool. Compared exactly, so upper and lower case letters are different. + Network policy type - minLength: 1, maxLength: 128 + - `class BetaLimitedNetworkParams` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` + Limited network request params. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". + Fields default to null; on update, omitted fields preserve the + existing value. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` + - `type: :limited` - Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". + Network policy type - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` + - `allow_mcp_servers: bool` - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. Defaults to `false`. - - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` + - `allow_package_managers: bool` - Whether URLs in the text of user messages may be fetched. + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. Defaults to `false` on creation. Must be `true` when `packages` are specified. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `allowed_hosts: Array[String]` - Every URL from this source may be fetched. This is the default. + Specifies domains the container can reach. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `packages: BetaPackagesParams` - This source contributes no URLs that may be fetched. + Package manager configuration. Under `limited` networking, requires `networking.allow_package_managers` to be `true`. Omit on update to preserve the existing value. - - `class BetaManagedAgentsWebSearchToolConfigParams` + - `type: :packages` - Configuration override for the web_search tool. + Package configuration type - - `type: :web_search` + - `apt: Array[String]` - - `name: :web_search` + Ubuntu/Debian packages to install - Must be "web_search". + - `cargo: Array[String]` - - `allowed_domains: Array[String]` + Rust packages to install - Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. + - `gem_: Array[String]` - - `blocked_domains: Array[String]` + Ruby packages to install - Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. + - `go: Array[String]` - - `enabled: bool` + Go packages to install - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `npm: Array[String]` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Node.js packages to install - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `pip: Array[String]` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Python packages to install - Tool calls are automatically approved without user confirmation. + - `class BetaSelfHostedConfigParams` - - `class BetaManagedAgentsAlwaysAskPolicy` + Request params for `self_hosted` environment configuration. - Tool calls require user confirmation before execution. + - `type: :self_hosted` - - `class BetaManagedAgentsAutoPolicy` + Environment type - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +- `description: String` - - `user_location: BetaManagedAgentsUserLocation` + Optional description of the environment - Approximate user location for search result localization. + maxLength: 1024 - - `type: :approximate` +- `metadata: Hash[Symbol, String]` - Location precision. Only "approximate" is supported. + User-provided metadata key-value pairs - - `city: String` +- `scope: :organization | :account` - City name. + The visibility scope for this environment. 'organization' makes the environment visible to all accounts. 'account' restricts visibility to the owning account only. API organizations support only 'organization'; 'account' is rejected. If not specified, defaults based on organization type. - minLength: 1, maxLength: 255 + - `:organization` - - `country: String` + - `:account` - Two-letter ISO 3166-1 country code, uppercase. +- `betas: Array[AnthropicBeta]` (header parameter) - - `region: String` + Optional header to specify the beta version(s) you want to use. - Region or state name. + - `String = String` - minLength: 1, maxLength: 255 + - `:"message-batches-2024-09-24"` - - `timezone: String` + - `:"prompt-caching-2024-07-31"` - IANA timezone identifier, e.g. "America/Los_Angeles". + - `:"computer-use-2024-10-22"` - minLength: 1, maxLength: 255 + - `:"computer-use-2025-01-24"` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` + - `:"pdfs-2024-09-25"` - Default configuration applied to all tools in this set. + - `:"token-counting-2024-11-01"` - - `enabled: bool` + - `:"token-efficient-tools-2025-02-19"` - Whether tools are enabled and available to Claude by default. Defaults to true if not specified. + - `:"output-128k-2025-02-19"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"files-api-2025-04-14"` - Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"mcp-client-2025-11-20"` - Tool calls are automatically approved without user confirmation. + - `:"dev-full-thinking-2025-05-14"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"interleaved-thinking-2025-05-14"` - Tool calls require user confirmation before execution. + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsAutoPolicy` + - `:"extended-cache-ttl-2025-04-11"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsMCPToolsetParams` + - `:"context-management-2025-06-27"` - Configuration for tools from an MCP server defined in `mcp_servers`. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :mcp_toolset` + - `:"skills-2025-10-02"` - - `mcp_server_name: String` + - `:"fast-mode-2026-02-01"` - Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. + - `:"output-300k-2026-03-24"` - minLength: 1, maxLength: 255 + - `:"user-profiles-2026-03-24"` - - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` + - `:"user-profiles-2026-08-18"` - Per-tool configuration overrides. + - `:"user-profiles-2026-09-04"` - - `name: String` + - `:"advisor-tool-2026-03-01"` - Name of the MCP tool to configure. 1-128 characters. + - `:"managed-agents-2026-04-01"` - minLength: 1, maxLength: 128 + - `:"cache-diagnosis-2026-04-07"` - - `enabled: bool` + - `:"dreaming-2026-04-21"` - Whether this tool is enabled. Overrides the `default_config` setting. + - `:"thinking-token-count-2026-05-13"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"server-side-fallback-2026-06-01"` - Permission policy for this tool. Overrides the `default_config` setting. + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"fallback-credit-2026-06-01"` - Tool calls are automatically approved without user confirmation. + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"agent-memory-2026-07-22"` - Tool calls require user confirmation before execution. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsAutoPolicy` + - `:"compact-2026-01-12"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"computer-use-2025-11-24"` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` + - `:"mcp-tunnels-2026-06-22"` - Default configuration for all tools from this server. + - `:"structured-outputs-2025-11-13"` - - `enabled: bool` + - `:"task-budgets-2026-03-13"` - Whether tools are enabled by default. Defaults to true if not specified. + - `:"thinking-display-updates-2026-08-18"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"ce-user-management-2026-07-13"` - Default permission policy for tools from this server. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"thinking-binding-controls-2026-08-01"` - Tool calls are automatically approved without user confirmation. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"compact-2026-09-04"` - Tool calls require user confirmation before execution. + - `:"inline-tools-2026-09-15"` - - `class BetaManagedAgentsAutoPolicy` + - `:"mcp-client-2026-09-15"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"ce-plugins-2026-09-01"` - - `class BetaManagedAgentsCustomToolParams` + - `:"spend-limit-reads-2026-09-26"` - A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. + - `:"telemetry-destinations-2026-08-11"` - - `type: :custom` + - `:"webhooks-2026-10-07"` - - `description: String` +- `workspace_id: String` (header parameter) - Description of what the tool does, shown to the agent to help it decide when to use the tool. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - minLength: 1 + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `input_schema: BetaManagedAgentsCustomToolInputSchema` +#### Returns - JSON Schema defining the expected input parameters for the tool. +- `class BetaEnvironment` - - `type: :object` + Unified Environment resource for both cloud and self-hosted environments. - - `properties: Hash[Symbol, untyped]` + - `type: :environment` - - `required: Array[String]` + The type of object (always 'environment') - - `name: String` + - `id: String` - Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. + Environment identifier (e.g., 'env_...') - minLength: 1, maxLength: 128 + - `archived_at: String` - - `version: Integer` + RFC 3339 timestamp when environment was archived, or null if not archived - The specific `agent` version to use. Omit to use the latest version. + - `config: BetaCloudConfig | BetaSelfHostedConfig` - format: int32 + Environment configuration (either Anthropic Cloud or self-hosted) -- `environment_id: String` + - `class BetaCloudConfig` - ID of the `environment` defining the container configuration for this session. + `cloud` environment configuration. - minLength: 1, maxLength: 128 + - `type: :cloud` -- `budget: BetaManagedAgentsBudgetLimit` + Environment type - Enforced spend ceiling for the session. Omit to create an uncapped session. Every model the session can run — the agent's model and each callable agent's model — must have a public list price, or the request is rejected with reason `model_not_budgetable`. + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` - - `type: :limit` + Network configuration policy. - - `max_list_cost: BetaMonetaryAmount` + - `class BetaUnrestrictedNetwork` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + Unrestricted network access. - - `amount: String` + - `type: :unrestricted` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + Network policy type - - `currency: BetaCurrency` + - `class BetaLimitedNetwork` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + Limited network access. -- `initial_events: Array[BetaManagedAgentsUserMessageEventParams | BetaManagedAgentsUserDefineOutcomeEventParams]` + - `type: :limited` - Initial events to send to the `session` at creation, processed in order. Supports `user.message` and `user.define_outcome` events. Maximum 50 events. + Network policy type - - `class BetaManagedAgentsUserMessageEventParams` + - `allow_mcp_servers: bool` - Parameters for sending a user message to the session. + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. - - `type: :"user.message"` + - `allow_package_managers: bool` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. - Array of content blocks for the user message. + - `allowed_hosts: Array[String]` - - `class BetaManagedAgentsTextBlock` + Specifies domains the container can reach. - Regular text content. + - `packages: BetaPackages` - - `type: :text` + Package manager configuration. - - `text: String` + - `type: :packages` - The text content. + Package configuration type - minLength: 1 + - `apt: Array[String]` - - `class BetaManagedAgentsImageBlock` + Ubuntu/Debian packages to install - Image content specified directly as base64 data or as a reference via a URL. + - `cargo: Array[String]` - - `type: :image` + Rust packages to install - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `gem_: Array[String]` - The source of the image data. + Ruby packages to install - - `class BetaManagedAgentsBase64ImageSource` + - `go: Array[String]` - Base64-encoded image data. + Go packages to install - - `type: :base64` + - `npm: Array[String]` - - `data: String` + Node.js packages to install - Base64-encoded image data. + - `pip: Array[String]` - minLength: 1 + Python packages to install - - `media_type: String` + - `class BetaSelfHostedConfig` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Configuration for self-hosted environments. - minLength: 1 + - `type: :self_hosted` - - `class BetaManagedAgentsURLImageSource` + Environment type - Image referenced by URL. + - `created_at: String` - - `type: :url` + RFC 3339 timestamp when environment was created - - `url: String` + - `description: String` - URL of the image to fetch. + User-provided description for the environment; null when unset - minLength: 1 + - `metadata: Hash[Symbol, String]` - - `class BetaManagedAgentsFileImageSource` + User-provided metadata key-value pairs - Image referenced by file ID. + - `name: String` - - `type: :file` + Human-readable name for the environment - - `file_id: String` + - `updated_at: String` - ID of a previously uploaded file. + RFC 3339 timestamp when environment was last updated - minLength: 1 + - `scope: :organization | :account` - - `class BetaManagedAgentsDocumentBlock` + The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:organization` - - `type: :document` + - `:account` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` +#### Example - The source of the document data. +```ruby +require "anthropic" - - `class BetaManagedAgentsBase64DocumentSource` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Base64-encoded document data. +beta_environment = anthropic.beta.environments.create(name: "python-data-analysis") - - `type: :base64` +puts(beta_environment) +``` - - `data: String` +##### Response (200) - Base64-encoded document data. +```json +{ + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "archived_at": null, + "config": { + "networking": { + "allow_mcp_servers": false, + "allow_package_managers": true, + "allowed_hosts": [ + "api.example.com" + ], + "type": "limited" + }, + "packages": { + "apt": [ + "string" + ], + "cargo": [ + "string" + ], + "gem": [ + "string" + ], + "go": [ + "string" + ], + "npm": [ + "string" + ], + "pip": [ + "pandas", + "numpy" + ], + "type": "packages" + }, + "type": "cloud" + }, + "created_at": "2026-03-15T10:00:00Z", + "description": "Python environment with data-analysis packages.", + "metadata": {}, + "name": "python-data-analysis", + "type": "environment", + "updated_at": "2026-03-15T10:00:00Z", + "scope": "organization" +} +``` - minLength: 1 +### List Environments - - `media_type: String` +`beta.environments.list(**kwargs) -> PageCursor` - MIME type of the document (e.g., "application/pdf"). +**GET** `/v1/environments` - minLength: 1 +List environments with pagination support. - - `class BetaManagedAgentsPlainTextDocumentSource` +#### Parameters - Plain text document content. +- `include_archived: bool` (query parameter) - - `type: :text` + Include archived environments in the response - - `data: String` +- `limit: Integer` (query parameter) - The plain text content. + Maximum number of environments to return - minLength: 1 + minimum: 1, maximum: 1000 - - `media_type: :"text/plain"` +- `page: String` (query parameter) - MIME type of the text content. Must be "text/plain". + Opaque cursor from previous response for pagination. Pass the `next_page` value from the previous response. - - `class BetaManagedAgentsURLDocumentSource` +- `betas: Array[AnthropicBeta]` (header parameter) - Document referenced by URL. + Optional header to specify the beta version(s) you want to use. - - `type: :url` + - `String = String` - - `url: String` + - `:"message-batches-2024-09-24"` - URL of the document to fetch. + - `:"prompt-caching-2024-07-31"` - minLength: 1 + - `:"computer-use-2024-10-22"` - - `class BetaManagedAgentsFileDocumentSource` + - `:"computer-use-2025-01-24"` - Document referenced by file ID. + - `:"pdfs-2024-09-25"` - - `type: :file` + - `:"token-counting-2024-11-01"` - - `file_id: String` + - `:"token-efficient-tools-2025-02-19"` - ID of a previously uploaded file. + - `:"output-128k-2025-02-19"` - minLength: 1 + - `:"files-api-2025-04-14"` - - `context: String` + - `:"mcp-client-2025-04-04"` - Additional context about the document for the model. + - `:"mcp-client-2025-11-20"` - - `title: String` + - `:"dev-full-thinking-2025-05-14"` - The title of the document. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsRedactedBlock` + - `:"code-execution-2025-05-22"` - Placeholder for content withheld by Anthropic model policy. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :redacted` + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsUserDefineOutcomeEventParams` + - `:"context-management-2025-06-27"` - Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :"user.define_outcome"` + - `:"skills-2025-10-02"` - - `description: String` + - `:"fast-mode-2026-02-01"` - What the agent should produce. This is the task specification. + - `:"output-300k-2026-03-24"` - - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` + - `:"user-profiles-2026-03-24"` - How to grade the outcome. Text or file reference. + - `:"user-profiles-2026-08-18"` - - `class BetaManagedAgentsFileRubricParams` + - `:"user-profiles-2026-09-04"` - Rubric referenced by a file uploaded via the Files API. + - `:"advisor-tool-2026-03-01"` - - `type: :file` + - `:"managed-agents-2026-04-01"` - - `file_id: String` + - `:"cache-diagnosis-2026-04-07"` - ID of the rubric file. + - `:"dreaming-2026-04-21"` - - `class BetaManagedAgentsTextRubricParams` + - `:"thinking-token-count-2026-05-13"` - Rubric content provided inline as text. + - `:"server-side-fallback-2026-06-01"` - - `type: :text` + - `:"server-side-fallback-2026-07-01"` - - `content: String` + - `:"fallback-credit-2026-06-01"` - Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + - `:"fallback-credit-2026-07-01"` - maxLength: 262144 + - `:"agent-memory-2026-07-22"` - - `max_iterations: Integer` + - `:"mid-conversation-tool-changes-2026-07-01"` - Eval→revision cycles before giving up. Default 3, max 20. + - `:"compact-2026-01-12"` - format: int32 + - `:"computer-use-2025-11-24"` -- `metadata: Hash[Symbol, String]` + - `:"mcp-tunnels-2026-06-22"` - Arbitrary key-value metadata attached to the session. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `:"structured-outputs-2025-11-13"` -- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` + - `:"task-budgets-2026-03-13"` - Resources (e.g. repositories, files) to mount into the session's container. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaManagedAgentsGitHubRepositoryResourceParams` + - `:"ce-user-management-2026-07-13"` - Mount a GitHub repository into the session's container. + - `:"mid-conversation-output-config-2026-07-01"` - - `type: :github_repository` + - `:"thinking-binding-controls-2026-08-01"` - - `url: String` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Github URL of the repository + - `:"compact-2026-09-04"` - minLength: 1, maxLength: 2048 + - `:"inline-tools-2026-09-15"` - - `authorization_token: String` + - `:"mcp-client-2026-09-15"` - GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. + - `:"ce-plugins-2026-09-01"` - minLength: 1, maxLength: 4096 + - `:"spend-limit-reads-2026-09-26"` - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `:"telemetry-destinations-2026-08-11"` - Branch or commit to check out. Defaults to the repository's default branch. + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsBranchCheckout` +- `workspace_id: String` (header parameter) - - `type: :branch` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `name: String` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Branch name to check out. +#### Returns - minLength: 1, maxLength: 255 +- `class BetaEnvironment` - - `class BetaManagedAgentsCommitCheckout` + Unified Environment resource for both cloud and self-hosted environments. - - `type: :commit` + - `type: :environment` - - `sha: String` + The type of object (always 'environment') - Full commit SHA to check out. + - `id: String` - minLength: 7, maxLength: 64 + Environment identifier (e.g., 'env_...') - - `mount_path: String` + - `archived_at: String` - Mount path in the container. Defaults to `/workspace/`. + RFC 3339 timestamp when environment was archived, or null if not archived - minLength: 1, maxLength: 4096 + - `config: BetaCloudConfig | BetaSelfHostedConfig` - - `class BetaManagedAgentsFileResourceParams` + Environment configuration (either Anthropic Cloud or self-hosted) - Mount a file uploaded via the Files API into the session. + - `class BetaCloudConfig` - - `type: :file` + `cloud` environment configuration. - - `file_id: String` + - `type: :cloud` - ID of a previously uploaded file. + Environment type - minLength: 1, maxLength: 128 + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` - - `mount_path: String` + Network configuration policy. - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `class BetaUnrestrictedNetwork` - minLength: 1, maxLength: 4096 + Unrestricted network access. - - `class BetaManagedAgentsMemoryStoreResourceParam` + - `type: :unrestricted` - Parameters for attaching a memory store to an agent session. + Network policy type - - `type: :memory_store` + - `class BetaLimitedNetwork` - - `memory_store_id: String` + Limited network access. - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `type: :limited` - - `access: :read_write | :read_only` + Network policy type - Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. + - `allow_mcp_servers: bool` - - `:read_write` + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. - - `:read_only` + - `allow_package_managers: bool` - - `instructions: String` + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `allowed_hosts: Array[String]` - maxLength: 4096 + Specifies domains the container can reach. -- `title: String` + - `packages: BetaPackages` - Human-readable session title. + Package manager configuration. - maxLength: 500 + - `type: :packages` -- `vault_ids: Array[String]` + Package configuration type - Vault IDs for stored credentials the agent can use during the session. + - `apt: Array[String]` + + Ubuntu/Debian packages to install + + - `cargo: Array[String]` + + Rust packages to install + + - `gem_: Array[String]` + + Ruby packages to install + + - `go: Array[String]` + + Go packages to install + + - `npm: Array[String]` + + Node.js packages to install + + - `pip: Array[String]` + + Python packages to install + + - `class BetaSelfHostedConfig` + + Configuration for self-hosted environments. + + - `type: :self_hosted` + + Environment type + + - `created_at: String` + + RFC 3339 timestamp when environment was created + + - `description: String` + + User-provided description for the environment; null when unset + + - `metadata: Hash[Symbol, String]` + + User-provided metadata key-value pairs + + - `name: String` + + Human-readable name for the environment + + - `updated_at: String` + + RFC 3339 timestamp when environment was last updated + + - `scope: :organization | :account` + + The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. + + - `:organization` + + - `:account` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.environments.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "archived_at": null, + "config": { + "networking": { + "allow_mcp_servers": false, + "allow_package_managers": true, + "allowed_hosts": [ + "api.example.com" + ], + "type": "limited" + }, + "packages": { + "apt": [ + "string" + ], + "cargo": [ + "string" + ], + "gem": [ + "string" + ], + "go": [ + "string" + ], + "npm": [ + "string" + ], + "pip": [ + "pandas", + "numpy" + ], + "type": "packages" + }, + "type": "cloud" + }, + "created_at": "2026-03-15T10:00:00Z", + "description": "Python environment with data-analysis packages.", + "metadata": {}, + "name": "python-data-analysis", + "type": "environment", + "updated_at": "2026-03-15T10:00:00Z", + "scope": "organization" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` + +### Get Environment + +`beta.environments.retrieve(environment_id, **kwargs) -> BetaEnvironment` + +**GET** `/v1/environments/{environment_id}` + +Retrieve a specific environment by ID. + +#### Parameters + +- `environment_id: String` (path parameter) - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -36188,6 +36371,8 @@ Create Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -36196,1458 +36381,1131 @@ Create Session #### Returns -- `class BetaManagedAgentsSession` +- `class BetaEnvironment` - A Managed Agents `session`. + Unified Environment resource for both cloud and self-hosted environments. - - `type: :session` + - `type: :environment` + + The type of object (always 'environment') - `id: String` - - `agent: BetaManagedAgentsSessionAgent` + Environment identifier (e.g., 'env_...') - Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. + - `archived_at: String` - - `type: :agent` + RFC 3339 timestamp when environment was archived, or null if not archived - - `id: String` + - `config: BetaCloudConfig | BetaSelfHostedConfig` - - `description: String` + Environment configuration (either Anthropic Cloud or self-hosted) - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `class BetaCloudConfig` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + `cloud` environment configuration. - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `type: :cloud` - An AWS IAM role principal as returned in API responses. + Environment type - - `type: :aws_role` + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` - - `role_arn: String` + Network configuration policy. - The IAM role's ARN. + - `class BetaUnrestrictedNetwork` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + Unrestricted network access. - The Anthropic-managed service account as returned in API responses. + - `type: :unrestricted` - - `type: :service_account` + Network policy type - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaLimitedNetwork` - - `type: :url` + Limited network access. - - `name: String` + - `type: :limited` - - `url: String` + Network policy type - - `model: BetaManagedAgentsModelConfig` + - `allow_mcp_servers: bool` - Model identifier and configuration. + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. - - `id: BetaManagedAgentsModel` + - `allow_package_managers: bool` - The model that will power your agent. + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `allowed_hosts: Array[String]` - - `:"claude-haiku-5-5"` + Specifies domains the container can reach. - Fastest model for high-volume, real-time tasks + - `packages: BetaPackages` - - `:"claude-sonnet-5-5"` + Package manager configuration. - Efficient model for coding and agents + - `type: :packages` - - `:"claude-opus-5-5"` + Package configuration type - Powerful intelligence for coding, knowledge work, and long-running agents + - `apt: Array[String]` - - `:"claude-fable-5-1"` + Ubuntu/Debian packages to install - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + - `cargo: Array[String]` - - `:"claude-sonnet-5"` + Rust packages to install - Efficient model for coding and agents + - `gem_: Array[String]` - - `:"claude-fable-5"` + Ruby packages to install - Next generation of intelligence for the hardest knowledge work and coding problems + - `go: Array[String]` - - `:"claude-opus-5"` + Go packages to install - Powerful intelligence for long-running agents and coding + - `npm: Array[String]` - - `:"claude-opus-4-8"` - - Powerful intelligence for long-running agents and coding - - - `:"claude-opus-4-7"` - - Powerful intelligence for long-running agents and coding - - - `:"claude-opus-4-6"` - - Powerful intelligence for long-running agents and coding - - - `:"claude-sonnet-4-6"` - - Best combination of speed and intelligence - - - `:"claude-haiku-4-5"` - - - `:"claude-haiku-4-5-20251001"` - - - `:"claude-opus-4-5"` - - Powerful intelligence for long-running agents and coding - - - `:"claude-opus-4-5-20251101"` + Node.js packages to install - Powerful intelligence for long-running agents and coding + - `pip: Array[String]` - - `:"claude-sonnet-4-5"` + Python packages to install - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `class BetaSelfHostedConfig` - High-performance model for agents and coding + Configuration for self-hosted environments. - - `:"claude-sonnet-4-5-20250929"` + - `type: :self_hosted` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Environment type - High-performance model for agents and coding + - `created_at: String` - - `String = String` + RFC 3339 timestamp when environment was created - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `description: String` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + User-provided description for the environment; null when unset - - `class BetaManagedAgentsEffortLow` + - `metadata: Hash[Symbol, String]` - Low effort. Favors latency over reasoning depth. + User-provided metadata key-value pairs - - `type: :low` + - `name: String` - - `class BetaManagedAgentsEffortMedium` + Human-readable name for the environment - Medium effort. Balances latency and reasoning depth. + - `updated_at: String` - - `type: :medium` + RFC 3339 timestamp when environment was last updated - - `class BetaManagedAgentsEffortHigh` + - `scope: :organization | :account` - High effort. Favors reasoning depth. + The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. - - `type: :high` + - `:organization` - - `class BetaManagedAgentsEffortXhigh` + - `:account` - Extra-high effort. Not all models accept this level. +#### Example - - `type: :xhigh` +```ruby +require "anthropic" - - `class BetaManagedAgentsEffortMax` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Maximum effort. Favors reasoning depth over latency. +beta_environment = anthropic.beta.environments.retrieve("env_011CZkZ9X2dpNyB7HsEFoRfW") - - `type: :max` +puts(beta_environment) +``` - - `inference_geo: String` +##### Response (200) - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. +```json +{ + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "archived_at": null, + "config": { + "networking": { + "allow_mcp_servers": false, + "allow_package_managers": true, + "allowed_hosts": [ + "api.example.com" + ], + "type": "limited" + }, + "packages": { + "apt": [ + "string" + ], + "cargo": [ + "string" + ], + "gem": [ + "string" + ], + "go": [ + "string" + ], + "npm": [ + "string" + ], + "pip": [ + "pandas", + "numpy" + ], + "type": "packages" + }, + "type": "cloud" + }, + "created_at": "2026-03-15T10:00:00Z", + "description": "Python environment with data-analysis packages.", + "metadata": {}, + "name": "python-data-analysis", + "type": "environment", + "updated_at": "2026-03-15T10:00:00Z", + "scope": "organization" +} +``` - - `speed: :standard | :fast` +### Update Environment - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. +`beta.environments.update(environment_id, **kwargs) -> BetaEnvironment` - - `:standard` +**POST** `/v1/environments/{environment_id}` - - `:fast` +Update an existing environment's configuration. - - `multiagent: BetaManagedAgentsSessionMultiagent` +#### Parameters - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. +- `environment_id: String` (path parameter) - - `class BetaManagedAgentsSessionMultiagentCoordinator` +- `config: BetaCloudConfigParams | BetaSelfHostedConfigParams` - Resolved coordinator topology with full agent definitions for each roster member. + Updated environment configuration - - `type: :coordinator` + - `class BetaCloudConfigParams` - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + Request params for `cloud` environment configuration. - Full `agent` definitions the coordinator may spawn as session threads. + Fields default to null; on update, omitted fields preserve the + existing value. - - `class BetaManagedAgentsSessionThreadAgent` + - `type: :cloud` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + Environment type - - `type: :agent` + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetworkParams` - - `id: String` + Network configuration policy. Omit on update to preserve the existing value. - - `description: String` + - `class BetaUnrestrictedNetwork` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Unrestricted network access. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `type: :unrestricted` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + Network policy type - - `type: :url` + - `class BetaLimitedNetworkParams` - - `name: String` + Limited network request params. - - `url: String` + Fields default to null; on update, omitted fields preserve the + existing value. - - `model: BetaManagedAgentsModelConfig` + - `type: :limited` - Model identifier and configuration. + Network policy type - - `name: String` + - `allow_mcp_servers: bool` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. Defaults to `false`. - - `class BetaManagedAgentsAnthropicSkill` + - `allow_package_managers: bool` - A resolved Anthropic-managed skill. + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. Defaults to `false` on creation. Must be `true` when `packages` are specified. - - `type: :anthropic` + - `allowed_hosts: Array[String]` - - `skill_id: String` + Specifies domains the container can reach. - - `version: String` + - `packages: BetaPackagesParams` - - `class BetaManagedAgentsCustomSkill` + Package manager configuration. Under `limited` networking, requires `networking.allow_package_managers` to be `true`. Omit on update to preserve the existing value. - A resolved user-created custom skill. + - `type: :packages` - - `type: :custom` + Package configuration type - - `skill_id: String` + - `apt: Array[String]` - - `version: String` + Ubuntu/Debian packages to install - - `system_: String` + - `cargo: Array[String]` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Rust packages to install - - `class BetaManagedAgentsAgentToolset20260401` + - `gem_: Array[String]` - - `type: :agent_toolset_20260401` + Ruby packages to install - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `go: Array[String]` - - `class BetaManagedAgentsBashToolConfig` + Go packages to install - Configuration for the bash tool. + - `npm: Array[String]` - - `type: :bash` + Node.js packages to install - - `enabled: bool` + - `pip: Array[String]` - - `name: :bash` + Python packages to install - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaSelfHostedConfigParams` - Permission policy for tool execution. + Request params for `self_hosted` environment configuration. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :self_hosted` - Tool calls are automatically approved without user confirmation. + Environment type - - `type: :always_allow` +- `description: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Updated description of the environment. Omit to preserve; null clears to null; an empty string is stored as an empty string. - Tool calls require user confirmation before execution. + maxLength: 1024 - - `type: :always_ask` +- `metadata: Hash[Symbol, String]` - - `class BetaManagedAgentsAutoPolicy` + User-provided metadata key-value pairs. Set a value to null or empty string to delete the key. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +- `name: String` - - `type: :auto` + Updated name for the environment - - `class BetaManagedAgentsEditToolConfig` + minLength: 1, maxLength: 256 - Configuration for the edit tool. +- `scope: :organization | :account` - - `type: :edit` + The visibility scope for this environment. 'organization' makes the environment visible to all accounts. 'account' restricts visibility to the owning account only. - - `enabled: bool` + - `:organization` - - `name: :edit` + - `:account` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +- `betas: Array[AnthropicBeta]` (header parameter) - Permission policy for tool execution. + Optional header to specify the beta version(s) you want to use. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `String = String` - Tool calls are automatically approved without user confirmation. + - `:"message-batches-2024-09-24"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"prompt-caching-2024-07-31"` - Tool calls require user confirmation before execution. + - `:"computer-use-2024-10-22"` - - `class BetaManagedAgentsAutoPolicy` + - `:"computer-use-2025-01-24"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"pdfs-2024-09-25"` - - `class BetaManagedAgentsReadToolConfig` + - `:"token-counting-2024-11-01"` - Configuration for the read tool. + - `:"token-efficient-tools-2025-02-19"` - - `type: :read` + - `:"output-128k-2025-02-19"` - - `enabled: bool` + - `:"files-api-2025-04-14"` - - `name: :read` + - `:"mcp-client-2025-04-04"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"mcp-client-2025-11-20"` - Permission policy for tool execution. + - `:"dev-full-thinking-2025-05-14"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"interleaved-thinking-2025-05-14"` - Tool calls are automatically approved without user confirmation. + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"extended-cache-ttl-2025-04-11"` - Tool calls require user confirmation before execution. + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsAutoPolicy` + - `:"context-management-2025-06-27"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"model-context-window-exceeded-2025-08-26"` - - `class BetaManagedAgentsWriteToolConfig` + - `:"skills-2025-10-02"` - Configuration for the write tool. + - `:"fast-mode-2026-02-01"` - - `type: :write` + - `:"output-300k-2026-03-24"` - - `enabled: bool` + - `:"user-profiles-2026-03-24"` - - `name: :write` + - `:"user-profiles-2026-08-18"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"user-profiles-2026-09-04"` - Permission policy for tool execution. + - `:"advisor-tool-2026-03-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"managed-agents-2026-04-01"` - Tool calls are automatically approved without user confirmation. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"dreaming-2026-04-21"` - Tool calls require user confirmation before execution. + - `:"thinking-token-count-2026-05-13"` - - `class BetaManagedAgentsAutoPolicy` + - `:"server-side-fallback-2026-06-01"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsGlobToolConfig` + - `:"fallback-credit-2026-06-01"` - Configuration for the glob tool. + - `:"fallback-credit-2026-07-01"` - - `type: :glob` + - `:"agent-memory-2026-07-22"` - - `enabled: bool` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `name: :glob` + - `:"compact-2026-01-12"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"computer-use-2025-11-24"` - Permission policy for tool execution. + - `:"mcp-tunnels-2026-06-22"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"structured-outputs-2025-11-13"` - Tool calls are automatically approved without user confirmation. + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"thinking-display-updates-2026-08-18"` - Tool calls require user confirmation before execution. + - `:"ce-user-management-2026-07-13"` - - `class BetaManagedAgentsAutoPolicy` + - `:"mid-conversation-output-config-2026-07-01"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"thinking-binding-controls-2026-08-01"` - - `class BetaManagedAgentsGrepToolConfig` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Configuration for the grep tool. + - `:"compact-2026-09-04"` - - `type: :grep` + - `:"inline-tools-2026-09-15"` - - `enabled: bool` + - `:"mcp-client-2026-09-15"` - - `name: :grep` + - `:"ce-plugins-2026-09-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"spend-limit-reads-2026-09-26"` - Permission policy for tool execution. + - `:"telemetry-destinations-2026-08-11"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"webhooks-2026-10-07"` - Tool calls are automatically approved without user confirmation. +- `workspace_id: String` (header parameter) - - `class BetaManagedAgentsAlwaysAskPolicy` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Tool calls require user confirmation before execution. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaManagedAgentsAutoPolicy` +#### Returns - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +- `class BetaEnvironment` - - `class BetaManagedAgentsWebFetchToolConfig` + Unified Environment resource for both cloud and self-hosted environments. - Configuration for the web_fetch tool. + - `type: :environment` - - `type: :web_fetch` + The type of object (always 'environment') - - `enabled: bool` + - `id: String` - - `name: :web_fetch` + Environment identifier (e.g., 'env_...') - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `archived_at: String` - Permission policy for tool execution. + RFC 3339 timestamp when environment was archived, or null if not archived - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `config: BetaCloudConfig | BetaSelfHostedConfig` - Tool calls are automatically approved without user confirmation. + Environment configuration (either Anthropic Cloud or self-hosted) - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaCloudConfig` - Tool calls require user confirmation before execution. + `cloud` environment configuration. - - `class BetaManagedAgentsAutoPolicy` + - `type: :cloud` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Environment type - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + Network configuration policy. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `class BetaUnrestrictedNetwork` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + Unrestricted network access. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `type: :unrestricted` - Every URL from this source may be fetched. This is the default. + Network policy type - - `type: :all` + - `class BetaLimitedNetwork` - - `class BetaManagedAgentsWebFetchURLSourceNone` + Limited network access. - This source contributes no URLs that may be fetched. + - `type: :limited` - - `type: :none` + Network policy type - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `allow_mcp_servers: bool` - Only the named tools' results contribute URLs that may be fetched. + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. - - `type: :only` + - `allow_package_managers: bool` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `allowed_hosts: Array[String]` - - `type: :tool_reference` + Specifies domains the container can reach. - Must be "tool_reference". + - `packages: BetaPackages` - - `name: String` + Package manager configuration. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `type: :packages` - minLength: 1, maxLength: 128 + Package configuration type - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `apt: Array[String]` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + Ubuntu/Debian packages to install - - `type: :except` + - `cargo: Array[String]` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Rust packages to install - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `gem_: Array[String]` - - `type: :tool_reference` + Ruby packages to install - Must be "tool_reference". + - `go: Array[String]` - - `name: String` + Go packages to install - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `npm: Array[String]` - minLength: 1, maxLength: 128 + Node.js packages to install - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `pip: Array[String]` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + Python packages to install - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `class BetaSelfHostedConfig` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + Configuration for self-hosted environments. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `type: :self_hosted` - Every URL from this source may be fetched. This is the default. + Environment type - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `created_at: String` - This source contributes no URLs that may be fetched. + RFC 3339 timestamp when environment was created - - `allowed_domains: Array[String]` + - `description: String` - - `blocked_domains: Array[String]` + User-provided description for the environment; null when unset - - `max_content_tokens: Integer` + - `metadata: Hash[Symbol, String]` - format: int32 + User-provided metadata key-value pairs - - `class BetaManagedAgentsWebSearchToolConfig` + - `name: String` - Configuration for the web_search tool. + Human-readable name for the environment - - `type: :web_search` + - `updated_at: String` - - `enabled: bool` + RFC 3339 timestamp when environment was last updated - - `name: :web_search` + - `scope: :organization | :account` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. - Permission policy for tool execution. + - `:organization` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:account` - Tool calls are automatically approved without user confirmation. +#### Example - - `class BetaManagedAgentsAlwaysAskPolicy` +```ruby +require "anthropic" - Tool calls require user confirmation before execution. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `class BetaManagedAgentsAutoPolicy` +beta_environment = anthropic.beta.environments.update("env_011CZkZ9X2dpNyB7HsEFoRfW") - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +puts(beta_environment) +``` - - `allowed_domains: Array[String]` +##### Response (200) - - `blocked_domains: Array[String]` - - - `user_location: BetaManagedAgentsUserLocation` - - Approximate user location for search result localization. - - - `type: :approximate` - - Location precision. Only "approximate" is supported. - - - `city: String` - - City name. - - minLength: 1, maxLength: 255 - - - `country: String` - - Two-letter ISO 3166-1 country code, uppercase. - - - `region: String` - - Region or state name. - - minLength: 1, maxLength: 255 - - - `timezone: String` - - IANA timezone identifier, e.g. "America/Los_Angeles". - - minLength: 1, maxLength: 255 - - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` +```json +{ + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "archived_at": null, + "config": { + "networking": { + "allow_mcp_servers": false, + "allow_package_managers": true, + "allowed_hosts": [ + "api.example.com" + ], + "type": "limited" + }, + "packages": { + "apt": [ + "string" + ], + "cargo": [ + "string" + ], + "gem": [ + "string" + ], + "go": [ + "string" + ], + "npm": [ + "string" + ], + "pip": [ + "pandas", + "numpy" + ], + "type": "packages" + }, + "type": "cloud" + }, + "created_at": "2026-03-15T10:00:00Z", + "description": "Python environment with data-analysis packages.", + "metadata": {}, + "name": "python-data-analysis", + "type": "environment", + "updated_at": "2026-03-15T10:00:00Z", + "scope": "organization" +} +``` - Resolved default configuration for agent tools. +### Delete Environment - - `enabled: bool` +`beta.environments.delete(environment_id, **kwargs) -> BetaEnvironmentDeleteResponse` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +**DELETE** `/v1/environments/{environment_id}` - Permission policy for tool execution. +Delete an environment by ID. Returns a confirmation of the deletion. - - `class BetaManagedAgentsAlwaysAllowPolicy` +#### Parameters - Tool calls are automatically approved without user confirmation. +- `environment_id: String` (path parameter) - - `class BetaManagedAgentsAlwaysAskPolicy` +- `betas: Array[AnthropicBeta]` (header parameter) - Tool calls require user confirmation before execution. + Optional header to specify the beta version(s) you want to use. - - `class BetaManagedAgentsAutoPolicy` + - `String = String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"message-batches-2024-09-24"` - - `class BetaManagedAgentsMCPToolset` + - `:"prompt-caching-2024-07-31"` - - `type: :mcp_toolset` + - `:"computer-use-2024-10-22"` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `:"computer-use-2025-01-24"` - - `enabled: bool` + - `:"pdfs-2024-09-25"` - - `name: String` + - `:"token-counting-2024-11-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"token-efficient-tools-2025-02-19"` - Permission policy for tool execution. + - `:"output-128k-2025-02-19"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"files-api-2025-04-14"` - Tool calls are automatically approved without user confirmation. + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"mcp-client-2025-11-20"` - Tool calls require user confirmation before execution. + - `:"dev-full-thinking-2025-05-14"` - - `class BetaManagedAgentsAutoPolicy` + - `:"interleaved-thinking-2025-05-14"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"code-execution-2025-05-22"` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `:"extended-cache-ttl-2025-04-11"` - Resolved default configuration for all tools from an MCP server. + - `:"context-1m-2025-08-07"` - - `enabled: bool` + - `:"context-management-2025-06-27"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"model-context-window-exceeded-2025-08-26"` - Permission policy for tool execution. + - `:"skills-2025-10-02"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"fast-mode-2026-02-01"` - Tool calls are automatically approved without user confirmation. + - `:"output-300k-2026-03-24"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"user-profiles-2026-03-24"` - Tool calls require user confirmation before execution. + - `:"user-profiles-2026-08-18"` - - `class BetaManagedAgentsAutoPolicy` + - `:"user-profiles-2026-09-04"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"advisor-tool-2026-03-01"` - - `mcp_server_name: String` + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsCustomTool` + - `:"cache-diagnosis-2026-04-07"` - A custom tool as returned in API responses. + - `:"dreaming-2026-04-21"` - - `type: :custom` + - `:"thinking-token-count-2026-05-13"` - - `description: String` + - `:"server-side-fallback-2026-06-01"` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `:"server-side-fallback-2026-07-01"` - JSON Schema for custom tool input parameters. + - `:"fallback-credit-2026-06-01"` - - `type: :object` + - `:"fallback-credit-2026-07-01"` - - `properties: Hash[Symbol, untyped]` + - `:"agent-memory-2026-07-22"` - - `required: Array[String]` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `name: String` + - `:"compact-2026-01-12"` - - `version: Integer` + - `:"computer-use-2025-11-24"` - format: int32 + - `:"mcp-tunnels-2026-06-22"` - - `class BetaManagedAgentsAdvisor` + - `:"structured-outputs-2025-11-13"` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `:"task-budgets-2026-03-13"` - - `type: :advisor` + - `:"thinking-display-updates-2026-08-18"` - - `model: String` + - `:"ce-user-management-2026-07-13"` - The advisor model id. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaManagedAgentsSessionMultiagent20261001` + - `:"thinking-binding-controls-2026-08-01"` - Resolved multiagent configuration with three members, as copied to the `session` at creation. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `type: :multiagent_20261001` + - `:"compact-2026-09-04"` - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `:"inline-tools-2026-09-15"` - Whether the session's primary thread can consult an advisor model. + - `:"mcp-client-2026-09-15"` - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `:"ce-plugins-2026-09-01"` - The session's primary thread can consult `model` mid-turn. + - `:"spend-limit-reads-2026-09-26"` - - `type: :enabled` + - `:"telemetry-destinations-2026-08-11"` - - `model: String` + - `:"webhooks-2026-10-07"` - The advisor model id. +- `workspace_id: String` (header parameter) - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The agent has no advisor. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :disabled` +#### Returns - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` +- `class BetaEnvironmentDeleteResponse` - Whether the agent can spawn session threads. + Response after deleting an environment. - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + - `type: :environment_deleted` - The agent can spawn session threads. + The type of response - - `type: :enabled` + - `id: String` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + Environment identifier - Whether the agent can define inline agents, which are not saved, when it spawns session threads. +#### Example - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` +```ruby +require "anthropic" - The agent can define inline agents. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :enabled` +beta_environment_delete_response = anthropic.beta.environments.delete("env_011CZkZ9X2dpNyB7HsEFoRfW") - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` +puts(beta_environment_delete_response) +``` - The agent cannot define inline agents. +##### Response (200) - - `type: :disabled` +```json +{ + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "type": "environment_deleted" +} +``` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` +### Archive Environment - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. +`beta.environments.archive(environment_id, **kwargs) -> BetaEnvironment` - - `type: :agent` +**POST** `/v1/environments/{environment_id}/archive` - - `id: String` +Archive an environment by ID. Archived environments cannot be used to create new sessions. - - `description: String` +#### Parameters - - `execution_identity: BetaManagedAgentsExecutionIdentity` +- `environment_id: String` (path parameter) - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. +- `betas: Array[AnthropicBeta]` (header parameter) - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + Optional header to specify the beta version(s) you want to use. - - `model: BetaManagedAgentsModelConfig` + - `String = String` - Model identifier and configuration. + - `:"message-batches-2024-09-24"` - - `name: String` + - `:"prompt-caching-2024-07-31"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"computer-use-2024-10-22"` - - `system_: String` + - `:"computer-use-2025-01-24"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"pdfs-2024-09-25"` - - `version: Integer` + - `:"token-counting-2024-11-01"` - format: int32 + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `:"output-128k-2025-02-19"` - The agent cannot spawn session threads. + - `:"files-api-2025-04-14"` - - `type: :disabled` + - `:"mcp-client-2025-04-04"` - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + - `:"mcp-client-2025-11-20"` - Whether the agent can start workflow runs. + - `:"dev-full-thinking-2025-05-14"` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + - `:"interleaved-thinking-2025-05-14"` - The agent can start workflow runs. + - `:"code-execution-2025-05-22"` - - `type: :enabled` + - `:"extended-cache-ttl-2025-04-11"` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:"context-1m-2025-08-07"` - Whether a run's plan can define inline agents, which are not saved. + - `:"context-management-2025-06-27"` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `:"model-context-window-exceeded-2025-08-26"` - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + - `:"skills-2025-10-02"` - - `type: :agent` + - `:"fast-mode-2026-02-01"` - - `id: String` + - `:"output-300k-2026-03-24"` - - `description: String` + - `:"user-profiles-2026-03-24"` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `:"user-profiles-2026-08-18"` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `:"user-profiles-2026-09-04"` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `:"advisor-tool-2026-03-01"` - - `model: BetaManagedAgentsModelConfig` + - `:"managed-agents-2026-04-01"` - Model identifier and configuration. + - `:"cache-diagnosis-2026-04-07"` - - `name: String` + - `:"dreaming-2026-04-21"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"thinking-token-count-2026-05-13"` - - `system_: String` + - `:"server-side-fallback-2026-06-01"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"server-side-fallback-2026-07-01"` - - `version: Integer` + - `:"fallback-credit-2026-06-01"` - format: int32 + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `:"agent-memory-2026-07-22"` - The agent cannot start workflow runs. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `type: :disabled` + - `:"compact-2026-01-12"` - - `name: String` + - `:"computer-use-2025-11-24"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"mcp-tunnels-2026-06-22"` - - `class BetaManagedAgentsAnthropicSkill` + - `:"structured-outputs-2025-11-13"` - A resolved Anthropic-managed skill. + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsCustomSkill` + - `:"thinking-display-updates-2026-08-18"` - A resolved user-created custom skill. + - `:"ce-user-management-2026-07-13"` - - `system_: String` + - `:"mid-conversation-output-config-2026-07-01"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"thinking-binding-controls-2026-08-01"` - - `class BetaManagedAgentsAgentToolset20260401` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaManagedAgentsMCPToolset` + - `:"compact-2026-09-04"` - - `class BetaManagedAgentsCustomTool` + - `:"inline-tools-2026-09-15"` - A custom tool as returned in API responses. + - `:"mcp-client-2026-09-15"` - - `version: Integer` + - `:"ce-plugins-2026-09-01"` - format: int32 + - `:"spend-limit-reads-2026-09-26"` - - `archived_at: Time` + - `:"telemetry-destinations-2026-08-11"` - When the session was archived. Null if not archived. + - `:"webhooks-2026-10-07"` - format: date-time +- `workspace_id: String` (header parameter) - - `budget: BetaManagedAgentsBudgetLimit` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The session's enforced spend ceiling, or null when no budget is set. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :limit` +#### Returns - - `max_list_cost: BetaMonetaryAmount` +- `class BetaEnvironment` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + Unified Environment resource for both cloud and self-hosted environments. - - `amount: String` + - `type: :environment` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + The type of object (always 'environment') - - `currency: BetaCurrency` + - `id: String` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + Environment identifier (e.g., 'env_...') - - `created_at: Time` + - `archived_at: String` - A timestamp in RFC 3339 format + RFC 3339 timestamp when environment was archived, or null if not archived - format: date-time + - `config: BetaCloudConfig | BetaSelfHostedConfig` - - `environment_id: String` + Environment configuration (either Anthropic Cloud or self-hosted) - - `metadata: Hash[Symbol, String]` + - `class BetaCloudConfig` - - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` + `cloud` environment configuration. - Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. + - `type: :cloud` - - `type: :outcome_evaluation` + Environment type - - `completed_at: Time` + - `networking: BetaUnrestrictedNetwork | BetaLimitedNetwork` - When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. + Network configuration policy. - format: date-time + - `class BetaUnrestrictedNetwork` - - `description: String` + Unrestricted network access. - What the agent should produce. + - `type: :unrestricted` - - `explanation: String` + Network policy type - Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. + - `class BetaLimitedNetwork` - - `iteration: Integer` + Limited network access. - 0-indexed revision cycle the outcome is currently on. + - `type: :limited` - format: int32 + Network policy type - - `outcome_id: String` + - `allow_mcp_servers: bool` - Server-generated outc_ ID for this outcome. + Permits outbound access to MCP server endpoints configured on the agent, beyond those listed in the `allowed_hosts` array. - - `result: String` + - `allow_package_managers: bool` - Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. + Permits outbound access to public package registries (PyPI, npm, etc.) beyond those listed in the `allowed_hosts` array. - - `resources: Array[BetaManagedAgentsSessionResource]` + - `allowed_hosts: Array[String]` - - `class BetaManagedAgentsGitHubRepositoryResource` + Specifies domains the container can reach. - - `type: :github_repository` + - `packages: BetaPackages` - - `id: String` + Package manager configuration. - - `created_at: Time` + - `type: :packages` - A timestamp in RFC 3339 format + Package configuration type - format: date-time + - `apt: Array[String]` - - `mount_path: String` + Ubuntu/Debian packages to install - - `updated_at: Time` + - `cargo: Array[String]` - A timestamp in RFC 3339 format + Rust packages to install - format: date-time + - `gem_: Array[String]` - - `url: String` + Ruby packages to install - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `go: Array[String]` - - `class BetaManagedAgentsBranchCheckout` + Go packages to install - - `type: :branch` + - `npm: Array[String]` - - `name: String` + Node.js packages to install - Branch name to check out. + - `pip: Array[String]` - minLength: 1, maxLength: 255 + Python packages to install - - `class BetaManagedAgentsCommitCheckout` + - `class BetaSelfHostedConfig` - - `type: :commit` + Configuration for self-hosted environments. - - `sha: String` + - `type: :self_hosted` - Full commit SHA to check out. + Environment type - minLength: 7, maxLength: 64 + - `created_at: String` - - `class BetaManagedAgentsFileResource` + RFC 3339 timestamp when environment was created - - `type: :file` + - `description: String` - - `id: String` + User-provided description for the environment; null when unset - - `created_at: Time` + - `metadata: Hash[Symbol, String]` - A timestamp in RFC 3339 format + User-provided metadata key-value pairs - format: date-time + - `name: String` - - `file_id: String` + Human-readable name for the environment - - `mount_path: String` + - `updated_at: String` - - `updated_at: Time` + RFC 3339 timestamp when environment was last updated - A timestamp in RFC 3339 format + - `scope: :organization | :account` - format: date-time + The visibility scope for this environment. 'organization' means visible to all accounts. 'account' means visible only to the owning account. - - `class BetaManagedAgentsMemoryStoreResource` + - `:organization` - A memory store attached to an agent session. + - `:account` - - `type: :memory_store` +#### Example - - `memory_store_id: String` +```ruby +require "anthropic" - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `access: :read_write | :read_only` +beta_environment = anthropic.beta.environments.archive("env_011CZkZ9X2dpNyB7HsEFoRfW") - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. +puts(beta_environment) +``` - - `:read_write` - - - `:read_only` - - - `description: String` - - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - - - `instructions: String` - - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - maxLength: 4096 - - - `mount_path: String` - - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - - - `name: String` - - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - - - `stats: BetaManagedAgentsSessionStats` - - Timing statistics for the session. - - - `active_seconds: Float` - - Cumulative time in seconds the session spent in `running` status. Excludes idle time. - - format: double - - - `duration_seconds: Float` - - Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. - - format: double - - - `status: :rescheduling | :running | :idle | :terminated` - - - `:rescheduling` - - Transient error occurred, retrying automatically. - - - `:running` - - Agent is actively executing. - - - `:idle` - - Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. - - - `:terminated` - - Session has ended, either due to an error or completion. - - - `title: String` - - - `updated_at: Time` - - A timestamp in RFC 3339 format - - format: date-time - - - `usage: BetaManagedAgentsSessionUsage` - - Cumulative token usage for the session. - - - `active_seconds: Float` - - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. - - format: double - - - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - Tokens used to create prompt cache entries, broken down by cache TTL. - - - `ephemeral_1h_input_tokens: Integer` - - Tokens used to create 1-hour ephemeral cache entries. - - format: int32 - - - `ephemeral_5m_input_tokens: Integer` - - Tokens used to create 5-minute ephemeral cache entries. - - format: int32 - - - `cache_read_input_tokens: Integer` - - Total tokens read from prompt cache. - - format: int32 - - - `input_tokens: Integer` - - Total input tokens consumed across all turns. - - format: int32 - - - `list_cost: BetaMonetaryAmount` - - Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. - - - `output_tokens: Integer` - - Total output tokens generated across all turns. - - format: int32 - - - `server_tool_use: BetaManagedAgentsServerToolUsage` - - Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. - - - `web_fetch_requests: Integer` - - Number of server-executed web fetch requests. - - format: int32 - - - `web_search_requests: Integer` - - Number of server-executed web search requests. - - format: int32 - - - `vault_ids: Array[String]` - - Vault IDs attached to the session at creation. Empty when no vaults were supplied. - - - `deployment_id: String` - - Deployment ID when the session was created from a deployment reference. Null otherwise. - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_managed_agents_session = anthropic.beta.sessions.create( - agent: "agent_011CZkYpogX7uDKUyvBTophP", - environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW" -) - -puts(beta_managed_agents_session) -``` - -##### Response (200) +##### Response (200) ```json { - "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - } + "id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "archived_at": null, + "config": { + "networking": { + "allow_mcp_servers": false, + "allow_package_managers": true, + "allowed_hosts": [ + "api.example.com" ], - "type": "coordinator" + "type": "limited" }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" + "packages": { + "apt": [ + "string" + ], + "cargo": [ + "string" + ], + "gem": [ + "string" + ], + "go": [ + "string" + ], + "npm": [ + "string" + ], + "pip": [ + "pandas", + "numpy" + ], + "type": "packages" }, - "type": "limit" + "type": "cloud" }, "created_at": "2026-03-15T10:00:00Z", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "description": "Python environment with data-analysis packages.", "metadata": {}, - "outcome_evaluations": [ - { - "completed_at": "2026-03-15T10:02:31Z", - "description": "Produce a 2-page summary as summary.md", - "explanation": "All five sections present with inline citations.", - "iteration": 0, - "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", - "result": "satisfied", - "type": "outcome_evaluation" - } - ], - "resources": [ - { - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } - } - ], - "stats": { - "active_seconds": 0, - "duration_seconds": 0 - }, - "status": "idle", - "title": "Order #1234 inquiry", - "type": "session", + "name": "python-data-analysis", + "type": "environment", "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "deployment_id": "deployment_id" + "scope": "organization" } ``` -### List Sessions - -`beta.sessions.list(**kwargs) -> BidirectionalPageCursor` - -**GET** `/v1/sessions` - -List Sessions - -#### Parameters - -- `agent_id: String` (query parameter) - - Filter sessions created with this agent ID. - -- `agent_version: Integer` (query parameter) - - Filter by agent version. Only applies when `agent_id` is also set. - - format: int32 - -- `created_at_gt: Time` (query parameter) - - Return sessions created after this time (exclusive). - - format: date-time - -- `created_at_gte: Time` (query parameter) - - Return sessions created at or after this time (inclusive). - - format: date-time - -- `created_at_lt: Time` (query parameter) - - Return sessions created before this time (exclusive). - - format: date-time - -- `created_at_lte: Time` (query parameter) - - Return sessions created at or before this time (inclusive). - - format: date-time - -- `deployment_id: String` (query parameter) - - Filter sessions created by this deployment ID. - -- `include_archived: bool` (query parameter) - - When true, includes archived sessions. Default: false (exclude archived). - -- `limit: Integer` (query parameter) - - Maximum number of results to return. - - format: int32 - -- `memory_store_id: String` (query parameter) - - Filter sessions whose resources contain a `memory_store` with this memory store ID. - -- `order: :asc | :desc` (query parameter) - - Sort direction for results, ordered by `created_at`. Defaults to `desc` (newest first). - - - `:asc` - - - `:desc` - -- `page: String` (query parameter) - - Opaque pagination cursor from a previous response. - -- `statuses: Array[:rescheduling | :running | :idle | :terminated]` (query parameter) - - Filter by session status. Repeat the parameter to match any of multiple statuses. +## Beta › Environments › Work - - `:rescheduling` +### Get Work Item - Transient error occurred, retrying automatically. +`beta.environments.work.retrieve(work_id, **kwargs) -> BetaSelfHostedWork` - - `:running` +**GET** `/v1/environments/{environment_id}/work/{work_id}` - Agent is actively executing. +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - - `:idle` +Retrieve detailed information about a specific work item. - Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. +#### Parameters - - `:terminated` +- `environment_id: String` (path parameter) - Session has ended, either due to an error or completion. +- `work_id: String` (path parameter) - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -37753,6 +37611,8 @@ List Sessions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -37761,1145 +37621,1281 @@ List Sessions #### Returns -- `class BetaManagedAgentsSession` +- `class BetaSelfHostedWork` - A Managed Agents `session`. + Work resource representing a unit of work in a self-hosted environment. - - `type: :session` + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - - `id: String` + - `type: :work` - - `agent: BetaManagedAgentsSessionAgent` + The type of object (always 'work') - Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. + - `id: String` - - `type: :agent` + Work identifier (e.g., 'work_...') - - `id: String` + - `acknowledged_at: String` - - `description: String` + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `created_at: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + RFC 3339 timestamp when work was created - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `data: BetaSessionWorkData` - An AWS IAM role principal as returned in API responses. + The actual work to be performed - - `type: :aws_role` + - `type: :session` - - `role_arn: String` + Type of work data - The IAM role's ARN. + - `id: String` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + Session identifier (e.g., 'session_...') - The Anthropic-managed service account as returned in API responses. + - `environment_id: String` - - `type: :service_account` + Environment identifier this work belongs to (e.g., `env_...`) - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `latest_heartbeat_at: String` - - `type: :url` + RFC 3339 timestamp of the most recent heartbeat - - `name: String` + - `metadata: Hash[Symbol, String]` - - `url: String` + User-provided metadata key-value pairs associated with this work item - - `model: BetaManagedAgentsModelConfig` + - `secret: String` - Model identifier and configuration. + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - - `id: BetaManagedAgentsModel` + - `started_at: String` - The model that will power your agent. + RFC 3339 timestamp when work execution started - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `state: :queued | :starting | :active | 2 more` - - `:"claude-haiku-5-5"` + Current state of the work item - Fastest model for high-volume, real-time tasks + - `:queued` - - `:"claude-sonnet-5-5"` + - `:starting` - Efficient model for coding and agents + - `:active` - - `:"claude-opus-5-5"` + - `:stopping` - Powerful intelligence for coding, knowledge work, and long-running agents + - `:stopped` - - `:"claude-fable-5-1"` + - `stop_requested_at: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + RFC 3339 timestamp when stop was requested - - `:"claude-sonnet-5"` + - `stopped_at: String` - Efficient model for coding and agents + RFC 3339 timestamp when work execution stopped - - `:"claude-fable-5"` +#### Example - Next generation of intelligence for the hardest knowledge work and coding problems +```ruby +require "anthropic" - - `:"claude-opus-5"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Powerful intelligence for long-running agents and coding +beta_self_hosted_work = anthropic.beta.environments.work.retrieve("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") - - `:"claude-opus-4-8"` +puts(beta_self_hosted_work) +``` - Powerful intelligence for long-running agents and coding +##### Response (200) - - `:"claude-opus-4-7"` +```json +{ + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" + }, + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" + }, + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" +} +``` - Powerful intelligence for long-running agents and coding +### Poll for Work - - `:"claude-opus-4-6"` +`beta.environments.work.poll(environment_id, **kwargs) -> BetaSelfHostedWork` - Powerful intelligence for long-running agents and coding +**GET** `/v1/environments/{environment_id}/work/poll` - - `:"claude-sonnet-4-6"` +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - Best combination of speed and intelligence +Long poll for work items in the queue. - - `:"claude-haiku-4-5"` +#### Parameters - - `:"claude-haiku-4-5-20251001"` +- `environment_id: String` (path parameter) - - `:"claude-opus-4-5"` +- `block_ms: Integer` (query parameter) - Powerful intelligence for long-running agents and coding + How long to wait for work to arrive before returning. Must be 1-999 in milliseconds. Defaults to non-blocking (returns immediately if no work is available). - - `:"claude-opus-4-5-20251101"` + minimum: 1 - Powerful intelligence for long-running agents and coding +- `reclaim_older_than_ms: Integer` (query parameter) - - `:"claude-sonnet-4-5"` + Reclaim unacknowledged work items older than this many milliseconds. If omitted, uses the default (5000ms). - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + minimum: 1 - High-performance model for agents and coding +- `betas: Array[AnthropicBeta]` (header parameter) - - `:"claude-sonnet-4-5-20250929"` + Optional header to specify the beta version(s) you want to use. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `String = String` - High-performance model for agents and coding + - `:"message-batches-2024-09-24"` - - `String = String` + - `:"prompt-caching-2024-07-31"` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `:"computer-use-2024-10-22"` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsEffortLow` + - `:"pdfs-2024-09-25"` - Low effort. Favors latency over reasoning depth. + - `:"token-counting-2024-11-01"` - - `type: :low` + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsEffortMedium` + - `:"output-128k-2025-02-19"` - Medium effort. Balances latency and reasoning depth. + - `:"files-api-2025-04-14"` - - `type: :medium` + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsEffortHigh` + - `:"mcp-client-2025-11-20"` - High effort. Favors reasoning depth. + - `:"dev-full-thinking-2025-05-14"` - - `type: :high` + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsEffortXhigh` + - `:"code-execution-2025-05-22"` - Extra-high effort. Not all models accept this level. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :xhigh` + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsEffortMax` + - `:"context-management-2025-06-27"` - Maximum effort. Favors reasoning depth over latency. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :max` + - `:"skills-2025-10-02"` - - `inference_geo: String` + - `:"fast-mode-2026-02-01"` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `:"output-300k-2026-03-24"` - - `speed: :standard | :fast` + - `:"user-profiles-2026-03-24"` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `:"user-profiles-2026-08-18"` - - `:standard` + - `:"user-profiles-2026-09-04"` - - `:fast` + - `:"advisor-tool-2026-03-01"` - - `multiagent: BetaManagedAgentsSessionMultiagent` + - `:"managed-agents-2026-04-01"` - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaManagedAgentsSessionMultiagentCoordinator` + - `:"dreaming-2026-04-21"` - Resolved coordinator topology with full agent definitions for each roster member. + - `:"thinking-token-count-2026-05-13"` - - `type: :coordinator` + - `:"server-side-fallback-2026-06-01"` - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + - `:"server-side-fallback-2026-07-01"` - Full `agent` definitions the coordinator may spawn as session threads. + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsSessionThreadAgent` + - `:"fallback-credit-2026-07-01"` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `:"agent-memory-2026-07-22"` - - `type: :agent` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `id: String` + - `:"compact-2026-01-12"` - - `description: String` + - `:"computer-use-2025-11-24"` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `:"mcp-tunnels-2026-06-22"` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `:"structured-outputs-2025-11-13"` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `:"task-budgets-2026-03-13"` - - `type: :url` + - `:"thinking-display-updates-2026-08-18"` - - `name: String` + - `:"ce-user-management-2026-07-13"` - - `url: String` + - `:"mid-conversation-output-config-2026-07-01"` - - `model: BetaManagedAgentsModelConfig` + - `:"thinking-binding-controls-2026-08-01"` - Model identifier and configuration. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `name: String` + - `:"compact-2026-09-04"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"inline-tools-2026-09-15"` - - `class BetaManagedAgentsAnthropicSkill` + - `:"mcp-client-2026-09-15"` - A resolved Anthropic-managed skill. + - `:"ce-plugins-2026-09-01"` - - `type: :anthropic` + - `:"spend-limit-reads-2026-09-26"` - - `skill_id: String` + - `:"telemetry-destinations-2026-08-11"` - - `version: String` + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsCustomSkill` +- `anthropic_worker_id: String` (header parameter) - A resolved user-created custom skill. + Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console - - `type: :custom` +#### Returns - - `skill_id: String` +- `class BetaSelfHostedWork` - - `version: String` + Work resource representing a unit of work in a self-hosted environment. - - `system_: String` + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `type: :work` - - `class BetaManagedAgentsAgentToolset20260401` + The type of object (always 'work') - - `type: :agent_toolset_20260401` + - `id: String` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + Work identifier (e.g., 'work_...') - - `class BetaManagedAgentsBashToolConfig` + - `acknowledged_at: String` - Configuration for the bash tool. + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - `type: :bash` + - `created_at: String` - - `enabled: bool` + RFC 3339 timestamp when work was created - - `name: :bash` + - `data: BetaSessionWorkData` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The actual work to be performed - Permission policy for tool execution. + - `type: :session` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Type of work data - Tool calls are automatically approved without user confirmation. + - `id: String` - - `type: :always_allow` + Session identifier (e.g., 'session_...') - - `class BetaManagedAgentsAlwaysAskPolicy` + - `environment_id: String` - Tool calls require user confirmation before execution. + Environment identifier this work belongs to (e.g., `env_...`) - - `type: :always_ask` + - `latest_heartbeat_at: String` - - `class BetaManagedAgentsAutoPolicy` + RFC 3339 timestamp of the most recent heartbeat - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `metadata: Hash[Symbol, String]` - - `type: :auto` + User-provided metadata key-value pairs associated with this work item - - `class BetaManagedAgentsEditToolConfig` + - `secret: String` - Configuration for the edit tool. + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - - `type: :edit` + - `started_at: String` - - `enabled: bool` + RFC 3339 timestamp when work execution started - - `name: :edit` + - `state: :queued | :starting | :active | 2 more` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Current state of the work item - Permission policy for tool execution. + - `:queued` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:starting` - Tool calls are automatically approved without user confirmation. + - `:active` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:stopping` - Tool calls require user confirmation before execution. + - `:stopped` - - `class BetaManagedAgentsAutoPolicy` + - `stop_requested_at: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + RFC 3339 timestamp when stop was requested - - `class BetaManagedAgentsReadToolConfig` + - `stopped_at: String` - Configuration for the read tool. + RFC 3339 timestamp when work execution stopped - - `type: :read` +#### Example - - `enabled: bool` +```ruby +require "anthropic" - - `name: :read` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +beta_self_hosted_work = anthropic.beta.environments.work.poll("env_011CZkZ9X2dpNyB7HsEFoRfW") - Permission policy for tool execution. +puts(beta_self_hosted_work) +``` - - `class BetaManagedAgentsAlwaysAllowPolicy` +##### Response (200) - Tool calls are automatically approved without user confirmation. +```json +{ + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" + }, + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" + }, + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" +} +``` - - `class BetaManagedAgentsAlwaysAskPolicy` +### Acknowledge Work - Tool calls require user confirmation before execution. +`beta.environments.work.ack(work_id, **kwargs) -> BetaSelfHostedWork` - - `class BetaManagedAgentsAutoPolicy` +**POST** `/v1/environments/{environment_id}/work/{work_id}/ack` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - - `class BetaManagedAgentsWriteToolConfig` +Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' and removing it from the queue. - Configuration for the write tool. +#### Parameters - - `type: :write` +- `environment_id: String` (path parameter) - - `enabled: bool` +- `work_id: String` (path parameter) - - `name: :write` +- `betas: Array[AnthropicBeta]` (header parameter) - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Optional header to specify the beta version(s) you want to use. - Permission policy for tool execution. + - `String = String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"message-batches-2024-09-24"` - Tool calls are automatically approved without user confirmation. + - `:"prompt-caching-2024-07-31"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"computer-use-2024-10-22"` - Tool calls require user confirmation before execution. + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsAutoPolicy` + - `:"pdfs-2024-09-25"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"token-counting-2024-11-01"` - - `class BetaManagedAgentsGlobToolConfig` + - `:"token-efficient-tools-2025-02-19"` - Configuration for the glob tool. + - `:"output-128k-2025-02-19"` - - `type: :glob` + - `:"files-api-2025-04-14"` - - `enabled: bool` + - `:"mcp-client-2025-04-04"` - - `name: :glob` + - `:"mcp-client-2025-11-20"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"dev-full-thinking-2025-05-14"` - Permission policy for tool execution. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"code-execution-2025-05-22"` - Tool calls are automatically approved without user confirmation. + - `:"extended-cache-ttl-2025-04-11"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"context-1m-2025-08-07"` - Tool calls require user confirmation before execution. + - `:"context-management-2025-06-27"` - - `class BetaManagedAgentsAutoPolicy` + - `:"model-context-window-exceeded-2025-08-26"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"skills-2025-10-02"` - - `class BetaManagedAgentsGrepToolConfig` + - `:"fast-mode-2026-02-01"` - Configuration for the grep tool. + - `:"output-300k-2026-03-24"` - - `type: :grep` + - `:"user-profiles-2026-03-24"` - - `enabled: bool` + - `:"user-profiles-2026-08-18"` - - `name: :grep` + - `:"user-profiles-2026-09-04"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"advisor-tool-2026-03-01"` - Permission policy for tool execution. + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"cache-diagnosis-2026-04-07"` - Tool calls are automatically approved without user confirmation. + - `:"dreaming-2026-04-21"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"thinking-token-count-2026-05-13"` - Tool calls require user confirmation before execution. + - `:"server-side-fallback-2026-06-01"` - - `class BetaManagedAgentsAutoPolicy` + - `:"server-side-fallback-2026-07-01"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsWebFetchToolConfig` + - `:"fallback-credit-2026-07-01"` - Configuration for the web_fetch tool. + - `:"agent-memory-2026-07-22"` - - `type: :web_fetch` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `enabled: bool` + - `:"compact-2026-01-12"` - - `name: :web_fetch` + - `:"computer-use-2025-11-24"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"mcp-tunnels-2026-06-22"` - Permission policy for tool execution. + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"task-budgets-2026-03-13"` - Tool calls are automatically approved without user confirmation. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"ce-user-management-2026-07-13"` - Tool calls require user confirmation before execution. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaManagedAgentsAutoPolicy` + - `:"thinking-binding-controls-2026-08-01"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `:"compact-2026-09-04"` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `:"inline-tools-2026-09-15"` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `:"mcp-client-2026-09-15"` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `:"ce-plugins-2026-09-01"` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `:"spend-limit-reads-2026-09-26"` - Every URL from this source may be fetched. This is the default. + - `:"telemetry-destinations-2026-08-11"` - - `type: :all` + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsWebFetchURLSourceNone` +#### Returns - This source contributes no URLs that may be fetched. +- `class BetaSelfHostedWork` - - `type: :none` + Work resource representing a unit of work in a self-hosted environment. - - `class BetaManagedAgentsWebFetchURLSourceOnly` + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - Only the named tools' results contribute URLs that may be fetched. + - `type: :work` - - `type: :only` + The type of object (always 'work') - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `id: String` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + Work identifier (e.g., 'work_...') - - `type: :tool_reference` + - `acknowledged_at: String` - Must be "tool_reference". + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - `name: String` + - `created_at: String` - Name of the tool. Compared exactly, so upper and lower case letters are different. + RFC 3339 timestamp when work was created - minLength: 1, maxLength: 128 + - `data: BetaSessionWorkData` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + The actual work to be performed - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `type: :session` - - `type: :except` + Type of work data - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `id: String` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + Session identifier (e.g., 'session_...') - - `type: :tool_reference` + - `environment_id: String` - Must be "tool_reference". + Environment identifier this work belongs to (e.g., `env_...`) - - `name: String` + - `latest_heartbeat_at: String` - Name of the tool. Compared exactly, so upper and lower case letters are different. + RFC 3339 timestamp of the most recent heartbeat - minLength: 1, maxLength: 128 + - `metadata: Hash[Symbol, String]` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + User-provided metadata key-value pairs associated with this work item - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `secret: String` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `started_at: String` - - `class BetaManagedAgentsWebFetchURLSourceAll` + RFC 3339 timestamp when work execution started - Every URL from this source may be fetched. This is the default. + - `state: :queued | :starting | :active | 2 more` - - `class BetaManagedAgentsWebFetchURLSourceNone` + Current state of the work item - This source contributes no URLs that may be fetched. + - `:queued` - - `allowed_domains: Array[String]` + - `:starting` - - `blocked_domains: Array[String]` + - `:active` - - `max_content_tokens: Integer` + - `:stopping` - format: int32 + - `:stopped` - - `class BetaManagedAgentsWebSearchToolConfig` + - `stop_requested_at: String` - Configuration for the web_search tool. + RFC 3339 timestamp when stop was requested - - `type: :web_search` + - `stopped_at: String` - - `enabled: bool` + RFC 3339 timestamp when work execution stopped - - `name: :web_search` +#### Example - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +```ruby +require "anthropic" - Permission policy for tool execution. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `class BetaManagedAgentsAlwaysAllowPolicy` +beta_self_hosted_work = anthropic.beta.environments.work.ack("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") - Tool calls are automatically approved without user confirmation. +puts(beta_self_hosted_work) +``` - - `class BetaManagedAgentsAlwaysAskPolicy` +##### Response (200) - Tool calls require user confirmation before execution. +```json +{ + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" + }, + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" + }, + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" +} +``` - - `class BetaManagedAgentsAutoPolicy` +### Record Heartbeat - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. +`beta.environments.work.heartbeat(work_id, **kwargs) -> BetaSelfHostedWorkHeartbeatResponse` - - `allowed_domains: Array[String]` +**POST** `/v1/environments/{environment_id}/work/{work_id}/heartbeat` - - `blocked_domains: Array[String]` +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - - `user_location: BetaManagedAgentsUserLocation` +Record a heartbeat for a work item to maintain the lease. - Approximate user location for search result localization. +#### Parameters - - `type: :approximate` +- `environment_id: String` (path parameter) - Location precision. Only "approximate" is supported. +- `work_id: String` (path parameter) - - `city: String` +- `desired_ttl_seconds: Integer` (query parameter) - City name. + Desired TTL in seconds - minLength: 1, maxLength: 255 +- `expected_last_heartbeat: String` (query parameter) - - `country: String` + Expected last_heartbeat for conditional update (optimistic concurrency). Use literal 'NO_HEARTBEAT' to claim an unclaimed lease (first heartbeat). For subsequent heartbeats, echo the server's previous last_heartbeat value exactly. Returns 412 Precondition Failed if the actual value doesn't match. - Two-letter ISO 3166-1 country code, uppercase. +- `betas: Array[AnthropicBeta]` (header parameter) - - `region: String` + Optional header to specify the beta version(s) you want to use. - Region or state name. + - `String = String` - minLength: 1, maxLength: 255 + - `:"message-batches-2024-09-24"` - - `timezone: String` + - `:"prompt-caching-2024-07-31"` - IANA timezone identifier, e.g. "America/Los_Angeles". + - `:"computer-use-2024-10-22"` - minLength: 1, maxLength: 255 + - `:"computer-use-2025-01-24"` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `:"pdfs-2024-09-25"` - Resolved default configuration for agent tools. + - `:"token-counting-2024-11-01"` - - `enabled: bool` + - `:"token-efficient-tools-2025-02-19"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"output-128k-2025-02-19"` - Permission policy for tool execution. + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"mcp-client-2025-04-04"` - Tool calls are automatically approved without user confirmation. + - `:"mcp-client-2025-11-20"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"dev-full-thinking-2025-05-14"` - Tool calls require user confirmation before execution. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsAutoPolicy` + - `:"code-execution-2025-05-22"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"extended-cache-ttl-2025-04-11"` - - `class BetaManagedAgentsMCPToolset` + - `:"context-1m-2025-08-07"` - - `type: :mcp_toolset` + - `:"context-management-2025-06-27"` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `:"model-context-window-exceeded-2025-08-26"` - - `enabled: bool` + - `:"skills-2025-10-02"` - - `name: String` + - `:"fast-mode-2026-02-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"output-300k-2026-03-24"` - Permission policy for tool execution. + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"user-profiles-2026-08-18"` - Tool calls are automatically approved without user confirmation. + - `:"user-profiles-2026-09-04"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"advisor-tool-2026-03-01"` - Tool calls require user confirmation before execution. + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsAutoPolicy` + - `:"cache-diagnosis-2026-04-07"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"dreaming-2026-04-21"` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `:"thinking-token-count-2026-05-13"` - Resolved default configuration for all tools from an MCP server. + - `:"server-side-fallback-2026-06-01"` - - `enabled: bool` + - `:"server-side-fallback-2026-07-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"fallback-credit-2026-06-01"` - Permission policy for tool execution. + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"agent-memory-2026-07-22"` - Tool calls are automatically approved without user confirmation. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"compact-2026-01-12"` - Tool calls require user confirmation before execution. + - `:"computer-use-2025-11-24"` - - `class BetaManagedAgentsAutoPolicy` + - `:"mcp-tunnels-2026-06-22"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"structured-outputs-2025-11-13"` - - `mcp_server_name: String` + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsCustomTool` + - `:"thinking-display-updates-2026-08-18"` - A custom tool as returned in API responses. + - `:"ce-user-management-2026-07-13"` - - `type: :custom` + - `:"mid-conversation-output-config-2026-07-01"` - - `description: String` + - `:"thinking-binding-controls-2026-08-01"` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `:"mid-conversation-system-clear-at-2026-08-21"` - JSON Schema for custom tool input parameters. + - `:"compact-2026-09-04"` - - `type: :object` + - `:"inline-tools-2026-09-15"` - - `properties: Hash[Symbol, untyped]` + - `:"mcp-client-2026-09-15"` - - `required: Array[String]` + - `:"ce-plugins-2026-09-01"` - - `name: String` + - `:"spend-limit-reads-2026-09-26"` - - `version: Integer` + - `:"telemetry-destinations-2026-08-11"` - format: int32 + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsAdvisor` +#### Returns - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. +- `class BetaSelfHostedWorkHeartbeatResponse` - - `type: :advisor` + Response after recording a heartbeat for a work item. - - `model: String` + - `type: :work_heartbeat` - The advisor model id. + The type of response - - `class BetaManagedAgentsSessionMultiagent20261001` + - `last_heartbeat: String` - Resolved multiagent configuration with three members, as copied to the `session` at creation. + RFC 3339 timestamp of the actual heartbeat from DB - - `type: :multiagent_20261001` + - `lease_extended: bool` - - `advisor: BetaManagedAgentsMultiagentAdvisor` + Whether the heartbeat succeeded in extending the lease - Whether the session's primary thread can consult an advisor model. + - `state: :queued | :starting | :active | 2 more` - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + Current state of the work item (active/stopping/stopped) - The session's primary thread can consult `model` mid-turn. + - `:queued` - - `type: :enabled` + - `:starting` - - `model: String` + - `:active` - The advisor model id. + - `:stopping` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + - `:stopped` - The agent has no advisor. + - `ttl_seconds: Integer` - - `type: :disabled` + Effective TTL applied to the lease - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` +#### Example - Whether the agent can spawn session threads. +```ruby +require "anthropic" - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The agent can spawn session threads. +beta_self_hosted_work_heartbeat_response = anthropic.beta.environments.work.heartbeat("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") - - `type: :enabled` +puts(beta_self_hosted_work_heartbeat_response) +``` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` +##### Response (200) - Whether the agent can define inline agents, which are not saved, when it spawns session threads. +```json +{ + "last_heartbeat": "last_heartbeat", + "lease_extended": true, + "state": "queued", + "ttl_seconds": 0, + "type": "work_heartbeat" +} +``` - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` +### Stop Work - The agent can define inline agents. +`beta.environments.work.stop(work_id, **kwargs) -> BetaSelfHostedWork` - - `type: :enabled` +**POST** `/v1/environments/{environment_id}/work/{work_id}/stop` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - The agent cannot define inline agents. +Stop a work item, initiating graceful or forced shutdown. - - `type: :disabled` +#### Parameters - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` +- `environment_id: String` (path parameter) - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. +- `work_id: String` (path parameter) - - `type: :agent` +- `force: bool` - - `id: String` + If true, immediately stop work without graceful shutdown - - `description: String` +- `betas: Array[AnthropicBeta]` (header parameter) - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Optional header to specify the beta version(s) you want to use. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `String = String` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `:"message-batches-2024-09-24"` - - `model: BetaManagedAgentsModelConfig` + - `:"prompt-caching-2024-07-31"` - Model identifier and configuration. + - `:"computer-use-2024-10-22"` - - `name: String` + - `:"computer-use-2025-01-24"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"pdfs-2024-09-25"` - - `system_: String` + - `:"token-counting-2024-11-01"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"token-efficient-tools-2025-02-19"` - - `version: Integer` + - `:"output-128k-2025-02-19"` - format: int32 + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `:"mcp-client-2025-04-04"` - The agent cannot spawn session threads. + - `:"mcp-client-2025-11-20"` - - `type: :disabled` + - `:"dev-full-thinking-2025-05-14"` - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + - `:"interleaved-thinking-2025-05-14"` - Whether the agent can start workflow runs. + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + - `:"extended-cache-ttl-2025-04-11"` - The agent can start workflow runs. + - `:"context-1m-2025-08-07"` - - `type: :enabled` + - `:"context-management-2025-06-27"` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `:"model-context-window-exceeded-2025-08-26"` - Whether a run's plan can define inline agents, which are not saved. + - `:"skills-2025-10-02"` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `:"fast-mode-2026-02-01"` - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + - `:"output-300k-2026-03-24"` - - `type: :agent` + - `:"user-profiles-2026-03-24"` - - `id: String` + - `:"user-profiles-2026-08-18"` - - `description: String` + - `:"user-profiles-2026-09-04"` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `:"advisor-tool-2026-03-01"` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `:"managed-agents-2026-04-01"` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `:"cache-diagnosis-2026-04-07"` - - `model: BetaManagedAgentsModelConfig` + - `:"dreaming-2026-04-21"` - Model identifier and configuration. + - `:"thinking-token-count-2026-05-13"` - - `name: String` + - `:"server-side-fallback-2026-06-01"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"server-side-fallback-2026-07-01"` - - `system_: String` + - `:"fallback-credit-2026-06-01"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"fallback-credit-2026-07-01"` - - `version: Integer` + - `:"agent-memory-2026-07-22"` - format: int32 + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `:"compact-2026-01-12"` - The agent cannot start workflow runs. + - `:"computer-use-2025-11-24"` - - `type: :disabled` + - `:"mcp-tunnels-2026-06-22"` - - `name: String` + - `:"structured-outputs-2025-11-13"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsAnthropicSkill` + - `:"thinking-display-updates-2026-08-18"` - A resolved Anthropic-managed skill. + - `:"ce-user-management-2026-07-13"` - - `class BetaManagedAgentsCustomSkill` + - `:"mid-conversation-output-config-2026-07-01"` - A resolved user-created custom skill. + - `:"thinking-binding-controls-2026-08-01"` - - `system_: String` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `:"compact-2026-09-04"` - - `class BetaManagedAgentsAgentToolset20260401` + - `:"inline-tools-2026-09-15"` - - `class BetaManagedAgentsMCPToolset` + - `:"mcp-client-2026-09-15"` - - `class BetaManagedAgentsCustomTool` + - `:"ce-plugins-2026-09-01"` - A custom tool as returned in API responses. + - `:"spend-limit-reads-2026-09-26"` - - `version: Integer` + - `:"telemetry-destinations-2026-08-11"` - format: int32 + - `:"webhooks-2026-10-07"` - - `archived_at: Time` +- `workspace_id: String` (header parameter) - When the session was archived. Null if not archived. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - format: date-time + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `budget: BetaManagedAgentsBudgetLimit` +#### Returns - The session's enforced spend ceiling, or null when no budget is set. +- `class BetaSelfHostedWork` - - `type: :limit` + Work resource representing a unit of work in a self-hosted environment. - - `max_list_cost: BetaMonetaryAmount` + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `type: :work` - - `amount: String` + The type of object (always 'work') - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `id: String` - - `currency: BetaCurrency` + Work identifier (e.g., 'work_...') - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `acknowledged_at: String` - - `created_at: Time` + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - A timestamp in RFC 3339 format + - `created_at: String` - format: date-time + RFC 3339 timestamp when work was created - - `environment_id: String` + - `data: BetaSessionWorkData` - - `metadata: Hash[Symbol, String]` + The actual work to be performed - - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` + - `type: :session` - Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. + Type of work data - - `type: :outcome_evaluation` + - `id: String` - - `completed_at: Time` + Session identifier (e.g., 'session_...') - When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. + - `environment_id: String` - format: date-time + Environment identifier this work belongs to (e.g., `env_...`) - - `description: String` + - `latest_heartbeat_at: String` - What the agent should produce. + RFC 3339 timestamp of the most recent heartbeat - - `explanation: String` + - `metadata: Hash[Symbol, String]` - Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. + User-provided metadata key-value pairs associated with this work item - - `iteration: Integer` + - `secret: String` - 0-indexed revision cycle the outcome is currently on. + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - format: int32 + - `started_at: String` - - `outcome_id: String` + RFC 3339 timestamp when work execution started - Server-generated outc_ ID for this outcome. + - `state: :queued | :starting | :active | 2 more` - - `result: String` + Current state of the work item - Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. + - `:queued` - - `resources: Array[BetaManagedAgentsSessionResource]` + - `:starting` - - `class BetaManagedAgentsGitHubRepositoryResource` + - `:active` - - `type: :github_repository` + - `:stopping` - - `id: String` + - `:stopped` - - `created_at: Time` + - `stop_requested_at: String` - A timestamp in RFC 3339 format + RFC 3339 timestamp when stop was requested - format: date-time + - `stopped_at: String` - - `mount_path: String` + RFC 3339 timestamp when work execution stopped - - `updated_at: Time` +#### Example - A timestamp in RFC 3339 format +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `url: String` +beta_self_hosted_work = anthropic.beta.environments.work.stop("work_id", environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW") - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` +puts(beta_self_hosted_work) +``` - - `class BetaManagedAgentsBranchCheckout` +##### Response (200) - - `type: :branch` +```json +{ + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" + }, + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" + }, + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" +} +``` - - `name: String` +### List Work Items - Branch name to check out. +`beta.environments.work.list(environment_id, **kwargs) -> PageCursor` - minLength: 1, maxLength: 255 +**GET** `/v1/environments/{environment_id}/work` - - `class BetaManagedAgentsCommitCheckout` +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. - - `type: :commit` +List work items in an environment. - - `sha: String` +#### Parameters - Full commit SHA to check out. +- `environment_id: String` (path parameter) - minLength: 7, maxLength: 64 +- `limit: Integer` (query parameter) - - `class BetaManagedAgentsFileResource` + Maximum number of work items to return - - `type: :file` + minimum: 1, maximum: 1000 - - `id: String` +- `page: String` (query parameter) - - `created_at: Time` + Opaque cursor from previous response for pagination - A timestamp in RFC 3339 format +- `betas: Array[AnthropicBeta]` (header parameter) - format: date-time + Optional header to specify the beta version(s) you want to use. - - `file_id: String` + - `String = String` - - `mount_path: String` + - `:"message-batches-2024-09-24"` - - `updated_at: Time` + - `:"prompt-caching-2024-07-31"` - A timestamp in RFC 3339 format + - `:"computer-use-2024-10-22"` - format: date-time + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsMemoryStoreResource` + - `:"pdfs-2024-09-25"` - A memory store attached to an agent session. + - `:"token-counting-2024-11-01"` - - `type: :memory_store` + - `:"token-efficient-tools-2025-02-19"` - - `memory_store_id: String` + - `:"output-128k-2025-02-19"` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `:"files-api-2025-04-14"` - - `access: :read_write | :read_only` + - `:"mcp-client-2025-04-04"` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `:"mcp-client-2025-11-20"` - - `:read_write` + - `:"dev-full-thinking-2025-05-14"` - - `:read_only` + - `:"interleaved-thinking-2025-05-14"` - - `description: String` + - `:"code-execution-2025-05-22"` - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. + - `:"extended-cache-ttl-2025-04-11"` - - `instructions: String` + - `:"context-1m-2025-08-07"` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `:"context-management-2025-06-27"` - maxLength: 4096 + - `:"model-context-window-exceeded-2025-08-26"` - - `mount_path: String` + - `:"skills-2025-10-02"` - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. + - `:"fast-mode-2026-02-01"` - - `name: String` + - `:"output-300k-2026-03-24"` - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. + - `:"user-profiles-2026-03-24"` - - `stats: BetaManagedAgentsSessionStats` + - `:"user-profiles-2026-08-18"` - Timing statistics for the session. + - `:"user-profiles-2026-09-04"` - - `active_seconds: Float` + - `:"advisor-tool-2026-03-01"` - Cumulative time in seconds the session spent in `running` status. Excludes idle time. + - `:"managed-agents-2026-04-01"` - format: double + - `:"cache-diagnosis-2026-04-07"` - - `duration_seconds: Float` + - `:"dreaming-2026-04-21"` - Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. + - `:"thinking-token-count-2026-05-13"` - format: double + - `:"server-side-fallback-2026-06-01"` - - `status: :rescheduling | :running | :idle | :terminated` + - `:"server-side-fallback-2026-07-01"` - - `:rescheduling` + - `:"fallback-credit-2026-06-01"` - Transient error occurred, retrying automatically. + - `:"fallback-credit-2026-07-01"` - - `:running` + - `:"agent-memory-2026-07-22"` - Agent is actively executing. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:idle` + - `:"compact-2026-01-12"` - Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. + - `:"computer-use-2025-11-24"` - - `:terminated` + - `:"mcp-tunnels-2026-06-22"` - Session has ended, either due to an error or completion. + - `:"structured-outputs-2025-11-13"` - - `title: String` + - `:"task-budgets-2026-03-13"` - - `updated_at: Time` + - `:"thinking-display-updates-2026-08-18"` - A timestamp in RFC 3339 format + - `:"ce-user-management-2026-07-13"` - format: date-time + - `:"mid-conversation-output-config-2026-07-01"` - - `usage: BetaManagedAgentsSessionUsage` + - `:"thinking-binding-controls-2026-08-01"` - Cumulative token usage for the session. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `active_seconds: Float` + - `:"compact-2026-09-04"` - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. + - `:"inline-tools-2026-09-15"` - format: double + - `:"mcp-client-2026-09-15"` - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `:"ce-plugins-2026-09-01"` - Tokens used to create prompt cache entries, broken down by cache TTL. + - `:"spend-limit-reads-2026-09-26"` - - `ephemeral_1h_input_tokens: Integer` + - `:"telemetry-destinations-2026-08-11"` - Tokens used to create 1-hour ephemeral cache entries. + - `:"webhooks-2026-10-07"` - format: int32 +#### Returns - - `ephemeral_5m_input_tokens: Integer` +- `class BetaSelfHostedWork` - Tokens used to create 5-minute ephemeral cache entries. + Work resource representing a unit of work in a self-hosted environment. - format: int32 + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - - `cache_read_input_tokens: Integer` + - `type: :work` - Total tokens read from prompt cache. + The type of object (always 'work') - format: int32 + - `id: String` - - `input_tokens: Integer` + Work identifier (e.g., 'work_...') - Total input tokens consumed across all turns. + - `acknowledged_at: String` - format: int32 + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - `list_cost: BetaMonetaryAmount` + - `created_at: String` - Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. + RFC 3339 timestamp when work was created - - `output_tokens: Integer` + - `data: BetaSessionWorkData` - Total output tokens generated across all turns. + The actual work to be performed - format: int32 + - `type: :session` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Type of work data - Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. + - `id: String` - - `web_fetch_requests: Integer` + Session identifier (e.g., 'session_...') - Number of server-executed web fetch requests. + - `environment_id: String` - format: int32 + Environment identifier this work belongs to (e.g., `env_...`) - - `web_search_requests: Integer` + - `latest_heartbeat_at: String` - Number of server-executed web search requests. + RFC 3339 timestamp of the most recent heartbeat - format: int32 + - `metadata: Hash[Symbol, String]` - - `vault_ids: Array[String]` + User-provided metadata key-value pairs associated with this work item - Vault IDs attached to the session at creation. Empty when no vaults were supplied. + - `secret: String` - - `deployment_id: String` + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - Deployment ID when the session was created from a deployment reference. Null otherwise. + - `started_at: String` + + RFC 3339 timestamp when work execution started + + - `state: :queued | :starting | :active | 2 more` + + Current state of the work item + + - `:queued` + + - `:starting` + + - `:active` + + - `:stopping` + + - `:stopped` + + - `stop_requested_at: String` + + RFC 3339 timestamp when stop was requested + + - `stopped_at: String` + + RFC 3339 timestamp when work execution stopped #### Example @@ -38908,7 +38904,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.sessions.list +page = anthropic.beta.environments.work.list("env_011CZkZ9X2dpNyB7HsEFoRfW") puts(page) ``` @@ -38919,221 +38915,53 @@ puts(page) { "data": [ { - "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - } - ], - "type": "coordinator" - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - }, - "created_at": "2026-03-15T10:00:00Z", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "metadata": {}, - "outcome_evaluations": [ - { - "completed_at": "2026-03-15T10:02:31Z", - "description": "Produce a 2-page summary as summary.md", - "explanation": "All five sections present with inline citations.", - "iteration": 0, - "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", - "result": "satisfied", - "type": "outcome_evaluation" - } - ], - "resources": [ - { - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } - } - ], - "stats": { - "active_seconds": 0, - "duration_seconds": 0 + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" }, - "status": "idle", - "title": "Order #1234 inquiry", - "type": "session", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" }, - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "deployment_id": "deployment_id" + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" } ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=", - "prev_page": "page_MjAyNS0wNS0xM1QwMDowMDowMFo=" + "next_page": "next_page" } ``` -### Get Session +### Update Work Item -`beta.sessions.retrieve(session_id, **kwargs) -> BetaManagedAgentsSession` +`beta.environments.work.update(work_id, **kwargs) -> BetaSelfHostedWork` -**GET** `/v1/sessions/{session_id}` +**POST** `/v1/environments/{environment_id}/work/{work_id}` -Get Session +Note: these endpoints are called automatically by the pre-built environment worker provided in the SDKs and CLI, for orchestrating sessions with self-hosted sandbox environments. They are included here as a reference; you do not need to invoke them directly. + +Update work item metadata with merge semantics. #### Parameters -- `session_id: String` (path parameter) +- `environment_id: String` (path parameter) + +- `work_id: String` (path parameter) + +- `metadata: Hash[Symbol, String]` + + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve existing metadata. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -39239,6 +39067,8 @@ Get Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -39247,1949 +39077,1442 @@ Get Session #### Returns -- `class BetaManagedAgentsSession` +- `class BetaSelfHostedWork` - A Managed Agents `session`. + Work resource representing a unit of work in a self-hosted environment. - - `type: :session` + Work items are queued when sessions are created or when long-dormant sessions + receive new messages. The environment worker polls for work to execute in a + self-hosted sandbox. - - `id: String` + - `type: :work` - - `agent: BetaManagedAgentsSessionAgent` + The type of object (always 'work') - Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. + - `id: String` - - `type: :agent` + Work identifier (e.g., 'work_...') - - `id: String` + - `acknowledged_at: String` - - `description: String` + RFC 3339 timestamp when the work item was acknowledged and assigned to a self-hosted sandbox - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `created_at: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + RFC 3339 timestamp when work was created - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `data: BetaSessionWorkData` - An AWS IAM role principal as returned in API responses. + The actual work to be performed - - `type: :aws_role` + - `type: :session` - - `role_arn: String` + Type of work data - The IAM role's ARN. + - `id: String` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + Session identifier (e.g., 'session_...') - The Anthropic-managed service account as returned in API responses. + - `environment_id: String` - - `type: :service_account` + Environment identifier this work belongs to (e.g., `env_...`) - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `latest_heartbeat_at: String` - - `type: :url` + RFC 3339 timestamp of the most recent heartbeat - - `name: String` + - `metadata: Hash[Symbol, String]` - - `url: String` + User-provided metadata key-value pairs associated with this work item - - `model: BetaManagedAgentsModelConfig` + - `secret: String` - Model identifier and configuration. + Credential payload used by the environment worker to execute this work item. May be populated when polling for work; null on all other retrieval paths. - - `id: BetaManagedAgentsModel` + - `started_at: String` - The model that will power your agent. + RFC 3339 timestamp when work execution started - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `state: :queued | :starting | :active | 2 more` - - `:"claude-haiku-5-5"` + Current state of the work item - Fastest model for high-volume, real-time tasks + - `:queued` - - `:"claude-sonnet-5-5"` + - `:starting` - Efficient model for coding and agents + - `:active` - - `:"claude-opus-5-5"` + - `:stopping` - Powerful intelligence for coding, knowledge work, and long-running agents + - `:stopped` - - `:"claude-fable-5-1"` + - `stop_requested_at: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + RFC 3339 timestamp when stop was requested - - `:"claude-sonnet-5"` + - `stopped_at: String` - Efficient model for coding and agents + RFC 3339 timestamp when work execution stopped - - `:"claude-fable-5"` +#### Example - Next generation of intelligence for the hardest knowledge work and coding problems +```ruby +require "anthropic" - - `:"claude-opus-5"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Powerful intelligence for long-running agents and coding +beta_self_hosted_work = anthropic.beta.environments.work.update( + "work_id", + environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW", + metadata: {foo: "string"} +) - - `:"claude-opus-4-8"` +puts(beta_self_hosted_work) +``` - Powerful intelligence for long-running agents and coding +##### Response (200) - - `:"claude-opus-4-7"` +```json +{ + "id": "id", + "acknowledged_at": "acknowledged_at", + "created_at": "created_at", + "data": { + "id": "id", + "type": "session" + }, + "environment_id": "environment_id", + "latest_heartbeat_at": "latest_heartbeat_at", + "metadata": { + "foo": "string" + }, + "secret": "secret", + "started_at": "started_at", + "state": "queued", + "stop_requested_at": "stop_requested_at", + "stopped_at": "stopped_at", + "type": "work" +} +``` - Powerful intelligence for long-running agents and coding +### Get Queue Statistics - - `:"claude-opus-4-6"` +`beta.environments.work.stats(environment_id, **kwargs) -> BetaSelfHostedWorkQueueStats` - Powerful intelligence for long-running agents and coding +**GET** `/v1/environments/{environment_id}/work/stats` - - `:"claude-sonnet-4-6"` +Get statistics about the work queue for an environment. - Best combination of speed and intelligence +#### Parameters - - `:"claude-haiku-4-5"` +- `environment_id: String` (path parameter) - - `:"claude-haiku-4-5-20251001"` +- `betas: Array[AnthropicBeta]` (header parameter) - - `:"claude-opus-4-5"` + Optional header to specify the beta version(s) you want to use. - Powerful intelligence for long-running agents and coding + - `String = String` - - `:"claude-opus-4-5-20251101"` + - `:"message-batches-2024-09-24"` - Powerful intelligence for long-running agents and coding + - `:"prompt-caching-2024-07-31"` - - `:"claude-sonnet-4-5"` + - `:"computer-use-2024-10-22"` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:"computer-use-2025-01-24"` - High-performance model for agents and coding + - `:"pdfs-2024-09-25"` - - `:"claude-sonnet-4-5-20250929"` + - `:"token-counting-2024-11-01"` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:"token-efficient-tools-2025-02-19"` - High-performance model for agents and coding + - `:"output-128k-2025-02-19"` - - `String = String` + - `:"files-api-2025-04-14"` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `:"mcp-client-2025-04-04"` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `:"mcp-client-2025-11-20"` - - `class BetaManagedAgentsEffortLow` + - `:"dev-full-thinking-2025-05-14"` - Low effort. Favors latency over reasoning depth. + - `:"interleaved-thinking-2025-05-14"` - - `type: :low` + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsEffortMedium` + - `:"extended-cache-ttl-2025-04-11"` - Medium effort. Balances latency and reasoning depth. + - `:"context-1m-2025-08-07"` - - `type: :medium` + - `:"context-management-2025-06-27"` - - `class BetaManagedAgentsEffortHigh` + - `:"model-context-window-exceeded-2025-08-26"` - High effort. Favors reasoning depth. + - `:"skills-2025-10-02"` - - `type: :high` + - `:"fast-mode-2026-02-01"` - - `class BetaManagedAgentsEffortXhigh` + - `:"output-300k-2026-03-24"` - Extra-high effort. Not all models accept this level. + - `:"user-profiles-2026-03-24"` - - `type: :xhigh` + - `:"user-profiles-2026-08-18"` - - `class BetaManagedAgentsEffortMax` + - `:"user-profiles-2026-09-04"` - Maximum effort. Favors reasoning depth over latency. + - `:"advisor-tool-2026-03-01"` - - `type: :max` + - `:"managed-agents-2026-04-01"` - - `inference_geo: String` + - `:"cache-diagnosis-2026-04-07"` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `:"dreaming-2026-04-21"` - - `speed: :standard | :fast` + - `:"thinking-token-count-2026-05-13"` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `:"server-side-fallback-2026-06-01"` - - `:standard` + - `:"server-side-fallback-2026-07-01"` - - `:fast` + - `:"fallback-credit-2026-06-01"` - - `multiagent: BetaManagedAgentsSessionMultiagent` + - `:"fallback-credit-2026-07-01"` - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + - `:"agent-memory-2026-07-22"` - - `class BetaManagedAgentsSessionMultiagentCoordinator` + - `:"mid-conversation-tool-changes-2026-07-01"` - Resolved coordinator topology with full agent definitions for each roster member. + - `:"compact-2026-01-12"` - - `type: :coordinator` + - `:"computer-use-2025-11-24"` - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + - `:"mcp-tunnels-2026-06-22"` - Full `agent` definitions the coordinator may spawn as session threads. + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsSessionThreadAgent` + - `:"task-budgets-2026-03-13"` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `:"thinking-display-updates-2026-08-18"` - - `type: :agent` + - `:"ce-user-management-2026-07-13"` - - `id: String` + - `:"mid-conversation-output-config-2026-07-01"` - - `description: String` + - `:"thinking-binding-controls-2026-08-01"` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `:"compact-2026-09-04"` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `:"inline-tools-2026-09-15"` - - `type: :url` + - `:"mcp-client-2026-09-15"` - - `name: String` + - `:"ce-plugins-2026-09-01"` - - `url: String` + - `:"spend-limit-reads-2026-09-26"` - - `model: BetaManagedAgentsModelConfig` + - `:"telemetry-destinations-2026-08-11"` - Model identifier and configuration. + - `:"webhooks-2026-10-07"` - - `name: String` +- `workspace_id: String` (header parameter) - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaManagedAgentsAnthropicSkill` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - A resolved Anthropic-managed skill. +#### Returns - - `type: :anthropic` +- `class BetaSelfHostedWorkQueueStats` - - `skill_id: String` + Statistics about the work queue for an environment. - - `version: String` + Uses Redis Stream consumer group metrics for O(1) queries. - - `class BetaManagedAgentsCustomSkill` + - `type: :work_queue_stats` - A resolved user-created custom skill. + The type of object - - `type: :custom` + - `depth: Integer` - - `skill_id: String` + Number of work items waiting to be picked up (lag from consumer group) - - `version: String` + - `oldest_queued_at: String` - - `system_: String` + RFC 3339 timestamp of oldest item in the work stream (includes both queued and pending items), null if stream empty - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `pending: Integer` - - `class BetaManagedAgentsAgentToolset20260401` + Number of work items being processed (polled but not acknowledged) - - `type: :agent_toolset_20260401` + - `workers_polling: Integer` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + Number of workers that have polled for work in the last 30 seconds. Requires worker_id to be sent with poll requests. - - `class BetaManagedAgentsBashToolConfig` +#### Example - Configuration for the bash tool. +```ruby +require "anthropic" - - `type: :bash` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `enabled: bool` +beta_self_hosted_work_queue_stats = anthropic.beta.environments.work.stats("env_011CZkZ9X2dpNyB7HsEFoRfW") - - `name: :bash` +puts(beta_self_hosted_work_queue_stats) +``` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` +##### Response (200) - Permission policy for tool execution. +```json +{ + "depth": 0, + "oldest_queued_at": "oldest_queued_at", + "pending": 0, + "type": "work_queue_stats", + "workers_polling": 0 +} +``` - - `class BetaManagedAgentsAlwaysAllowPolicy` +## Beta › Sessions - Tool calls are automatically approved without user confirmation. +### Create Session - - `type: :always_allow` +`beta.sessions.create(**kwargs) -> BetaManagedAgentsSession` - - `class BetaManagedAgentsAlwaysAskPolicy` +**POST** `/v1/sessions` - Tool calls require user confirmation before execution. +Create Session - - `type: :always_ask` +#### Parameters - - `class BetaManagedAgentsAutoPolicy` +- `agent: String | BetaManagedAgentsAgentParams | BetaManagedAgentsAgentWithOverridesParams` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Agent identifier. Accepts the `agent` ID string, which pins the latest version for the session, or an `agent` object with both id and version specified. - - `type: :auto` + - `String = String` - - `class BetaManagedAgentsEditToolConfig` + - `class BetaManagedAgentsAgentParams` - Configuration for the edit tool. + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - - `type: :edit` + - `type: :agent` - - `enabled: bool` + - `id: String` - - `name: :edit` + The `agent` ID. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + minLength: 1, maxLength: 128 - Permission policy for tool execution. + - `version: Integer` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. - Tool calls are automatically approved without user confirmation. + format: int32 - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAgentWithOverridesParams` - Tool calls require user confirmation before execution. + Reference to an `agent` plus optional configuration overrides. Each provided field replaces the agent's value for the caller's use; the agent resource is unchanged. - - `class BetaManagedAgentsAutoPolicy` + - `type: :agent_with_overrides` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `id: String` - - `class BetaManagedAgentsReadToolConfig` + The `agent` ID. - Configuration for the read tool. + minLength: 1, maxLength: 128 - - `type: :read` + - `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` - - `enabled: bool` + Replacement MCP server list. Full replacement: the provided array becomes the MCP servers. Send an empty array to clear; omit to preserve the agent's servers. - - `name: :read` + - `type: :url` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `name: String` - Permission policy for tool execution. + Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. - - `class BetaManagedAgentsAlwaysAllowPolicy` + minLength: 1, maxLength: 255 - Tool calls are automatically approved without user confirmation. + - `url: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Endpoint URL for the MCP server. - Tool calls require user confirmation before execution. + maxLength: 2048 - - `class BetaManagedAgentsAutoPolicy` + - `model: BetaManagedAgentsModel | BetaManagedAgentsModelConfigParams` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Replacement model. Accepts the model string, e.g. `claude-opus-5-5`, or a `model_config` object. Omit to use the agent's model. - - `class BetaManagedAgentsWriteToolConfig` + - `type BetaManagedAgentsModel = :"claude-haiku-5-5" | :"claude-sonnet-5-5" | :"claude-opus-5-5" | 14 more | String` - Configuration for the write tool. + The model that will power your agent. - - `type: :write` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `enabled: bool` + - `:"claude-haiku-5-5"` - - `name: :write` + Fastest model for high-volume, real-time tasks - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-5-5"` - Permission policy for tool execution. + Efficient model for coding and agents - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"claude-opus-5-5"` - Tool calls are automatically approved without user confirmation. + Powerful intelligence for coding, knowledge work, and long-running agents - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"claude-fable-5-1"` - Tool calls require user confirmation before execution. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `class BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-5"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Efficient model for coding and agents - - `class BetaManagedAgentsGlobToolConfig` + - `:"claude-fable-5"` - Configuration for the glob tool. + Next generation of intelligence for the hardest knowledge work and coding problems - - `type: :glob` + - `:"claude-opus-5"` - - `enabled: bool` + Powerful intelligence for long-running agents and coding - - `name: :glob` + - `:"claude-opus-4-8"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Powerful intelligence for long-running agents and coding - Permission policy for tool execution. + - `:"claude-opus-4-7"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Powerful intelligence for long-running agents and coding - Tool calls are automatically approved without user confirmation. + - `:"claude-opus-4-6"` - - `class BetaManagedAgentsAlwaysAskPolicy` + Powerful intelligence for long-running agents and coding - Tool calls require user confirmation before execution. + - `:"claude-sonnet-4-6"` - - `class BetaManagedAgentsAutoPolicy` + Best combination of speed and intelligence - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"claude-haiku-4-5"` - - `class BetaManagedAgentsGrepToolConfig` + - `:"claude-haiku-4-5-20251001"` - Configuration for the grep tool. + - `:"claude-opus-4-5"` - - `type: :grep` + Powerful intelligence for long-running agents and coding - - `enabled: bool` + - `:"claude-opus-4-5-20251101"` - - `name: :grep` + Powerful intelligence for long-running agents and coding - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-4-5"` - Permission policy for tool execution. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `class BetaManagedAgentsAlwaysAllowPolicy` + High-performance model for agents and coding - Tool calls are automatically approved without user confirmation. + - `:"claude-sonnet-4-5-20250929"` - - `class BetaManagedAgentsAlwaysAskPolicy` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Tool calls require user confirmation before execution. + High-performance model for agents and coding - - `class BetaManagedAgentsAutoPolicy` + - `String = String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsModelConfigParams` - - `class BetaManagedAgentsWebFetchToolConfig` + An object that defines additional configuration control over model use - Configuration for the web_fetch tool. + - `id: BetaManagedAgentsModel` - - `type: :web_fetch` + The model that will power your agent. - - `enabled: bool` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `name: :web_fetch` + - `effort: :low | :medium | :high | 2 more | BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | 3 more` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + How hard Claude works on each inference call. Accepts a bare level string (`"high"`) or `{"type": "high"}`. On create, omitting it resolves the per-model default; on update, omitting it leaves the stored value unchanged. - Permission policy for tool execution. + - `BetaManagedAgentsEffortLevel = :low | :medium | :high | 2 more` - - `class BetaManagedAgentsAlwaysAllowPolicy` + How hard Claude works on each turn. Higher levels favor reasoning depth over latency. Not all models accept every level; invalid combinations are rejected at create time. - Tool calls are automatically approved without user confirmation. + - `:low` - - `class BetaManagedAgentsAlwaysAskPolicy` + Low effort. Favors latency over reasoning depth. - Tool calls require user confirmation before execution. + - `:medium` - - `class BetaManagedAgentsAutoPolicy` + Medium effort. Balances latency and reasoning depth. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:high` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + High effort. Favors reasoning depth. - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `:xhigh` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + Extra-high effort. Not all models accept this level. - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `:max` - - `class BetaManagedAgentsWebFetchURLSourceAll` + Maximum effort. Favors reasoning depth over latency. - Every URL from this source may be fetched. This is the default. + - `class BetaManagedAgentsEffortLow` - - `type: :all` + Low effort. Favors latency over reasoning depth. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `type: :low` - This source contributes no URLs that may be fetched. + - `class BetaManagedAgentsEffortMedium` - - `type: :none` + Medium effort. Balances latency and reasoning depth. - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `type: :medium` - Only the named tools' results contribute URLs that may be fetched. + - `class BetaManagedAgentsEffortHigh` - - `type: :only` + High effort. Favors reasoning depth. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `type: :high` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `class BetaManagedAgentsEffortXhigh` - - `type: :tool_reference` + Extra-high effort. Not all models accept this level. - Must be "tool_reference". + - `type: :xhigh` - - `name: String` + - `class BetaManagedAgentsEffortMax` - Name of the tool. Compared exactly, so upper and lower case letters are different. + Maximum effort. Favors reasoning depth over latency. - minLength: 1, maxLength: 128 + - `type: :max` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `inference_geo: String` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. On update, `model` is whole-object replacement — omitting inference_geo clears it. - - `type: :except` + - `speed: :standard | :fast` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Inference speed mode. Defaults to `standard`. - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `:standard` - - `type: :tool_reference` + - `:fast` - Must be "tool_reference". + - `skills: Array[BetaManagedAgentsSkillParams]` - - `name: String` + Replacement skill list. Full replacement: the provided array becomes the skills. Send an empty array to clear; omit to preserve the agent's skills. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaManagedAgentsAnthropicSkillParams` - minLength: 1, maxLength: 128 + An Anthropic-managed skill. - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `type: :anthropic` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `skill_id: String` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + Identifier of the Anthropic skill (e.g., "xlsx"). - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + minLength: 1, maxLength: 64 - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `version: String` - Every URL from this source may be fetched. This is the default. + Version to pin. Defaults to latest if omitted. - - `class BetaManagedAgentsWebFetchURLSourceNone` + minLength: 1, maxLength: 64 - This source contributes no URLs that may be fetched. + - `class BetaManagedAgentsCustomSkillParams` - - `allowed_domains: Array[String]` + A user-created custom skill. - - `blocked_domains: Array[String]` + - `type: :custom` - - `max_content_tokens: Integer` + - `skill_id: String` - format: int32 + Tagged ID of the custom skill (e.g., "skill_01XJ5..."). - - `class BetaManagedAgentsWebSearchToolConfig` + minLength: 1, maxLength: 64 - Configuration for the web_search tool. + - `version: String` - - `type: :web_search` + Version to pin. Defaults to latest if omitted. - - `enabled: bool` + minLength: 1, maxLength: 64 - - `name: :web_search` + - `system_: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Replacement system prompt. Up to 100,000 characters. Set to null to clear the agent's system prompt; omit to preserve it. - Permission policy for tool execution. + maxLength: 100000 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` - Tool calls are automatically approved without user confirmation. + Replacement tool list. Full replacement: the provided array becomes the tool configuration. Send an empty array to clear; omit to preserve the agent's tools. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAgentToolset20260401Params` - Tool calls require user confirmation before execution. + Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. - - `class BetaManagedAgentsAutoPolicy` + - `type: :agent_toolset_20260401` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` - - `allowed_domains: Array[String]` + Per-tool configuration overrides. - - `blocked_domains: Array[String]` + - `class BetaManagedAgentsBashToolConfigParams` - - `user_location: BetaManagedAgentsUserLocation` + Configuration override for the bash tool. - Approximate user location for search result localization. + - `type: :bash` - - `type: :approximate` + - `name: :bash` - Location precision. Only "approximate" is supported. + Must be "bash". - - `city: String` + - `enabled: bool` - City name. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - minLength: 1, maxLength: 255 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `country: String` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Two-letter ISO 3166-1 country code, uppercase. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `region: String` + Tool calls are automatically approved without user confirmation. - Region or state name. + - `type: :always_allow` - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsAlwaysAskPolicy` - - `timezone: String` + Tool calls require user confirmation before execution. - IANA timezone identifier, e.g. "America/Los_Angeles". + - `type: :always_ask` - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsAutoPolicy` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Resolved default configuration for agent tools. + - `type: :auto` - - `enabled: bool` + - `class BetaManagedAgentsEditToolConfigParams` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Configuration override for the edit tool. - Permission policy for tool execution. + - `type: :edit` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `name: :edit` - Tool calls are automatically approved without user confirmation. + Must be "edit". - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `class BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :mcp_toolset` + Tool calls are automatically approved without user confirmation. - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: String` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `class BetaManagedAgentsReadToolConfigParams` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Configuration override for the read tool. - Tool calls are automatically approved without user confirmation. + - `type: :read` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `name: :read` - Tool calls require user confirmation before execution. + Must be "read". - - `class BetaManagedAgentsAutoPolicy` + - `enabled: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Resolved default configuration for all tools from an MCP server. + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `enabled: bool` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Tool calls are automatically approved without user confirmation. - Permission policy for tool execution. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Tool calls require user confirmation before execution. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsAlwaysAskPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsWriteToolConfigParams` - - `class BetaManagedAgentsAutoPolicy` + Configuration override for the write tool. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :write` - - `mcp_server_name: String` + - `name: :write` - - `class BetaManagedAgentsCustomTool` + Must be "write". - A custom tool as returned in API responses. + - `enabled: bool` - - `type: :custom` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `description: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - JSON Schema for custom tool input parameters. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :object` + Tool calls are automatically approved without user confirmation. - - `properties: Hash[Symbol, untyped]` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `required: Array[String]` + Tool calls require user confirmation before execution. - - `name: String` + - `class BetaManagedAgentsAutoPolicy` - - `version: Integer` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: int32 + - `class BetaManagedAgentsGlobToolConfigParams` - - `class BetaManagedAgentsAdvisor` + Configuration override for the glob tool. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `type: :glob` - - `type: :advisor` + - `name: :glob` - - `model: String` + Must be "glob". - The advisor model id. + - `enabled: bool` - - `class BetaManagedAgentsSessionMultiagent20261001` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Resolved multiagent configuration with three members, as copied to the `session` at creation. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :multiagent_20261001` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Whether the session's primary thread can consult an advisor model. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `class BetaManagedAgentsAlwaysAskPolicy` - The session's primary thread can consult `model` mid-turn. + Tool calls require user confirmation before execution. - - `type: :enabled` + - `class BetaManagedAgentsAutoPolicy` - - `model: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The advisor model id. + - `class BetaManagedAgentsGrepToolConfigParams` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + Configuration override for the grep tool. - The agent has no advisor. + - `type: :grep` - - `type: :disabled` + - `name: :grep` - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` + Must be "grep". - Whether the agent can spawn session threads. + - `enabled: bool` - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - The agent can spawn session threads. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :enabled` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `class BetaManagedAgentsAlwaysAskPolicy` - The agent can define inline agents. + Tool calls require user confirmation before execution. - - `type: :enabled` + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The agent cannot define inline agents. + - `class BetaManagedAgentsWebFetchToolConfigParams` - - `type: :disabled` + Configuration override for the web_fetch tool. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `type: :web_fetch` - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. + - `name: :web_fetch` - - `type: :agent` + Must be "web_fetch". - - `id: String` + - `allowed_domains: Array[String]` - - `description: String` + Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `blocked_domains: Array[String]` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `enabled: bool` - - `model: BetaManagedAgentsModelConfig` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Model identifier and configuration. + - `max_content_tokens: Integer` - - `name: String` + Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + format: int32 - - `system_: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `version: Integer` + - `class BetaManagedAgentsAlwaysAllowPolicy` - format: int32 + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `class BetaManagedAgentsAlwaysAskPolicy` - The agent cannot spawn session threads. + Tool calls require user confirmation before execution. - - `type: :disabled` + - `class BetaManagedAgentsAutoPolicy` - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Whether the agent can start workflow runs. + - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + Which sources contribute URLs the tool may fetch. Omit to allow every source. - The agent can start workflow runs. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - `type: :enabled` + Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - Whether a run's plan can define inline agents, which are not saved. + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `:all` - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + - `:none` - - `type: :agent` + - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` - - `id: String` + Which tools' results contribute URLs that may be fetched. - - `description: String` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Every URL from this source may be fetched. This is the default. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `type: :all` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `model: BetaManagedAgentsModelConfig` + This source contributes no URLs that may be fetched. - Model identifier and configuration. + - `type: :none` - - `name: String` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Only the named tools' results contribute URLs that may be fetched. - - `system_: String` + - `type: :only` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `version: Integer` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - format: int32 + - `type: :tool_reference` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + Must be "tool_reference". - The agent cannot start workflow runs. + - `name: String` - - `type: :disabled` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `name: String` + minLength: 1, maxLength: 128 - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `class BetaManagedAgentsAnthropicSkill` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - A resolved Anthropic-managed skill. + - `type: :except` - - `class BetaManagedAgentsCustomSkill` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - A resolved user-created custom skill. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `system_: String` + - `type: :tool_reference` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Must be "tool_reference". - - `class BetaManagedAgentsAgentToolset20260401` + - `name: String` - - `class BetaManagedAgentsMCPToolset` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `class BetaManagedAgentsCustomTool` + minLength: 1, maxLength: 128 - A custom tool as returned in API responses. + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - `version: Integer` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". - format: int32 + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` - - `archived_at: Time` + Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". - When the session was archived. Null if not archived. + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - format: date-time + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - `budget: BetaManagedAgentsBudgetLimit` + - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` - The session's enforced spend ceiling, or null when no budget is set. + Whether URLs in the text of user messages may be fetched. - - `type: :limit` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `max_list_cost: BetaMonetaryAmount` + Every URL from this source may be fetched. This is the default. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `amount: String` + This source contributes no URLs that may be fetched. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `class BetaManagedAgentsWebSearchToolConfigParams` - - `currency: BetaCurrency` + Configuration override for the web_search tool. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `type: :web_search` - - `created_at: Time` + - `name: :web_search` - A timestamp in RFC 3339 format + Must be "web_search". - format: date-time + - `allowed_domains: Array[String]` - - `environment_id: String` + Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - `metadata: Hash[Symbol, String]` + - `blocked_domains: Array[String]` - - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` + Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. + - `enabled: bool` - - `type: :outcome_evaluation` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `completed_at: Time` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - format: date-time + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `description: String` + Tool calls are automatically approved without user confirmation. - What the agent should produce. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `explanation: String` + Tool calls require user confirmation before execution. - Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. + - `class BetaManagedAgentsAutoPolicy` - - `iteration: Integer` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - 0-indexed revision cycle the outcome is currently on. + - `user_location: BetaManagedAgentsUserLocation` - format: int32 + Approximate user location for search result localization. - - `outcome_id: String` + - `type: :approximate` - Server-generated outc_ ID for this outcome. + Location precision. Only "approximate" is supported. - - `result: String` + - `city: String` - Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. + City name. - - `resources: Array[BetaManagedAgentsSessionResource]` + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsGitHubRepositoryResource` + - `country: String` - - `type: :github_repository` + Two-letter ISO 3166-1 country code, uppercase. - - `id: String` + - `region: String` - - `created_at: Time` + Region or state name. - A timestamp in RFC 3339 format + minLength: 1, maxLength: 255 - format: date-time + - `timezone: String` - - `mount_path: String` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `updated_at: Time` + minLength: 1, maxLength: 255 - A timestamp in RFC 3339 format + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` - format: date-time + Default configuration applied to all tools in this set. - - `url: String` + - `enabled: bool` - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + Whether tools are enabled and available to Claude by default. Defaults to true if not specified. - - `class BetaManagedAgentsBranchCheckout` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :branch` + Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. - - `name: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Branch name to check out. + Tool calls are automatically approved without user confirmation. - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsCommitCheckout` + Tool calls require user confirmation before execution. - - `type: :commit` + - `class BetaManagedAgentsAutoPolicy` - - `sha: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Full commit SHA to check out. + - `class BetaManagedAgentsMCPToolsetParams` - minLength: 7, maxLength: 64 + Configuration for tools from an MCP server defined in `mcp_servers`. - - `class BetaManagedAgentsFileResource` + - `type: :mcp_toolset` - - `type: :file` + - `mcp_server_name: String` - - `id: String` + Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. - - `created_at: Time` + minLength: 1, maxLength: 255 - A timestamp in RFC 3339 format + - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` - format: date-time + Per-tool configuration overrides. - - `file_id: String` + - `name: String` - - `mount_path: String` + Name of the MCP tool to configure. 1-128 characters. - - `updated_at: Time` + minLength: 1, maxLength: 128 - A timestamp in RFC 3339 format + - `enabled: bool` - format: date-time + Whether this tool is enabled. Overrides the `default_config` setting. - - `class BetaManagedAgentsMemoryStoreResource` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A memory store attached to an agent session. + Permission policy for this tool. Overrides the `default_config` setting. - - `type: :memory_store` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `memory_store_id: String` + Tool calls are automatically approved without user confirmation. - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `access: :read_write | :read_only` + Tool calls require user confirmation before execution. - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `class BetaManagedAgentsAutoPolicy` - - `:read_write` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:read_only` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` - - `description: String` + Default configuration for all tools from this server. - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. + - `enabled: bool` - - `instructions: String` + Whether tools are enabled by default. Defaults to true if not specified. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - maxLength: 4096 + Default permission policy for tools from this server. - - `mount_path: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. + Tool calls are automatically approved without user confirmation. - - `name: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. + Tool calls require user confirmation before execution. - - `stats: BetaManagedAgentsSessionStats` + - `class BetaManagedAgentsAutoPolicy` - Timing statistics for the session. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `active_seconds: Float` + - `class BetaManagedAgentsCustomToolParams` - Cumulative time in seconds the session spent in `running` status. Excludes idle time. + A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. - format: double + - `type: :custom` - - `duration_seconds: Float` + - `description: String` - Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. + Description of what the tool does, shown to the agent to help it decide when to use the tool. - format: double + minLength: 1 - - `status: :rescheduling | :running | :idle | :terminated` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `:rescheduling` + JSON Schema defining the expected input parameters for the tool. - Transient error occurred, retrying automatically. + - `type: :object` - - `:running` + - `properties: Hash[Symbol, untyped]` - Agent is actively executing. + - `required: Array[String]` - - `:idle` + - `name: String` - Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. + Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. - - `:terminated` + minLength: 1, maxLength: 128 - Session has ended, either due to an error or completion. + - `version: Integer` - - `title: String` + The specific `agent` version to use. Omit to use the latest version. - - `updated_at: Time` + format: int32 - A timestamp in RFC 3339 format +- `environment_id: String` - format: date-time + ID of the `environment` defining the container configuration for this session. - - `usage: BetaManagedAgentsSessionUsage` + minLength: 1, maxLength: 128 - Cumulative token usage for the session. +- `budget: BetaManagedAgentsBudgetLimit` - - `active_seconds: Float` + Enforced spend ceiling for the session. Omit to create an uncapped session. Every model the session can run — the agent's model and each callable agent's model — must have a public list price, or the request is rejected with reason `model_not_budgetable`. - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. + - `type: :limit` - format: double + - `max_list_cost: BetaMonetaryAmount` - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - Tokens used to create prompt cache entries, broken down by cache TTL. + - `amount: String` - - `ephemeral_1h_input_tokens: Integer` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - Tokens used to create 1-hour ephemeral cache entries. + - `currency: BetaCurrency` - format: int32 + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `ephemeral_5m_input_tokens: Integer` +- `initial_events: Array[BetaManagedAgentsUserMessageEventParams | BetaManagedAgentsUserDefineOutcomeEventParams]` - Tokens used to create 5-minute ephemeral cache entries. + Initial events to send to the `session` at creation, processed in order. Supports `user.message` and `user.define_outcome` events. Maximum 50 events. - format: int32 + - `class BetaManagedAgentsUserMessageEventParams` - - `cache_read_input_tokens: Integer` + Parameters for sending a user message to the session. - Total tokens read from prompt cache. + - `type: :"user.message"` - format: int32 + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `input_tokens: Integer` + Array of content blocks for the user message. - Total input tokens consumed across all turns. + - `class BetaManagedAgentsTextBlock` - format: int32 + Regular text content. - - `list_cost: BetaMonetaryAmount` + - `type: :text` - Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. + - `text: String` - - `output_tokens: Integer` + The text content. - Total output tokens generated across all turns. + minLength: 1 - format: int32 + - `class BetaManagedAgentsImageBlock` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Image content specified directly as base64 data or as a reference via a URL. - Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. + - `type: :image` - - `web_fetch_requests: Integer` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - Number of server-executed web fetch requests. + The source of the image data. - format: int32 + - `class BetaManagedAgentsBase64ImageSource` - - `web_search_requests: Integer` + Base64-encoded image data. - Number of server-executed web search requests. + - `type: :base64` - format: int32 + - `data: String` - - `vault_ids: Array[String]` + Base64-encoded image data. - Vault IDs attached to the session at creation. Empty when no vaults were supplied. + minLength: 1 - - `deployment_id: String` + - `media_type: String` - Deployment ID when the session was created from a deployment reference. Null otherwise. + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). -#### Example + minLength: 1 -```ruby -require "anthropic" + - `class BetaManagedAgentsURLImageSource` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Image referenced by URL. -beta_managed_agents_session = anthropic.beta.sessions.retrieve("sesn_011CZkZAtmR3yMPDzynEDxu7") + - `type: :url` -puts(beta_managed_agents_session) -``` + - `url: String` -##### Response (200) + URL of the image to fetch. -```json -{ - "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - } - ], - "type": "coordinator" - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - }, - "created_at": "2026-03-15T10:00:00Z", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "metadata": {}, - "outcome_evaluations": [ - { - "completed_at": "2026-03-15T10:02:31Z", - "description": "Produce a 2-page summary as summary.md", - "explanation": "All five sections present with inline citations.", - "iteration": 0, - "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", - "result": "satisfied", - "type": "outcome_evaluation" - } - ], - "resources": [ - { - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } - } - ], - "stats": { - "active_seconds": 0, - "duration_seconds": 0 - }, - "status": "idle", - "title": "Order #1234 inquiry", - "type": "session", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "deployment_id": "deployment_id" -} -``` + minLength: 1 -### Update Session + - `class BetaManagedAgentsFileImageSource` -`beta.sessions.update(session_id, **kwargs) -> BetaManagedAgentsSession` + Image referenced by file ID. -**POST** `/v1/sessions/{session_id}` + - `type: :file` -Update Session + - `file_id: String` -#### Parameters + ID of a previously uploaded file. -- `session_id: String` (path parameter) + minLength: 1 -- `agent: BetaManagedAgentsSessionAgentUpdate` + - `class BetaManagedAgentsDocumentBlock` - Agent configuration update. Only `tools` and `mcp_servers` are updatable mid-session. Only valid for sessions created from an agent or deployment reference. The session must not be running. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` + - `type: :document` - Replacement MCP server list. Full replacement: the provided array becomes the new value. Send an empty array to clear; omit to preserve. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `type: :url` + The source of the document data. - - `name: String` + - `class BetaManagedAgentsBase64DocumentSource` - Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. + Base64-encoded document data. - minLength: 1, maxLength: 255 + - `type: :base64` - - `url: String` + - `data: String` - Endpoint URL for the MCP server. + Base64-encoded document data. - maxLength: 2048 + minLength: 1 - - `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` + - `media_type: String` - Replacement tool list. Full replacement: the provided array becomes the new value. Send an empty array to clear; omit to preserve. + MIME type of the document (e.g., "application/pdf"). - - `class BetaManagedAgentsAgentToolset20260401Params` + minLength: 1 - Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. + - `class BetaManagedAgentsPlainTextDocumentSource` - - `type: :agent_toolset_20260401` + Plain text document content. - - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` + - `type: :text` - Per-tool configuration overrides. + - `data: String` - - `class BetaManagedAgentsBashToolConfigParams` + The plain text content. - Configuration override for the bash tool. + minLength: 1 - - `type: :bash` + - `media_type: :"text/plain"` - - `name: :bash` + MIME type of the text content. Must be "text/plain". - Must be "bash". + - `class BetaManagedAgentsURLDocumentSource` - - `enabled: bool` + Document referenced by URL. - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `type: :url` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `url: String` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + URL of the document to fetch. - - `class BetaManagedAgentsAlwaysAllowPolicy` + minLength: 1 - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsFileDocumentSource` - - `type: :always_allow` + Document referenced by file ID. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :file` - Tool calls require user confirmation before execution. + - `file_id: String` - - `type: :always_ask` + ID of a previously uploaded file. - - `class BetaManagedAgentsAutoPolicy` + minLength: 1 - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `context: String` - - `type: :auto` + Additional context about the document for the model. - - `class BetaManagedAgentsEditToolConfigParams` + - `title: String` - Configuration override for the edit tool. + The title of the document. - - `type: :edit` + - `class BetaManagedAgentsRedactedBlock` - - `name: :edit` + Placeholder for content withheld by Anthropic model policy. - Must be "edit". + - `type: :redacted` - - `enabled: bool` + - `class BetaManagedAgentsUserDefineOutcomeEventParams` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :"user.define_outcome"` - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `description: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + What the agent should produce. This is the task specification. - Tool calls are automatically approved without user confirmation. + - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` - - `class BetaManagedAgentsAlwaysAskPolicy` + How to grade the outcome. Text or file reference. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsFileRubricParams` - - `class BetaManagedAgentsAutoPolicy` + Rubric referenced by a file uploaded via the Files API. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :file` - - `class BetaManagedAgentsReadToolConfigParams` + - `file_id: String` - Configuration override for the read tool. + ID of the rubric file. - - `type: :read` + - `class BetaManagedAgentsTextRubricParams` - - `name: :read` + Rubric content provided inline as text. - Must be "read". + - `type: :text` - - `enabled: bool` + - `content: String` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + maxLength: 262144 - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `max_iterations: Integer` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Eval→revision cycles before giving up. Default 3, max 20. - Tool calls are automatically approved without user confirmation. + format: int32 - - `class BetaManagedAgentsAlwaysAskPolicy` +- `metadata: Hash[Symbol, String]` - Tool calls require user confirmation before execution. + Arbitrary key-value metadata attached to the session. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - - `class BetaManagedAgentsAutoPolicy` +- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Resources (e.g. repositories, files) to mount into the session's container. - - `class BetaManagedAgentsWriteToolConfigParams` + - `class BetaManagedAgentsGitHubRepositoryResourceParams` - Configuration override for the write tool. + Mount a GitHub repository into the session's container. - - `type: :write` + - `type: :github_repository` - - `name: :write` + - `url: String` - Must be "write". + Github URL of the repository - - `enabled: bool` + minLength: 1, maxLength: 2048 - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `authorization_token: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + minLength: 1, maxLength: 4096 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - Tool calls are automatically approved without user confirmation. + Branch or commit to check out. Defaults to the repository's default branch. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsBranchCheckout` - Tool calls require user confirmation before execution. + - `type: :branch` - - `class BetaManagedAgentsAutoPolicy` + - `name: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Branch name to check out. - - `class BetaManagedAgentsGlobToolConfigParams` + minLength: 1, maxLength: 255 - Configuration override for the glob tool. + - `class BetaManagedAgentsCommitCheckout` - - `type: :glob` + - `type: :commit` - - `name: :glob` + - `sha: String` - Must be "glob". + Full commit SHA to check out. - - `enabled: bool` + minLength: 7, maxLength: 64 - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `mount_path: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Mount path in the container. Defaults to `/workspace/`. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + minLength: 1, maxLength: 4096 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsFileResourceParams` - Tool calls are automatically approved without user confirmation. + Mount a file uploaded via the Files API into the session. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :file` - Tool calls require user confirmation before execution. + - `file_id: String` - - `class BetaManagedAgentsAutoPolicy` + ID of a previously uploaded file. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsGrepToolConfigParams` + - `mount_path: String` - Configuration override for the grep tool. + Mount path in the container. Defaults to `/mnt/session/uploads/`. - - `type: :grep` + minLength: 1, maxLength: 4096 - - `name: :grep` + - `class BetaManagedAgentsMemoryStoreResourceParam` - Must be "grep". + Parameters for attaching a memory store to an agent session. - - `enabled: bool` + - `type: :memory_store` - Whether this tool is enabled and available to Claude. Overrides the default_config setting. + - `memory_store_id: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. + - `access: :read_write | :read_only` - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `class BetaManagedAgentsWebFetchToolConfigParams` - - Configuration override for the web_fetch tool. - - - `type: :web_fetch` - - - `name: :web_fetch` - - Must be "web_fetch". - - - `allowed_domains: Array[String]` - - Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - - `blocked_domains: Array[String]` - - Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - - `enabled: bool` - - Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - - `max_content_tokens: Integer` - - Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. - - format: int32 - - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` - - Which sources contribute URLs the tool may fetch. Omit to allow every source. - - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. - - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - - `:all` - - - `:none` - - - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` - - Which tools' results contribute URLs that may be fetched. - - - `class BetaManagedAgentsWebFetchURLSourceAll` - - Every URL from this source may be fetched. This is the default. - - - `type: :all` - - - `class BetaManagedAgentsWebFetchURLSourceNone` - - This source contributes no URLs that may be fetched. - - - `type: :none` - - - `class BetaManagedAgentsWebFetchURLSourceOnly` - - Only the named tools' results contribute URLs that may be fetched. - - - `type: :only` - - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - - `type: :tool_reference` - - Must be "tool_reference". - - - `name: String` - - Name of the tool. Compared exactly, so upper and lower case letters are different. - - minLength: 1, maxLength: 128 - - - `class BetaManagedAgentsWebFetchURLSourceExcept` - - Every tool's results contribute URLs that may be fetched, except the named tools' results. - - - `type: :except` - - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - - `type: :tool_reference` - - Must be "tool_reference". - - - `name: String` - - Name of the tool. Compared exactly, so upper and lower case letters are different. - - minLength: 1, maxLength: 128 - - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". - - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` - - Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". - - - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - - String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - - - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` - - Whether URLs in the text of user messages may be fetched. - - - `class BetaManagedAgentsWebFetchURLSourceAll` - - Every URL from this source may be fetched. This is the default. - - - `class BetaManagedAgentsWebFetchURLSourceNone` - - This source contributes no URLs that may be fetched. - - - `class BetaManagedAgentsWebSearchToolConfigParams` - - Configuration override for the web_search tool. - - - `type: :web_search` - - - `name: :web_search` - - Must be "web_search". - - - `allowed_domains: Array[String]` - - Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - - `blocked_domains: Array[String]` - - Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - - `enabled: bool` - - Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `user_location: BetaManagedAgentsUserLocation` - - Approximate user location for search result localization. - - - `type: :approximate` - - Location precision. Only "approximate" is supported. - - - `city: String` - - City name. - - minLength: 1, maxLength: 255 - - - `country: String` - - Two-letter ISO 3166-1 country code, uppercase. - - - `region: String` - - Region or state name. - - minLength: 1, maxLength: 255 - - - `timezone: String` - - IANA timezone identifier, e.g. "America/Los_Angeles". - - minLength: 1, maxLength: 255 - - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` - - Default configuration applied to all tools in this set. - - - `enabled: bool` - - Whether tools are enabled and available to Claude by default. Defaults to true if not specified. - - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `class BetaManagedAgentsMCPToolsetParams` - - Configuration for tools from an MCP server defined in `mcp_servers`. - - - `type: :mcp_toolset` - - - `mcp_server_name: String` - - Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. - - minLength: 1, maxLength: 255 - - - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` - - Per-tool configuration overrides. - - - `name: String` - - Name of the MCP tool to configure. 1-128 characters. - - minLength: 1, maxLength: 128 - - - `enabled: bool` - - Whether this tool is enabled. Overrides the `default_config` setting. - - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Permission policy for this tool. Overrides the `default_config` setting. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` - - Default configuration for all tools from this server. - - - `enabled: bool` - - Whether tools are enabled by default. Defaults to true if not specified. - - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Default permission policy for tools from this server. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `class BetaManagedAgentsCustomToolParams` - - A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. - - - `type: :custom` - - - `description: String` - - Description of what the tool does, shown to the agent to help it decide when to use the tool. - - minLength: 1 - - - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - JSON Schema defining the expected input parameters for the tool. - - - `type: :object` - - - `properties: Hash[Symbol, untyped]` - - - `required: Array[String]` - - - `name: String` - - Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. - - minLength: 1, maxLength: 128 - -- `budget: BetaManagedAgentsBudgetLimit` - - Enforced spend ceiling for the session. Set an object to replace the budget of a session that was created with one, or `null` to remove it; omit to preserve. A budget cannot be added to a session created without one (rejected with reason `budget_create_only`), and a removed budget cannot be re-added. Allowed in any non-terminated status. Lowering `max_list_cost` to at or below the session's consumed list cost is rejected with reason `budget_not_raised`, and every model the session can run must have a public list price or the request is rejected with reason `model_not_budgetable`. - - - `type: :limit` - - - `max_list_cost: BetaMonetaryAmount` - - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - - `amount: String` + Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `:read_write` - - `currency: BetaCurrency` + - `:read_only` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `instructions: String` -- `metadata: Hash[Symbol, String]` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. + maxLength: 4096 - `title: String` Human-readable session title. - minLength: 1, maxLength: 500 + maxLength: 500 - `vault_ids: Array[String]` - Vault IDs (`vlt_*`) to attach to the session. Not yet supported; requests setting this field are rejected. Reserved for future use. + Vault IDs for stored credentials the agent can use during the session. - `betas: Array[AnthropicBeta]` (header parameter) @@ -41299,6 +40622,8 @@ Update Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -42454,7 +41779,10 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_session = anthropic.beta.sessions.update("sesn_011CZkZAtmR3yMPDzynEDxu7") +beta_managed_agents_session = anthropic.beta.sessions.create( + agent: "agent_011CZkYpogX7uDKUyvBTophP", + environment_id: "env_011CZkZ9X2dpNyB7HsEFoRfW" +) puts(beta_managed_agents_session) ``` @@ -42659,174 +41987,99 @@ puts(beta_managed_agents_session) } ``` -### Delete Session +### List Sessions -`beta.sessions.delete(session_id, **kwargs) -> BetaManagedAgentsDeletedSession` +`beta.sessions.list(**kwargs) -> BidirectionalPageCursor` -**DELETE** `/v1/sessions/{session_id}` +**GET** `/v1/sessions` -Delete Session +List Sessions #### Parameters -- `session_id: String` (path parameter) - -- `betas: Array[AnthropicBeta]` (header parameter) - - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - - `String = String` - - - `:"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"` +- `agent_id: String` (query parameter) - - `:"fallback-credit-2026-06-01"` + Filter sessions created with this agent ID. - - `:"fallback-credit-2026-07-01"` +- `agent_version: Integer` (query parameter) - - `:"agent-memory-2026-07-22"` + Filter by agent version. Only applies when `agent_id` is also set. - - `:"mid-conversation-tool-changes-2026-07-01"` + format: int32 - - `:"compact-2026-01-12"` +- `created_at_gt: Time` (query parameter) - - `:"computer-use-2025-11-24"` + Return sessions created after this time (exclusive). - - `:"mcp-tunnels-2026-06-22"` + format: date-time - - `:"structured-outputs-2025-11-13"` +- `created_at_gte: Time` (query parameter) - - `:"task-budgets-2026-03-13"` + Return sessions created at or after this time (inclusive). - - `:"thinking-display-updates-2026-08-18"` + format: date-time - - `:"ce-user-management-2026-07-13"` +- `created_at_lt: Time` (query parameter) - - `:"mid-conversation-output-config-2026-07-01"` + Return sessions created before this time (exclusive). - - `:"thinking-binding-controls-2026-08-01"` + format: date-time - - `:"mid-conversation-system-clear-at-2026-08-21"` +- `created_at_lte: Time` (query parameter) - - `:"compact-2026-09-04"` + Return sessions created at or before this time (inclusive). - - `:"inline-tools-2026-09-15"` + format: date-time - - `:"mcp-client-2026-09-15"` +- `deployment_id: String` (query parameter) - - `:"ce-plugins-2026-09-01"` + Filter sessions created by this deployment ID. - - `:"spend-limit-reads-2026-09-26"` +- `include_archived: bool` (query parameter) - - `:"telemetry-destinations-2026-08-11"` + When true, includes archived sessions. Default: false (exclude archived). -- `workspace_id: String` (header parameter) +- `limit: Integer` (query parameter) - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Maximum number of results to return. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + format: int32 -#### Returns +- `memory_store_id: String` (query parameter) -- `class BetaManagedAgentsDeletedSession` + Filter sessions whose resources contain a `memory_store` with this memory store ID. - Confirmation that a `session` has been permanently deleted. +- `order: :asc | :desc` (query parameter) - - `type: :session_deleted` + Sort direction for results, ordered by `created_at`. Defaults to `desc` (newest first). - - `id: String` + - `:asc` -#### Example + - `:desc` -```ruby -require "anthropic" +- `page: String` (query parameter) -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Opaque pagination cursor from a previous response. -beta_managed_agents_deleted_session = anthropic.beta.sessions.delete("sesn_011CZkZAtmR3yMPDzynEDxu7") +- `statuses: Array[:rescheduling | :running | :idle | :terminated]` (query parameter) -puts(beta_managed_agents_deleted_session) -``` + Filter by session status. Repeat the parameter to match any of multiple statuses. -##### Response (200) + - `:rescheduling` -```json -{ - "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "type": "session_deleted" -} -``` + Transient error occurred, retrying automatically. -### Archive Session + - `:running` -`beta.sessions.archive(session_id, **kwargs) -> BetaManagedAgentsSession` + Agent is actively executing. -**POST** `/v1/sessions/{session_id}/archive` + - `:idle` -Archive Session + Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. -#### Parameters + - `:terminated` -- `session_id: String` (path parameter) + Session has ended, either due to an error or completion. - `betas: Array[AnthropicBeta]` (header parameter) @@ -42936,6 +42189,8 @@ Archive Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -44091,351 +43346,229 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_session = anthropic.beta.sessions.archive("sesn_011CZkZAtmR3yMPDzynEDxu7") +page = anthropic.beta.sessions.list -puts(beta_managed_agents_session) +puts(page) ``` ##### Response (200) ```json { - "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "description": "A general-purpose starter agent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "multiagent": { - "agents": [ - { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" + "data": [ + { + "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "agents": [ { - "configs": [ + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" } ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" }, - "type": "agent_toolset_20260401" + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 } ], - "type": "agent", - "version": 1 - } - ], - "type": "coordinator" - }, - "name": "My First Agent", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - }, - { - "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", - "type": "custom", - "version": "2" - } - ], - "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", - "tools": [ - { - "configs": [ + "type": "coordinator" + }, + "name": "My First Agent", + "skills": [ { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" } ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - }, - "created_at": "2026-03-15T10:00:00Z", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "metadata": {}, - "outcome_evaluations": [ - { - "completed_at": "2026-03-15T10:02:31Z", - "description": "Produce a 2-page summary as summary.md", - "explanation": "All five sections present with inline citations.", - "iteration": 0, - "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", - "result": "satisfied", - "type": "outcome_evaluation" - } - ], - "resources": [ - { - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "type": "limit" + }, "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "metadata": {}, + "outcome_evaluations": [ + { + "completed_at": "2026-03-15T10:02:31Z", + "description": "Produce a 2-page summary as summary.md", + "explanation": "All five sections present with inline citations.", + "iteration": 0, + "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", + "result": "satisfied", + "type": "outcome_evaluation" + } + ], + "resources": [ + { + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } + } + ], + "stats": { + "active_seconds": 0, + "duration_seconds": 0 + }, + "status": "idle", + "title": "Order #1234 inquiry", + "type": "session", "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "deployment_id": "deployment_id" } ], - "stats": { - "active_seconds": 0, - "duration_seconds": 0 - }, - "status": "idle", - "title": "Order #1234 inquiry", - "type": "session", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "deployment_id": "deployment_id" + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=", + "prev_page": "page_MjAyNS0wNS0xM1QwMDowMDowMFo=" } ``` -## Beta › Sessions › Events - -### List Events +### Get Session -`beta.sessions.events.list(session_id, **kwargs) -> PageCursor` +`beta.sessions.retrieve(session_id, **kwargs) -> BetaManagedAgentsSession` -**GET** `/v1/sessions/{session_id}/events` +**GET** `/v1/sessions/{session_id}` -List Events +Get Session #### Parameters - `session_id: String` (path parameter) -- `created_at_gt: Time` (query parameter) - - Return events created after this time (exclusive). Compared against the event's `processed_at` value. - - format: date-time - -- `created_at_gte: Time` (query parameter) - - Return events created at or after this time (inclusive). Compared against the event's `processed_at` value. - - format: date-time - -- `created_at_lt: Time` (query parameter) - - Return events created before this time (exclusive). Compared against the event's `processed_at` value. - - format: date-time - -- `created_at_lte: Time` (query parameter) - - Return events created at or before this time (inclusive). Compared against the event's `processed_at` value. - - format: date-time - -- `limit: Integer` (query parameter) - - format: int32 - -- `order: :asc | :desc` (query parameter) - - Sort direction for results, ordered by the event's `processed_at`. Defaults to `asc` (chronological). - - - `:asc` - - - `:desc` - -- `page: String` (query parameter) - - Opaque pagination cursor from a previous response's `next_page`. - -- `types: Array[BetaManagedAgentsSessionEventType]` (query parameter) - - Filter by event type. Values match the `type` field on returned events (for example, `user.message` or `agent.tool_use`). Omit to return all event types. - - - `:"user.message"` - - - `:"user.interrupt"` - - - `:"user.tool_confirmation"` - - - `:"user.custom_tool_result"` - - - `:"agent.custom_tool_use"` - - - `:"agent.message"` - - - `:"agent.thinking"` - - - `:"agent.mcp_tool_use"` - - - `:"agent.mcp_tool_result"` - - - `:"agent.tool_use"` - - - `:"agent.tool_result"` - - - `:"agent.thread_message_received"` - - - `:"agent.thread_message_sent"` - - - `:"agent.thread_context_compacted"` - - - `:"session.error"` - - - `:"session.status_rescheduled"` - - - `:"session.status_running"` - - - `:"session.status_idle"` - - - `:"session.status_terminated"` - - - `:"session.thread_created"` - - - `:"span.outcome_evaluation_start"` - - - `:"span.outcome_evaluation_end"` - - - `:"span.model_request_start"` - - - `:"span.model_request_end"` - - - `:"span.outcome_evaluation_ongoing"` - - - `:"user.define_outcome"` - - - `:"session.thread_status_running"` - - - `:"session.thread_status_idle"` - - - `:"session.thread_status_terminated"` - - - `:"user.tool_result"` - - - `:"session.thread_status_rescheduled"` - - - `:"session.updated"` - - - `:"system.message"` - - - `:"session.usage"` - - - `:"workflow_run.created"` - - - `:"workflow_run.status_running"` - - - `:"workflow_run.status_idle"` - - - `:"workflow_run.status_ended"` - - - `:"workflow_run.error"` - - - `:"workflow_run.phase_started"` - - - `:"workflow_run.phase_ended"` - - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. @@ -44544,6 +43677,8 @@ List Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -44552,2266 +43687,2434 @@ List Events #### Returns -- `type BetaManagedAgentsSessionEvent = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 39 more` +- `class BetaManagedAgentsSession` - Union type for all event types in a session. + A Managed Agents `session`. - - `class BetaManagedAgentsUserMessageEvent` + - `type: :session` - A user message event in the session conversation. + - `id: String` - - `type: :"user.message"` + - `agent: BetaManagedAgentsSessionAgent` - - `id: String` + Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. - Unique identifier for this event. + - `type: :agent` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `id: String` - Array of content blocks comprising the user message. + - `description: String` - - `class BetaManagedAgentsTextBlock` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Regular text content. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :text` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `text: String` + An AWS IAM role principal as returned in API responses. - The text content. + - `type: :aws_role` - minLength: 1 + - `role_arn: String` - - `class BetaManagedAgentsImageBlock` + The IAM role's ARN. - Image content specified directly as base64 data or as a reference via a URL. + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `type: :image` + The Anthropic-managed service account as returned in API responses. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `type: :service_account` - The source of the image data. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `class BetaManagedAgentsBase64ImageSource` + - `type: :url` - Base64-encoded image data. + - `name: String` - - `type: :base64` + - `url: String` - - `data: String` + - `model: BetaManagedAgentsModelConfig` - Base64-encoded image data. + Model identifier and configuration. - minLength: 1 + - `id: BetaManagedAgentsModel` - - `media_type: String` + The model that will power your agent. - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - minLength: 1 + - `:"claude-haiku-5-5"` - - `class BetaManagedAgentsURLImageSource` + Fastest model for high-volume, real-time tasks - Image referenced by URL. + - `:"claude-sonnet-5-5"` - - `type: :url` + Efficient model for coding and agents - - `url: String` + - `:"claude-opus-5-5"` - URL of the image to fetch. + Powerful intelligence for coding, knowledge work, and long-running agents - minLength: 1 + - `:"claude-fable-5-1"` - - `class BetaManagedAgentsFileImageSource` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - Image referenced by file ID. + - `:"claude-sonnet-5"` - - `type: :file` + Efficient model for coding and agents - - `file_id: String` + - `:"claude-fable-5"` - ID of a previously uploaded file. + Next generation of intelligence for the hardest knowledge work and coding problems - minLength: 1 + - `:"claude-opus-5"` - - `class BetaManagedAgentsDocumentBlock` + Powerful intelligence for long-running agents and coding - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"claude-opus-4-8"` - - `type: :document` + Powerful intelligence for long-running agents and coding - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `:"claude-opus-4-7"` - The source of the document data. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsBase64DocumentSource` + - `:"claude-opus-4-6"` - Base64-encoded document data. + Powerful intelligence for long-running agents and coding - - `type: :base64` + - `:"claude-sonnet-4-6"` - - `data: String` + Best combination of speed and intelligence - Base64-encoded document data. + - `:"claude-haiku-4-5"` - minLength: 1 + - `:"claude-haiku-4-5-20251001"` - - `media_type: String` + - `:"claude-opus-4-5"` - MIME type of the document (e.g., "application/pdf"). + Powerful intelligence for long-running agents and coding - minLength: 1 + - `:"claude-opus-4-5-20251101"` - - `class BetaManagedAgentsPlainTextDocumentSource` + Powerful intelligence for long-running agents and coding - Plain text document content. + - `:"claude-sonnet-4-5"` - - `type: :text` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `data: String` + High-performance model for agents and coding - The plain text content. + - `:"claude-sonnet-4-5-20250929"` - minLength: 1 + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `media_type: :"text/plain"` + High-performance model for agents and coding - MIME type of the text content. Must be "text/plain". + - `String = String` - - `class BetaManagedAgentsURLDocumentSource` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - Document referenced by URL. + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `type: :url` + - `class BetaManagedAgentsEffortLow` - - `url: String` + Low effort. Favors latency over reasoning depth. - URL of the document to fetch. + - `type: :low` - minLength: 1 + - `class BetaManagedAgentsEffortMedium` - - `class BetaManagedAgentsFileDocumentSource` + Medium effort. Balances latency and reasoning depth. - Document referenced by file ID. + - `type: :medium` - - `type: :file` + - `class BetaManagedAgentsEffortHigh` - - `file_id: String` + High effort. Favors reasoning depth. - ID of a previously uploaded file. + - `type: :high` - minLength: 1 + - `class BetaManagedAgentsEffortXhigh` - - `context: String` + Extra-high effort. Not all models accept this level. - Additional context about the document for the model. + - `type: :xhigh` - - `title: String` + - `class BetaManagedAgentsEffortMax` - The title of the document. + Maximum effort. Favors reasoning depth over latency. - - `class BetaManagedAgentsRedactedBlock` + - `type: :max` - Placeholder for content withheld by Anthropic model policy. + - `inference_geo: String` - - `type: :redacted` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `processed_at: Time` + - `speed: :standard | :fast` - Timestamp when the agent finished processing this message. + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - format: date-time + - `:standard` - - `class BetaManagedAgentsUserInterruptEvent` + - `:fast` - An interrupt event that pauses agent execution and returns control to the user. + - `multiagent: BetaManagedAgentsSessionMultiagent` - - `type: :"user.interrupt"` + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - - `id: String` + - `class BetaManagedAgentsSessionMultiagentCoordinator` - Unique identifier for this event. + Resolved coordinator topology with full agent definitions for each roster member. - - `processed_at: Time` + - `type: :coordinator` - Timestamp when the interrupt was processed. + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - format: date-time + Full `agent` definitions the coordinator may spawn as session threads. - - `session_thread_id: String` + - `class BetaManagedAgentsSessionThreadAgent` - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `class BetaManagedAgentsUserToolConfirmationEvent` + - `type: :agent` - A tool confirmation event that approves or denies a pending tool execution. + - `id: String` - - `type: :"user.tool_confirmation"` + - `description: String` - - `id: String` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Unique identifier for this event. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `result: :allow | :deny` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - The confirmation result: 'allow' or 'deny'. + - `type: :url` - - `:allow` + - `name: String` - - `:deny` + - `url: String` - - `tool_use_id: String` + - `model: BetaManagedAgentsModelConfig` - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + Model identifier and configuration. - - `deny_message: String` + - `name: String` - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - maxLength: 10000 + - `class BetaManagedAgentsAnthropicSkill` - - `processed_at: Time` + A resolved Anthropic-managed skill. - Timestamp when the confirmation was processed. + - `type: :anthropic` - format: date-time + - `skill_id: String` - - `session_thread_id: String` + - `version: String` - Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. + - `class BetaManagedAgentsCustomSkill` - - `class BetaManagedAgentsUserCustomToolResultEvent` + A resolved user-created custom skill. - Event sent by the client providing the result of a custom tool execution. + - `type: :custom` - - `type: :"user.custom_tool_result"` + - `skill_id: String` - - `id: String` + - `version: String` - Unique identifier for this event. + - `system_: String` - - `custom_tool_use_id: String` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `class BetaManagedAgentsAgentToolset20260401` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `type: :agent_toolset_20260401` - The result content returned by the tool. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsBashToolConfig` - Regular text content. + Configuration for the bash tool. - - `class BetaManagedAgentsImageBlock` + - `type: :bash` - Image content specified directly as base64 data or as a reference via a URL. + - `enabled: bool` - - `class BetaManagedAgentsDocumentBlock` + - `name: :bash` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSearchResultBlock` + Permission policy for tool execution. - A block containing a web search result. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :search_result` + Tool calls are automatically approved without user confirmation. - - `citations: BetaManagedAgentsSearchResultCitations` + - `type: :always_allow` - Citation settings for this search result. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - Whether citations are enabled for this search result. + - `type: :always_ask` - - `content: Array[BetaManagedAgentsSearchResultContent]` + - `class BetaManagedAgentsAutoPolicy` - Array of text content blocks from the search result. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :text` + - `type: :auto` - - `text: String` + - `class BetaManagedAgentsEditToolConfig` - The text content. + Configuration for the edit tool. - minLength: 1 + - `type: :edit` - - `source: String` + - `enabled: bool` - The URL source of the search result. + - `name: :edit` - minLength: 1 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `title: String` + Permission policy for tool execution. - The title of the search result. + - `class BetaManagedAgentsAlwaysAllowPolicy` - minLength: 1 + Tool calls are automatically approved without user confirmation. - - `is_error: bool` + - `class BetaManagedAgentsAlwaysAskPolicy` - Whether the tool execution resulted in an error. + Tool calls require user confirmation before execution. - - `processed_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Timestamp when this result was processed. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `class BetaManagedAgentsReadToolConfig` - - `session_thread_id: String` + Configuration for the read tool. - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `type: :read` - - `class BetaManagedAgentsAgentCustomToolUseEvent` + - `enabled: bool` - Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. + - `name: :read` - - `type: :"agent.custom_tool_use"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `id: String` + Permission policy for tool execution. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `input: Hash[Symbol, untyped]` + Tool calls are automatically approved without user confirmation. - Input parameters for the tool call. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `name: String` + Tool calls require user confirmation before execution. - Name of the custom tool being called. + - `class BetaManagedAgentsAutoPolicy` - - `processed_at: Time` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Timestamp when this tool use was processed. + - `class BetaManagedAgentsWriteToolConfig` - format: date-time + Configuration for the write tool. - - `session_thread_id: String` + - `type: :write` - When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. + - `enabled: bool` - - `class BetaManagedAgentsAgentMessageEvent` + - `name: :write` - An agent response event in the session conversation. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"agent.message"` + Permission policy for tool execution. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` + - `class BetaManagedAgentsAlwaysAskPolicy` - Array of text blocks comprising the agent response. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsAutoPolicy` - Regular text content. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsRedactedBlock` + - `class BetaManagedAgentsGlobToolConfig` - Placeholder for content withheld by Anthropic model policy. + Configuration for the glob tool. - - `processed_at: Time` + - `type: :glob` - Timestamp when this response was generated. + - `enabled: bool` - format: date-time + - `name: :glob` - - `class BetaManagedAgentsAgentThinkingEvent` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. + Permission policy for tool execution. - - `type: :"agent.thinking"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `id: String` + Tool calls are automatically approved without user confirmation. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `processed_at: Time` + Tool calls require user confirmation before execution. - Timestamp when this thinking was produced. + - `class BetaManagedAgentsAutoPolicy` - format: date-time + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsAgentMCPToolUseEvent` + - `class BetaManagedAgentsGrepToolConfig` - Event emitted when the agent invokes a tool provided by an MCP server. + Configuration for the grep tool. - - `type: :"agent.mcp_tool_use"` + - `type: :grep` - - `id: String` + - `enabled: bool` - Unique identifier for this event. + - `name: :grep` - - `input: Hash[Symbol, untyped]` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Input parameters for the tool call. + Permission policy for tool execution. - - `mcp_server_name: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Name of the MCP server providing the tool. + Tool calls are automatically approved without user confirmation. - - `name: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Name of the MCP tool being used. + Tool calls require user confirmation before execution. - - `processed_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Timestamp when this event was processed. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `class BetaManagedAgentsWebFetchToolConfig` - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + Configuration for the web_fetch tool. - The evaluated permission policy for this tool invocation. + - `type: :web_fetch` - - `:allow` + - `enabled: bool` - - `:ask` + - `name: :web_fetch` - - `:deny` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + Permission policy for tool execution. - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` + Tool calls are automatically approved without user confirmation. - The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :always_allow` + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` + - `class BetaManagedAgentsAutoPolicy` - The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :always_ask` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `class BetaManagedAgentsAgentToolEvaluationAuto` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - The resolved permission_policy was auto: the server judged this invocation individually. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `type: :auto` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` + - `class BetaManagedAgentsWebFetchURLSourceAll` - The server's judgement for this invocation. + Every URL from this source may be fetched. This is the default. - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` + - `type: :all` - The server judged the invocation safe to execute without client approval. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `type: :allow` + This source contributes no URLs that may be fetched. - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` + - `type: :none` - The server reached no judgement; the invocation is held for client approval. + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `type: :ask` + Only the named tools' results contribute URLs that may be fetched. - - `reason_code: String` + - `type: :only` - The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - maxLength: 64 + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` + - `type: :tool_reference` - The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. + Must be "tool_reference". - - `type: :deny` + - `name: String` - - `reason_code: String` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. + minLength: 1, maxLength: 128 - maxLength: 64 + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `session_thread_id: String` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. + - `type: :except` - - `class BetaManagedAgentsAgentMCPToolResultEvent` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - Event representing the result of an MCP tool execution. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `type: :"agent.mcp_tool_result"` + - `type: :tool_reference` - - `id: String` + Must be "tool_reference". - Unique identifier for this event. + - `name: String` - - `mcp_tool_use_id: String` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The id of the `agent.mcp_tool_use` event this result corresponds to. + minLength: 1, maxLength: 128 - - `processed_at: Time` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Timestamp when this event was processed. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - format: date-time + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - The result content returned by the tool. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `class BetaManagedAgentsTextBlock` + Every URL from this source may be fetched. This is the default. - Regular text content. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `class BetaManagedAgentsImageBlock` + This source contributes no URLs that may be fetched. - Image content specified directly as base64 data or as a reference via a URL. + - `allowed_domains: Array[String]` - - `class BetaManagedAgentsDocumentBlock` + - `blocked_domains: Array[String]` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `max_content_tokens: Integer` - - `class BetaManagedAgentsSearchResultBlock` + format: int32 - A block containing a web search result. + - `class BetaManagedAgentsWebSearchToolConfig` - - `is_error: bool` + Configuration for the web_search tool. - Whether the tool execution resulted in an error. + - `type: :web_search` - - `class BetaManagedAgentsAgentToolUseEvent` + - `enabled: bool` - Event emitted when the agent invokes a built-in agent tool. + - `name: :web_search` - - `type: :"agent.tool_use"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `id: String` + Permission policy for tool execution. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `input: Hash[Symbol, untyped]` + Tool calls are automatically approved without user confirmation. - Input parameters for the tool call. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `name: String` + Tool calls require user confirmation before execution. - Name of the agent tool being used. + - `class BetaManagedAgentsAutoPolicy` - - `processed_at: Time` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Timestamp when this event was processed. + - `allowed_domains: Array[String]` - format: date-time + - `blocked_domains: Array[String]` - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + - `user_location: BetaManagedAgentsUserLocation` - The evaluated permission policy for this tool invocation. + Approximate user location for search result localization. - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + - `type: :approximate` - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + Location precision. Only "approximate" is supported. - - `session_thread_id: String` + - `city: String` - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. + City name. - - `class BetaManagedAgentsAgentToolResultEvent` + minLength: 1, maxLength: 255 - Event representing the result of an agent tool execution. + - `country: String` - - `type: :"agent.tool_result"` + Two-letter ISO 3166-1 country code, uppercase. - - `id: String` + - `region: String` - Unique identifier for this event. + Region or state name. - - `processed_at: Time` + minLength: 1, maxLength: 255 - Timestamp when this event was processed. + - `timezone: String` - format: date-time + IANA timezone identifier, e.g. "America/Los_Angeles". - - `tool_use_id: String` + minLength: 1, maxLength: 255 - The id of the `agent.tool_use` event this result corresponds to. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + Resolved default configuration for agent tools. - The result content returned by the tool. + - `enabled: bool` - - `class BetaManagedAgentsTextBlock` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Regular text content. + Permission policy for tool execution. - - `class BetaManagedAgentsImageBlock` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Image content specified directly as base64 data or as a reference via a URL. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsDocumentBlock` + - `class BetaManagedAgentsAlwaysAskPolicy` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsSearchResultBlock` + - `class BetaManagedAgentsAutoPolicy` - A block containing a web search result. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `is_error: bool` + - `class BetaManagedAgentsMCPToolset` - Whether the tool execution resulted in an error. + - `type: :mcp_toolset` - - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - Delivery event written to the target thread's input stream when an agent-to-agent message arrives. + - `enabled: bool` - - `type: :"agent.thread_message_received"` + - `name: String` - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Unique identifier for this event. + Permission policy for tool execution. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Message content blocks. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsAlwaysAskPolicy` - Regular text content. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsImageBlock` + - `class BetaManagedAgentsAutoPolicy` - Image content specified directly as base64 data or as a reference via a URL. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsDocumentBlock` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Resolved default configuration for all tools from an MCP server. - - `class BetaManagedAgentsRedactedBlock` + - `enabled: bool` - Placeholder for content withheld by Anthropic model policy. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `from_session_thread_id: String` + Permission policy for tool execution. - Public `sthr_` ID of the thread that sent the message. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `processed_at: Time` + Tool calls are automatically approved without user confirmation. - Timestamp when the message was received. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: date-time + Tool calls require user confirmation before execution. - - `from_agent_name: String` + - `class BetaManagedAgentsAutoPolicy` - Name of the callable agent this message came from. Absent when received from the primary agent. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsAgentThreadMessageSentEvent` + - `mcp_server_name: String` - Observability event emitted to the sender's output stream when an agent-to-agent message is sent. + - `class BetaManagedAgentsCustomTool` - - `type: :"agent.thread_message_sent"` + A custom tool as returned in API responses. - - `id: String` + - `type: :custom` - Unique identifier for this event. + - `description: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - Message content blocks. + JSON Schema for custom tool input parameters. - - `class BetaManagedAgentsTextBlock` + - `type: :object` - Regular text content. + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsImageBlock` + - `required: Array[String]` - Image content specified directly as base64 data or as a reference via a URL. + - `name: String` - - `class BetaManagedAgentsDocumentBlock` + - `version: Integer` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + format: int32 - - `class BetaManagedAgentsRedactedBlock` + - `class BetaManagedAgentsAdvisor` - Placeholder for content withheld by Anthropic model policy. + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `processed_at: Time` + - `type: :advisor` - Timestamp when the message was sent. + - `model: String` - format: date-time + The advisor model id. - - `to_session_thread_id: String` + - `class BetaManagedAgentsSessionMultiagent20261001` - Public `sthr_` ID of the thread the message was sent to. + Resolved multiagent configuration with three members, as copied to the `session` at creation. - - `to_agent_name: String` + - `type: :multiagent_20261001` - Name of the callable agent this message was sent to. Absent when sent to the primary agent. + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `class BetaManagedAgentsAgentThreadContextCompactedEvent` + Whether the session's primary thread can consult an advisor model. - Indicates that context compaction (summarization) occurred during the session. + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - - `type: :"agent.thread_context_compacted"` + The session's primary thread can consult `model` mid-turn. - - `id: String` + - `type: :enabled` - Unique identifier for this event. + - `model: String` - - `processed_at: Time` + The advisor model id. - Timestamp when compaction was processed. + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - format: date-time + The agent has no advisor. - - `class BetaManagedAgentsSessionErrorEvent` + - `type: :disabled` - An error event indicating a problem occurred during session execution. + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - - `type: :"session.error"` + Whether the agent can spawn session threads. - - `id: String` + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - Unique identifier for this event. + The agent can spawn session threads. - - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` + - `type: :enabled` - - `class BetaManagedAgentsUnknownError` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `type: :unknown_error` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `message: String` + The agent can define inline agents. - Human-readable error description. + - `type: :enabled` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - What the client should do next. + The agent cannot define inline agents. - - `class BetaManagedAgentsRetryStatusRetrying` + - `type: :disabled` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - - `type: :retrying` + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - - `class BetaManagedAgentsRetryStatusExhausted` + - `type: :agent` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `id: String` - - `type: :exhausted` + - `description: String` - - `class BetaManagedAgentsRetryStatusTerminal` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - The session encountered a terminal error and will transition to `terminated` state. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :terminal` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `class BetaManagedAgentsModelOverloadedError` + - `model: BetaManagedAgentsModelConfig` - The model is currently overloaded. Emitted after automatic retries are exhausted. + Model identifier and configuration. - - `type: :model_overloaded_error` + - `name: String` - - `message: String` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Human-readable error description. + - `system_: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - What the client should do next. + - `version: Integer` - - `class BetaManagedAgentsRetryStatusRetrying` + format: int32 - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - - `class BetaManagedAgentsRetryStatusExhausted` + The agent cannot spawn session threads. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `type: :disabled` - - `class BetaManagedAgentsRetryStatusTerminal` + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - The session encountered a terminal error and will transition to `terminated` state. + Whether the agent can start workflow runs. - - `class BetaManagedAgentsModelRateLimitedError` + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - The model request was rate-limited. + The agent can start workflow runs. - - `type: :model_rate_limited_error` + - `type: :enabled` - - `message: String` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Human-readable error description. + Whether a run's plan can define inline agents, which are not saved. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - What the client should do next. + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - - `class BetaManagedAgentsRetryStatusRetrying` + - `type: :agent` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `id: String` - - `class BetaManagedAgentsRetryStatusExhausted` + - `description: String` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `class BetaManagedAgentsRetryStatusTerminal` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - The session encountered a terminal error and will transition to `terminated` state. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `class BetaManagedAgentsModelRequestFailedError` + - `model: BetaManagedAgentsModelConfig` - A model request failed for a reason other than overload or rate-limiting. + Model identifier and configuration. - - `type: :model_request_failed_error` + - `name: String` - - `message: String` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Human-readable error description. + - `system_: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - What the client should do next. + - `version: Integer` - - `class BetaManagedAgentsRetryStatusRetrying` + format: int32 - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `class BetaManagedAgentsRetryStatusExhausted` + The agent cannot start workflow runs. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `type: :disabled` - - `class BetaManagedAgentsRetryStatusTerminal` + - `name: String` - The session encountered a terminal error and will transition to `terminated` state. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsMCPConnectionFailedError` + - `class BetaManagedAgentsAnthropicSkill` - Failed to connect to an MCP server. + A resolved Anthropic-managed skill. - - `type: :mcp_connection_failed_error` + - `class BetaManagedAgentsCustomSkill` - - `mcp_server_name: String` + A resolved user-created custom skill. - Name of the MCP server that failed to connect. + - `system_: String` - - `message: String` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Human-readable error description. + - `class BetaManagedAgentsAgentToolset20260401` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `class BetaManagedAgentsMCPToolset` - What the client should do next. + - `class BetaManagedAgentsCustomTool` - - `class BetaManagedAgentsRetryStatusRetrying` + A custom tool as returned in API responses. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `version: Integer` - - `class BetaManagedAgentsRetryStatusExhausted` + format: int32 - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `archived_at: Time` - - `class BetaManagedAgentsRetryStatusTerminal` + When the session was archived. Null if not archived. - The session encountered a terminal error and will transition to `terminated` state. + format: date-time - - `class BetaManagedAgentsMCPAuthenticationFailedError` + - `budget: BetaManagedAgentsBudgetLimit` - Authentication to an MCP server failed. + The session's enforced spend ceiling, or null when no budget is set. - - `type: :mcp_authentication_failed_error` + - `type: :limit` - - `mcp_server_name: String` + - `max_list_cost: BetaMonetaryAmount` - Name of the MCP server that failed authentication. + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `message: String` + - `amount: String` - Human-readable error description. + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `currency: BetaCurrency` - What the client should do next. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `class BetaManagedAgentsRetryStatusRetrying` + - `created_at: Time` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsRetryStatusExhausted` + format: date-time - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `environment_id: String` - - `class BetaManagedAgentsRetryStatusTerminal` + - `metadata: Hash[Symbol, String]` - The session encountered a terminal error and will transition to `terminated` state. + - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` - - `class BetaManagedAgentsBillingError` + Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. - The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. + - `type: :outcome_evaluation` - - `type: :billing_error` + - `completed_at: Time` - - `message: String` + When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. - Human-readable error description. + format: date-time - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `description: String` - What the client should do next. + What the agent should produce. - - `class BetaManagedAgentsRetryStatusRetrying` + - `explanation: String` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. - - `class BetaManagedAgentsRetryStatusExhausted` + - `iteration: Integer` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + 0-indexed revision cycle the outcome is currently on. - - `class BetaManagedAgentsRetryStatusTerminal` + format: int32 - The session encountered a terminal error and will transition to `terminated` state. + - `outcome_id: String` - - `class BetaManagedAgentsCredentialHostUnreachableError` + Server-generated outc_ ID for this outcome. - An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. + - `result: String` - - `type: :credential_host_unreachable_error` + Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. - - `credential_id: String` + - `resources: Array[BetaManagedAgentsSessionResource]` - ID of the affected credential. + - `class BetaManagedAgentsGitHubRepositoryResource` - - `message: String` + - `type: :github_repository` - Human-readable error description. + - `id: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `created_at: Time` - What the client should do next. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsRetryStatusRetrying` + format: date-time - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `mount_path: String` - - `class BetaManagedAgentsRetryStatusExhausted` + - `updated_at: Time` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsRetryStatusTerminal` + format: date-time - The session encountered a terminal error and will transition to `terminated` state. + - `url: String` - - `vault_id: String` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - ID of the vault containing the affected credential. + - `class BetaManagedAgentsBranchCheckout` - - `class BetaManagedAgentsRepositoryAuthenticationError` + - `type: :branch` - The repository host rejected the credentials, or required credentials and received none. + - `name: String` - - `type: :repository_authentication_error` + Branch name to check out. - - `message: String` + minLength: 1, maxLength: 255 - Human-readable error description. + - `class BetaManagedAgentsCommitCheckout` - - `repository_url: String` + - `type: :commit` - URL of the repository that could not be cloned. Null when it could not be identified. + - `sha: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Full commit SHA to check out. - What the client should do next. Always `retrying`: the session keeps running without the repository. + minLength: 7, maxLength: 64 - - `class BetaManagedAgentsRetryStatusRetrying` + - `class BetaManagedAgentsFileResource` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `type: :file` - - `class BetaManagedAgentsRetryStatusExhausted` + - `id: String` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `created_at: Time` - - `class BetaManagedAgentsRetryStatusTerminal` + A timestamp in RFC 3339 format - The session encountered a terminal error and will transition to `terminated` state. + format: date-time - - `class BetaManagedAgentsRepositoryForbiddenError` + - `file_id: String` - The repository host refused access to the repository. + - `mount_path: String` - - `type: :repository_forbidden_error` + - `updated_at: Time` - - `message: String` + A timestamp in RFC 3339 format - Human-readable error description. + format: date-time - - `repository_url: String` + - `class BetaManagedAgentsMemoryStoreResource` - URL of the repository that could not be cloned. Null when it could not be identified. + A memory store attached to an agent session. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `type: :memory_store` - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `memory_store_id: String` - - `class BetaManagedAgentsRetryStatusRetrying` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `access: :read_write | :read_only` - - `class BetaManagedAgentsRetryStatusExhausted` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:read_write` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:read_only` - The session encountered a terminal error and will transition to `terminated` state. + - `description: String` - - `class BetaManagedAgentsRepositoryNotFoundError` + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - The repository host reported the repository as not found. + - `instructions: String` - - `type: :repository_not_found_error` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `message: String` + maxLength: 4096 - Human-readable error description. + - `mount_path: String` - - `repository_url: String` + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - URL of the repository that could not be cloned. Null when it could not be identified. + - `name: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `stats: BetaManagedAgentsSessionStats` - - `class BetaManagedAgentsRetryStatusRetrying` + Timing statistics for the session. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `active_seconds: Float` - - `class BetaManagedAgentsRetryStatusExhausted` + Cumulative time in seconds the session spent in `running` status. Excludes idle time. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + format: double - - `class BetaManagedAgentsRetryStatusTerminal` + - `duration_seconds: Float` - The session encountered a terminal error and will transition to `terminated` state. + Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. - - `class BetaManagedAgentsRepositoryCheckoutError` + format: double - The requested branch or commit does not exist in the repository. + - `status: :rescheduling | :running | :idle | :terminated` - - `type: :repository_checkout_error` + - `:rescheduling` - - `message: String` + Transient error occurred, retrying automatically. - Human-readable error description. + - `:running` - - `repository_url: String` + Agent is actively executing. - URL of the repository that could not be cloned. Null when it could not be identified. + - `:idle` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `:terminated` - - `class BetaManagedAgentsRetryStatusRetrying` + Session has ended, either due to an error or completion. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `title: String` - - `class BetaManagedAgentsRetryStatusExhausted` + - `updated_at: Time` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsRetryStatusTerminal` + format: date-time - The session encountered a terminal error and will transition to `terminated` state. + - `usage: BetaManagedAgentsSessionUsage` - - `class BetaManagedAgentsRepositoryCloneError` + Cumulative token usage for the session. - The repository could not be cloned. + - `active_seconds: Float` - - `type: :repository_clone_error` + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. - - `message: String` + format: double - Human-readable error description. + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `repository_url: String` + Tokens used to create prompt cache entries, broken down by cache TTL. - URL of the repository that could not be cloned. Null when it could not be identified. + - `ephemeral_1h_input_tokens: Integer` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Tokens used to create 1-hour ephemeral cache entries. - What the client should do next. Always `retrying`: the session keeps running without the repository. + format: int32 - - `class BetaManagedAgentsRetryStatusRetrying` + - `ephemeral_5m_input_tokens: Integer` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + Tokens used to create 5-minute ephemeral cache entries. - - `class BetaManagedAgentsRetryStatusExhausted` + format: int32 - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `cache_read_input_tokens: Integer` - - `class BetaManagedAgentsRetryStatusTerminal` + Total tokens read from prompt cache. - The session encountered a terminal error and will transition to `terminated` state. + format: int32 - - `processed_at: Time` + - `input_tokens: Integer` - Timestamp when the error occurred. + Total input tokens consumed across all turns. - format: date-time + format: int32 - - `class BetaManagedAgentsSessionStatusRescheduledEvent` + - `list_cost: BetaMonetaryAmount` - Indicates the session is recovering from an error state and is rescheduled for execution. + Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. - - `type: :"session.status_rescheduled"` + - `output_tokens: Integer` - - `id: String` + Total output tokens generated across all turns. - Unique identifier for this event. + format: int32 - - `processed_at: Time` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - Timestamp of status change. + Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. - format: date-time + - `web_fetch_requests: Integer` - - `class BetaManagedAgentsSessionStatusRunningEvent` + Number of server-executed web fetch requests. - Indicates the session is actively running and the agent is working. + format: int32 - - `type: :"session.status_running"` + - `web_search_requests: Integer` - - `id: String` + Number of server-executed web search requests. - Unique identifier for this event. + format: int32 - - `processed_at: Time` + - `vault_ids: Array[String]` - Timestamp of status change. + Vault IDs attached to the session at creation. Empty when no vaults were supplied. - format: date-time + - `deployment_id: String` - - `class BetaManagedAgentsSessionStatusIdleEvent` + Deployment ID when the session was created from a deployment reference. Null otherwise. - Indicates the agent has paused and is awaiting user input. +#### Example - - `type: :"session.status_idle"` +```ruby +require "anthropic" - - `id: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Unique identifier for this event. +beta_managed_agents_session = anthropic.beta.sessions.retrieve("sesn_011CZkZAtmR3yMPDzynEDxu7") - - `processed_at: Time` +puts(beta_managed_agents_session) +``` - Timestamp of status change. +##### Response (200) - format: date-time +```json +{ + "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + } + ], + "type": "coordinator" + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + }, + "created_at": "2026-03-15T10:00:00Z", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "metadata": {}, + "outcome_evaluations": [ + { + "completed_at": "2026-03-15T10:02:31Z", + "description": "Produce a 2-page summary as summary.md", + "explanation": "All five sections present with inline citations.", + "iteration": 0, + "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", + "result": "satisfied", + "type": "outcome_evaluation" + } + ], + "resources": [ + { + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } + } + ], + "stats": { + "active_seconds": 0, + "duration_seconds": 0 + }, + "status": "idle", + "title": "Order #1234 inquiry", + "type": "session", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "deployment_id": "deployment_id" +} +``` - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` +### Update Session - Structured information about why the session stopped. `null` when there is nothing more to report. +`beta.sessions.update(session_id, **kwargs) -> BetaManagedAgentsSession` - - `type: :refusal` +**POST** `/v1/sessions/{session_id}` - - `category: :cyber | :bio | :frontier_llm | 2 more` +Update Session - The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. +#### Parameters - - `:cyber` +- `session_id: String` (path parameter) - - `:bio` +- `agent: BetaManagedAgentsSessionAgentUpdate` - - `:frontier_llm` + Agent configuration update. Only `tools` and `mcp_servers` are updatable mid-session. Only valid for sessions created from an agent or deployment reference. The session must not be running. - - `:reasoning_extraction` + - `mcp_servers: Array[BetaManagedAgentsURLMCPServerParams]` - - `:general_harms` + Replacement MCP server list. Full replacement: the provided array becomes the new value. Send an empty array to clear; omit to preserve. - - `explanation: String` + - `type: :url` - Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. + - `name: String` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + Unique name for this server, referenced by mcp_toolset configurations. 1-255 characters. - - `class BetaManagedAgentsSessionEndTurn` + minLength: 1, maxLength: 255 - The agent completed its turn naturally and is ready for the next user message. + - `url: String` - - `type: :end_turn` + Endpoint URL for the MCP server. - - `class BetaManagedAgentsSessionRequiresAction` + maxLength: 2048 - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `tools: Array[BetaManagedAgentsAgentToolset20260401Params | BetaManagedAgentsMCPToolsetParams | BetaManagedAgentsCustomToolParams]` - - `type: :requires_action` + Replacement tool list. Full replacement: the provided array becomes the new value. Send an empty array to clear; omit to preserve. - - `event_ids: Array[String]` + - `class BetaManagedAgentsAgentToolset20260401Params` - The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. + Configuration for built-in agent tools. Use this to enable or disable groups of tools available to the agent. - - `class BetaManagedAgentsSessionRetriesExhausted` + - `type: :agent_toolset_20260401` - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `configs: Array[BetaManagedAgentsAgentToolConfigParams]` - - `type: :retries_exhausted` + Per-tool configuration overrides. - - `class BetaManagedAgentsSessionBudgetReached` + - `class BetaManagedAgentsBashToolConfigParams` - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + Configuration override for the bash tool. - - `type: :budget_reached` + - `type: :bash` - - `class BetaManagedAgentsSessionRefusal` + - `name: :bash` - The turn ended because the model's response was refused, for example by a safety classifier. + Must be "bash". - - `type: :refusal` + - `enabled: bool` - - `class BetaManagedAgentsSessionStatusTerminatedEvent` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Indicates the session has terminated, either due to an error or completion. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"session.status_terminated"` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `processed_at: Time` + - `type: :always_allow` - Timestamp of status change. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: date-time + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsSessionThreadCreatedEvent` + - `type: :always_ask` - Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. + - `class BetaManagedAgentsAutoPolicy` - - `type: :"session.thread_created"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `id: String` + - `type: :auto` - Unique identifier for this event. + - `class BetaManagedAgentsEditToolConfigParams` - - `agent_name: String` + Configuration override for the edit tool. - Name of the callable agent the thread runs. + - `type: :edit` - - `processed_at: Time` + - `name: :edit` - Timestamp when the thread was created. + Must be "edit". - format: date-time + - `enabled: bool` - - `session_thread_id: String` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Public `sthr_` ID of the newly created thread. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `workflow_run_id: String` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Identifier of the workflow run that created the thread, or `null` for any other thread. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` + Tool calls are automatically approved without user confirmation. - Emitted when an outcome evaluation cycle begins. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :"span.outcome_evaluation_start"` + Tool calls require user confirmation before execution. - - `id: String` + - `class BetaManagedAgentsAutoPolicy` - Unique identifier for this event. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `iteration: Integer` + - `class BetaManagedAgentsReadToolConfigParams` - 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. + Configuration override for the read tool. - format: int32 + - `type: :read` - - `outcome_id: String` + - `name: :read` - The `outc_` ID of the outcome being evaluated. + Must be "read". - - `processed_at: Time` + - `enabled: bool` - Timestamp when outcome evaluation started. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - format: date-time + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :"span.outcome_evaluation_end"` + Tool calls are automatically approved without user confirmation. - - `id: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Unique identifier for this event. + Tool calls require user confirmation before execution. - - `explanation: String` + - `class BetaManagedAgentsAutoPolicy` - Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `iteration: Integer` + - `class BetaManagedAgentsWriteToolConfigParams` - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + Configuration override for the write tool. - format: int32 + - `type: :write` - - `outcome_evaluation_start_id: String` + - `name: :write` - The id of the corresponding `span.outcome_evaluation_start` event. + Must be "write". - - `outcome_id: String` + - `enabled: bool` - The `outc_` ID of the outcome being evaluated. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `processed_at: Time` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Timestamp when outcome evaluation ended. + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - format: date-time + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `result: String` + Tool calls are automatically approved without user confirmation. - Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `usage: BetaManagedAgentsSpanModelUsage` + Tool calls require user confirmation before execution. - Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. + - `class BetaManagedAgentsAutoPolicy` - - `cache_creation_input_tokens: Integer` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Tokens used to create prompt cache in this request. + - `class BetaManagedAgentsGlobToolConfigParams` - format: int32 + Configuration override for the glob tool. - - `cache_read_input_tokens: Integer` + - `type: :glob` - Tokens read from prompt cache in this request. + - `name: :glob` - format: int32 + Must be "glob". - - `input_tokens: Integer` + - `enabled: bool` - Input tokens consumed by this request. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - format: int32 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `output_tokens: Integer` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Output tokens generated by this request. + - `class BetaManagedAgentsAlwaysAllowPolicy` - format: int32 + Tool calls are automatically approved without user confirmation. - - `speed: :standard | :fast` + - `class BetaManagedAgentsAlwaysAskPolicy` - Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. + Tool calls require user confirmation before execution. - - `:standard` + - `class BetaManagedAgentsAutoPolicy` - - `:fast` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsSpanModelRequestStartEvent` + - `class BetaManagedAgentsGrepToolConfigParams` - Emitted when a model request is initiated by the agent. + Configuration override for the grep tool. - - `type: :"span.model_request_start"` + - `type: :grep` - - `id: String` + - `name: :grep` - Unique identifier for this event. + Must be "grep". - - `processed_at: Time` + - `enabled: bool` - Timestamp when the model request started. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - format: date-time + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSpanModelRequestEndEvent` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - Emitted when a model request completes. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :"span.model_request_end"` + Tool calls are automatically approved without user confirmation. - - `id: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Unique identifier for this event. + Tool calls require user confirmation before execution. - - `is_error: bool` + - `class BetaManagedAgentsAutoPolicy` - Whether the model request resulted in an error. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `model_request_start_id: String` + - `class BetaManagedAgentsWebFetchToolConfigParams` - The id of the corresponding `span.model_request_start` event. + Configuration override for the web_fetch tool. - - `model_usage: BetaManagedAgentsSpanModelUsage` + - `type: :web_fetch` - Token usage for this model request. + - `name: :web_fetch` - - `processed_at: Time` + Must be "web_fetch". - Timestamp when the model request completed. + - `allowed_domains: Array[String]` - format: date-time + Only fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` + - `blocked_domains: Array[String]` - Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. + Never fetch URLs whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme, port, or path). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - `type: :"span.outcome_evaluation_ongoing"` + - `enabled: bool` - - `id: String` + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - Unique identifier for this event. + - `max_content_tokens: Integer` - - `iteration: Integer` + Maximum number of tokens of fetched text content to include in context per call. Does not apply to binary content such as PDFs. - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + format: int32 - format: int32 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `outcome_id: String` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - The `outc_` ID of the outcome being evaluated. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `processed_at: Time` + Tool calls are automatically approved without user confirmation. - Timestamp when this heartbeat was emitted. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: date-time + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsUserDefineOutcomeEvent` + - `class BetaManagedAgentsAutoPolicy` - Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :"user.define_outcome"` + - `url_sources: BetaManagedAgentsWebFetchURLSourcesParams` - - `id: String` + Which sources contribute URLs the tool may fetch. Omit to allow every source. - Unique identifier for this event. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - - `description: String` + Which custom tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be a custom tool in the same tools array. - What the agent should produce. Copied from the input event. + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - - `max_iterations: Integer` + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - Evaluate-then-revise cycles before giving up. Default 3, max 20. + - `:all` - format: int32 + - `:none` - - `outcome_id: String` + - `type BetaManagedAgentsWebFetchURLSourceToolFilter = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone | BetaManagedAgentsWebFetchURLSourceOnly | BetaManagedAgentsWebFetchURLSourceExcept` - Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. + Which tools' results contribute URLs that may be fetched. - - `processed_at: Time` + - `class BetaManagedAgentsWebFetchURLSourceAll` - Timestamp when the outcome was accepted. + Every URL from this source may be fetched. This is the default. - format: date-time + - `type: :all` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `class BetaManagedAgentsWebFetchURLSourceNone` - How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. + This source contributes no URLs that may be fetched. - - `class BetaManagedAgentsFileRubric` + - `type: :none` - Rubric referenced by a file uploaded via the Files API. + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `type: :file` + Only the named tools' results contribute URLs that may be fetched. - - `file_id: String` + - `type: :only` - ID of the rubric file. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsTextRubric` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - Rubric content provided inline as text. + - `type: :tool_reference` - - `type: :text` + Must be "tool_reference". - - `content: String` + - `name: String` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `class BetaManagedAgentsSessionDeletedEvent` + minLength: 1, maxLength: 128 - Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `type: :"session.deleted"` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `id: String` + - `type: :except` - Unique identifier for this event. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `processed_at: Time` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Timestamp when the session was deleted. + - `type: :tool_reference` - format: date-time + Must be "tool_reference". - - `class BetaManagedAgentsSessionThreadStatusRunningEvent` + - `name: String` - A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `type: :"session.thread_status_running"` + minLength: 1, maxLength: 128 - - `id: String` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilterParams` - Unique identifier for this event. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched: "all" (the default), "none", or an only or except list. Each name in a list must be "web_search" or "web_fetch". - - `agent_name: String` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInputParams` - Name of the agent the thread runs. + Whether URLs in the text of user messages may be fetched: "all" (the default) or "none". - - `processed_at: Time` + - `type BetaManagedAgentsWebFetchURLSourceShorthand = :all | :none` - Timestamp of the status transition. + String form of a url_sources value that has no field other than its type: "all" means {"type": "all"} and "none" means {"type": "none"}. - format: date-time + - `type BetaManagedAgentsWebFetchURLSourceUserInput = BetaManagedAgentsWebFetchURLSourceAll | BetaManagedAgentsWebFetchURLSourceNone` - - `session_thread_id: String` + Whether URLs in the text of user messages may be fetched. - Public sthr_ ID of the thread that started running. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `class BetaManagedAgentsSessionThreadStatusIdleEvent` + Every URL from this source may be fetched. This is the default. - A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `type: :"session.thread_status_idle"` + This source contributes no URLs that may be fetched. - - `id: String` + - `class BetaManagedAgentsWebSearchToolConfigParams` - Unique identifier for this event. + Configuration override for the web_search tool. - - `agent_name: String` + - `type: :web_search` - Name of the agent the thread runs. + - `name: :web_search` - - `processed_at: Time` + Must be "web_search". - Timestamp of the status transition. + - `allowed_domains: Array[String]` - format: date-time + Only return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "docs.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with blocked_domains. - - `session_thread_id: String` + - `blocked_domains: Array[String]` - Public sthr_ ID of the thread that went idle. + Never return search results whose host is one of these domains or a subdomain of one. Each entry is a plain hostname like "ads.example.com" (no scheme or port; an optional path suffix is accepted). At most 64 entries; an empty list is rejected (omit the field instead). Cannot be combined with allowed_domains. - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + - `enabled: bool` - Structured information about why the thread stopped. `null` when there is nothing more to report. + Whether this tool is enabled and available to Claude. Overrides the default_config setting. - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSessionEndTurn` + Permission policy for this tool. Controls whether tool calls are auto-approved or require confirmation. - The agent completed its turn naturally and is ready for the next user message. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsSessionRequiresAction` + Tool calls are automatically approved without user confirmation. - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsSessionRetriesExhausted` + Tool calls require user confirmation before execution. - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSessionBudgetReached` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + - `user_location: BetaManagedAgentsUserLocation` - - `class BetaManagedAgentsSessionRefusal` + Approximate user location for search result localization. - The turn ended because the model's response was refused, for example by a safety classifier. + - `type: :approximate` - - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` + Location precision. Only "approximate" is supported. - A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `city: String` - - `type: :"session.thread_status_terminated"` + City name. - - `id: String` + minLength: 1, maxLength: 255 - Unique identifier for this event. + - `country: String` - - `agent_name: String` + Two-letter ISO 3166-1 country code, uppercase. - Name of the agent the thread runs. + - `region: String` - - `processed_at: Time` + Region or state name. - Timestamp of the status transition. + minLength: 1, maxLength: 255 - format: date-time + - `timezone: String` - - `session_thread_id: String` + IANA timezone identifier, e.g. "America/Los_Angeles". - Public sthr_ ID of the thread that terminated. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsUserToolResultEvent` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfigParams` - Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + Default configuration applied to all tools in this set. - - `type: :"user.tool_result"` + - `enabled: bool` - - `id: String` + Whether tools are enabled and available to Claude by default. Defaults to true if not specified. - Unique identifier for this event. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `tool_use_id: String` + Default permission policy for tools. Controls whether tool calls are auto-approved or require confirmation. - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + Tool calls are automatically approved without user confirmation. - The result content returned by the tool. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsTextBlock` + Tool calls require user confirmation before execution. - Regular text content. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsImageBlock` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Image content specified directly as base64 data or as a reference via a URL. + - `class BetaManagedAgentsMCPToolsetParams` - - `class BetaManagedAgentsDocumentBlock` + Configuration for tools from an MCP server defined in `mcp_servers`. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `type: :mcp_toolset` - - `class BetaManagedAgentsSearchResultBlock` + - `mcp_server_name: String` - A block containing a web search result. + Name of the MCP server. Must match a server name from the mcp_servers array. 1-255 characters. - - `is_error: bool` + minLength: 1, maxLength: 255 - Whether the tool execution resulted in an error. + - `configs: Array[BetaManagedAgentsMCPToolConfigParams]` - - `processed_at: Time` + Per-tool configuration overrides. - Timestamp when this result was processed. + - `name: String` - format: date-time + Name of the MCP tool to configure. 1-128 characters. - - `session_thread_id: String` + minLength: 1, maxLength: 128 - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `enabled: bool` - - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` + Whether this tool is enabled. Overrides the `default_config` setting. - A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"session.thread_status_rescheduled"` + Permission policy for this tool. Overrides the `default_config` setting. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `agent_name: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Name of the agent the thread runs. + Tool calls require user confirmation before execution. - - `processed_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Timestamp of the status transition. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfigParams` - - `session_thread_id: String` + Default configuration for all tools from this server. - Public sthr_ ID of the thread that is retrying. + - `enabled: bool` - - `class BetaManagedAgentsSessionUpdatedEvent` + Whether tools are enabled by default. Defaults to true if not specified. - Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"session.updated"` + Default permission policy for tools from this server. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `processed_at: Time` + - `class BetaManagedAgentsAlwaysAskPolicy` - Timestamp when the update was applied. + Tool calls require user confirmation before execution. - format: date-time + - `class BetaManagedAgentsAutoPolicy` - - `agent: BetaManagedAgentsSessionAgent` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. + - `class BetaManagedAgentsCustomToolParams` - - `type: :agent` + A custom tool that is executed by the API client rather than the agent. When the agent calls this tool, an `agent.custom_tool_use` event is emitted and the session goes idle, waiting for the client to provide the result via a `user.custom_tool_result` event. - - `id: String` + - `type: :custom` - `description: String` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Description of what the tool does, shown to the agent to help it decide when to use the tool. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + minLength: 1 - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - An AWS IAM role principal as returned in API responses. + JSON Schema defining the expected input parameters for the tool. - - `type: :aws_role` + - `type: :object` - - `role_arn: String` + - `properties: Hash[Symbol, untyped]` - The IAM role's ARN. + - `required: Array[String]` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + - `name: String` - The Anthropic-managed service account as returned in API responses. + Unique name for the tool. 1-128 characters; letters, digits, underscores, and hyphens. - - `type: :service_account` + minLength: 1, maxLength: 128 - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` +- `budget: BetaManagedAgentsBudgetLimit` - - `type: :url` + Enforced spend ceiling for the session. Set an object to replace the budget of a session that was created with one, or `null` to remove it; omit to preserve. A budget cannot be added to a session created without one (rejected with reason `budget_create_only`), and a removed budget cannot be re-added. Allowed in any non-terminated status. Lowering `max_list_cost` to at or below the session's consumed list cost is rejected with reason `budget_not_raised`, and every model the session can run must have a public list price or the request is rejected with reason `model_not_budgetable`. - - `name: String` + - `type: :limit` - - `url: String` + - `max_list_cost: BetaMonetaryAmount` - - `model: BetaManagedAgentsModelConfig` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - Model identifier and configuration. + - `amount: String` - - `id: BetaManagedAgentsModel` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - The model that will power your agent. + - `currency: BetaCurrency` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `:"claude-haiku-5-5"` +- `metadata: Hash[Symbol, String]` - Fastest model for high-volume, real-time tasks + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. - - `:"claude-sonnet-5-5"` +- `title: String` - Efficient model for coding and agents + Human-readable session title. - - `:"claude-opus-5-5"` + minLength: 1, maxLength: 500 - Powerful intelligence for coding, knowledge work, and long-running agents +- `vault_ids: Array[String]` - - `:"claude-fable-5-1"` + Vault IDs (`vlt_*`) to attach to the session. Not yet supported; requests setting this field are rejected. Reserved for future use. - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows +- `betas: Array[AnthropicBeta]` (header parameter) - - `:"claude-sonnet-5"` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - Efficient model for coding and agents + - `String = String` - - `:"claude-fable-5"` + - `:"message-batches-2024-09-24"` - Next generation of intelligence for the hardest knowledge work and coding problems + - `:"prompt-caching-2024-07-31"` - - `:"claude-opus-5"` + - `:"computer-use-2024-10-22"` - Powerful intelligence for long-running agents and coding + - `:"computer-use-2025-01-24"` - - `:"claude-opus-4-8"` + - `:"pdfs-2024-09-25"` - Powerful intelligence for long-running agents and coding + - `:"token-counting-2024-11-01"` - - `:"claude-opus-4-7"` + - `:"token-efficient-tools-2025-02-19"` - Powerful intelligence for long-running agents and coding + - `:"output-128k-2025-02-19"` - - `:"claude-opus-4-6"` + - `:"files-api-2025-04-14"` - Powerful intelligence for long-running agents and coding + - `:"mcp-client-2025-04-04"` - - `:"claude-sonnet-4-6"` + - `:"mcp-client-2025-11-20"` - Best combination of speed and intelligence + - `:"dev-full-thinking-2025-05-14"` - - `:"claude-haiku-4-5"` + - `:"interleaved-thinking-2025-05-14"` - - `:"claude-haiku-4-5-20251001"` + - `:"code-execution-2025-05-22"` - - `:"claude-opus-4-5"` + - `:"extended-cache-ttl-2025-04-11"` - Powerful intelligence for long-running agents and coding + - `:"context-1m-2025-08-07"` - - `:"claude-opus-4-5-20251101"` + - `:"context-management-2025-06-27"` - Powerful intelligence for long-running agents and coding + - `:"model-context-window-exceeded-2025-08-26"` - - `:"claude-sonnet-4-5"` + - `:"skills-2025-10-02"` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:"fast-mode-2026-02-01"` - High-performance model for agents and coding + - `:"output-300k-2026-03-24"` - - `:"claude-sonnet-4-5-20250929"` + - `:"user-profiles-2026-03-24"` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `:"user-profiles-2026-08-18"` - High-performance model for agents and coding + - `:"user-profiles-2026-09-04"` - - `String = String` + - `:"advisor-tool-2026-03-01"` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `:"managed-agents-2026-04-01"` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaManagedAgentsEffortLow` + - `:"dreaming-2026-04-21"` - Low effort. Favors latency over reasoning depth. + - `:"thinking-token-count-2026-05-13"` - - `type: :low` + - `:"server-side-fallback-2026-06-01"` - - `class BetaManagedAgentsEffortMedium` + - `:"server-side-fallback-2026-07-01"` - Medium effort. Balances latency and reasoning depth. + - `:"fallback-credit-2026-06-01"` - - `type: :medium` + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsEffortHigh` + - `:"agent-memory-2026-07-22"` - High effort. Favors reasoning depth. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `type: :high` + - `:"compact-2026-01-12"` - - `class BetaManagedAgentsEffortXhigh` + - `:"computer-use-2025-11-24"` - Extra-high effort. Not all models accept this level. + - `:"mcp-tunnels-2026-06-22"` - - `type: :xhigh` + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsEffortMax` + - `:"task-budgets-2026-03-13"` - Maximum effort. Favors reasoning depth over latency. + - `:"thinking-display-updates-2026-08-18"` - - `type: :max` + - `:"ce-user-management-2026-07-13"` - - `inference_geo: String` + - `:"mid-conversation-output-config-2026-07-01"` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `:"thinking-binding-controls-2026-08-01"` - - `speed: :standard | :fast` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `:"compact-2026-09-04"` - - `:standard` + - `:"inline-tools-2026-09-15"` - - `:fast` + - `:"mcp-client-2026-09-15"` - - `multiagent: BetaManagedAgentsSessionMultiagent` + - `:"ce-plugins-2026-09-01"` - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + - `:"spend-limit-reads-2026-09-26"` - - `class BetaManagedAgentsSessionMultiagentCoordinator` + - `:"telemetry-destinations-2026-08-11"` - Resolved coordinator topology with full agent definitions for each roster member. + - `:"webhooks-2026-10-07"` - - `type: :coordinator` +- `workspace_id: String` (header parameter) - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Full `agent` definitions the coordinator may spawn as session threads. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaManagedAgentsSessionThreadAgent` +#### Returns - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. +- `class BetaManagedAgentsSession` - - `type: :agent` + A Managed Agents `session`. - - `id: String` + - `type: :session` - - `description: String` + - `id: String` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `agent: BetaManagedAgentsSessionAgent` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `type: :agent` - - `type: :url` + - `id: String` - - `name: String` + - `description: String` - - `url: String` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `model: BetaManagedAgentsModelConfig` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Model identifier and configuration. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `name: String` + An AWS IAM role principal as returned in API responses. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `type: :aws_role` - - `class BetaManagedAgentsAnthropicSkill` + - `role_arn: String` - A resolved Anthropic-managed skill. + The IAM role's ARN. - - `type: :anthropic` + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `skill_id: String` + The Anthropic-managed service account as returned in API responses. - - `version: String` + - `type: :service_account` - - `class BetaManagedAgentsCustomSkill` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - A resolved user-created custom skill. + - `type: :url` - - `type: :custom` + - `name: String` - - `skill_id: String` + - `url: String` - - `version: String` + - `model: BetaManagedAgentsModelConfig` - - `system_: String` + Model identifier and configuration. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `id: BetaManagedAgentsModel` - - `class BetaManagedAgentsAgentToolset20260401` + The model that will power your agent. - - `type: :agent_toolset_20260401` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `:"claude-haiku-5-5"` - - `class BetaManagedAgentsBashToolConfig` + Fastest model for high-volume, real-time tasks - Configuration for the bash tool. + - `:"claude-sonnet-5-5"` - - `type: :bash` + Efficient model for coding and agents - - `enabled: bool` + - `:"claude-opus-5-5"` - - `name: :bash` + Powerful intelligence for coding, knowledge work, and long-running agents - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-fable-5-1"` - Permission policy for tool execution. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"claude-sonnet-5"` - Tool calls are automatically approved without user confirmation. + Efficient model for coding and agents - - `type: :always_allow` + - `:"claude-fable-5"` - - `class BetaManagedAgentsAlwaysAskPolicy` + Next generation of intelligence for the hardest knowledge work and coding problems - Tool calls require user confirmation before execution. + - `:"claude-opus-5"` - - `type: :always_ask` + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsAutoPolicy` + - `:"claude-opus-4-8"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Powerful intelligence for long-running agents and coding - - `type: :auto` + - `:"claude-opus-4-7"` - - `class BetaManagedAgentsEditToolConfig` + Powerful intelligence for long-running agents and coding - Configuration for the edit tool. + - `:"claude-opus-4-6"` - - `type: :edit` + Powerful intelligence for long-running agents and coding - - `enabled: bool` + - `:"claude-sonnet-4-6"` - - `name: :edit` + Best combination of speed and intelligence - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-haiku-4-5"` - Permission policy for tool execution. + - `:"claude-haiku-4-5-20251001"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"claude-opus-4-5"` - Tool calls are automatically approved without user confirmation. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"claude-opus-4-5-20251101"` - Tool calls require user confirmation before execution. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-4-5"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `class BetaManagedAgentsReadToolConfig` + High-performance model for agents and coding - Configuration for the read tool. + - `:"claude-sonnet-4-5-20250929"` - - `type: :read` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `enabled: bool` + High-performance model for agents and coding - - `name: :read` + - `String = String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - Permission policy for tool execution. + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsEffortLow` - Tool calls are automatically approved without user confirmation. + Low effort. Favors latency over reasoning depth. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :low` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsEffortMedium` - - `class BetaManagedAgentsAutoPolicy` + Medium effort. Balances latency and reasoning depth. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :medium` - - `class BetaManagedAgentsWriteToolConfig` + - `class BetaManagedAgentsEffortHigh` - Configuration for the write tool. + High effort. Favors reasoning depth. - - `type: :write` + - `type: :high` - - `enabled: bool` + - `class BetaManagedAgentsEffortXhigh` - - `name: :write` + Extra-high effort. Not all models accept this level. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :xhigh` - Permission policy for tool execution. + - `class BetaManagedAgentsEffortMax` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Maximum effort. Favors reasoning depth over latency. - Tool calls are automatically approved without user confirmation. + - `type: :max` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `inference_geo: String` - Tool calls require user confirmation before execution. + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `class BetaManagedAgentsAutoPolicy` + - `speed: :standard | :fast` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `class BetaManagedAgentsGlobToolConfig` + - `:standard` - Configuration for the glob tool. + - `:fast` - - `type: :glob` + - `multiagent: BetaManagedAgentsSessionMultiagent` - - `enabled: bool` + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - - `name: :glob` + - `class BetaManagedAgentsSessionMultiagentCoordinator` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Resolved coordinator topology with full agent definitions for each roster member. - Permission policy for tool execution. + - `type: :coordinator` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - Tool calls are automatically approved without user confirmation. + Full `agent` definitions the coordinator may spawn as session threads. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsSessionThreadAgent` - Tool calls require user confirmation before execution. + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `class BetaManagedAgentsAutoPolicy` + - `type: :agent` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `id: String` - - `class BetaManagedAgentsGrepToolConfig` + - `description: String` - Configuration for the grep tool. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `type: :grep` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `enabled: bool` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `name: :grep` + - `type: :url` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `name: String` - Permission policy for tool execution. + - `url: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `model: BetaManagedAgentsModelConfig` - Tool calls are automatically approved without user confirmation. + Model identifier and configuration. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `name: String` - Tool calls require user confirmation before execution. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAnthropicSkill` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + A resolved Anthropic-managed skill. - - `class BetaManagedAgentsWebFetchToolConfig` + - `type: :anthropic` - Configuration for the web_fetch tool. + - `skill_id: String` - - `type: :web_fetch` + - `version: String` - - `enabled: bool` + - `class BetaManagedAgentsCustomSkill` - - `name: :web_fetch` + A resolved user-created custom skill. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :custom` - Permission policy for tool execution. + - `skill_id: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `version: String` - Tool calls are automatically approved without user confirmation. + - `system_: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsAgentToolset20260401` - - `class BetaManagedAgentsAutoPolicy` + - `type: :agent_toolset_20260401` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `class BetaManagedAgentsBashToolConfig` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + Configuration for the bash tool. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `type: :bash` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `enabled: bool` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `name: :bash` - Every URL from this source may be fetched. This is the default. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :all` + Permission policy for tool execution. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `class BetaManagedAgentsAlwaysAllowPolicy` - This source contributes no URLs that may be fetched. + Tool calls are automatically approved without user confirmation. - - `type: :none` + - `type: :always_allow` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `class BetaManagedAgentsAlwaysAskPolicy` - Only the named tools' results contribute URLs that may be fetched. + Tool calls require user confirmation before execution. - - `type: :only` + - `type: :always_ask` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `class BetaManagedAgentsAutoPolicy` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :tool_reference` + - `type: :auto` - Must be "tool_reference". + - `class BetaManagedAgentsEditToolConfig` - - `name: String` + Configuration for the edit tool. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `type: :edit` - minLength: 1, maxLength: 128 + - `enabled: bool` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `name: :edit` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :except` + Permission policy for tool execution. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + Tool calls are automatically approved without user confirmation. - - `type: :tool_reference` + - `class BetaManagedAgentsAlwaysAskPolicy` - Must be "tool_reference". + Tool calls require user confirmation before execution. - - `name: String` + - `class BetaManagedAgentsAutoPolicy` - Name of the tool. Compared exactly, so upper and lower case letters are different. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - minLength: 1, maxLength: 128 + - `class BetaManagedAgentsReadToolConfig` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + Configuration for the read tool. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `type: :read` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `enabled: bool` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `name: :read` - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Every URL from this source may be fetched. This is the default. + Permission policy for tool execution. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `class BetaManagedAgentsAlwaysAllowPolicy` - This source contributes no URLs that may be fetched. + Tool calls are automatically approved without user confirmation. - - `allowed_domains: Array[String]` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `blocked_domains: Array[String]` + Tool calls require user confirmation before execution. - - `max_content_tokens: Integer` + - `class BetaManagedAgentsAutoPolicy` - format: int32 + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsWebSearchToolConfig` + - `class BetaManagedAgentsWriteToolConfig` - Configuration for the web_search tool. + Configuration for the write tool. - - `type: :web_search` + - `type: :write` - - `enabled: bool` + - `enabled: bool` - - `name: :web_search` + - `name: :write` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - Permission policy for tool execution. - - - `class BetaManagedAgentsAlwaysAllowPolicy` - - Tool calls are automatically approved without user confirmation. - - - `class BetaManagedAgentsAlwaysAskPolicy` - - Tool calls require user confirmation before execution. - - - `class BetaManagedAgentsAutoPolicy` - - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - - `allowed_domains: Array[String]` - - - `blocked_domains: Array[String]` - - - `user_location: BetaManagedAgentsUserLocation` - - Approximate user location for search result localization. - - - `type: :approximate` - - Location precision. Only "approximate" is supported. - - - `city: String` - - City name. - - minLength: 1, maxLength: 255 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `country: String` + Permission policy for tool execution. - Two-letter ISO 3166-1 country code, uppercase. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `region: String` + Tool calls are automatically approved without user confirmation. - Region or state name. + - `class BetaManagedAgentsAlwaysAskPolicy` - minLength: 1, maxLength: 255 + Tool calls require user confirmation before execution. - - `timezone: String` + - `class BetaManagedAgentsAutoPolicy` - IANA timezone identifier, e.g. "America/Los_Angeles". + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsGlobToolConfig` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + Configuration for the glob tool. - Resolved default configuration for agent tools. + - `type: :glob` - `enabled: bool` + - `name: :glob` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` Permission policy for tool execution. @@ -46828,15 +46131,15 @@ List Events The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsGrepToolConfig` - - `type: :mcp_toolset` + Configuration for the grep tool. - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `type: :grep` - `enabled: bool` - - `name: String` + - `name: :grep` - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` @@ -46854,12 +46157,16 @@ List Events The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `class BetaManagedAgentsWebFetchToolConfig` - Resolved default configuration for all tools from an MCP server. + Configuration for the web_fetch tool. + + - `type: :web_fetch` - `enabled: bool` + - `name: :web_fetch` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` Permission policy for tool execution. @@ -46876,1023 +46183,1094 @@ List Events The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `mcp_server_name: String` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `class BetaManagedAgentsCustomTool` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - A custom tool as returned in API responses. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `type: :custom` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `description: String` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + Every URL from this source may be fetched. This is the default. - JSON Schema for custom tool input parameters. + - `type: :all` - - `type: :object` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `properties: Hash[Symbol, untyped]` + This source contributes no URLs that may be fetched. - - `required: Array[String]` + - `type: :none` - - `name: String` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `version: Integer` + Only the named tools' results contribute URLs that may be fetched. - format: int32 + - `type: :only` - - `class BetaManagedAgentsAdvisor` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `type: :advisor` + - `type: :tool_reference` - - `model: String` + Must be "tool_reference". - The advisor model id. + - `name: String` - - `class BetaManagedAgentsSessionMultiagent20261001` + Name of the tool. Compared exactly, so upper and lower case letters are different. - Resolved multiagent configuration with three members, as copied to the `session` at creation. + minLength: 1, maxLength: 128 - - `type: :multiagent_20261001` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `advisor: BetaManagedAgentsMultiagentAdvisor` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - Whether the session's primary thread can consult an advisor model. + - `type: :except` - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - The session's primary thread can consult `model` mid-turn. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `type: :enabled` + - `type: :tool_reference` - - `model: String` + Must be "tool_reference". - The advisor model id. + - `name: String` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The agent has no advisor. + minLength: 1, maxLength: 128 - - `type: :disabled` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - Whether the agent can spawn session threads. + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - The agent can spawn session threads. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `type: :enabled` + Every URL from this source may be fetched. This is the default. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `class BetaManagedAgentsWebFetchURLSourceNone` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + This source contributes no URLs that may be fetched. - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `allowed_domains: Array[String]` - The agent can define inline agents. + - `blocked_domains: Array[String]` - - `type: :enabled` + - `max_content_tokens: Integer` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + format: int32 - The agent cannot define inline agents. + - `class BetaManagedAgentsWebSearchToolConfig` - - `type: :disabled` + Configuration for the web_search tool. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `type: :web_search` - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. + - `enabled: bool` - - `type: :agent` + - `name: :web_search` - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `description: String` + Permission policy for tool execution. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Tool calls are automatically approved without user confirmation. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `model: BetaManagedAgentsModelConfig` + Tool calls require user confirmation before execution. - Model identifier and configuration. + - `class BetaManagedAgentsAutoPolicy` - - `name: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `allowed_domains: Array[String]` - - `system_: String` + - `blocked_domains: Array[String]` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `user_location: BetaManagedAgentsUserLocation` - - `version: Integer` + Approximate user location for search result localization. - format: int32 + - `type: :approximate` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + Location precision. Only "approximate" is supported. - The agent cannot spawn session threads. + - `city: String` - - `type: :disabled` + City name. - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + minLength: 1, maxLength: 255 - Whether the agent can start workflow runs. + - `country: String` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + Two-letter ISO 3166-1 country code, uppercase. - The agent can start workflow runs. + - `region: String` - - `type: :enabled` + Region or state name. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + minLength: 1, maxLength: 255 - Whether a run's plan can define inline agents, which are not saved. + - `timezone: String` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + IANA timezone identifier, e.g. "America/Los_Angeles". - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + minLength: 1, maxLength: 255 - - `type: :agent` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `id: String` + Resolved default configuration for agent tools. - - `description: String` + - `enabled: bool` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Permission policy for tool execution. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `model: BetaManagedAgentsModelConfig` + Tool calls are automatically approved without user confirmation. - Model identifier and configuration. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `name: String` + Tool calls require user confirmation before execution. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsAutoPolicy` - - `system_: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsMCPToolset` - - `version: Integer` + - `type: :mcp_toolset` - format: int32 + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `enabled: bool` - The agent cannot start workflow runs. + - `name: String` - - `type: :disabled` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `name: String` + Permission policy for tool execution. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsAnthropicSkill` + Tool calls are automatically approved without user confirmation. - A resolved Anthropic-managed skill. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsCustomSkill` + Tool calls require user confirmation before execution. - A resolved user-created custom skill. + - `class BetaManagedAgentsAutoPolicy` - - `system_: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `class BetaManagedAgentsAgentToolset20260401` + Resolved default configuration for all tools from an MCP server. - - `class BetaManagedAgentsMCPToolset` + - `enabled: bool` - - `class BetaManagedAgentsCustomTool` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A custom tool as returned in API responses. + Permission policy for tool execution. - - `version: Integer` + - `class BetaManagedAgentsAlwaysAllowPolicy` - format: int32 + Tool calls are automatically approved without user confirmation. - - `budget: BetaManagedAgentsBudgetLimit` + - `class BetaManagedAgentsAlwaysAskPolicy` - The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. + Tool calls require user confirmation before execution. - - `type: :limit` + - `class BetaManagedAgentsAutoPolicy` - - `max_list_cost: BetaMonetaryAmount` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `mcp_server_name: String` - - `amount: String` + - `class BetaManagedAgentsCustomTool` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + A custom tool as returned in API responses. - - `currency: BetaCurrency` + - `type: :custom` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `description: String` - - `metadata: Hash[Symbol, String]` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. + JSON Schema for custom tool input parameters. - - `title: String` + - `type: :object` - The session's new title. Present only when the update changed it. + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsSystemMessageEvent` + - `required: Array[String]` - A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. + - `name: String` - - `type: :"system.message"` + - `version: Integer` - - `id: String` + format: int32 - Unique identifier for this event. + - `class BetaManagedAgentsAdvisor` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - System content blocks. Text-only. + - `type: :advisor` - - `type: :text` + - `model: String` - - `text: String` + The advisor model id. - The text content. + - `class BetaManagedAgentsSessionMultiagent20261001` - minLength: 1 + Resolved multiagent configuration with three members, as copied to the `session` at creation. - - `processed_at: Time` + - `type: :multiagent_20261001` - Timestamp when this system message was processed. + - `advisor: BetaManagedAgentsMultiagentAdvisor` - format: date-time + Whether the session's primary thread can consult an advisor model. - - `class BetaManagedAgentsSessionUsageEvent` + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - Periodic snapshot of the session's cumulative usage and tracked list cost. + The session's primary thread can consult `model` mid-turn. - - `type: :"session.usage"` + - `type: :enabled` - - `id: String` + - `model: String` - Unique identifier for this event. + The advisor model id. - - `processed_at: Time` + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - Timestamp when the snapshot was taken. + The agent has no advisor. - format: date-time + - `type: :disabled` - - `usage: BetaManagedAgentsSessionUsageSnapshot` + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - The session's cumulative usage at the snapshot time. + Whether the agent can spawn session threads. - - `active_seconds: Float` + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. + The agent can spawn session threads. - format: double + - `type: :enabled` - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Tokens used to create prompt cache entries, broken down by cache TTL. + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `ephemeral_1h_input_tokens: Integer` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - Tokens used to create 1-hour ephemeral cache entries. + The agent can define inline agents. - format: int32 + - `type: :enabled` - - `ephemeral_5m_input_tokens: Integer` + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - Tokens used to create 5-minute ephemeral cache entries. + The agent cannot define inline agents. - format: int32 + - `type: :disabled` - - `cache_read_input_tokens: Integer` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - Total tokens read from prompt cache. + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - format: int32 + - `type: :agent` - - `input_tokens: Integer` + - `id: String` - Total input tokens consumed across all turns. + - `description: String` - format: int32 + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `list_cost: BetaMonetaryAmount` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Cumulative list cost of the session across all turns, priced at public list rates. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `output_tokens: Integer` + - `model: BetaManagedAgentsModelConfig` - Total output tokens generated across all turns. + Model identifier and configuration. - format: int32 + - `name: String` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Cumulative server-executed tool usage across all turns. + - `system_: String` - - `web_fetch_requests: Integer` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Number of server-executed web fetch requests. + - `version: Integer` - format: int32 + format: int32 - - `web_search_requests: Integer` + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - Number of server-executed web search requests. + The agent cannot spawn session threads. - format: int32 + - `type: :disabled` - - `budget: BetaManagedAgentsBudgetLimit` + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - The session's configured budget at the snapshot time, or null when the session has no budget. + Whether the agent can start workflow runs. - - `class BetaManagedAgentsWorkflowRunCreatedEvent` + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. + The agent can start workflow runs. - - `type: :"workflow_run.created"` + - `type: :enabled` - - `id: String` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Unique identifier for this event. + Whether a run's plan can define inline agents, which are not saved. - - `description: String` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - Description that the agent gave the run, passed on as written, or `null` if it gave none. + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - - `name: String` + - `type: :agent` - Name that the agent gave the run, passed on as written, or a name that the server assigned. + - `id: String` - - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` + - `description: String` - The phases that the run's plan declares, in the plan's order. Can be empty. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `id: String` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Unique identifier for the phase. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `description: String` + - `model: BetaManagedAgentsModelConfig` - Description that the agent gave the phase, passed on as written, or `null` if it gave none. + Model identifier and configuration. - - `name: String` + - `name: String` - Name that the agent gave the phase, passed on as written. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `processed_at: Time` + - `system_: String` - Timestamp when this event was processed. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - format: date-time + - `version: Integer` - - `workflow_run_id: String` + format: int32 - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` + The agent cannot start workflow runs. - A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. + - `type: :disabled` - - `type: :"workflow_run.status_ended"` + - `name: String` - - `id: String` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Unique identifier for this event. + - `class BetaManagedAgentsAnthropicSkill` - - `processed_at: Time` + A resolved Anthropic-managed skill. - Timestamp when this event was processed. + - `class BetaManagedAgentsCustomSkill` - format: date-time + A resolved user-created custom skill. - - `result: BetaManagedAgentsWorkflowRunResult` + - `system_: String` - How the run ended. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `class BetaManagedAgentsWorkflowRunResultCompleted` + - `class BetaManagedAgentsAgentToolset20260401` - The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. + - `class BetaManagedAgentsMCPToolset` - - `type: :completed` + - `class BetaManagedAgentsCustomTool` - - `class BetaManagedAgentsWorkflowRunResultError` + A custom tool as returned in API responses. - The run failed or reached its time limit. + - `version: Integer` - - `type: :error` + format: int32 - - `error: BetaManagedAgentsWorkflowRunError` + - `archived_at: Time` - Why the run did not finish. + When the session was archived. Null if not archived. - - `class BetaManagedAgentsTimeoutWorkflowRunError` + format: date-time - The run reached its time limit. + - `budget: BetaManagedAgentsBudgetLimit` - - `type: :timeout_error` + The session's enforced spend ceiling, or null when no budget is set. - - `message: String` + - `type: :limit` - Short explanation written by the server. It never contains content from the run or its agents. + - `max_list_cost: BetaMonetaryAmount` - - `class BetaManagedAgentsProgramWorkflowRunError` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - The plan, a program that the agent wrote, failed, or the server refused it. + - `amount: String` - - `type: :program_error` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `message: String` + - `currency: BetaCurrency` - Short explanation written by the server. It never contains content from the run or its agents. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `class BetaManagedAgentsUnknownWorkflowRunError` + - `created_at: Time` - A failure that has no type of its own. + A timestamp in RFC 3339 format - - `type: :unknown_error` + format: date-time - - `message: String` + - `environment_id: String` - Short explanation written by the server. It never contains content from the run or its agents. + - `metadata: Hash[Symbol, String]` - - `class BetaManagedAgentsThreadLimitWorkflowRunError` + - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` - The run exceeded the limit on the number of threads that a run can create. + Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. - - `type: :thread_limit_error` + - `type: :outcome_evaluation` - - `message: String` + - `completed_at: Time` - Short explanation written by the server. It never contains content from the run or its agents. + When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. - - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` + format: date-time - No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. + - `description: String` - - `type: :max_workflow_runs_error` + What the agent should produce. - - `message: String` + - `explanation: String` - Short explanation written by the server. It never contains content from the run or its agents. + Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. - - `class BetaManagedAgentsWorkflowRunResultStopped` + - `iteration: Integer` - The agent stopped the run. + 0-indexed revision cycle the outcome is currently on. - - `type: :stopped` + format: int32 - - `workflow_run_id: String` + - `outcome_id: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Server-generated outc_ ID for this outcome. - - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` + - `result: String` - A workflow run's plan entered a phase. + Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. - - `type: :"workflow_run.phase_started"` + - `resources: Array[BetaManagedAgentsSessionResource]` - - `id: String` + - `class BetaManagedAgentsGitHubRepositoryResource` - Unique identifier for this event. + - `type: :github_repository` - - `processed_at: Time` + - `id: String` - Timestamp when this event was processed. + - `created_at: Time` - format: date-time + A timestamp in RFC 3339 format - - `workflow_run_id: String` + format: date-time - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `mount_path: String` - - `workflow_run_phase_id: String` + - `updated_at: Time` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` + format: date-time - A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. + - `url: String` - - `type: :"workflow_run.phase_ended"` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `id: String` + - `class BetaManagedAgentsBranchCheckout` - Unique identifier for this event. + - `type: :branch` - - `phase_started_id: String` + - `name: String` - Identifier of the `workflow_run.phase_started` event that opened the phase. + Branch name to check out. - - `processed_at: Time` + minLength: 1, maxLength: 255 - Timestamp when this event was processed. + - `class BetaManagedAgentsCommitCheckout` - format: date-time + - `type: :commit` - - `workflow_run_id: String` + - `sha: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Full commit SHA to check out. - - `workflow_run_phase_id: String` + minLength: 7, maxLength: 64 - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + - `class BetaManagedAgentsFileResource` - - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` + - `type: :file` - A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. + - `id: String` - - `type: :"workflow_run.status_running"` + - `created_at: Time` - - `id: String` + A timestamp in RFC 3339 format - Unique identifier for this event. + format: date-time - - `processed_at: Time` + - `file_id: String` - Timestamp when this event was processed. + - `mount_path: String` - format: date-time + - `updated_at: Time` - - `workflow_run_id: String` + A timestamp in RFC 3339 format - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + format: date-time - - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` + - `class BetaManagedAgentsMemoryStoreResource` - A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. + A memory store attached to an agent session. - - `type: :"workflow_run.status_idle"` + - `type: :memory_store` - - `id: String` + - `memory_store_id: String` - Unique identifier for this event. + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - - `processed_at: Time` + - `access: :read_write | :read_only` - Timestamp when this event was processed. + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - format: date-time + - `:read_write` - - `workflow_run_id: String` + - `:read_only` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `description: String` - - `class BetaManagedAgentsWorkflowRunErrorEvent` + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. + - `instructions: String` - - `type: :"workflow_run.error"` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `id: String` + maxLength: 4096 - Unique identifier for this event. + - `mount_path: String` - - `error: BetaManagedAgentsWorkflowRunError` + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - Why the run did not finish, or was not created. + - `name: String` - - `processed_at: Time` + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - Timestamp when this event was processed. + - `stats: BetaManagedAgentsSessionStats` - format: date-time + Timing statistics for the session. - - `workflow_run_id: String` + - `active_seconds: Float` - Identifier of the run that met the error, or `null` when the error kept a run from being created. + Cumulative time in seconds the session spent in `running` status. Excludes idle time. -#### Example + format: double -```ruby -require "anthropic" + - `duration_seconds: Float` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. -page = anthropic.beta.sessions.events.list("sesn_011CZkZAtmR3yMPDzynEDxu7") + format: double -puts(page) -``` + - `status: :rescheduling | :running | :idle | :terminated` -##### Response (200) + - `:rescheduling` -```json -{ - "data": [ - { - "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", - "content": [ - { - "text": "Where is my order #1234?", - "type": "text" - } - ], - "type": "user.message", - "processed_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sevt_011CZkZHPq1jCdq5mbRTjiVn", - "content": [ - { - "text": "Let me look up order #1234 for you.", - "type": "text" - } - ], - "processed_at": "2026-03-15T10:00:00Z", - "type": "agent.message" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + Transient error occurred, retrying automatically. -### Send Events + - `:running` -`beta.sessions.events.send_(session_id, **kwargs) -> BetaManagedAgentsSendSessionEvents` + Agent is actively executing. -**POST** `/v1/sessions/{session_id}/events` + - `:idle` -Send Events + Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. -#### Parameters + - `:terminated` -- `session_id: String` (path parameter) + Session has ended, either due to an error or completion. -- `events: Array[BetaManagedAgentsEventParams]` + - `title: String` - Events to send to the `session`. + - `updated_at: Time` - - `class BetaManagedAgentsUserMessageEventParams` + A timestamp in RFC 3339 format - Parameters for sending a user message to the session. + format: date-time - - `type: :"user.message"` + - `usage: BetaManagedAgentsSessionUsage` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Cumulative token usage for the session. - Array of content blocks for the user message. + - `active_seconds: Float` - - `class BetaManagedAgentsTextBlock` + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. - Regular text content. + format: double - - `type: :text` + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `text: String` + Tokens used to create prompt cache entries, broken down by cache TTL. - The text content. + - `ephemeral_1h_input_tokens: Integer` - minLength: 1 + Tokens used to create 1-hour ephemeral cache entries. - - `class BetaManagedAgentsImageBlock` + format: int32 - Image content specified directly as base64 data or as a reference via a URL. + - `ephemeral_5m_input_tokens: Integer` - - `type: :image` + Tokens used to create 5-minute ephemeral cache entries. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + format: int32 - The source of the image data. + - `cache_read_input_tokens: Integer` - - `class BetaManagedAgentsBase64ImageSource` + Total tokens read from prompt cache. - Base64-encoded image data. + format: int32 - - `type: :base64` + - `input_tokens: Integer` - - `data: String` + Total input tokens consumed across all turns. - Base64-encoded image data. + format: int32 - minLength: 1 + - `list_cost: BetaMonetaryAmount` - - `media_type: String` + Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `output_tokens: Integer` - minLength: 1 + Total output tokens generated across all turns. - - `class BetaManagedAgentsURLImageSource` + format: int32 - Image referenced by URL. + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `type: :url` + Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. - - `url: String` + - `web_fetch_requests: Integer` - URL of the image to fetch. + Number of server-executed web fetch requests. - minLength: 1 + format: int32 - - `class BetaManagedAgentsFileImageSource` + - `web_search_requests: Integer` - Image referenced by file ID. + Number of server-executed web search requests. - - `type: :file` + format: int32 - - `file_id: String` + - `vault_ids: Array[String]` - ID of a previously uploaded file. + Vault IDs attached to the session at creation. Empty when no vaults were supplied. - minLength: 1 + - `deployment_id: String` - - `class BetaManagedAgentsDocumentBlock` + Deployment ID when the session was created from a deployment reference. Null otherwise. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. +#### Example - - `type: :document` +```ruby +require "anthropic" - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The source of the document data. +beta_managed_agents_session = anthropic.beta.sessions.update("sesn_011CZkZAtmR3yMPDzynEDxu7") - - `class BetaManagedAgentsBase64DocumentSource` +puts(beta_managed_agents_session) +``` - Base64-encoded document data. +##### Response (200) - - `type: :base64` +```json +{ + "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + } + ], + "type": "coordinator" + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + }, + "created_at": "2026-03-15T10:00:00Z", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "metadata": {}, + "outcome_evaluations": [ + { + "completed_at": "2026-03-15T10:02:31Z", + "description": "Produce a 2-page summary as summary.md", + "explanation": "All five sections present with inline citations.", + "iteration": 0, + "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", + "result": "satisfied", + "type": "outcome_evaluation" + } + ], + "resources": [ + { + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } + } + ], + "stats": { + "active_seconds": 0, + "duration_seconds": 0 + }, + "status": "idle", + "title": "Order #1234 inquiry", + "type": "session", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "deployment_id": "deployment_id" +} +``` - - `data: String` +### Delete Session - Base64-encoded document data. +`beta.sessions.delete(session_id, **kwargs) -> BetaManagedAgentsDeletedSession` - minLength: 1 - - - `media_type: String` - - MIME type of the document (e.g., "application/pdf"). - - minLength: 1 - - - `class BetaManagedAgentsPlainTextDocumentSource` - - Plain text document content. - - - `type: :text` - - - `data: String` - - The plain text content. - - minLength: 1 - - - `media_type: :"text/plain"` - - MIME type of the text content. Must be "text/plain". - - - `class BetaManagedAgentsURLDocumentSource` - - Document referenced by URL. - - - `type: :url` - - - `url: String` - - URL of the document to fetch. - - minLength: 1 - - - `class BetaManagedAgentsFileDocumentSource` - - Document referenced by file ID. - - - `type: :file` - - - `file_id: String` - - ID of a previously uploaded file. - - minLength: 1 - - - `context: String` - - Additional context about the document for the model. - - - `title: String` - - The title of the document. - - - `class BetaManagedAgentsRedactedBlock` - - Placeholder for content withheld by Anthropic model policy. - - - `type: :redacted` - - - `class BetaManagedAgentsUserInterruptEventParams` - - Parameters for sending an interrupt to pause the agent. - - - `type: :"user.interrupt"` - - - `session_thread_id: String` - - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - - `class BetaManagedAgentsUserToolConfirmationEventParams` - - Parameters for confirming or denying a tool execution request. - - - `type: :"user.tool_confirmation"` - - - `result: :allow | :deny` - - The confirmation result: 'allow' or 'deny'. - - - `:allow` - - - `:deny` - - - `tool_use_id: String` - - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - minLength: 1, maxLength: 128 - - - `deny_message: String` - - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - - maxLength: 10000 - - - `class BetaManagedAgentsUserCustomToolResultEventParams` - - Parameters for providing the result of a custom tool execution. - - - `type: :"user.custom_tool_result"` - - - `custom_tool_use_id: String` +**DELETE** `/v1/sessions/{session_id}` - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. +Delete Session - minLength: 1, maxLength: 128 +#### Parameters - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` +- `session_id: String` (path parameter) - The result content returned by the tool. +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaManagedAgentsTextBlock` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - Regular text content. + - `String = String` - - `class BetaManagedAgentsImageBlock` + - `:"message-batches-2024-09-24"` - Image content specified directly as base64 data or as a reference via a URL. + - `:"prompt-caching-2024-07-31"` - - `class BetaManagedAgentsDocumentBlock` + - `:"computer-use-2024-10-22"` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsSearchResultBlock` + - `:"pdfs-2024-09-25"` - A block containing a web search result. + - `:"token-counting-2024-11-01"` - - `type: :search_result` + - `:"token-efficient-tools-2025-02-19"` - - `citations: BetaManagedAgentsSearchResultCitations` + - `:"output-128k-2025-02-19"` - Citation settings for this search result. + - `:"files-api-2025-04-14"` - - `enabled: bool` + - `:"mcp-client-2025-04-04"` - Whether citations are enabled for this search result. + - `:"mcp-client-2025-11-20"` - - `content: Array[BetaManagedAgentsSearchResultContent]` + - `:"dev-full-thinking-2025-05-14"` - Array of text content blocks from the search result. + - `:"interleaved-thinking-2025-05-14"` - - `type: :text` + - `:"code-execution-2025-05-22"` - - `text: String` + - `:"extended-cache-ttl-2025-04-11"` - The text content. + - `:"context-1m-2025-08-07"` - minLength: 1 + - `:"context-management-2025-06-27"` - - `source: String` + - `:"model-context-window-exceeded-2025-08-26"` - The URL source of the search result. + - `:"skills-2025-10-02"` - minLength: 1 + - `:"fast-mode-2026-02-01"` - - `title: String` + - `:"output-300k-2026-03-24"` - The title of the search result. + - `:"user-profiles-2026-03-24"` - minLength: 1 + - `:"user-profiles-2026-08-18"` - - `is_error: bool` + - `:"user-profiles-2026-09-04"` - Whether the tool execution resulted in an error. + - `:"advisor-tool-2026-03-01"` - - `class BetaManagedAgentsUserDefineOutcomeEventParams` + - `:"managed-agents-2026-04-01"` - Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. + - `:"cache-diagnosis-2026-04-07"` - - `type: :"user.define_outcome"` + - `:"dreaming-2026-04-21"` - - `description: String` + - `:"thinking-token-count-2026-05-13"` - What the agent should produce. This is the task specification. + - `:"server-side-fallback-2026-06-01"` - - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` + - `:"server-side-fallback-2026-07-01"` - How to grade the outcome. Text or file reference. + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsFileRubricParams` + - `:"fallback-credit-2026-07-01"` - Rubric referenced by a file uploaded via the Files API. + - `:"agent-memory-2026-07-22"` - - `type: :file` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `file_id: String` + - `:"compact-2026-01-12"` - ID of the rubric file. + - `:"computer-use-2025-11-24"` - - `class BetaManagedAgentsTextRubricParams` + - `:"mcp-tunnels-2026-06-22"` - Rubric content provided inline as text. + - `:"structured-outputs-2025-11-13"` - - `type: :text` + - `:"task-budgets-2026-03-13"` - - `content: String` + - `:"thinking-display-updates-2026-08-18"` - Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + - `:"ce-user-management-2026-07-13"` - maxLength: 262144 + - `:"mid-conversation-output-config-2026-07-01"` - - `max_iterations: Integer` + - `:"thinking-binding-controls-2026-08-01"` - Eval→revision cycles before giving up. Default 3, max 20. + - `:"mid-conversation-system-clear-at-2026-08-21"` - format: int32 + - `:"compact-2026-09-04"` - - `class BetaManagedAgentsUserToolResultEventParams` + - `:"inline-tools-2026-09-15"` - Parameters for providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + - `:"mcp-client-2026-09-15"` - - `type: :"user.tool_result"` + - `:"ce-plugins-2026-09-01"` - - `tool_use_id: String` + - `:"spend-limit-reads-2026-09-26"` - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `:"telemetry-destinations-2026-08-11"` - minLength: 1, maxLength: 128 + - `:"webhooks-2026-10-07"` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` +- `workspace_id: String` (header parameter) - The result content returned by the tool. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaManagedAgentsTextBlock` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Regular text content. +#### Returns - - `class BetaManagedAgentsImageBlock` +- `class BetaManagedAgentsDeletedSession` - Image content specified directly as base64 data or as a reference via a URL. + Confirmation that a `session` has been permanently deleted. - - `class BetaManagedAgentsDocumentBlock` + - `type: :session_deleted` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `id: String` - - `class BetaManagedAgentsSearchResultBlock` +#### Example - A block containing a web search result. +```ruby +require "anthropic" - - `is_error: bool` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Whether the tool execution resulted in an error. +beta_managed_agents_deleted_session = anthropic.beta.sessions.delete("sesn_011CZkZAtmR3yMPDzynEDxu7") - - `class BetaManagedAgentsSystemMessageEventParams` +puts(beta_managed_agents_deleted_session) +``` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. +##### Response (200) - - `type: :"system.message"` +```json +{ + "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "type": "session_deleted" +} +``` - - `content: Array[BetaManagedAgentsSystemContentBlock]` +### Archive Session - System content blocks to append. Text-only. +`beta.sessions.archive(session_id, **kwargs) -> BetaManagedAgentsSession` - - `type: :text` +**POST** `/v1/sessions/{session_id}/archive` - - `text: String` +Archive Session - The text content. +#### Parameters - minLength: 1 +- `session_id: String` (path parameter) - `betas: Array[AnthropicBeta]` (header parameter) @@ -48002,6 +47380,8 @@ Send Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -48010,1732 +47390,1791 @@ Send Events #### Returns -- `class BetaManagedAgentsSendSessionEvents` +- `class BetaManagedAgentsSession` - Events that were successfully sent to the session. + A Managed Agents `session`. - - `data: Array[BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 4 more]` + - `type: :session` - Sent events + - `id: String` - - `class BetaManagedAgentsUserMessageEvent` + - `agent: BetaManagedAgentsSessionAgent` - A user message event in the session conversation. + Resolved `agent` definition for a `session`. Snapshot of the `agent` at `session` creation time. - - `type: :"user.message"` + - `type: :agent` - - `id: String` + - `id: String` - Unique identifier for this event. + - `description: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Array of content blocks comprising the user message. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - Regular text content. + An AWS IAM role principal as returned in API responses. - - `type: :text` + - `type: :aws_role` - - `text: String` + - `role_arn: String` - The text content. + The IAM role's ARN. - minLength: 1 + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `class BetaManagedAgentsImageBlock` + The Anthropic-managed service account as returned in API responses. - Image content specified directly as base64 data or as a reference via a URL. + - `type: :service_account` - - `type: :image` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `type: :url` - The source of the image data. + - `name: String` - - `class BetaManagedAgentsBase64ImageSource` + - `url: String` - Base64-encoded image data. + - `model: BetaManagedAgentsModelConfig` - - `type: :base64` + Model identifier and configuration. - - `data: String` + - `id: BetaManagedAgentsModel` - Base64-encoded image data. + The model that will power your agent. - minLength: 1 + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `media_type: String` + - `:"claude-haiku-5-5"` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Fastest model for high-volume, real-time tasks - minLength: 1 + - `:"claude-sonnet-5-5"` - - `class BetaManagedAgentsURLImageSource` + Efficient model for coding and agents - Image referenced by URL. + - `:"claude-opus-5-5"` - - `type: :url` + Powerful intelligence for coding, knowledge work, and long-running agents - - `url: String` + - `:"claude-fable-5-1"` - URL of the image to fetch. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - minLength: 1 + - `:"claude-sonnet-5"` - - `class BetaManagedAgentsFileImageSource` + Efficient model for coding and agents - Image referenced by file ID. + - `:"claude-fable-5"` - - `type: :file` + Next generation of intelligence for the hardest knowledge work and coding problems - - `file_id: String` + - `:"claude-opus-5"` - ID of a previously uploaded file. + Powerful intelligence for long-running agents and coding - minLength: 1 + - `:"claude-opus-4-8"` - - `class BetaManagedAgentsDocumentBlock` + Powerful intelligence for long-running agents and coding - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"claude-opus-4-7"` - - `type: :document` + Powerful intelligence for long-running agents and coding - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `:"claude-opus-4-6"` - The source of the document data. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsBase64DocumentSource` + - `:"claude-sonnet-4-6"` - Base64-encoded document data. + Best combination of speed and intelligence - - `type: :base64` + - `:"claude-haiku-4-5"` - - `data: String` + - `:"claude-haiku-4-5-20251001"` - Base64-encoded document data. + - `:"claude-opus-4-5"` - minLength: 1 + Powerful intelligence for long-running agents and coding - - `media_type: String` + - `:"claude-opus-4-5-20251101"` - MIME type of the document (e.g., "application/pdf"). + Powerful intelligence for long-running agents and coding - minLength: 1 + - `:"claude-sonnet-4-5"` - - `class BetaManagedAgentsPlainTextDocumentSource` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Plain text document content. + High-performance model for agents and coding - - `type: :text` + - `:"claude-sonnet-4-5-20250929"` - - `data: String` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - The plain text content. + High-performance model for agents and coding - minLength: 1 + - `String = String` - - `media_type: :"text/plain"` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - MIME type of the text content. Must be "text/plain". + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `class BetaManagedAgentsURLDocumentSource` + - `class BetaManagedAgentsEffortLow` - Document referenced by URL. + Low effort. Favors latency over reasoning depth. - - `type: :url` + - `type: :low` - - `url: String` + - `class BetaManagedAgentsEffortMedium` - URL of the document to fetch. + Medium effort. Balances latency and reasoning depth. - minLength: 1 + - `type: :medium` - - `class BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsEffortHigh` - Document referenced by file ID. + High effort. Favors reasoning depth. - - `type: :file` + - `type: :high` - - `file_id: String` + - `class BetaManagedAgentsEffortXhigh` - ID of a previously uploaded file. + Extra-high effort. Not all models accept this level. - minLength: 1 + - `type: :xhigh` - - `context: String` + - `class BetaManagedAgentsEffortMax` - Additional context about the document for the model. + Maximum effort. Favors reasoning depth over latency. - - `title: String` + - `type: :max` - The title of the document. + - `inference_geo: String` - - `class BetaManagedAgentsRedactedBlock` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - Placeholder for content withheld by Anthropic model policy. + - `speed: :standard | :fast` - - `type: :redacted` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `processed_at: Time` + - `:standard` - Timestamp when the agent finished processing this message. + - `:fast` - format: date-time + - `multiagent: BetaManagedAgentsSessionMultiagent` - - `class BetaManagedAgentsUserInterruptEvent` + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - An interrupt event that pauses agent execution and returns control to the user. + - `class BetaManagedAgentsSessionMultiagentCoordinator` - - `type: :"user.interrupt"` + Resolved coordinator topology with full agent definitions for each roster member. - - `id: String` + - `type: :coordinator` - Unique identifier for this event. + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - - `processed_at: Time` + Full `agent` definitions the coordinator may spawn as session threads. - Timestamp when the interrupt was processed. + - `class BetaManagedAgentsSessionThreadAgent` - format: date-time + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `session_thread_id: String` + - `type: :agent` - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. + - `id: String` - - `class BetaManagedAgentsUserToolConfirmationEvent` + - `description: String` - A tool confirmation event that approves or denies a pending tool execution. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `type: :"user.tool_confirmation"` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `id: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Unique identifier for this event. + - `type: :url` - - `result: :allow | :deny` + - `name: String` - The confirmation result: 'allow' or 'deny'. + - `url: String` - - `:allow` + - `model: BetaManagedAgentsModelConfig` - - `:deny` + Model identifier and configuration. - - `tool_use_id: String` + - `name: String` - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `deny_message: String` + - `class BetaManagedAgentsAnthropicSkill` - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + A resolved Anthropic-managed skill. - maxLength: 10000 + - `type: :anthropic` - - `processed_at: Time` + - `skill_id: String` - Timestamp when the confirmation was processed. + - `version: String` - format: date-time + - `class BetaManagedAgentsCustomSkill` - - `session_thread_id: String` + A resolved user-created custom skill. - Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. + - `type: :custom` - - `class BetaManagedAgentsUserCustomToolResultEvent` + - `skill_id: String` - Event sent by the client providing the result of a custom tool execution. + - `version: String` - - `type: :"user.custom_tool_result"` + - `system_: String` - - `id: String` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Unique identifier for this event. + - `class BetaManagedAgentsAgentToolset20260401` - - `custom_tool_use_id: String` + - `type: :agent_toolset_20260401` - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `class BetaManagedAgentsBashToolConfig` - The result content returned by the tool. + Configuration for the bash tool. - - `class BetaManagedAgentsTextBlock` + - `type: :bash` - Regular text content. + - `enabled: bool` - - `class BetaManagedAgentsImageBlock` + - `name: :bash` - Image content specified directly as base64 data or as a reference via a URL. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsDocumentBlock` + Permission policy for tool execution. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsSearchResultBlock` + Tool calls are automatically approved without user confirmation. - A block containing a web search result. + - `type: :always_allow` - - `type: :search_result` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `citations: BetaManagedAgentsSearchResultCitations` + Tool calls require user confirmation before execution. - Citation settings for this search result. + - `type: :always_ask` - - `enabled: bool` + - `class BetaManagedAgentsAutoPolicy` - Whether citations are enabled for this search result. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `content: Array[BetaManagedAgentsSearchResultContent]` + - `type: :auto` - Array of text content blocks from the search result. + - `class BetaManagedAgentsEditToolConfig` - - `type: :text` + Configuration for the edit tool. - - `text: String` + - `type: :edit` - The text content. + - `enabled: bool` - minLength: 1 + - `name: :edit` - - `source: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The URL source of the search result. + Permission policy for tool execution. - minLength: 1 + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `title: String` + Tool calls are automatically approved without user confirmation. - The title of the search result. + - `class BetaManagedAgentsAlwaysAskPolicy` - minLength: 1 + Tool calls require user confirmation before execution. - - `is_error: bool` + - `class BetaManagedAgentsAutoPolicy` - Whether the tool execution resulted in an error. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `processed_at: Time` + - `class BetaManagedAgentsReadToolConfig` - Timestamp when this result was processed. + Configuration for the read tool. - format: date-time + - `type: :read` - - `session_thread_id: String` + - `enabled: bool` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `name: :read` - - `class BetaManagedAgentsUserDefineOutcomeEvent` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. + Permission policy for tool execution. - - `type: :"user.define_outcome"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `id: String` + Tool calls are automatically approved without user confirmation. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `description: String` + Tool calls require user confirmation before execution. - What the agent should produce. Copied from the input event. + - `class BetaManagedAgentsAutoPolicy` - - `max_iterations: Integer` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Evaluate-then-revise cycles before giving up. Default 3, max 20. + - `class BetaManagedAgentsWriteToolConfig` - format: int32 + Configuration for the write tool. - - `outcome_id: String` + - `type: :write` - Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. + - `enabled: bool` - - `processed_at: Time` + - `name: :write` - Timestamp when the outcome was accepted. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - format: date-time + Permission policy for tool execution. - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `class BetaManagedAgentsAlwaysAllowPolicy` - How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsFileRubric` + - `class BetaManagedAgentsAlwaysAskPolicy` - Rubric referenced by a file uploaded via the Files API. + Tool calls require user confirmation before execution. - - `type: :file` + - `class BetaManagedAgentsAutoPolicy` - - `file_id: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - ID of the rubric file. + - `class BetaManagedAgentsGlobToolConfig` - - `class BetaManagedAgentsTextRubric` + Configuration for the glob tool. - Rubric content provided inline as text. + - `type: :glob` - - `type: :text` + - `enabled: bool` - - `content: String` + - `name: :glob` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsUserToolResultEvent` + Permission policy for tool execution. - Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :"user.tool_result"` + Tool calls are automatically approved without user confirmation. - - `id: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Unique identifier for this event. + Tool calls require user confirmation before execution. - - `tool_use_id: String` + - `class BetaManagedAgentsAutoPolicy` - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `class BetaManagedAgentsGrepToolConfig` - The result content returned by the tool. + Configuration for the grep tool. - - `class BetaManagedAgentsTextBlock` + - `type: :grep` - Regular text content. + - `enabled: bool` - - `class BetaManagedAgentsImageBlock` + - `name: :grep` - Image content specified directly as base64 data or as a reference via a URL. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsDocumentBlock` + Permission policy for tool execution. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsSearchResultBlock` + Tool calls are automatically approved without user confirmation. - A block containing a web search result. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `is_error: bool` + Tool calls require user confirmation before execution. - Whether the tool execution resulted in an error. + - `class BetaManagedAgentsAutoPolicy` - - `processed_at: Time` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Timestamp when this result was processed. + - `class BetaManagedAgentsWebFetchToolConfig` - format: date-time + Configuration for the web_fetch tool. - - `session_thread_id: String` + - `type: :web_fetch` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `enabled: bool` - - `class BetaManagedAgentsSystemMessageEvent` + - `name: :web_fetch` - A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"system.message"` + Permission policy for tool execution. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `class BetaManagedAgentsAlwaysAskPolicy` - System content blocks. Text-only. + Tool calls require user confirmation before execution. - - `type: :text` + - `class BetaManagedAgentsAutoPolicy` - - `text: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The text content. + - `url_sources: BetaManagedAgentsWebFetchURLSources` - minLength: 1 + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `processed_at: Time` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Timestamp when this system message was processed. + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - format: date-time + - `class BetaManagedAgentsWebFetchURLSourceAll` -#### Example + Every URL from this source may be fetched. This is the default. -```ruby -require "anthropic" + - `type: :all` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsWebFetchURLSourceNone` -beta_managed_agents_send_session_events = anthropic.beta.sessions.events.send_( - "sesn_011CZkZAtmR3yMPDzynEDxu7", - events: [{content: [{text: "Where is my order #1234?", type: :text}], type: :"user.message"}] -) + This source contributes no URLs that may be fetched. -puts(beta_managed_agents_send_session_events) -``` + - `type: :none` -##### Response (200) + - `class BetaManagedAgentsWebFetchURLSourceOnly` -```json -{ - "data": [ - { - "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", - "content": [ - { - "text": "Where is my order #1234?", - "type": "text" - } - ], - "type": "user.message", - "processed_at": "2026-03-15T10:00:00Z" - } - ] -} -``` + Only the named tools' results contribute URLs that may be fetched. -### Stream Events + - `type: :only` -`beta.sessions.events.stream_events(session_id, **kwargs) -> Stream` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` -**GET** `/v1/sessions/{session_id}/events/stream` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. -Stream Events + - `type: :tool_reference` -#### Parameters + Must be "tool_reference". -- `session_id: String` (path parameter) + - `name: String` -- `event_deltas: Array[BetaManagedAgentsDeltaType]` (query parameter) + Name of the tool. Compared exactly, so upper and lower case letters are different. - When set, this connection also receives streaming deltas (`event_start`, `event_delta`) while an event is being produced, before the event itself arrives. Deltas are best-effort; when the final event is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no final event — its terminal `span.model_request_end` closes the preview. Accepts one or more event types to preview and may be repeated: `agent.message` streams `content_delta` fragments; `agent.thinking` is start-only — a signal that the agent has begun extended thinking, concluded by the `agent.thinking` event itself. Only previews of the requested event types are sent. + minLength: 1, maxLength: 128 - - `:"agent.message"` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `:"agent.thinking"` + Every tool's results contribute URLs that may be fetched, except the named tools' results. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :except` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `String = String` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - - `:"message-batches-2024-09-24"` + - `type: :tool_reference` - - `:"prompt-caching-2024-07-31"` + Must be "tool_reference". - - `:"computer-use-2024-10-22"` + - `name: String` - - `:"computer-use-2025-01-24"` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `:"pdfs-2024-09-25"` + minLength: 1, maxLength: 128 - - `:"token-counting-2024-11-01"` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:"token-efficient-tools-2025-02-19"` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `:"output-128k-2025-02-19"` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `:"files-api-2025-04-14"` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"mcp-client-2025-11-20"` + Every URL from this source may be fetched. This is the default. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"interleaved-thinking-2025-05-14"` + This source contributes no URLs that may be fetched. - - `:"code-execution-2025-05-22"` + - `allowed_domains: Array[String]` - - `:"extended-cache-ttl-2025-04-11"` + - `blocked_domains: Array[String]` - - `:"context-1m-2025-08-07"` + - `max_content_tokens: Integer` - - `:"context-management-2025-06-27"` + format: int32 - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsWebSearchToolConfig` - - `:"skills-2025-10-02"` + Configuration for the web_search tool. - - `:"fast-mode-2026-02-01"` + - `type: :web_search` - - `:"output-300k-2026-03-24"` + - `enabled: bool` - - `:"user-profiles-2026-03-24"` + - `name: :web_search` - - `:"user-profiles-2026-08-18"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-09-04"` + Permission policy for tool execution. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"managed-agents-2026-04-01"` + Tool calls are automatically approved without user confirmation. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"dreaming-2026-04-21"` + Tool calls require user confirmation before execution. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"server-side-fallback-2026-06-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"server-side-fallback-2026-07-01"` + - `allowed_domains: Array[String]` - - `:"fallback-credit-2026-06-01"` + - `blocked_domains: Array[String]` - - `:"fallback-credit-2026-07-01"` + - `user_location: BetaManagedAgentsUserLocation` - - `:"agent-memory-2026-07-22"` + Approximate user location for search result localization. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :approximate` - - `:"compact-2026-01-12"` + Location precision. Only "approximate" is supported. - - `:"computer-use-2025-11-24"` + - `city: String` - - `:"mcp-tunnels-2026-06-22"` + City name. - - `:"structured-outputs-2025-11-13"` + minLength: 1, maxLength: 255 - - `:"task-budgets-2026-03-13"` + - `country: String` - - `:"thinking-display-updates-2026-08-18"` + Two-letter ISO 3166-1 country code, uppercase. - - `:"ce-user-management-2026-07-13"` + - `region: String` - - `:"mid-conversation-output-config-2026-07-01"` + Region or state name. - - `:"thinking-binding-controls-2026-08-01"` + minLength: 1, maxLength: 255 - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `timezone: String` - - `:"compact-2026-09-04"` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `:"inline-tools-2026-09-15"` + minLength: 1, maxLength: 255 - - `:"mcp-client-2026-09-15"` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `:"ce-plugins-2026-09-01"` + Resolved default configuration for agent tools. - - `:"spend-limit-reads-2026-09-26"` + - `enabled: bool` - - `:"telemetry-destinations-2026-08-11"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -- `workspace_id: String` (header parameter) + Permission policy for tool execution. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsAlwaysAllowPolicy` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Tool calls are automatically approved without user confirmation. -#### Returns + - `class BetaManagedAgentsAlwaysAskPolicy` -- `type BetaManagedAgentsStreamSessionEvents = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 41 more` + Tool calls require user confirmation before execution. - Server-sent event in the session stream. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsUserMessageEvent` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - A user message event in the session conversation. + - `class BetaManagedAgentsMCPToolset` - - `type: :"user.message"` + - `type: :mcp_toolset` - - `id: String` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - Unique identifier for this event. + - `enabled: bool` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `name: String` - Array of content blocks comprising the user message. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsTextBlock` + Permission policy for tool execution. - Regular text content. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :text` + Tool calls are automatically approved without user confirmation. - - `text: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - The text content. + Tool calls require user confirmation before execution. - minLength: 1 + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsImageBlock` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Image content specified directly as base64 data or as a reference via a URL. + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `type: :image` + Resolved default configuration for all tools from an MCP server. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `enabled: bool` - The source of the image data. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsBase64ImageSource` + Permission policy for tool execution. - Base64-encoded image data. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :base64` + Tool calls are automatically approved without user confirmation. - - `data: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Base64-encoded image data. + Tool calls require user confirmation before execution. - minLength: 1 + - `class BetaManagedAgentsAutoPolicy` - - `media_type: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `mcp_server_name: String` - minLength: 1 + - `class BetaManagedAgentsCustomTool` - - `class BetaManagedAgentsURLImageSource` + A custom tool as returned in API responses. - Image referenced by URL. + - `type: :custom` - - `type: :url` + - `description: String` - - `url: String` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - URL of the image to fetch. + JSON Schema for custom tool input parameters. - minLength: 1 + - `type: :object` - - `class BetaManagedAgentsFileImageSource` + - `properties: Hash[Symbol, untyped]` - Image referenced by file ID. + - `required: Array[String]` - - `type: :file` + - `name: String` - - `file_id: String` + - `version: Integer` - ID of a previously uploaded file. + format: int32 - minLength: 1 + - `class BetaManagedAgentsAdvisor` - - `class BetaManagedAgentsDocumentBlock` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `type: :advisor` - - `type: :document` + - `model: String` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + The advisor model id. - The source of the document data. + - `class BetaManagedAgentsSessionMultiagent20261001` - - `class BetaManagedAgentsBase64DocumentSource` + Resolved multiagent configuration with three members, as copied to the `session` at creation. - Base64-encoded document data. + - `type: :multiagent_20261001` - - `type: :base64` + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `data: String` + Whether the session's primary thread can consult an advisor model. - Base64-encoded document data. + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - minLength: 1 + The session's primary thread can consult `model` mid-turn. - - `media_type: String` + - `type: :enabled` - MIME type of the document (e.g., "application/pdf"). + - `model: String` - minLength: 1 + The advisor model id. - - `class BetaManagedAgentsPlainTextDocumentSource` + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - Plain text document content. + The agent has no advisor. - - `type: :text` + - `type: :disabled` - - `data: String` + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - The plain text content. + Whether the agent can spawn session threads. - minLength: 1 + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - - `media_type: :"text/plain"` + The agent can spawn session threads. - MIME type of the text content. Must be "text/plain". + - `type: :enabled` - - `class BetaManagedAgentsURLDocumentSource` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Document referenced by URL. + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `type: :url` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `url: String` + The agent can define inline agents. - URL of the document to fetch. + - `type: :enabled` - minLength: 1 + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - - `class BetaManagedAgentsFileDocumentSource` - - Document referenced by file ID. - - - `type: :file` - - - `file_id: String` - - ID of a previously uploaded file. - - minLength: 1 - - - `context: String` - - Additional context about the document for the model. - - - `title: String` - - The title of the document. - - - `class BetaManagedAgentsRedactedBlock` - - Placeholder for content withheld by Anthropic model policy. - - - `type: :redacted` - - - `processed_at: Time` - - Timestamp when the agent finished processing this message. - - format: date-time - - - `class BetaManagedAgentsUserInterruptEvent` - - An interrupt event that pauses agent execution and returns control to the user. - - - `type: :"user.interrupt"` - - - `id: String` - - Unique identifier for this event. - - - `processed_at: Time` - - Timestamp when the interrupt was processed. - - format: date-time - - - `session_thread_id: String` - - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - - `class BetaManagedAgentsUserToolConfirmationEvent` - - A tool confirmation event that approves or denies a pending tool execution. - - - `type: :"user.tool_confirmation"` - - - `id: String` - - Unique identifier for this event. - - - `result: :allow | :deny` - - The confirmation result: 'allow' or 'deny'. - - - `:allow` - - - `:deny` - - - `tool_use_id: String` - - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - - `deny_message: String` - - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - - maxLength: 10000 - - - `processed_at: Time` - - Timestamp when the confirmation was processed. - - format: date-time - - - `session_thread_id: String` - - Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - - - `class BetaManagedAgentsUserCustomToolResultEvent` - - Event sent by the client providing the result of a custom tool execution. + The agent cannot define inline agents. - - `type: :"user.custom_tool_result"` + - `type: :disabled` - - `id: String` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - Unique identifier for this event. + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - - `custom_tool_use_id: String` + - `type: :agent` - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `id: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `description: String` - The result content returned by the tool. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `class BetaManagedAgentsTextBlock` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Regular text content. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `class BetaManagedAgentsImageBlock` + - `model: BetaManagedAgentsModelConfig` - Image content specified directly as base64 data or as a reference via a URL. + Model identifier and configuration. - - `class BetaManagedAgentsDocumentBlock` + - `name: String` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsSearchResultBlock` + - `system_: String` - A block containing a web search result. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `type: :search_result` + - `version: Integer` - - `citations: BetaManagedAgentsSearchResultCitations` + format: int32 - Citation settings for this search result. + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - - `enabled: bool` + The agent cannot spawn session threads. - Whether citations are enabled for this search result. + - `type: :disabled` - - `content: Array[BetaManagedAgentsSearchResultContent]` + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - Array of text content blocks from the search result. + Whether the agent can start workflow runs. - - `type: :text` + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - - `text: String` + The agent can start workflow runs. - The text content. + - `type: :enabled` - minLength: 1 + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `source: String` + Whether a run's plan can define inline agents, which are not saved. - The URL source of the search result. + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - minLength: 1 + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - - `title: String` + - `type: :agent` - The title of the search result. + - `id: String` - minLength: 1 + - `description: String` - - `is_error: bool` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Whether the tool execution resulted in an error. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `processed_at: Time` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Timestamp when this result was processed. + - `model: BetaManagedAgentsModelConfig` - format: date-time + Model identifier and configuration. - - `session_thread_id: String` + - `name: String` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsAgentCustomToolUseEvent` + - `system_: String` - Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `type: :"agent.custom_tool_use"` + - `version: Integer` - - `id: String` + format: int32 - Unique identifier for this event. + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `input: Hash[Symbol, untyped]` + The agent cannot start workflow runs. - Input parameters for the tool call. + - `type: :disabled` - `name: String` - Name of the custom tool being called. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `processed_at: Time` + - `class BetaManagedAgentsAnthropicSkill` - Timestamp when this tool use was processed. + A resolved Anthropic-managed skill. - format: date-time + - `class BetaManagedAgentsCustomSkill` - - `session_thread_id: String` + A resolved user-created custom skill. - When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. + - `system_: String` - - `class BetaManagedAgentsAgentMessageEvent` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - An agent response event in the session conversation. + - `class BetaManagedAgentsAgentToolset20260401` - - `type: :"agent.message"` + - `class BetaManagedAgentsMCPToolset` - - `id: String` + - `class BetaManagedAgentsCustomTool` - Unique identifier for this event. + A custom tool as returned in API responses. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` + - `version: Integer` - Array of text blocks comprising the agent response. + format: int32 - - `class BetaManagedAgentsTextBlock` + - `archived_at: Time` - Regular text content. + When the session was archived. Null if not archived. - - `class BetaManagedAgentsRedactedBlock` + format: date-time - Placeholder for content withheld by Anthropic model policy. + - `budget: BetaManagedAgentsBudgetLimit` - - `processed_at: Time` + The session's enforced spend ceiling, or null when no budget is set. - Timestamp when this response was generated. + - `type: :limit` - format: date-time + - `max_list_cost: BetaMonetaryAmount` - - `class BetaManagedAgentsAgentThinkingEvent` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. + - `amount: String` - - `type: :"agent.thinking"` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `id: String` + - `currency: BetaCurrency` - Unique identifier for this event. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `processed_at: Time` + - `created_at: Time` - Timestamp when this thinking was produced. + A timestamp in RFC 3339 format - format: date-time + format: date-time - - `class BetaManagedAgentsAgentMCPToolUseEvent` + - `environment_id: String` - Event emitted when the agent invokes a tool provided by an MCP server. + - `metadata: Hash[Symbol, String]` - - `type: :"agent.mcp_tool_use"` + - `outcome_evaluations: Array[BetaManagedAgentsOutcomeEvaluationResource]` - - `id: String` + Per-outcome evaluation state. One entry per `define_outcome` event sent to the session. - Unique identifier for this event. + - `type: :outcome_evaluation` - - `input: Hash[Symbol, untyped]` + - `completed_at: Time` - Input parameters for the tool call. + When the outcome reached a terminal result. Null while `pending`/`running`/`evaluating`. - - `mcp_server_name: String` + format: date-time - Name of the MCP server providing the tool. + - `description: String` - - `name: String` + What the agent should produce. - Name of the MCP tool being used. + - `explanation: String` - - `processed_at: Time` + Grader's verdict text from the most recent evaluation. For `satisfied`, explains why criteria are met; for `needs_revision` (intermediate), what's missing; for `failed`, why unrecoverable. - Timestamp when this event was processed. + - `iteration: Integer` - format: date-time + 0-indexed revision cycle the outcome is currently on. - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + format: int32 - The evaluated permission policy for this tool invocation. + - `outcome_id: String` - - `:allow` + Server-generated outc_ ID for this outcome. - - `:ask` + - `result: String` - - `:deny` + Current evaluation state. `pending` before the agent begins work; `running` while producing or revising; `evaluating` while the grader scores; `satisfied`/`max_iterations_reached`/`failed`/`interrupted` are terminal. - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + - `resources: Array[BetaManagedAgentsSessionResource]` - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + - `class BetaManagedAgentsGitHubRepositoryResource` - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` + - `type: :github_repository` - The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". + - `id: String` - - `type: :always_allow` + - `created_at: Time` - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` + A timestamp in RFC 3339 format - The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". + format: date-time - - `type: :always_ask` + - `mount_path: String` - - `class BetaManagedAgentsAgentToolEvaluationAuto` + - `updated_at: Time` - The resolved permission_policy was auto: the server judged this invocation individually. + A timestamp in RFC 3339 format - - `type: :auto` + format: date-time - - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` + - `url: String` - The server's judgement for this invocation. + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` + - `class BetaManagedAgentsBranchCheckout` - The server judged the invocation safe to execute without client approval. + - `type: :branch` - - `type: :allow` + - `name: String` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` + Branch name to check out. - The server reached no judgement; the invocation is held for client approval. + minLength: 1, maxLength: 255 - - `type: :ask` + - `class BetaManagedAgentsCommitCheckout` - - `reason_code: String` + - `type: :commit` - The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. + - `sha: String` - maxLength: 64 + Full commit SHA to check out. - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` + minLength: 7, maxLength: 64 - The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. + - `class BetaManagedAgentsFileResource` - - `type: :deny` + - `type: :file` - - `reason_code: String` + - `id: String` - The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. + - `created_at: Time` - maxLength: 64 + A timestamp in RFC 3339 format - - `session_thread_id: String` + format: date-time - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. + - `file_id: String` - - `class BetaManagedAgentsAgentMCPToolResultEvent` + - `mount_path: String` - Event representing the result of an MCP tool execution. + - `updated_at: Time` - - `type: :"agent.mcp_tool_result"` + A timestamp in RFC 3339 format - - `id: String` + format: date-time - Unique identifier for this event. + - `class BetaManagedAgentsMemoryStoreResource` - - `mcp_tool_use_id: String` + A memory store attached to an agent session. - The id of the `agent.mcp_tool_use` event this result corresponds to. + - `type: :memory_store` - - `processed_at: Time` + - `memory_store_id: String` - Timestamp when this event was processed. + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - format: date-time + - `access: :read_write | :read_only` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - The result content returned by the tool. + - `:read_write` - - `class BetaManagedAgentsTextBlock` + - `:read_only` - Regular text content. + - `description: String` - - `class BetaManagedAgentsImageBlock` + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - Image content specified directly as base64 data or as a reference via a URL. + - `instructions: String` - - `class BetaManagedAgentsDocumentBlock` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + maxLength: 4096 - - `class BetaManagedAgentsSearchResultBlock` + - `mount_path: String` - A block containing a web search result. + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - - `is_error: bool` + - `name: String` - Whether the tool execution resulted in an error. + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - - `class BetaManagedAgentsAgentToolUseEvent` + - `stats: BetaManagedAgentsSessionStats` - Event emitted when the agent invokes a built-in agent tool. + Timing statistics for the session. - - `type: :"agent.tool_use"` + - `active_seconds: Float` - - `id: String` + Cumulative time in seconds the session spent in `running` status. Excludes idle time. - Unique identifier for this event. + format: double - - `input: Hash[Symbol, untyped]` + - `duration_seconds: Float` - Input parameters for the tool call. + Elapsed time since session creation in seconds. For terminated sessions, frozen at the final update. - - `name: String` + format: double - Name of the agent tool being used. + - `status: :rescheduling | :running | :idle | :terminated` - - `processed_at: Time` + - `:rescheduling` - Timestamp when this event was processed. + Transient error occurred, retrying automatically. - format: date-time + - `:running` - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + Agent is actively executing. - The evaluated permission policy for this tool invocation. + - `:idle` - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + Agent is waiting for input, including user messages or tool confirmations. Sessions start in idle. - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + - `:terminated` - - `session_thread_id: String` + Session has ended, either due to an error or completion. - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. + - `title: String` - - `class BetaManagedAgentsAgentToolResultEvent` + - `updated_at: Time` - Event representing the result of an agent tool execution. + A timestamp in RFC 3339 format - - `type: :"agent.tool_result"` + format: date-time - - `id: String` + - `usage: BetaManagedAgentsSessionUsage` - Unique identifier for this event. + Cumulative token usage for the session. - - `processed_at: Time` + - `active_seconds: Float` - Timestamp when this event was processed. + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once, unlike `stats.active_seconds`, which sums each thread's own active time. This is the duration the session's runtime cost is priced on. - format: date-time + format: double - - `tool_use_id: String` + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - The id of the `agent.tool_use` event this result corresponds to. + Tokens used to create prompt cache entries, broken down by cache TTL. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `ephemeral_1h_input_tokens: Integer` - The result content returned by the tool. + Tokens used to create 1-hour ephemeral cache entries. - - `class BetaManagedAgentsTextBlock` + format: int32 - Regular text content. + - `ephemeral_5m_input_tokens: Integer` - - `class BetaManagedAgentsImageBlock` + Tokens used to create 5-minute ephemeral cache entries. - Image content specified directly as base64 data or as a reference via a URL. + format: int32 - - `class BetaManagedAgentsDocumentBlock` + - `cache_read_input_tokens: Integer` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Total tokens read from prompt cache. - - `class BetaManagedAgentsSearchResultBlock` + format: int32 - A block containing a web search result. + - `input_tokens: Integer` - - `is_error: bool` + Total input tokens consumed across all turns. - Whether the tool execution resulted in an error. + format: int32 - - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` + - `list_cost: BetaMonetaryAmount` - Delivery event written to the target thread's input stream when an agent-to-agent message arrives. + Cumulative list cost of the session across all turns, priced at public list rates. Absent until cost tracking is available for the session. - - `type: :"agent.thread_message_received"` + - `output_tokens: Integer` - - `id: String` + Total output tokens generated across all turns. - Unique identifier for this event. + format: int32 - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - Message content blocks. + Cumulative server-executed tool usage across all turns. Absent until server-tool tracking is available for the session. - - `class BetaManagedAgentsTextBlock` + - `web_fetch_requests: Integer` - Regular text content. + Number of server-executed web fetch requests. - - `class BetaManagedAgentsImageBlock` + format: int32 - Image content specified directly as base64 data or as a reference via a URL. + - `web_search_requests: Integer` - - `class BetaManagedAgentsDocumentBlock` + Number of server-executed web search requests. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + format: int32 - - `class BetaManagedAgentsRedactedBlock` + - `vault_ids: Array[String]` - Placeholder for content withheld by Anthropic model policy. + Vault IDs attached to the session at creation. Empty when no vaults were supplied. - - `from_session_thread_id: String` + - `deployment_id: String` - Public `sthr_` ID of the thread that sent the message. + Deployment ID when the session was created from a deployment reference. Null otherwise. - - `processed_at: Time` +#### Example - Timestamp when the message was received. +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `from_agent_name: String` +beta_managed_agents_session = anthropic.beta.sessions.archive("sesn_011CZkZAtmR3yMPDzynEDxu7") - Name of the callable agent this message came from. Absent when received from the primary agent. +puts(beta_managed_agents_session) +``` - - `class BetaManagedAgentsAgentThreadMessageSentEvent` +##### Response (200) - Observability event emitted to the sender's output stream when an agent-to-agent message is sent. +```json +{ + "id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "description": "A general-purpose starter agent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "multiagent": { + "agents": [ + { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + } + ], + "type": "coordinator" + }, + "name": "My First Agent", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + }, + { + "skill_id": "skill_011CZkZFNu9hAbo3jZPRgTmx", + "type": "custom", + "version": "2" + } + ], + "system": "You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + }, + "created_at": "2026-03-15T10:00:00Z", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "metadata": {}, + "outcome_evaluations": [ + { + "completed_at": "2026-03-15T10:02:31Z", + "description": "Produce a 2-page summary as summary.md", + "explanation": "All five sections present with inline citations.", + "iteration": 0, + "outcome_id": "outc_011CZkZRSw2kEfs6ncTVmjxP", + "result": "satisfied", + "type": "outcome_evaluation" + } + ], + "resources": [ + { + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } + } + ], + "stats": { + "active_seconds": 0, + "duration_seconds": 0 + }, + "status": "idle", + "title": "Order #1234 inquiry", + "type": "session", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "deployment_id": "deployment_id" +} +``` - - `type: :"agent.thread_message_sent"` +## Beta › Sessions › Events - - `id: String` +### List Events - Unique identifier for this event. +`beta.sessions.events.list(session_id, **kwargs) -> PageCursor` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` +**GET** `/v1/sessions/{session_id}/events` - Message content blocks. +List Events - - `class BetaManagedAgentsTextBlock` +#### Parameters - Regular text content. +- `session_id: String` (path parameter) - - `class BetaManagedAgentsImageBlock` +- `created_at_gt: Time` (query parameter) - Image content specified directly as base64 data or as a reference via a URL. + Return events created after this time (exclusive). Compared against the event's `processed_at` value. - - `class BetaManagedAgentsDocumentBlock` + format: date-time - Document content, either specified directly as base64 data, as text, or as a reference via a URL. +- `created_at_gte: Time` (query parameter) - - `class BetaManagedAgentsRedactedBlock` + Return events created at or after this time (inclusive). Compared against the event's `processed_at` value. - Placeholder for content withheld by Anthropic model policy. + format: date-time - - `processed_at: Time` +- `created_at_lt: Time` (query parameter) - Timestamp when the message was sent. + Return events created before this time (exclusive). Compared against the event's `processed_at` value. - format: date-time + format: date-time - - `to_session_thread_id: String` +- `created_at_lte: Time` (query parameter) - Public `sthr_` ID of the thread the message was sent to. + Return events created at or before this time (inclusive). Compared against the event's `processed_at` value. - - `to_agent_name: String` + format: date-time - Name of the callable agent this message was sent to. Absent when sent to the primary agent. +- `limit: Integer` (query parameter) - - `class BetaManagedAgentsAgentThreadContextCompactedEvent` + format: int32 - Indicates that context compaction (summarization) occurred during the session. +- `order: :asc | :desc` (query parameter) - - `type: :"agent.thread_context_compacted"` + Sort direction for results, ordered by the event's `processed_at`. Defaults to `asc` (chronological). - - `id: String` + - `:asc` - Unique identifier for this event. + - `:desc` - - `processed_at: Time` +- `page: String` (query parameter) - Timestamp when compaction was processed. + Opaque pagination cursor from a previous response's `next_page`. - format: date-time +- `types: Array[BetaManagedAgentsSessionEventType]` (query parameter) - - `class BetaManagedAgentsSessionErrorEvent` + Filter by event type. Values match the `type` field on returned events (for example, `user.message` or `agent.tool_use`). Omit to return all event types. - An error event indicating a problem occurred during session execution. + - `:"user.message"` - - `type: :"session.error"` + - `:"user.interrupt"` - - `id: String` + - `:"user.tool_confirmation"` - Unique identifier for this event. + - `:"user.custom_tool_result"` - - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` + - `:"agent.custom_tool_use"` - - `class BetaManagedAgentsUnknownError` + - `:"agent.message"` - An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. + - `:"agent.thinking"` - - `type: :unknown_error` + - `:"agent.mcp_tool_use"` - - `message: String` + - `:"agent.mcp_tool_result"` - Human-readable error description. + - `:"agent.tool_use"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"agent.tool_result"` - What the client should do next. + - `:"agent.thread_message_received"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"agent.thread_message_sent"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"agent.thread_context_compacted"` - - `type: :retrying` + - `:"session.error"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"session.status_rescheduled"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"session.status_running"` - - `type: :exhausted` + - `:"session.status_idle"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"session.status_terminated"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"session.thread_created"` - - `type: :terminal` + - `:"span.outcome_evaluation_start"` - - `class BetaManagedAgentsModelOverloadedError` + - `:"span.outcome_evaluation_end"` - The model is currently overloaded. Emitted after automatic retries are exhausted. + - `:"span.model_request_start"` - - `type: :model_overloaded_error` + - `:"span.model_request_end"` - - `message: String` + - `:"span.outcome_evaluation_ongoing"` - Human-readable error description. + - `:"user.define_outcome"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"session.thread_status_running"` - What the client should do next. + - `:"session.thread_status_idle"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"session.thread_status_terminated"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"user.tool_result"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"session.thread_status_rescheduled"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"session.updated"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"system.message"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"session.usage"` - - `class BetaManagedAgentsModelRateLimitedError` + - `:"workflow_run.created"` - The model request was rate-limited. + - `:"workflow_run.status_running"` - - `type: :model_rate_limited_error` + - `:"workflow_run.status_idle"` - - `message: String` + - `:"workflow_run.status_ended"` - Human-readable error description. + - `:"workflow_run.error"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"workflow_run.phase_started"` - What the client should do next. + - `:"workflow_run.phase_ended"` - - `class BetaManagedAgentsRetryStatusRetrying` +- `betas: Array[AnthropicBeta]` (header parameter) - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - `class BetaManagedAgentsRetryStatusExhausted` + - `String = String` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"message-batches-2024-09-24"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"prompt-caching-2024-07-31"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"computer-use-2024-10-22"` - - `class BetaManagedAgentsModelRequestFailedError` + - `:"computer-use-2025-01-24"` - A model request failed for a reason other than overload or rate-limiting. + - `:"pdfs-2024-09-25"` - - `type: :model_request_failed_error` + - `:"token-counting-2024-11-01"` - - `message: String` + - `:"token-efficient-tools-2025-02-19"` - Human-readable error description. + - `:"output-128k-2025-02-19"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"files-api-2025-04-14"` - What the client should do next. + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"mcp-client-2025-11-20"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"dev-full-thinking-2025-05-14"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"interleaved-thinking-2025-05-14"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"code-execution-2025-05-22"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"extended-cache-ttl-2025-04-11"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsMCPConnectionFailedError` + - `:"context-management-2025-06-27"` - Failed to connect to an MCP server. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :mcp_connection_failed_error` + - `:"skills-2025-10-02"` - - `mcp_server_name: String` + - `:"fast-mode-2026-02-01"` - Name of the MCP server that failed to connect. + - `:"output-300k-2026-03-24"` - - `message: String` + - `:"user-profiles-2026-03-24"` - Human-readable error description. + - `:"user-profiles-2026-08-18"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"user-profiles-2026-09-04"` - What the client should do next. + - `:"advisor-tool-2026-03-01"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"managed-agents-2026-04-01"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"dreaming-2026-04-21"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"thinking-token-count-2026-05-13"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"server-side-fallback-2026-06-01"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsMCPAuthenticationFailedError` + - `:"fallback-credit-2026-06-01"` - Authentication to an MCP server failed. + - `:"fallback-credit-2026-07-01"` - - `type: :mcp_authentication_failed_error` + - `:"agent-memory-2026-07-22"` - - `mcp_server_name: String` + - `:"mid-conversation-tool-changes-2026-07-01"` - Name of the MCP server that failed authentication. + - `:"compact-2026-01-12"` - - `message: String` + - `:"computer-use-2025-11-24"` - Human-readable error description. + - `:"mcp-tunnels-2026-06-22"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"structured-outputs-2025-11-13"` - What the client should do next. + - `:"task-budgets-2026-03-13"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"thinking-display-updates-2026-08-18"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"ce-user-management-2026-07-13"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"mid-conversation-output-config-2026-07-01"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"thinking-binding-controls-2026-08-01"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"mid-conversation-system-clear-at-2026-08-21"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"compact-2026-09-04"` - - `class BetaManagedAgentsBillingError` + - `:"inline-tools-2026-09-15"` - The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. + - `:"mcp-client-2026-09-15"` - - `type: :billing_error` + - `:"ce-plugins-2026-09-01"` - - `message: String` + - `:"spend-limit-reads-2026-09-26"` - Human-readable error description. + - `:"telemetry-destinations-2026-08-11"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"webhooks-2026-10-07"` - What the client should do next. +- `workspace_id: String` (header parameter) - - `class BetaManagedAgentsRetryStatusRetrying` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaManagedAgentsRetryStatusExhausted` +#### Returns - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. +- `type BetaManagedAgentsSessionEvent = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 39 more` - - `class BetaManagedAgentsRetryStatusTerminal` + Union type for all event types in a session. - The session encountered a terminal error and will transition to `terminated` state. + - `class BetaManagedAgentsUserMessageEvent` - - `class BetaManagedAgentsCredentialHostUnreachableError` + A user message event in the session conversation. - An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. + - `type: :"user.message"` - - `type: :credential_host_unreachable_error` + - `id: String` - - `credential_id: String` + Unique identifier for this event. - ID of the affected credential. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `message: String` + Array of content blocks comprising the user message. - Human-readable error description. + - `class BetaManagedAgentsTextBlock` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Regular text content. - What the client should do next. + - `type: :text` - - `class BetaManagedAgentsRetryStatusRetrying` + - `text: String` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + The text content. - - `class BetaManagedAgentsRetryStatusExhausted` + minLength: 1 - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsRetryStatusTerminal` + Image content specified directly as base64 data or as a reference via a URL. - The session encountered a terminal error and will transition to `terminated` state. + - `type: :image` - - `vault_id: String` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - ID of the vault containing the affected credential. + The source of the image data. - - `class BetaManagedAgentsRepositoryAuthenticationError` + - `class BetaManagedAgentsBase64ImageSource` - The repository host rejected the credentials, or required credentials and received none. + Base64-encoded image data. - - `type: :repository_authentication_error` + - `type: :base64` - - `message: String` + - `data: String` - Human-readable error description. + Base64-encoded image data. - - `repository_url: String` + minLength: 1 - URL of the repository that could not be cloned. Null when it could not be identified. + - `media_type: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - What the client should do next. Always `retrying`: the session keeps running without the repository. + minLength: 1 - - `class BetaManagedAgentsRetryStatusRetrying` - - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - - `class BetaManagedAgentsRetryStatusExhausted` - - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - - `class BetaManagedAgentsRetryStatusTerminal` - - The session encountered a terminal error and will transition to `terminated` state. - - - `class BetaManagedAgentsRepositoryForbiddenError` - - The repository host refused access to the repository. - - - `type: :repository_forbidden_error` - - - `message: String` - - Human-readable error description. - - - `repository_url: String` - - URL of the repository that could not be cloned. Null when it could not be identified. - - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `class BetaManagedAgentsURLImageSource` - What the client should do next. Always `retrying`: the session keeps running without the repository. + Image referenced by URL. - - `class BetaManagedAgentsRetryStatusRetrying` + - `type: :url` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `url: String` - - `class BetaManagedAgentsRetryStatusExhausted` + URL of the image to fetch. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + minLength: 1 - - `class BetaManagedAgentsRetryStatusTerminal` + - `class BetaManagedAgentsFileImageSource` - The session encountered a terminal error and will transition to `terminated` state. + Image referenced by file ID. - - `class BetaManagedAgentsRepositoryNotFoundError` + - `type: :file` - The repository host reported the repository as not found. + - `file_id: String` - - `type: :repository_not_found_error` + ID of a previously uploaded file. - - `message: String` + minLength: 1 - Human-readable error description. + - `class BetaManagedAgentsDocumentBlock` - - `repository_url: String` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - URL of the repository that could not be cloned. Null when it could not be identified. + - `type: :document` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - What the client should do next. Always `retrying`: the session keeps running without the repository. + The source of the document data. - - `class BetaManagedAgentsRetryStatusRetrying` + - `class BetaManagedAgentsBase64DocumentSource` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + Base64-encoded document data. - - `class BetaManagedAgentsRetryStatusExhausted` + - `type: :base64` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `data: String` - - `class BetaManagedAgentsRetryStatusTerminal` + Base64-encoded document data. - The session encountered a terminal error and will transition to `terminated` state. + minLength: 1 - - `class BetaManagedAgentsRepositoryCheckoutError` + - `media_type: String` - The requested branch or commit does not exist in the repository. + MIME type of the document (e.g., "application/pdf"). - - `type: :repository_checkout_error` + minLength: 1 - - `message: String` + - `class BetaManagedAgentsPlainTextDocumentSource` - Human-readable error description. + Plain text document content. - - `repository_url: String` + - `type: :text` - URL of the repository that could not be cloned. Null when it could not be identified. + - `data: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + The plain text content. - What the client should do next. Always `retrying`: the session keeps running without the repository. + minLength: 1 - - `class BetaManagedAgentsRetryStatusRetrying` + - `media_type: :"text/plain"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + MIME type of the text content. Must be "text/plain". - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsURLDocumentSource` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + Document referenced by URL. - - `class BetaManagedAgentsRetryStatusTerminal` + - `type: :url` - The session encountered a terminal error and will transition to `terminated` state. + - `url: String` - - `class BetaManagedAgentsRepositoryCloneError` + URL of the document to fetch. - The repository could not be cloned. + minLength: 1 - - `type: :repository_clone_error` + - `class BetaManagedAgentsFileDocumentSource` - - `message: String` + Document referenced by file ID. - Human-readable error description. + - `type: :file` - - `repository_url: String` + - `file_id: String` - URL of the repository that could not be cloned. Null when it could not be identified. + ID of a previously uploaded file. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + minLength: 1 - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `context: String` - - `class BetaManagedAgentsRetryStatusRetrying` + Additional context about the document for the model. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `title: String` - - `class BetaManagedAgentsRetryStatusExhausted` + The title of the document. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `class BetaManagedAgentsRedactedBlock` - - `class BetaManagedAgentsRetryStatusTerminal` + Placeholder for content withheld by Anthropic model policy. - The session encountered a terminal error and will transition to `terminated` state. + - `type: :redacted` - `processed_at: Time` - Timestamp when the error occurred. + Timestamp when the agent finished processing this message. format: date-time - - `class BetaManagedAgentsSessionStatusRescheduledEvent` + - `class BetaManagedAgentsUserInterruptEvent` - Indicates the session is recovering from an error state and is rescheduled for execution. + An interrupt event that pauses agent execution and returns control to the user. - - `type: :"session.status_rescheduled"` + - `type: :"user.interrupt"` - `id: String` @@ -49743,375 +49182,389 @@ Stream Events - `processed_at: Time` - Timestamp of status change. + Timestamp when the interrupt was processed. format: date-time - - `class BetaManagedAgentsSessionStatusRunningEvent` + - `session_thread_id: String` - Indicates the session is actively running and the agent is working. + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - `type: :"session.status_running"` + - `class BetaManagedAgentsUserToolConfirmationEvent` + + A tool confirmation event that approves or denies a pending tool execution. + + - `type: :"user.tool_confirmation"` - `id: String` Unique identifier for this event. - - `processed_at: Time` + - `result: :allow | :deny` - Timestamp of status change. + The confirmation result: 'allow' or 'deny'. - format: date-time + - `:allow` - - `class BetaManagedAgentsSessionStatusIdleEvent` + - `:deny` - Indicates the agent has paused and is awaiting user input. + - `tool_use_id: String` - - `type: :"session.status_idle"` + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `id: String` + - `deny_message: String` - Unique identifier for this event. + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + + maxLength: 10000 - `processed_at: Time` - Timestamp of status change. + Timestamp when the confirmation was processed. format: date-time - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + - `session_thread_id: String` - Structured information about why the session stopped. `null` when there is nothing more to report. + Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - - `type: :refusal` + - `class BetaManagedAgentsUserCustomToolResultEvent` - - `category: :cyber | :bio | :frontier_llm | 2 more` + Event sent by the client providing the result of a custom tool execution. - The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. + - `type: :"user.custom_tool_result"` - - `:cyber` + - `id: String` - - `:bio` + Unique identifier for this event. - - `:frontier_llm` + - `custom_tool_use_id: String` - - `:reasoning_extraction` + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `:general_harms` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `explanation: String` + The result content returned by the tool. - Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. + - `class BetaManagedAgentsTextBlock` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + Regular text content. - - `class BetaManagedAgentsSessionEndTurn` + - `class BetaManagedAgentsImageBlock` - The agent completed its turn naturally and is ready for the next user message. + Image content specified directly as base64 data or as a reference via a URL. - - `type: :end_turn` + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsSessionRequiresAction` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `class BetaManagedAgentsSearchResultBlock` - - `type: :requires_action` + A block containing a web search result. - - `event_ids: Array[String]` + - `type: :search_result` - The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. + - `citations: BetaManagedAgentsSearchResultCitations` - - `class BetaManagedAgentsSessionRetriesExhausted` + Citation settings for this search result. - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `enabled: bool` - - `type: :retries_exhausted` + Whether citations are enabled for this search result. - - `class BetaManagedAgentsSessionBudgetReached` + - `content: Array[BetaManagedAgentsSearchResultContent]` - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + Array of text content blocks from the search result. - - `type: :budget_reached` + - `type: :text` - - `class BetaManagedAgentsSessionRefusal` + - `text: String` - The turn ended because the model's response was refused, for example by a safety classifier. + The text content. - - `type: :refusal` + minLength: 1 - - `class BetaManagedAgentsSessionStatusTerminatedEvent` + - `source: String` - Indicates the session has terminated, either due to an error or completion. + The URL source of the search result. - - `type: :"session.status_terminated"` + minLength: 1 - - `id: String` + - `title: String` - Unique identifier for this event. + The title of the search result. + + minLength: 1 + + - `is_error: bool` + + Whether the tool execution resulted in an error. - `processed_at: Time` - Timestamp of status change. + Timestamp when this result was processed. format: date-time - - `class BetaManagedAgentsSessionThreadCreatedEvent` + - `session_thread_id: String` - Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `type: :"session.thread_created"` + - `class BetaManagedAgentsAgentCustomToolUseEvent` + + Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. + + - `type: :"agent.custom_tool_use"` - `id: String` Unique identifier for this event. - - `agent_name: String` + - `input: Hash[Symbol, untyped]` - Name of the callable agent the thread runs. + Input parameters for the tool call. + + - `name: String` + + Name of the custom tool being called. - `processed_at: Time` - Timestamp when the thread was created. + Timestamp when this tool use was processed. format: date-time - `session_thread_id: String` - Public `sthr_` ID of the newly created thread. - - - `workflow_run_id: String` - - Identifier of the workflow run that created the thread, or `null` for any other thread. + When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. - - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` + - `class BetaManagedAgentsAgentMessageEvent` - Emitted when an outcome evaluation cycle begins. + An agent response event in the session conversation. - - `type: :"span.outcome_evaluation_start"` + - `type: :"agent.message"` - `id: String` Unique identifier for this event. - - `iteration: Integer` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` - 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. + Array of text blocks comprising the agent response. - format: int32 + - `class BetaManagedAgentsTextBlock` - - `outcome_id: String` + Regular text content. - The `outc_` ID of the outcome being evaluated. + - `class BetaManagedAgentsRedactedBlock` + + Placeholder for content withheld by Anthropic model policy. - `processed_at: Time` - Timestamp when outcome evaluation started. + Timestamp when this response was generated. format: date-time - - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` + - `class BetaManagedAgentsAgentThinkingEvent` - Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. + Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. - - `type: :"span.outcome_evaluation_end"` + - `type: :"agent.thinking"` - `id: String` Unique identifier for this event. - - `explanation: String` - - Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. - - - `iteration: Integer` + - `processed_at: Time` - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + Timestamp when this thinking was produced. - format: int32 + format: date-time - - `outcome_evaluation_start_id: String` + - `class BetaManagedAgentsAgentMCPToolUseEvent` - The id of the corresponding `span.outcome_evaluation_start` event. + Event emitted when the agent invokes a tool provided by an MCP server. - - `outcome_id: String` + - `type: :"agent.mcp_tool_use"` - The `outc_` ID of the outcome being evaluated. + - `id: String` - - `processed_at: Time` + Unique identifier for this event. - Timestamp when outcome evaluation ended. + - `input: Hash[Symbol, untyped]` - format: date-time + Input parameters for the tool call. - - `result: String` + - `mcp_server_name: String` - Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. + Name of the MCP server providing the tool. - - `usage: BetaManagedAgentsSpanModelUsage` + - `name: String` - Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. + Name of the MCP tool being used. - - `cache_creation_input_tokens: Integer` + - `processed_at: Time` - Tokens used to create prompt cache in this request. + Timestamp when this event was processed. - format: int32 + format: date-time - - `cache_read_input_tokens: Integer` + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - Tokens read from prompt cache in this request. + The evaluated permission policy for this tool invocation. - format: int32 + - `:allow` - - `input_tokens: Integer` + - `:ask` - Input tokens consumed by this request. + - `:deny` - format: int32 + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `output_tokens: Integer` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - Output tokens generated by this request. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` - format: int32 + The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". - - `speed: :standard | :fast` + - `type: :always_allow` - Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` - - `:standard` + The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". - - `:fast` + - `type: :always_ask` - - `class BetaManagedAgentsSpanModelRequestStartEvent` + - `class BetaManagedAgentsAgentToolEvaluationAuto` - Emitted when a model request is initiated by the agent. + The resolved permission_policy was auto: the server judged this invocation individually. - - `type: :"span.model_request_start"` + - `type: :auto` - - `id: String` + - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` - Unique identifier for this event. + The server's judgement for this invocation. - - `processed_at: Time` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` - Timestamp when the model request started. + The server judged the invocation safe to execute without client approval. - format: date-time + - `type: :allow` - - `class BetaManagedAgentsSpanModelRequestEndEvent` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` - Emitted when a model request completes. + The server reached no judgement; the invocation is held for client approval. - - `type: :"span.model_request_end"` + - `type: :ask` - - `id: String` + - `reason_code: String` - Unique identifier for this event. + The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. - - `is_error: bool` + maxLength: 64 - Whether the model request resulted in an error. + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` - - `model_request_start_id: String` + The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. - The id of the corresponding `span.model_request_start` event. + - `type: :deny` - - `model_usage: BetaManagedAgentsSpanModelUsage` + - `reason_code: String` - Token usage for this model request. + The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. - - `processed_at: Time` + maxLength: 64 - Timestamp when the model request completed. + - `session_thread_id: String` - format: date-time + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. - - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` + - `class BetaManagedAgentsAgentMCPToolResultEvent` - Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. + Event representing the result of an MCP tool execution. - - `type: :"span.outcome_evaluation_ongoing"` + - `type: :"agent.mcp_tool_result"` - `id: String` Unique identifier for this event. - - `iteration: Integer` + - `mcp_tool_use_id: String` - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + The id of the `agent.mcp_tool_use` event this result corresponds to. - format: int32 + - `processed_at: Time` - - `outcome_id: String` + Timestamp when this event was processed. - The `outc_` ID of the outcome being evaluated. + format: date-time - - `processed_at: Time` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - Timestamp when this heartbeat was emitted. + The result content returned by the tool. - format: date-time + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsUserDefineOutcomeEvent` + Regular text content. - Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. + - `class BetaManagedAgentsImageBlock` - - `type: :"user.define_outcome"` + Image content specified directly as base64 data or as a reference via a URL. - - `id: String` + - `class BetaManagedAgentsDocumentBlock` - Unique identifier for this event. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `description: String` + - `class BetaManagedAgentsSearchResultBlock` - What the agent should produce. Copied from the input event. + A block containing a web search result. - - `max_iterations: Integer` + - `is_error: bool` - Evaluate-then-revise cycles before giving up. Default 3, max 20. + Whether the tool execution resulted in an error. - format: int32 + - `class BetaManagedAgentsAgentToolUseEvent` - - `outcome_id: String` + Event emitted when the agent invokes a built-in agent tool. - Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. + - `type: :"agent.tool_use"` - - `processed_at: Time` + - `id: String` - Timestamp when the outcome was accepted. + Unique identifier for this event. - format: date-time + - `input: Hash[Symbol, untyped]` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + Input parameters for the tool call. - How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. + - `name: String` - - `class BetaManagedAgentsFileRubric` + Name of the agent tool being used. - Rubric referenced by a file uploaded via the Files API. + - `processed_at: Time` - - `type: :file` + Timestamp when this event was processed. - - `file_id: String` + format: date-time - ID of the rubric file. + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `class BetaManagedAgentsTextRubric` + The evaluated permission policy for this tool invocation. - Rubric content provided inline as text. + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `type: :text` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - - `content: String` + - `session_thread_id: String` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. - - `class BetaManagedAgentsSessionDeletedEvent` + - `class BetaManagedAgentsAgentToolResultEvent` - Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. + Event representing the result of an agent tool execution. - - `type: :"session.deleted"` + - `type: :"agent.tool_result"` - `id: String` @@ -50119,125 +49572,95 @@ Stream Events - `processed_at: Time` - Timestamp when the session was deleted. + Timestamp when this event was processed. format: date-time - - `class BetaManagedAgentsSessionThreadStatusRunningEvent` + - `tool_use_id: String` - A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + The id of the `agent.tool_use` event this result corresponds to. - - `type: :"session.thread_status_running"` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `id: String` + The result content returned by the tool. - Unique identifier for this event. + - `class BetaManagedAgentsTextBlock` - - `agent_name: String` + Regular text content. - Name of the agent the thread runs. + - `class BetaManagedAgentsImageBlock` - - `processed_at: Time` + Image content specified directly as base64 data or as a reference via a URL. - Timestamp of the status transition. + - `class BetaManagedAgentsDocumentBlock` - format: date-time - - - `session_thread_id: String` - - Public sthr_ ID of the thread that started running. - - - `class BetaManagedAgentsSessionThreadStatusIdleEvent` - - A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - - `type: :"session.thread_status_idle"` - - - `id: String` - - Unique identifier for this event. - - - `agent_name: String` - - Name of the agent the thread runs. - - - `processed_at: Time` - - Timestamp of the status transition. - - format: date-time - - - `session_thread_id: String` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - Public sthr_ ID of the thread that went idle. + - `class BetaManagedAgentsSearchResultBlock` - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + A block containing a web search result. - Structured information about why the thread stopped. `null` when there is nothing more to report. + - `is_error: bool` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + Whether the tool execution resulted in an error. - - `class BetaManagedAgentsSessionEndTurn` + - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` - The agent completed its turn naturally and is ready for the next user message. + Delivery event written to the target thread's input stream when an agent-to-agent message arrives. - - `class BetaManagedAgentsSessionRequiresAction` + - `type: :"agent.thread_message_received"` - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `id: String` - - `class BetaManagedAgentsSessionRetriesExhausted` + Unique identifier for this event. - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `class BetaManagedAgentsSessionBudgetReached` + Message content blocks. - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsSessionRefusal` + Regular text content. - The turn ended because the model's response was refused, for example by a safety classifier. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` + Image content specified directly as base64 data or as a reference via a URL. - A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `class BetaManagedAgentsDocumentBlock` - - `type: :"session.thread_status_terminated"` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `id: String` + - `class BetaManagedAgentsRedactedBlock` - Unique identifier for this event. + Placeholder for content withheld by Anthropic model policy. - - `agent_name: String` + - `from_session_thread_id: String` - Name of the agent the thread runs. + Public `sthr_` ID of the thread that sent the message. - `processed_at: Time` - Timestamp of the status transition. + Timestamp when the message was received. format: date-time - - `session_thread_id: String` + - `from_agent_name: String` - Public sthr_ ID of the thread that terminated. + Name of the callable agent this message came from. Absent when received from the primary agent. - - `class BetaManagedAgentsUserToolResultEvent` + - `class BetaManagedAgentsAgentThreadMessageSentEvent` - Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + Observability event emitted to the sender's output stream when an agent-to-agent message is sent. - - `type: :"user.tool_result"` + - `type: :"agent.thread_message_sent"` - `id: String` Unique identifier for this event. - - `tool_use_id: String` - - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - The result content returned by the tool. + Message content blocks. - `class BetaManagedAgentsTextBlock` @@ -50251,1019 +49674,1005 @@ Stream Events Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsSearchResultBlock` - - A block containing a web search result. - - - `is_error: bool` + - `class BetaManagedAgentsRedactedBlock` - Whether the tool execution resulted in an error. + Placeholder for content withheld by Anthropic model policy. - `processed_at: Time` - Timestamp when this result was processed. + Timestamp when the message was sent. format: date-time - - `session_thread_id: String` + - `to_session_thread_id: String` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + Public `sthr_` ID of the thread the message was sent to. - - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` + - `to_agent_name: String` - A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + Name of the callable agent this message was sent to. Absent when sent to the primary agent. - - `type: :"session.thread_status_rescheduled"` + - `class BetaManagedAgentsAgentThreadContextCompactedEvent` - - `id: String` + Indicates that context compaction (summarization) occurred during the session. - Unique identifier for this event. + - `type: :"agent.thread_context_compacted"` - - `agent_name: String` + - `id: String` - Name of the agent the thread runs. + Unique identifier for this event. - `processed_at: Time` - Timestamp of the status transition. + Timestamp when compaction was processed. format: date-time - - `session_thread_id: String` - - Public sthr_ ID of the thread that is retrying. - - - `class BetaManagedAgentsSessionUpdatedEvent` + - `class BetaManagedAgentsSessionErrorEvent` - Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. + An error event indicating a problem occurred during session execution. - - `type: :"session.updated"` + - `type: :"session.error"` - `id: String` Unique identifier for this event. - - `processed_at: Time` + - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` - Timestamp when the update was applied. + - `class BetaManagedAgentsUnknownError` - format: date-time + An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. - - `agent: BetaManagedAgentsSessionAgent` + - `type: :unknown_error` - The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. + - `message: String` - - `type: :agent` + Human-readable error description. - - `id: String` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `description: String` + What the client should do next. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `class BetaManagedAgentsRetryStatusRetrying` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `type: :retrying` - An AWS IAM role principal as returned in API responses. + - `class BetaManagedAgentsRetryStatusExhausted` - - `type: :aws_role` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `role_arn: String` + - `type: :exhausted` - The IAM role's ARN. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + The session encountered a terminal error and will transition to `terminated` state. - The Anthropic-managed service account as returned in API responses. + - `type: :terminal` - - `type: :service_account` + - `class BetaManagedAgentsModelOverloadedError` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + The model is currently overloaded. Emitted after automatic retries are exhausted. - - `type: :url` + - `type: :model_overloaded_error` - - `name: String` + - `message: String` - - `url: String` + Human-readable error description. - - `model: BetaManagedAgentsModelConfig` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Model identifier and configuration. + What the client should do next. - - `id: BetaManagedAgentsModel` + - `class BetaManagedAgentsRetryStatusRetrying` - The model that will power your agent. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + - `class BetaManagedAgentsRetryStatusExhausted` - - `:"claude-haiku-5-5"` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Fastest model for high-volume, real-time tasks + - `class BetaManagedAgentsRetryStatusTerminal` - - `:"claude-sonnet-5-5"` + The session encountered a terminal error and will transition to `terminated` state. - Efficient model for coding and agents + - `class BetaManagedAgentsModelRateLimitedError` - - `:"claude-opus-5-5"` + The model request was rate-limited. - Powerful intelligence for coding, knowledge work, and long-running agents + - `type: :model_rate_limited_error` - - `:"claude-fable-5-1"` + - `message: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Human-readable error description. - - `:"claude-sonnet-5"` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Efficient model for coding and agents + What the client should do next. - - `:"claude-fable-5"` + - `class BetaManagedAgentsRetryStatusRetrying` - Next generation of intelligence for the hardest knowledge work and coding problems + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `:"claude-opus-5"` + - `class BetaManagedAgentsRetryStatusExhausted` - Powerful intelligence for long-running agents and coding + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `:"claude-opus-4-8"` + - `class BetaManagedAgentsRetryStatusTerminal` - Powerful intelligence for long-running agents and coding + The session encountered a terminal error and will transition to `terminated` state. - - `:"claude-opus-4-7"` + - `class BetaManagedAgentsModelRequestFailedError` - Powerful intelligence for long-running agents and coding + A model request failed for a reason other than overload or rate-limiting. - - `:"claude-opus-4-6"` + - `type: :model_request_failed_error` - Powerful intelligence for long-running agents and coding + - `message: String` - - `:"claude-sonnet-4-6"` + Human-readable error description. - Best combination of speed and intelligence + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `:"claude-haiku-4-5"` + What the client should do next. - - `:"claude-haiku-4-5-20251001"` + - `class BetaManagedAgentsRetryStatusRetrying` - - `:"claude-opus-4-5"` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Powerful intelligence for long-running agents and coding + - `class BetaManagedAgentsRetryStatusExhausted` - - `:"claude-opus-4-5-20251101"` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Powerful intelligence for long-running agents and coding + - `class BetaManagedAgentsRetryStatusTerminal` - - `:"claude-sonnet-4-5"` + The session encountered a terminal error and will transition to `terminated` state. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `class BetaManagedAgentsMCPConnectionFailedError` - High-performance model for agents and coding + Failed to connect to an MCP server. - - `:"claude-sonnet-4-5-20250929"` + - `type: :mcp_connection_failed_error` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `mcp_server_name: String` - High-performance model for agents and coding + Name of the MCP server that failed to connect. - - `String = String` + - `message: String` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + Human-readable error description. - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsEffortLow` + What the client should do next. - Low effort. Favors latency over reasoning depth. + - `class BetaManagedAgentsRetryStatusRetrying` - - `type: :low` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsEffortMedium` + - `class BetaManagedAgentsRetryStatusExhausted` - Medium effort. Balances latency and reasoning depth. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `type: :medium` + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsEffortHigh` + The session encountered a terminal error and will transition to `terminated` state. - High effort. Favors reasoning depth. + - `class BetaManagedAgentsMCPAuthenticationFailedError` - - `type: :high` + Authentication to an MCP server failed. - - `class BetaManagedAgentsEffortXhigh` + - `type: :mcp_authentication_failed_error` - Extra-high effort. Not all models accept this level. + - `mcp_server_name: String` - - `type: :xhigh` + Name of the MCP server that failed authentication. - - `class BetaManagedAgentsEffortMax` + - `message: String` - Maximum effort. Favors reasoning depth over latency. + Human-readable error description. - - `type: :max` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `inference_geo: String` + What the client should do next. - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `class BetaManagedAgentsRetryStatusRetrying` - - `speed: :standard | :fast` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `class BetaManagedAgentsRetryStatusExhausted` - - `:standard` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `:fast` + - `class BetaManagedAgentsRetryStatusTerminal` - - `multiagent: BetaManagedAgentsSessionMultiagent` + The session encountered a terminal error and will transition to `terminated` state. - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + - `class BetaManagedAgentsBillingError` - - `class BetaManagedAgentsSessionMultiagentCoordinator` + The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. - Resolved coordinator topology with full agent definitions for each roster member. + - `type: :billing_error` - - `type: :coordinator` + - `message: String` - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + Human-readable error description. - Full `agent` definitions the coordinator may spawn as session threads. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsSessionThreadAgent` + What the client should do next. - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `class BetaManagedAgentsRetryStatusRetrying` - - `type: :agent` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `id: String` + - `class BetaManagedAgentsRetryStatusExhausted` - - `description: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `class BetaManagedAgentsRetryStatusTerminal` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + The session encountered a terminal error and will transition to `terminated` state. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsCredentialHostUnreachableError` - - `type: :url` + An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. - - `name: String` + - `type: :credential_host_unreachable_error` - - `url: String` + - `credential_id: String` - - `model: BetaManagedAgentsModelConfig` + ID of the affected credential. - Model identifier and configuration. + - `message: String` - - `name: String` + Human-readable error description. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAnthropicSkill` + What the client should do next. - A resolved Anthropic-managed skill. + - `class BetaManagedAgentsRetryStatusRetrying` - - `type: :anthropic` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `skill_id: String` + - `class BetaManagedAgentsRetryStatusExhausted` - - `version: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsCustomSkill` + - `class BetaManagedAgentsRetryStatusTerminal` - A resolved user-created custom skill. + The session encountered a terminal error and will transition to `terminated` state. - - `type: :custom` + - `vault_id: String` - - `skill_id: String` + ID of the vault containing the affected credential. - - `version: String` + - `class BetaManagedAgentsRepositoryAuthenticationError` - - `system_: String` + The repository host rejected the credentials, or required credentials and received none. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `type: :repository_authentication_error` - - `class BetaManagedAgentsAgentToolset20260401` + - `message: String` - - `type: :agent_toolset_20260401` + Human-readable error description. - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `repository_url: String` - - `class BetaManagedAgentsBashToolConfig` + URL of the repository that could not be cloned. Null when it could not be identified. - Configuration for the bash tool. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :bash` + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `enabled: bool` + - `class BetaManagedAgentsRetryStatusRetrying` - - `name: :bash` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsRetryStatusExhausted` - Permission policy for tool execution. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsRetryStatusTerminal` - Tool calls are automatically approved without user confirmation. + The session encountered a terminal error and will transition to `terminated` state. - - `type: :always_allow` + - `class BetaManagedAgentsRepositoryForbiddenError` - - `class BetaManagedAgentsAlwaysAskPolicy` + The repository host refused access to the repository. - Tool calls require user confirmation before execution. + - `type: :repository_forbidden_error` - - `type: :always_ask` + - `message: String` - - `class BetaManagedAgentsAutoPolicy` + Human-readable error description. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `repository_url: String` - - `type: :auto` + URL of the repository that could not be cloned. Null when it could not be identified. - - `class BetaManagedAgentsEditToolConfig` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Configuration for the edit tool. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `type: :edit` + - `class BetaManagedAgentsRetryStatusRetrying` - - `enabled: bool` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `name: :edit` + - `class BetaManagedAgentsRetryStatusExhausted` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Permission policy for tool execution. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The session encountered a terminal error and will transition to `terminated` state. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRepositoryNotFoundError` - - `class BetaManagedAgentsAlwaysAskPolicy` + The repository host reported the repository as not found. - Tool calls require user confirmation before execution. + - `type: :repository_not_found_error` - - `class BetaManagedAgentsAutoPolicy` + - `message: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Human-readable error description. - - `class BetaManagedAgentsReadToolConfig` + - `repository_url: String` - Configuration for the read tool. + URL of the repository that could not be cloned. Null when it could not be identified. - - `type: :read` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `enabled: bool` + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `name: :read` + - `class BetaManagedAgentsRetryStatusRetrying` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Permission policy for tool execution. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAlwaysAllowPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAlwaysAskPolicy` + The session encountered a terminal error and will transition to `terminated` state. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsRepositoryCheckoutError` - - `class BetaManagedAgentsAutoPolicy` + The requested branch or commit does not exist in the repository. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :repository_checkout_error` - - `class BetaManagedAgentsWriteToolConfig` + - `message: String` - Configuration for the write tool. + Human-readable error description. - - `type: :write` + - `repository_url: String` - - `enabled: bool` + URL of the repository that could not be cloned. Null when it could not be identified. - - `name: :write` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + What the client should do next. Always `retrying`: the session keeps running without the repository. - Permission policy for tool execution. + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAlwaysAskPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAutoPolicy` + The session encountered a terminal error and will transition to `terminated` state. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsRepositoryCloneError` - - `class BetaManagedAgentsGlobToolConfig` + The repository could not be cloned. - Configuration for the glob tool. + - `type: :repository_clone_error` - - `type: :glob` + - `message: String` - - `enabled: bool` + Human-readable error description. - - `name: :glob` + - `repository_url: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + URL of the repository that could not be cloned. Null when it could not be identified. - Permission policy for tool execution. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAlwaysAllowPolicy` + What the client should do next. Always `retrying`: the session keeps running without the repository. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsAlwaysAskPolicy` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAutoPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsGrepToolConfig` + The session encountered a terminal error and will transition to `terminated` state. - Configuration for the grep tool. + - `processed_at: Time` - - `type: :grep` + Timestamp when the error occurred. - - `enabled: bool` + format: date-time - - `name: :grep` + - `class BetaManagedAgentsSessionStatusRescheduledEvent` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Indicates the session is recovering from an error state and is rescheduled for execution. - Permission policy for tool execution. + - `type: :"session.status_rescheduled"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `id: String` - Tool calls are automatically approved without user confirmation. + Unique identifier for this event. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `processed_at: Time` - Tool calls require user confirmation before execution. + Timestamp of status change. - - `class BetaManagedAgentsAutoPolicy` + format: date-time - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsSessionStatusRunningEvent` - - `class BetaManagedAgentsWebFetchToolConfig` + Indicates the session is actively running and the agent is working. - Configuration for the web_fetch tool. + - `type: :"session.status_running"` - - `type: :web_fetch` + - `id: String` - - `enabled: bool` + Unique identifier for this event. - - `name: :web_fetch` + - `processed_at: Time` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Timestamp of status change. - Permission policy for tool execution. + format: date-time - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsSessionStatusIdleEvent` - Tool calls are automatically approved without user confirmation. + Indicates the agent has paused and is awaiting user input. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :"session.status_idle"` - Tool calls require user confirmation before execution. + - `id: String` - - `class BetaManagedAgentsAutoPolicy` + Unique identifier for this event. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `processed_at: Time` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + Timestamp of status change. - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + format: date-time - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + Structured information about why the session stopped. `null` when there is nothing more to report. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `type: :refusal` - Every URL from this source may be fetched. This is the default. + - `category: :cyber | :bio | :frontier_llm | 2 more` - - `type: :all` + The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `:cyber` - This source contributes no URLs that may be fetched. + - `:bio` - - `type: :none` + - `:frontier_llm` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `:reasoning_extraction` - Only the named tools' results contribute URLs that may be fetched. + - `:general_harms` - - `type: :only` + - `explanation: String` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - - `type: :tool_reference` + - `class BetaManagedAgentsSessionEndTurn` - Must be "tool_reference". + The agent completed its turn naturally and is ready for the next user message. - - `name: String` + - `type: :end_turn` - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaManagedAgentsSessionRequiresAction` - minLength: 1, maxLength: 128 + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `type: :requires_action` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `event_ids: Array[String]` - - `type: :except` + The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `class BetaManagedAgentsSessionRetriesExhausted` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - - `type: :tool_reference` + - `type: :retries_exhausted` - Must be "tool_reference". + - `class BetaManagedAgentsSessionBudgetReached` - - `name: String` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `type: :budget_reached` - minLength: 1, maxLength: 128 + - `class BetaManagedAgentsSessionRefusal` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + The turn ended because the model's response was refused, for example by a safety classifier. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `type: :refusal` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `class BetaManagedAgentsSessionStatusTerminatedEvent` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + Indicates the session has terminated, either due to an error or completion. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `type: :"session.status_terminated"` - Every URL from this source may be fetched. This is the default. + - `id: String` - - `class BetaManagedAgentsWebFetchURLSourceNone` + Unique identifier for this event. - This source contributes no URLs that may be fetched. + - `processed_at: Time` - - `allowed_domains: Array[String]` + Timestamp of status change. - - `blocked_domains: Array[String]` + format: date-time - - `max_content_tokens: Integer` + - `class BetaManagedAgentsSessionThreadCreatedEvent` - format: int32 + Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. - - `class BetaManagedAgentsWebSearchToolConfig` + - `type: :"session.thread_created"` - Configuration for the web_search tool. + - `id: String` - - `type: :web_search` + Unique identifier for this event. - - `enabled: bool` + - `agent_name: String` - - `name: :web_search` + Name of the callable agent the thread runs. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - Permission policy for tool execution. + Timestamp when the thread was created. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: date-time - Tool calls are automatically approved without user confirmation. + - `session_thread_id: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Public `sthr_` ID of the newly created thread. - Tool calls require user confirmation before execution. + - `workflow_run_id: String` - - `class BetaManagedAgentsAutoPolicy` + Identifier of the workflow run that created the thread, or `null` for any other thread. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` - - `allowed_domains: Array[String]` + Emitted when an outcome evaluation cycle begins. - - `blocked_domains: Array[String]` + - `type: :"span.outcome_evaluation_start"` - - `user_location: BetaManagedAgentsUserLocation` + - `id: String` - Approximate user location for search result localization. + Unique identifier for this event. - - `type: :approximate` + - `iteration: Integer` - Location precision. Only "approximate" is supported. + 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. - - `city: String` + format: int32 - City name. + - `outcome_id: String` - minLength: 1, maxLength: 255 + The `outc_` ID of the outcome being evaluated. - - `country: String` + - `processed_at: Time` - Two-letter ISO 3166-1 country code, uppercase. + Timestamp when outcome evaluation started. - - `region: String` + format: date-time - Region or state name. + - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` - minLength: 1, maxLength: 255 + Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. - - `timezone: String` + - `type: :"span.outcome_evaluation_end"` - IANA timezone identifier, e.g. "America/Los_Angeles". + - `id: String` - minLength: 1, maxLength: 255 + Unique identifier for this event. - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `explanation: String` - Resolved default configuration for agent tools. + Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. - - `enabled: bool` + - `iteration: Integer` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - Permission policy for tool execution. + format: int32 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `outcome_evaluation_start_id: String` - Tool calls are automatically approved without user confirmation. + The id of the corresponding `span.outcome_evaluation_start` event. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `outcome_id: String` - Tool calls require user confirmation before execution. + The `outc_` ID of the outcome being evaluated. - - `class BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Timestamp when outcome evaluation ended. - - `class BetaManagedAgentsMCPToolset` + format: date-time - - `type: :mcp_toolset` + - `result: String` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. - - `enabled: bool` + - `usage: BetaManagedAgentsSpanModelUsage` - - `name: String` + Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `cache_creation_input_tokens: Integer` - Permission policy for tool execution. + Tokens used to create prompt cache in this request. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: int32 - Tool calls are automatically approved without user confirmation. + - `cache_read_input_tokens: Integer` - - `class BetaManagedAgentsAlwaysAskPolicy` + Tokens read from prompt cache in this request. - Tool calls require user confirmation before execution. + format: int32 - - `class BetaManagedAgentsAutoPolicy` + - `input_tokens: Integer` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Input tokens consumed by this request. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + format: int32 - Resolved default configuration for all tools from an MCP server. + - `output_tokens: Integer` - - `enabled: bool` + Output tokens generated by this request. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + format: int32 - Permission policy for tool execution. + - `speed: :standard | :fast` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. - Tool calls are automatically approved without user confirmation. + - `:standard` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:fast` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsSpanModelRequestStartEvent` - - `class BetaManagedAgentsAutoPolicy` + Emitted when a model request is initiated by the agent. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :"span.model_request_start"` - - `mcp_server_name: String` + - `id: String` - - `class BetaManagedAgentsCustomTool` + Unique identifier for this event. - A custom tool as returned in API responses. + - `processed_at: Time` - - `type: :custom` + Timestamp when the model request started. - - `description: String` + format: date-time - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `class BetaManagedAgentsSpanModelRequestEndEvent` - JSON Schema for custom tool input parameters. + Emitted when a model request completes. - - `type: :object` + - `type: :"span.model_request_end"` - - `properties: Hash[Symbol, untyped]` + - `id: String` - - `required: Array[String]` + Unique identifier for this event. - - `name: String` + - `is_error: bool` - - `version: Integer` + Whether the model request resulted in an error. - format: int32 + - `model_request_start_id: String` - - `class BetaManagedAgentsAdvisor` + The id of the corresponding `span.model_request_start` event. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `model_usage: BetaManagedAgentsSpanModelUsage` - - `type: :advisor` + Token usage for this model request. - - `model: String` + - `processed_at: Time` - The advisor model id. + Timestamp when the model request completed. - - `class BetaManagedAgentsSessionMultiagent20261001` + format: date-time - Resolved multiagent configuration with three members, as copied to the `session` at creation. + - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` - - `type: :multiagent_20261001` + Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `type: :"span.outcome_evaluation_ongoing"` - Whether the session's primary thread can consult an advisor model. + - `id: String` - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + Unique identifier for this event. - The session's primary thread can consult `model` mid-turn. + - `iteration: Integer` - - `type: :enabled` + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `model: String` + format: int32 - The advisor model id. + - `outcome_id: String` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + The `outc_` ID of the outcome being evaluated. - The agent has no advisor. + - `processed_at: Time` - - `type: :disabled` + Timestamp when this heartbeat was emitted. - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` + format: date-time - Whether the agent can spawn session threads. + - `class BetaManagedAgentsUserDefineOutcomeEvent` - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. - The agent can spawn session threads. + - `type: :"user.define_outcome"` - - `type: :enabled` + - `id: String` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + Unique identifier for this event. - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + - `description: String` - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + What the agent should produce. Copied from the input event. - The agent can define inline agents. + - `max_iterations: Integer` - - `type: :enabled` + Evaluate-then-revise cycles before giving up. Default 3, max 20. - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + format: int32 - The agent cannot define inline agents. + - `outcome_id: String` - - `type: :disabled` + Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `processed_at: Time` - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. + Timestamp when the outcome was accepted. - - `type: :agent` + format: date-time - - `id: String` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - - `description: String` + How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `class BetaManagedAgentsFileRubric` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Rubric referenced by a file uploaded via the Files API. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `type: :file` - - `model: BetaManagedAgentsModelConfig` + - `file_id: String` - Model identifier and configuration. + ID of the rubric file. - - `name: String` + - `class BetaManagedAgentsTextRubric` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Rubric content provided inline as text. - - `system_: String` + - `type: :text` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `content: String` - - `version: Integer` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - format: int32 + - `class BetaManagedAgentsSessionDeletedEvent` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. - The agent cannot spawn session threads. + - `type: :"session.deleted"` - - `type: :disabled` + - `id: String` - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + Unique identifier for this event. - Whether the agent can start workflow runs. + - `processed_at: Time` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + Timestamp when the session was deleted. - The agent can start workflow runs. + format: date-time - - `type: :enabled` + - `class BetaManagedAgentsSessionThreadStatusRunningEvent` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - Whether a run's plan can define inline agents, which are not saved. + - `type: :"session.thread_status_running"` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `id: String` - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + Unique identifier for this event. - - `type: :agent` + - `agent_name: String` - - `id: String` + Name of the agent the thread runs. - - `description: String` + - `processed_at: Time` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Timestamp of the status transition. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + format: date-time - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `session_thread_id: String` - - `model: BetaManagedAgentsModelConfig` + Public sthr_ ID of the thread that started running. - Model identifier and configuration. + - `class BetaManagedAgentsSessionThreadStatusIdleEvent` - - `name: String` + A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `type: :"session.thread_status_idle"` - - `system_: String` + - `id: String` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Unique identifier for this event. - - `version: Integer` + - `agent_name: String` - format: int32 + Name of the agent the thread runs. - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `processed_at: Time` - The agent cannot start workflow runs. + Timestamp of the status transition. - - `type: :disabled` + format: date-time - - `name: String` + - `session_thread_id: String` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Public sthr_ ID of the thread that went idle. - - `class BetaManagedAgentsAnthropicSkill` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - A resolved Anthropic-managed skill. + Structured information about why the thread stopped. `null` when there is nothing more to report. - - `class BetaManagedAgentsCustomSkill` + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - A resolved user-created custom skill. + - `class BetaManagedAgentsSessionEndTurn` - - `system_: String` + The agent completed its turn naturally and is ready for the next user message. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsSessionRequiresAction` - - `class BetaManagedAgentsAgentToolset20260401` + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsSessionRetriesExhausted` - - `class BetaManagedAgentsCustomTool` + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - A custom tool as returned in API responses. + - `class BetaManagedAgentsSessionBudgetReached` - - `version: Integer` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - format: int32 + - `class BetaManagedAgentsSessionRefusal` - - `budget: BetaManagedAgentsBudgetLimit` + The turn ended because the model's response was refused, for example by a safety classifier. - The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. + - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` - - `type: :limit` + A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `max_list_cost: BetaMonetaryAmount` + - `type: :"session.thread_status_terminated"` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `id: String` - - `amount: String` + Unique identifier for this event. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `agent_name: String` - - `currency: BetaCurrency` + Name of the agent the thread runs. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `processed_at: Time` - - `metadata: Hash[Symbol, String]` + Timestamp of the status transition. - The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. + format: date-time - - `title: String` + - `session_thread_id: String` - The session's new title. Present only when the update changed it. + Public sthr_ ID of the thread that terminated. - - `class BetaManagedAgentsStartEvent` + - `class BetaManagedAgentsUserToolResultEvent` - Opens a preview of a buffered event. Carries the previewed event's type and id only. Followed by zero or more event_delta events with the same event id, normally concluded by the buffered event carrying that id. If the producing model request ends without that event (an error or interrupt mid-stream), its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. + Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. - - `type: :event_start` + - `type: :"user.tool_result"` - - `event: BetaManagedAgentsStartEventPreview` + - `id: String` - The previewed event's type and id. The event type determines which delta types the preview's event_delta events carry: agent.message events stream content_delta fragments; agent.thinking previews are start-only — no deltas follow, and the buffered agent.thinking with the same id concludes them. + Unique identifier for this event. - - `class BetaManagedAgentsAgentMessagePreview` + - `tool_use_id: String` - - `type: :"agent.message"` + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `id: String` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - The id the buffered agent.message will carry if it is emitted. Matches the event_id on this preview's event_delta events. - - - `class BetaManagedAgentsAgentThinkingPreview` + The result content returned by the tool. - - `type: :"agent.thinking"` + - `class BetaManagedAgentsTextBlock` - - `id: String` + Regular text content. - The id the buffered agent.thinking will carry if it is emitted. Start-only — no event_delta events follow. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsDeltaEvent` + Image content specified directly as base64 data or as a reference via a URL. - An incremental update to an event that is still being streamed. Deltas are best-effort and may stop early; when the buffered event with id == event_id is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no buffered event — its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. + - `class BetaManagedAgentsDocumentBlock` - - `type: :event_delta` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `delta: BetaManagedAgentsDeltaContent` + - `class BetaManagedAgentsSearchResultBlock` - One fragment of the previewed event. The delta type is named for the previewed event's field it streams into: agent.message events stream content_delta fragments, each a partial element of the content array. + A block containing a web search result. - - `type: :content_delta` + - `is_error: bool` - - `content: BetaManagedAgentsTextBlock` + Whether the tool execution resulted in an error. - A partial element of the content array at index, typed like the element itself — the same shape the buffered agent.message carries in content. + - `processed_at: Time` - - `index: Integer` + Timestamp when this result was processed. - Which entry in the previewed event's content array this fragment lands in. Insert content as that entry when the index is new; append to the existing entry otherwise. + format: date-time - - `event_id: String` + - `session_thread_id: String` - The id of the event being previewed. Matches event.id on the corresponding event_start and the buffered event that reconciles the preview. + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `class BetaManagedAgentsSystemMessageEvent` + - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` - A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. + A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `type: :"system.message"` + - `type: :"session.thread_status_rescheduled"` - `id: String` Unique identifier for this event. - - `content: Array[BetaManagedAgentsSystemContentBlock]` - - System content blocks. Text-only. - - - `type: :text` - - - `text: String` - - The text content. + - `agent_name: String` - minLength: 1 + Name of the agent the thread runs. - `processed_at: Time` - Timestamp when this system message was processed. + Timestamp of the status transition. format: date-time - - `class BetaManagedAgentsSessionUsageEvent` + - `session_thread_id: String` - Periodic snapshot of the session's cumulative usage and tracked list cost. + Public sthr_ ID of the thread that is retrying. - - `type: :"session.usage"` + - `class BetaManagedAgentsSessionUpdatedEvent` + + Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. + + - `type: :"session.updated"` - `id: String` @@ -51271,1352 +50680,1249 @@ Stream Events - `processed_at: Time` - Timestamp when the snapshot was taken. + Timestamp when the update was applied. format: date-time - - `usage: BetaManagedAgentsSessionUsageSnapshot` + - `agent: BetaManagedAgentsSessionAgent` - The session's cumulative usage at the snapshot time. + The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. - - `active_seconds: Float` + - `type: :agent` - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. + - `id: String` - format: double + - `description: String` - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Tokens used to create prompt cache entries, broken down by cache TTL. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `ephemeral_1h_input_tokens: Integer` + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - Tokens used to create 1-hour ephemeral cache entries. + An AWS IAM role principal as returned in API responses. - format: int32 + - `type: :aws_role` - - `ephemeral_5m_input_tokens: Integer` + - `role_arn: String` - Tokens used to create 5-minute ephemeral cache entries. + The IAM role's ARN. - format: int32 + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `cache_read_input_tokens: Integer` + The Anthropic-managed service account as returned in API responses. - Total tokens read from prompt cache. + - `type: :service_account` - format: int32 + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `input_tokens: Integer` + - `type: :url` - Total input tokens consumed across all turns. + - `name: String` - format: int32 + - `url: String` - - `list_cost: BetaMonetaryAmount` + - `model: BetaManagedAgentsModelConfig` - Cumulative list cost of the session across all turns, priced at public list rates. + Model identifier and configuration. - - `output_tokens: Integer` + - `id: BetaManagedAgentsModel` - Total output tokens generated across all turns. + The model that will power your agent. - format: int32 + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - - `server_tool_use: BetaManagedAgentsServerToolUsage` + - `:"claude-haiku-5-5"` - Cumulative server-executed tool usage across all turns. + Fastest model for high-volume, real-time tasks - - `web_fetch_requests: Integer` + - `:"claude-sonnet-5-5"` - Number of server-executed web fetch requests. + Efficient model for coding and agents - format: int32 + - `:"claude-opus-5-5"` - - `web_search_requests: Integer` + Powerful intelligence for coding, knowledge work, and long-running agents - Number of server-executed web search requests. + - `:"claude-fable-5-1"` - format: int32 + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `budget: BetaManagedAgentsBudgetLimit` + - `:"claude-sonnet-5"` - The session's configured budget at the snapshot time, or null when the session has no budget. + Efficient model for coding and agents - - `class BetaManagedAgentsWorkflowRunCreatedEvent` + - `:"claude-fable-5"` - A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. + Next generation of intelligence for the hardest knowledge work and coding problems - - `type: :"workflow_run.created"` + - `:"claude-opus-5"` - - `id: String` + Powerful intelligence for long-running agents and coding - Unique identifier for this event. + - `:"claude-opus-4-8"` - - `description: String` + Powerful intelligence for long-running agents and coding - Description that the agent gave the run, passed on as written, or `null` if it gave none. + - `:"claude-opus-4-7"` - - `name: String` + Powerful intelligence for long-running agents and coding - Name that the agent gave the run, passed on as written, or a name that the server assigned. + - `:"claude-opus-4-6"` - - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` + Powerful intelligence for long-running agents and coding - The phases that the run's plan declares, in the plan's order. Can be empty. + - `:"claude-sonnet-4-6"` - - `id: String` + Best combination of speed and intelligence - Unique identifier for the phase. + - `:"claude-haiku-4-5"` - - `description: String` + - `:"claude-haiku-4-5-20251001"` - Description that the agent gave the phase, passed on as written, or `null` if it gave none. + - `:"claude-opus-4-5"` - - `name: String` + Powerful intelligence for long-running agents and coding - Name that the agent gave the phase, passed on as written. + - `:"claude-opus-4-5-20251101"` - - `processed_at: Time` + Powerful intelligence for long-running agents and coding - Timestamp when this event was processed. + - `:"claude-sonnet-4-5"` - format: date-time + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `workflow_run_id: String` + High-performance model for agents and coding - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `:"claude-sonnet-4-5-20250929"` - - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. + High-performance model for agents and coding - - `type: :"workflow_run.status_ended"` + - `String = String` - - `id: String` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - Unique identifier for this event. + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `processed_at: Time` + - `class BetaManagedAgentsEffortLow` - Timestamp when this event was processed. + Low effort. Favors latency over reasoning depth. - format: date-time + - `type: :low` - - `result: BetaManagedAgentsWorkflowRunResult` + - `class BetaManagedAgentsEffortMedium` - How the run ended. + Medium effort. Balances latency and reasoning depth. - - `class BetaManagedAgentsWorkflowRunResultCompleted` + - `type: :medium` - The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. + - `class BetaManagedAgentsEffortHigh` - - `type: :completed` + High effort. Favors reasoning depth. - - `class BetaManagedAgentsWorkflowRunResultError` + - `type: :high` - The run failed or reached its time limit. + - `class BetaManagedAgentsEffortXhigh` - - `type: :error` + Extra-high effort. Not all models accept this level. - - `error: BetaManagedAgentsWorkflowRunError` + - `type: :xhigh` - Why the run did not finish. + - `class BetaManagedAgentsEffortMax` - - `class BetaManagedAgentsTimeoutWorkflowRunError` + Maximum effort. Favors reasoning depth over latency. - The run reached its time limit. + - `type: :max` - - `type: :timeout_error` + - `inference_geo: String` - - `message: String` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - Short explanation written by the server. It never contains content from the run or its agents. + - `speed: :standard | :fast` - - `class BetaManagedAgentsProgramWorkflowRunError` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - The plan, a program that the agent wrote, failed, or the server refused it. + - `:standard` - - `type: :program_error` + - `:fast` - - `message: String` + - `multiagent: BetaManagedAgentsSessionMultiagent` - Short explanation written by the server. It never contains content from the run or its agents. + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - - `class BetaManagedAgentsUnknownWorkflowRunError` + - `class BetaManagedAgentsSessionMultiagentCoordinator` - A failure that has no type of its own. + Resolved coordinator topology with full agent definitions for each roster member. - - `type: :unknown_error` + - `type: :coordinator` - - `message: String` + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - Short explanation written by the server. It never contains content from the run or its agents. + Full `agent` definitions the coordinator may spawn as session threads. - - `class BetaManagedAgentsThreadLimitWorkflowRunError` + - `class BetaManagedAgentsSessionThreadAgent` - The run exceeded the limit on the number of threads that a run can create. + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `type: :thread_limit_error` + - `type: :agent` - - `message: String` + - `id: String` - Short explanation written by the server. It never contains content from the run or its agents. + - `description: String` - - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :max_workflow_runs_error` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `message: String` + - `type: :url` - Short explanation written by the server. It never contains content from the run or its agents. + - `name: String` - - `class BetaManagedAgentsWorkflowRunResultStopped` + - `url: String` - The agent stopped the run. + - `model: BetaManagedAgentsModelConfig` - - `type: :stopped` + Model identifier and configuration. - - `workflow_run_id: String` + - `name: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` + - `class BetaManagedAgentsAnthropicSkill` - A workflow run's plan entered a phase. + A resolved Anthropic-managed skill. - - `type: :"workflow_run.phase_started"` + - `type: :anthropic` - - `id: String` + - `skill_id: String` - Unique identifier for this event. + - `version: String` - - `processed_at: Time` + - `class BetaManagedAgentsCustomSkill` - Timestamp when this event was processed. + A resolved user-created custom skill. - format: date-time + - `type: :custom` - - `workflow_run_id: String` + - `skill_id: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `version: String` - - `workflow_run_phase_id: String` + - `system_: String` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` + - `class BetaManagedAgentsAgentToolset20260401` - A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. + - `type: :agent_toolset_20260401` - - `type: :"workflow_run.phase_ended"` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `id: String` + - `class BetaManagedAgentsBashToolConfig` - Unique identifier for this event. + Configuration for the bash tool. - - `phase_started_id: String` + - `type: :bash` - Identifier of the `workflow_run.phase_started` event that opened the phase. + - `enabled: bool` - - `processed_at: Time` + - `name: :bash` - Timestamp when this event was processed. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - format: date-time + Permission policy for tool execution. - - `workflow_run_id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Tool calls are automatically approved without user confirmation. - - `workflow_run_phase_id: String` + - `type: :always_allow` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` + Tool calls require user confirmation before execution. - A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. + - `type: :always_ask` - - `type: :"workflow_run.status_running"` + - `class BetaManagedAgentsAutoPolicy` - - `id: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Unique identifier for this event. + - `type: :auto` - - `processed_at: Time` + - `class BetaManagedAgentsEditToolConfig` - Timestamp when this event was processed. + Configuration for the edit tool. - format: date-time + - `type: :edit` - - `workflow_run_id: String` + - `enabled: bool` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `name: :edit` - - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. + Permission policy for tool execution. - - `type: :"workflow_run.status_idle"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `id: String` + Tool calls are automatically approved without user confirmation. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `processed_at: Time` + Tool calls require user confirmation before execution. - Timestamp when this event was processed. + - `class BetaManagedAgentsAutoPolicy` - format: date-time + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `workflow_run_id: String` + - `class BetaManagedAgentsReadToolConfig` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Configuration for the read tool. - - `class BetaManagedAgentsWorkflowRunErrorEvent` + - `type: :read` - A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. + - `enabled: bool` - - `type: :"workflow_run.error"` + - `name: :read` - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Unique identifier for this event. + Permission policy for tool execution. - - `error: BetaManagedAgentsWorkflowRunError` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Why the run did not finish, or was not created. + Tool calls are automatically approved without user confirmation. - - `processed_at: Time` + - `class BetaManagedAgentsAlwaysAskPolicy` - Timestamp when this event was processed. + Tool calls require user confirmation before execution. - format: date-time + - `class BetaManagedAgentsAutoPolicy` - - `workflow_run_id: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Identifier of the run that met the error, or `null` when the error kept a run from being created. + - `class BetaManagedAgentsWriteToolConfig` -#### Example + Configuration for the write tool. -```ruby -require "anthropic" + - `type: :write` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `enabled: bool` -stream = anthropic.beta.sessions.events.stream_events("sesn_011CZkZAtmR3yMPDzynEDxu7") + - `name: :write` -stream.each do |event| - puts(event) -end -``` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -##### Response (200) + Permission policy for tool execution. -```json -{ - "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", - "content": [ - { - "text": "Where is my order #1234?", - "type": "text" - } - ], - "type": "user.message", - "processed_at": "2026-03-15T10:00:00Z" -} -``` + - `class BetaManagedAgentsAlwaysAllowPolicy` -## Beta › Sessions › Resources + Tool calls are automatically approved without user confirmation. -### Add Session Resource + - `class BetaManagedAgentsAlwaysAskPolicy` -`beta.sessions.resources.add(session_id, **kwargs) -> BetaManagedAgentsFileResource` + Tool calls require user confirmation before execution. -**POST** `/v1/sessions/{session_id}/resources` + - `class BetaManagedAgentsAutoPolicy` -Add Session Resource + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -#### Parameters + - `class BetaManagedAgentsGlobToolConfig` -- `session_id: String` (path parameter) + Configuration for the glob tool. -- `file_id: String` + - `type: :glob` - ID of a previously uploaded file. + - `enabled: bool` - minLength: 1, maxLength: 128 + - `name: :glob` -- `type: :file` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -- `mount_path: String` + Permission policy for tool execution. - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `class BetaManagedAgentsAlwaysAllowPolicy` - minLength: 1, maxLength: 4096 + Tool calls are automatically approved without user confirmation. -- `betas: Array[AnthropicBeta]` (header parameter) + - `class BetaManagedAgentsAlwaysAskPolicy` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Tool calls require user confirmation before execution. - - `String = String` + - `class BetaManagedAgentsAutoPolicy` - - `:"message-batches-2024-09-24"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsGrepToolConfig` - - `:"computer-use-2024-10-22"` + Configuration for the grep tool. - - `:"computer-use-2025-01-24"` + - `type: :grep` - - `:"pdfs-2024-09-25"` + - `enabled: bool` - - `:"token-counting-2024-11-01"` + - `name: :grep` - - `:"token-efficient-tools-2025-02-19"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"output-128k-2025-02-19"` + Permission policy for tool execution. - - `:"files-api-2025-04-14"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"mcp-client-2025-04-04"` + Tool calls are automatically approved without user confirmation. - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"dev-full-thinking-2025-05-14"` + Tool calls require user confirmation before execution. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsAutoPolicy` - - `:"code-execution-2025-05-22"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsWebFetchToolConfig` - - `:"context-1m-2025-08-07"` + Configuration for the web_fetch tool. - - `:"context-management-2025-06-27"` + - `type: :web_fetch` - - `:"model-context-window-exceeded-2025-08-26"` + - `enabled: bool` - - `:"skills-2025-10-02"` + - `name: :web_fetch` - - `:"fast-mode-2026-02-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"output-300k-2026-03-24"` + Permission policy for tool execution. - - `:"user-profiles-2026-03-24"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"user-profiles-2026-08-18"` + Tool calls are automatically approved without user confirmation. - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"advisor-tool-2026-03-01"` + Tool calls require user confirmation before execution. - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsAutoPolicy` - - `:"cache-diagnosis-2026-04-07"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"dreaming-2026-04-21"` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `:"thinking-token-count-2026-05-13"` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `:"server-side-fallback-2026-06-01"` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:"server-side-fallback-2026-07-01"` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `:"fallback-credit-2026-06-01"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"fallback-credit-2026-07-01"` + Every URL from this source may be fetched. This is the default. - - `:"agent-memory-2026-07-22"` + - `type: :all` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `:"compact-2026-01-12"` + This source contributes no URLs that may be fetched. - - `:"computer-use-2025-11-24"` + - `type: :none` - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `:"structured-outputs-2025-11-13"` + Only the named tools' results contribute URLs that may be fetched. - - `:"task-budgets-2026-03-13"` + - `type: :only` - - `:"thinking-display-updates-2026-08-18"` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `:"ce-user-management-2026-07-13"` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :tool_reference` - - `:"thinking-binding-controls-2026-08-01"` + Must be "tool_reference". - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `name: String` - - `:"compact-2026-09-04"` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `:"inline-tools-2026-09-15"` + minLength: 1, maxLength: 128 - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `:"ce-plugins-2026-09-01"` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `:"spend-limit-reads-2026-09-26"` + - `type: :except` - - `:"telemetry-destinations-2026-08-11"` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` -- `workspace_id: String` (header parameter) + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :tool_reference` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Must be "tool_reference". -#### Returns + - `name: String` -- `class BetaManagedAgentsFileResource` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `type: :file` + minLength: 1, maxLength: 128 - - `id: String` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `created_at: Time` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - A timestamp in RFC 3339 format + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - format: date-time + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `file_id: String` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `mount_path: String` + Every URL from this source may be fetched. This is the default. - - `updated_at: Time` + - `class BetaManagedAgentsWebFetchURLSourceNone` - A timestamp in RFC 3339 format + This source contributes no URLs that may be fetched. - format: date-time + - `allowed_domains: Array[String]` -#### Example + - `blocked_domains: Array[String]` -```ruby -require "anthropic" + - `max_content_tokens: Integer` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + format: int32 -beta_managed_agents_file_resource = anthropic.beta.sessions.resources.add( - "sesn_011CZkZAtmR3yMPDzynEDxu7", - file_id: "file_011CNha8iCJcU1wXNR6q4V8w", - type: :file -) + - `class BetaManagedAgentsWebSearchToolConfig` -puts(beta_managed_agents_file_resource) -``` + Configuration for the web_search tool. -##### Response (200) + - `type: :web_search` -```json -{ - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" -} -``` + - `enabled: bool` -### List Session Resources + - `name: :web_search` -`beta.sessions.resources.list(session_id, **kwargs) -> PageCursor` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -**GET** `/v1/sessions/{session_id}/resources` + Permission policy for tool execution. -List Session Resources + - `class BetaManagedAgentsAlwaysAllowPolicy` -#### Parameters + Tool calls are automatically approved without user confirmation. -- `session_id: String` (path parameter) + - `class BetaManagedAgentsAlwaysAskPolicy` -- `limit: Integer` (query parameter) + Tool calls require user confirmation before execution. - Maximum number of resources to return per page (max 1000). If omitted, returns all resources. + - `class BetaManagedAgentsAutoPolicy` - format: int32 + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -- `page: String` (query parameter) + - `allowed_domains: Array[String]` - Opaque cursor from a previous response's `next_page` field. + - `blocked_domains: Array[String]` -- `betas: Array[AnthropicBeta]` (header parameter) + - `user_location: BetaManagedAgentsUserLocation` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Approximate user location for search result localization. - - `String = String` + - `type: :approximate` - - `:"message-batches-2024-09-24"` + Location precision. Only "approximate" is supported. - - `:"prompt-caching-2024-07-31"` + - `city: String` - - `:"computer-use-2024-10-22"` + City name. - - `:"computer-use-2025-01-24"` + minLength: 1, maxLength: 255 - - `:"pdfs-2024-09-25"` + - `country: String` - - `:"token-counting-2024-11-01"` + Two-letter ISO 3166-1 country code, uppercase. - - `:"token-efficient-tools-2025-02-19"` + - `region: String` - - `:"output-128k-2025-02-19"` + Region or state name. - - `:"files-api-2025-04-14"` + minLength: 1, maxLength: 255 - - `:"mcp-client-2025-04-04"` + - `timezone: String` - - `:"mcp-client-2025-11-20"` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `:"dev-full-thinking-2025-05-14"` + minLength: 1, maxLength: 255 - - `:"interleaved-thinking-2025-05-14"` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `:"code-execution-2025-05-22"` + Resolved default configuration for agent tools. - - `:"extended-cache-ttl-2025-04-11"` + - `enabled: bool` - - `:"context-1m-2025-08-07"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"context-management-2025-06-27"` + Permission policy for tool execution. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"skills-2025-10-02"` + Tool calls are automatically approved without user confirmation. - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"output-300k-2026-03-24"` + Tool calls require user confirmation before execution. - - `:"user-profiles-2026-03-24"` + - `class BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-08-18"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsMCPToolset` - - `:"advisor-tool-2026-03-01"` + - `type: :mcp_toolset` - - `:"managed-agents-2026-04-01"` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `:"cache-diagnosis-2026-04-07"` + - `enabled: bool` - - `:"dreaming-2026-04-21"` + - `name: String` - - `:"thinking-token-count-2026-05-13"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"server-side-fallback-2026-06-01"` + Permission policy for tool execution. - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"fallback-credit-2026-06-01"` + Tool calls are automatically approved without user confirmation. - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"agent-memory-2026-07-22"` + Tool calls require user confirmation before execution. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaManagedAgentsAutoPolicy` - - `:"compact-2026-01-12"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"computer-use-2025-11-24"` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `:"mcp-tunnels-2026-06-22"` + Resolved default configuration for all tools from an MCP server. - - `:"structured-outputs-2025-11-13"` + - `enabled: bool` - - `:"task-budgets-2026-03-13"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"thinking-display-updates-2026-08-18"` + Permission policy for tool execution. - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"mid-conversation-output-config-2026-07-01"` + Tool calls are automatically approved without user confirmation. - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Tool calls require user confirmation before execution. - - `:"compact-2026-09-04"` + - `class BetaManagedAgentsAutoPolicy` - - `:"inline-tools-2026-09-15"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"mcp-client-2026-09-15"` + - `mcp_server_name: String` - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsCustomTool` - - `:"spend-limit-reads-2026-09-26"` + A custom tool as returned in API responses. - - `:"telemetry-destinations-2026-08-11"` + - `type: :custom` -- `workspace_id: String` (header parameter) + - `description: String` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + JSON Schema for custom tool input parameters. -#### Returns + - `type: :object` -- `type BetaManagedAgentsSessionResource = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsGitHubRepositoryResource` + - `required: Array[String]` - - `type: :github_repository` + - `name: String` - - `id: String` + - `version: Integer` - - `created_at: Time` + format: int32 - A timestamp in RFC 3339 format + - `class BetaManagedAgentsAdvisor` - format: date-time + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `mount_path: String` + - `type: :advisor` - - `updated_at: Time` + - `model: String` - A timestamp in RFC 3339 format + The advisor model id. - format: date-time + - `class BetaManagedAgentsSessionMultiagent20261001` - - `url: String` + Resolved multiagent configuration with three members, as copied to the `session` at creation. - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `type: :multiagent_20261001` - - `class BetaManagedAgentsBranchCheckout` + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `type: :branch` + Whether the session's primary thread can consult an advisor model. - - `name: String` + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - Branch name to check out. + The session's primary thread can consult `model` mid-turn. - minLength: 1, maxLength: 255 + - `type: :enabled` - - `class BetaManagedAgentsCommitCheckout` + - `model: String` - - `type: :commit` + The advisor model id. - - `sha: String` + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - Full commit SHA to check out. + The agent has no advisor. - minLength: 7, maxLength: 64 + - `type: :disabled` - - `class BetaManagedAgentsFileResource` + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - - `type: :file` + Whether the agent can spawn session threads. - - `id: String` + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - - `created_at: Time` + The agent can spawn session threads. - A timestamp in RFC 3339 format + - `type: :enabled` - format: date-time + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `file_id: String` + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `mount_path: String` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `updated_at: Time` + The agent can define inline agents. - A timestamp in RFC 3339 format + - `type: :enabled` - format: date-time + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - - `class BetaManagedAgentsMemoryStoreResource` + The agent cannot define inline agents. - A memory store attached to an agent session. + - `type: :disabled` - - `type: :memory_store` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - - `memory_store_id: String` + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `type: :agent` - - `access: :read_write | :read_only` + - `id: String` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `description: String` - - `:read_write` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `:read_only` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `description: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. + - `model: BetaManagedAgentsModelConfig` - - `instructions: String` + Model identifier and configuration. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `name: String` - maxLength: 4096 + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `mount_path: String` + - `system_: String` - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `name: String` + - `version: Integer` - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. + format: int32 -#### Example + - `class BetaManagedAgentsMultiagentSubagentsDisabled` -```ruby -require "anthropic" + The agent cannot spawn session threads. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :disabled` -page = anthropic.beta.sessions.resources.list("sesn_011CZkZAtmR3yMPDzynEDxu7") + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` -puts(page) -``` + Whether the agent can start workflow runs. -##### Response (200) + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` -```json -{ - "data": [ - { - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "mount_path": "/uploads/receipt.pdf", - "type": "file", - "updated_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + The agent can start workflow runs. -### Get Session Resource + - `type: :enabled` -`beta.sessions.resources.retrieve(resource_id, **kwargs) -> ResourceRetrieveResponse` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` -**GET** `/v1/sessions/{session_id}/resources/{resource_id}` + Whether a run's plan can define inline agents, which are not saved. -Get Session Resource + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` -#### Parameters + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. -- `session_id: String` (path parameter) + - `type: :agent` -- `resource_id: String` (path parameter) + - `id: String` -- `betas: Array[AnthropicBeta]` (header parameter) + - `description: String` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `String = String` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `:"message-batches-2024-09-24"` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `:"prompt-caching-2024-07-31"` + - `model: BetaManagedAgentsModelConfig` - - `:"computer-use-2024-10-22"` + Model identifier and configuration. - - `:"computer-use-2025-01-24"` + - `name: String` - - `:"pdfs-2024-09-25"` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `:"token-counting-2024-11-01"` + - `system_: String` - - `:"token-efficient-tools-2025-02-19"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"output-128k-2025-02-19"` + - `version: Integer` - - `:"files-api-2025-04-14"` + format: int32 - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - - `:"mcp-client-2025-11-20"` + The agent cannot start workflow runs. - - `:"dev-full-thinking-2025-05-14"` + - `type: :disabled` - - `:"interleaved-thinking-2025-05-14"` + - `name: String` - - `:"code-execution-2025-05-22"` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsAnthropicSkill` - - `:"context-1m-2025-08-07"` + A resolved Anthropic-managed skill. - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsCustomSkill` - - `:"model-context-window-exceeded-2025-08-26"` + A resolved user-created custom skill. - - `:"skills-2025-10-02"` + - `system_: String` - - `:"fast-mode-2026-02-01"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsAgentToolset20260401` - - `:"user-profiles-2026-03-24"` + - `class BetaManagedAgentsMCPToolset` - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsCustomTool` - - `:"user-profiles-2026-09-04"` + A custom tool as returned in API responses. - - `:"advisor-tool-2026-03-01"` + - `version: Integer` - - `:"managed-agents-2026-04-01"` + format: int32 - - `:"cache-diagnosis-2026-04-07"` + - `budget: BetaManagedAgentsBudgetLimit` - - `:"dreaming-2026-04-21"` + The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. - - `:"thinking-token-count-2026-05-13"` + - `type: :limit` - - `:"server-side-fallback-2026-06-01"` + - `max_list_cost: BetaMonetaryAmount` - - `:"server-side-fallback-2026-07-01"` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `:"fallback-credit-2026-06-01"` + - `amount: String` - - `:"fallback-credit-2026-07-01"` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `:"agent-memory-2026-07-22"` + - `currency: BetaCurrency` - - `:"mid-conversation-tool-changes-2026-07-01"` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `:"compact-2026-01-12"` + - `metadata: Hash[Symbol, String]` - - `:"computer-use-2025-11-24"` + The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. - - `:"mcp-tunnels-2026-06-22"` + - `title: String` - - `:"structured-outputs-2025-11-13"` + The session's new title. Present only when the update changed it. - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsSystemMessageEvent` - - `:"thinking-display-updates-2026-08-18"` + A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. - - `:"ce-user-management-2026-07-13"` + - `type: :"system.message"` - - `:"mid-conversation-output-config-2026-07-01"` + - `id: String` - - `:"thinking-binding-controls-2026-08-01"` + Unique identifier for this event. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `:"compact-2026-09-04"` + System content blocks. Text-only. - - `:"inline-tools-2026-09-15"` + - `type: :text` - - `:"mcp-client-2026-09-15"` + - `text: String` - - `:"ce-plugins-2026-09-01"` + The text content. - - `:"spend-limit-reads-2026-09-26"` + minLength: 1 - - `:"telemetry-destinations-2026-08-11"` + - `processed_at: Time` -- `workspace_id: String` (header parameter) + Timestamp when this system message was processed. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - -#### Returns - -- `type ResourceRetrieveResponse = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` + format: date-time - The requested session resource. + - `class BetaManagedAgentsSessionUsageEvent` - - `class BetaManagedAgentsGitHubRepositoryResource` + Periodic snapshot of the session's cumulative usage and tracked list cost. - - `type: :github_repository` + - `type: :"session.usage"` - `id: String` - - `created_at: Time` - - A timestamp in RFC 3339 format - - format: date-time - - - `mount_path: String` + Unique identifier for this event. - - `updated_at: Time` + - `processed_at: Time` - A timestamp in RFC 3339 format + Timestamp when the snapshot was taken. format: date-time - - `url: String` - - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `usage: BetaManagedAgentsSessionUsageSnapshot` - - `class BetaManagedAgentsBranchCheckout` + The session's cumulative usage at the snapshot time. - - `type: :branch` + - `active_seconds: Float` - - `name: String` + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. - Branch name to check out. + format: double - minLength: 1, maxLength: 255 + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `class BetaManagedAgentsCommitCheckout` + Tokens used to create prompt cache entries, broken down by cache TTL. - - `type: :commit` + - `ephemeral_1h_input_tokens: Integer` - - `sha: String` + Tokens used to create 1-hour ephemeral cache entries. - Full commit SHA to check out. + format: int32 - minLength: 7, maxLength: 64 + - `ephemeral_5m_input_tokens: Integer` - - `class BetaManagedAgentsFileResource` + Tokens used to create 5-minute ephemeral cache entries. - - `type: :file` + format: int32 - - `id: String` + - `cache_read_input_tokens: Integer` - - `created_at: Time` + Total tokens read from prompt cache. - A timestamp in RFC 3339 format + format: int32 - format: date-time + - `input_tokens: Integer` - - `file_id: String` + Total input tokens consumed across all turns. - - `mount_path: String` + format: int32 - - `updated_at: Time` + - `list_cost: BetaMonetaryAmount` - A timestamp in RFC 3339 format + Cumulative list cost of the session across all turns, priced at public list rates. - format: date-time + - `output_tokens: Integer` - - `class BetaManagedAgentsMemoryStoreResource` + Total output tokens generated across all turns. - A memory store attached to an agent session. + format: int32 - - `type: :memory_store` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `memory_store_id: String` + Cumulative server-executed tool usage across all turns. - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `web_fetch_requests: Integer` - - `access: :read_write | :read_only` + Number of server-executed web fetch requests. - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + format: int32 - - `:read_write` + - `web_search_requests: Integer` - - `:read_only` + Number of server-executed web search requests. - - `description: String` + format: int32 - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. + - `budget: BetaManagedAgentsBudgetLimit` - - `instructions: String` + The session's configured budget at the snapshot time, or null when the session has no budget. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `class BetaManagedAgentsWorkflowRunCreatedEvent` - maxLength: 4096 + A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. - - `mount_path: String` + - `type: :"workflow_run.created"` - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. + - `id: String` - - `name: String` + Unique identifier for this event. - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. + - `description: String` -#### Example + Description that the agent gave the run, passed on as written, or `null` if it gave none. -```ruby -require "anthropic" + - `name: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Name that the agent gave the run, passed on as written, or a name that the server assigned. -resource = anthropic.beta.sessions.resources.retrieve( - "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` -puts(resource) -``` + The phases that the run's plan declares, in the plan's order. Can be empty. -##### Response (200) + - `id: String` -```json -{ - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } -} -``` + Unique identifier for the phase. -### Update Session Resource + - `description: String` -`beta.sessions.resources.update(resource_id, **kwargs) -> ResourceUpdateResponse` + Description that the agent gave the phase, passed on as written, or `null` if it gave none. -**POST** `/v1/sessions/{session_id}/resources/{resource_id}` + - `name: String` -Update Session Resource + Name that the agent gave the phase, passed on as written. -#### Parameters + - `processed_at: Time` -- `session_id: String` (path parameter) + Timestamp when this event was processed. -- `resource_id: String` (path parameter) + format: date-time -- `authorization_token: String` + - `workflow_run_id: String` - New authorization token for the resource. Currently only `github_repository` resources support token rotation. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - minLength: 1, maxLength: 4096 + - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` -- `betas: Array[AnthropicBeta]` (header parameter) + A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `type: :"workflow_run.status_ended"` - - `String = String` + - `id: String` - - `:"message-batches-2024-09-24"` + Unique identifier for this event. - - `:"prompt-caching-2024-07-31"` + - `processed_at: Time` - - `:"computer-use-2024-10-22"` + Timestamp when this event was processed. - - `:"computer-use-2025-01-24"` + format: date-time - - `:"pdfs-2024-09-25"` + - `result: BetaManagedAgentsWorkflowRunResult` - - `:"token-counting-2024-11-01"` + How the run ended. - - `:"token-efficient-tools-2025-02-19"` + - `class BetaManagedAgentsWorkflowRunResultCompleted` - - `:"output-128k-2025-02-19"` + The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. - - `:"files-api-2025-04-14"` + - `type: :completed` - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsWorkflowRunResultError` - - `:"mcp-client-2025-11-20"` + The run failed or reached its time limit. - - `:"dev-full-thinking-2025-05-14"` + - `type: :error` - - `:"interleaved-thinking-2025-05-14"` + - `error: BetaManagedAgentsWorkflowRunError` - - `:"code-execution-2025-05-22"` + Why the run did not finish. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsTimeoutWorkflowRunError` - - `:"context-1m-2025-08-07"` + The run reached its time limit. - - `:"context-management-2025-06-27"` + - `type: :timeout_error` - - `:"model-context-window-exceeded-2025-08-26"` + - `message: String` - - `:"skills-2025-10-02"` + Short explanation written by the server. It never contains content from the run or its agents. - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsProgramWorkflowRunError` - - `:"output-300k-2026-03-24"` + The plan, a program that the agent wrote, failed, or the server refused it. - - `:"user-profiles-2026-03-24"` + - `type: :program_error` - - `:"user-profiles-2026-08-18"` + - `message: String` - - `:"user-profiles-2026-09-04"` + Short explanation written by the server. It never contains content from the run or its agents. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsUnknownWorkflowRunError` - - `:"managed-agents-2026-04-01"` + A failure that has no type of its own. - - `:"cache-diagnosis-2026-04-07"` + - `type: :unknown_error` - - `:"dreaming-2026-04-21"` + - `message: String` - - `:"thinking-token-count-2026-05-13"` + Short explanation written by the server. It never contains content from the run or its agents. - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsThreadLimitWorkflowRunError` - - `:"server-side-fallback-2026-07-01"` + The run exceeded the limit on the number of threads that a run can create. - - `:"fallback-credit-2026-06-01"` + - `type: :thread_limit_error` - - `:"fallback-credit-2026-07-01"` + - `message: String` - - `:"agent-memory-2026-07-22"` + Short explanation written by the server. It never contains content from the run or its agents. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` - - `:"compact-2026-01-12"` + No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. - - `:"computer-use-2025-11-24"` + - `type: :max_workflow_runs_error` - - `:"mcp-tunnels-2026-06-22"` + - `message: String` - - `:"structured-outputs-2025-11-13"` + Short explanation written by the server. It never contains content from the run or its agents. - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsWorkflowRunResultStopped` - - `:"thinking-display-updates-2026-08-18"` + The agent stopped the run. - - `:"ce-user-management-2026-07-13"` + - `type: :stopped` - - `:"mid-conversation-output-config-2026-07-01"` + - `workflow_run_id: String` - - `:"thinking-binding-controls-2026-08-01"` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` - - `:"compact-2026-09-04"` + A workflow run's plan entered a phase. - - `:"inline-tools-2026-09-15"` + - `type: :"workflow_run.phase_started"` - - `:"mcp-client-2026-09-15"` + - `id: String` - - `:"ce-plugins-2026-09-01"` + Unique identifier for this event. - - `:"spend-limit-reads-2026-09-26"` + - `processed_at: Time` - - `:"telemetry-destinations-2026-08-11"` + Timestamp when this event was processed. -- `workspace_id: String` (header parameter) + format: date-time - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `workflow_run_id: String` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. -#### Returns + - `workflow_run_phase_id: String` -- `type ResourceUpdateResponse = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - The updated session resource. + - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` - - `class BetaManagedAgentsGitHubRepositoryResource` + A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. - - `type: :github_repository` + - `type: :"workflow_run.phase_ended"` - `id: String` - - `created_at: Time` - - A timestamp in RFC 3339 format + Unique identifier for this event. - format: date-time + - `phase_started_id: String` - - `mount_path: String` + Identifier of the `workflow_run.phase_started` event that opened the phase. - - `updated_at: Time` + - `processed_at: Time` - A timestamp in RFC 3339 format + Timestamp when this event was processed. format: date-time - - `url: String` - - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `workflow_run_id: String` - - `class BetaManagedAgentsBranchCheckout` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `type: :branch` + - `workflow_run_phase_id: String` - - `name: String` + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - Branch name to check out. + - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` - minLength: 1, maxLength: 255 + A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. - - `class BetaManagedAgentsCommitCheckout` + - `type: :"workflow_run.status_running"` - - `type: :commit` + - `id: String` - - `sha: String` + Unique identifier for this event. - Full commit SHA to check out. + - `processed_at: Time` - minLength: 7, maxLength: 64 + Timestamp when this event was processed. - - `class BetaManagedAgentsFileResource` + format: date-time - - `type: :file` + - `workflow_run_id: String` - - `id: String` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `created_at: Time` + - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` - A timestamp in RFC 3339 format + A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. - format: date-time + - `type: :"workflow_run.status_idle"` - - `file_id: String` + - `id: String` - - `mount_path: String` + Unique identifier for this event. - - `updated_at: Time` + - `processed_at: Time` - A timestamp in RFC 3339 format + Timestamp when this event was processed. format: date-time - - `class BetaManagedAgentsMemoryStoreResource` - - A memory store attached to an agent session. - - - `type: :memory_store` - - - `memory_store_id: String` - - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `workflow_run_id: String` - - `access: :read_write | :read_only` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `class BetaManagedAgentsWorkflowRunErrorEvent` - - `:read_write` + A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. - - `:read_only` + - `type: :"workflow_run.error"` - - `description: String` + - `id: String` - Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. + Unique identifier for this event. - - `instructions: String` + - `error: BetaManagedAgentsWorkflowRunError` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + Why the run did not finish, or was not created. - maxLength: 4096 + - `processed_at: Time` - - `mount_path: String` + Timestamp when this event was processed. - Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. + format: date-time - - `name: String` + - `workflow_run_id: String` - Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. + Identifier of the run that met the error, or `null` when the error kept a run from being created. #### Example @@ -52625,231 +51931,416 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -resource = anthropic.beta.sessions.resources.update( - "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7", - authorization_token: "ghp_exampletoken" -) +page = anthropic.beta.sessions.events.list("sesn_011CZkZAtmR3yMPDzynEDxu7") -puts(resource) +puts(page) ``` ##### Response (200) ```json { - "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", - "created_at": "2026-03-15T10:00:00Z", - "mount_path": "/workspace/example-repo", - "type": "github_repository", - "updated_at": "2026-03-15T10:00:00Z", - "url": "https://github.com/example-org/example-repo", - "checkout": { - "name": "main", - "type": "branch" - } + "data": [ + { + "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", + "content": [ + { + "text": "Where is my order #1234?", + "type": "text" + } + ], + "type": "user.message", + "processed_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sevt_011CZkZHPq1jCdq5mbRTjiVn", + "content": [ + { + "text": "Let me look up order #1234 for you.", + "type": "text" + } + ], + "processed_at": "2026-03-15T10:00:00Z", + "type": "agent.message" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -### Delete Session Resource +### Send Events -`beta.sessions.resources.delete(resource_id, **kwargs) -> BetaManagedAgentsDeleteSessionResource` +`beta.sessions.events.send_(session_id, **kwargs) -> BetaManagedAgentsSendSessionEvents` -**DELETE** `/v1/sessions/{session_id}/resources/{resource_id}` +**POST** `/v1/sessions/{session_id}/events` -Delete Session Resource +Send Events #### Parameters - `session_id: String` (path parameter) -- `resource_id: String` (path parameter) +- `events: Array[BetaManagedAgentsEventParams]` -- `betas: Array[AnthropicBeta]` (header parameter) + Events to send to the `session`. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `class BetaManagedAgentsUserMessageEventParams` - - `String = String` + Parameters for sending a user message to the session. - - `:"message-batches-2024-09-24"` + - `type: :"user.message"` - - `:"prompt-caching-2024-07-31"` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `:"computer-use-2024-10-22"` + Array of content blocks for the user message. - - `:"computer-use-2025-01-24"` + - `class BetaManagedAgentsTextBlock` - - `:"pdfs-2024-09-25"` + Regular text content. - - `:"token-counting-2024-11-01"` + - `type: :text` - - `:"token-efficient-tools-2025-02-19"` + - `text: String` - - `:"output-128k-2025-02-19"` + The text content. - - `:"files-api-2025-04-14"` + minLength: 1 - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsImageBlock` - - `:"mcp-client-2025-11-20"` + Image content specified directly as base64 data or as a reference via a URL. - - `:"dev-full-thinking-2025-05-14"` + - `type: :image` - - `:"interleaved-thinking-2025-05-14"` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `:"code-execution-2025-05-22"` + The source of the image data. - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsBase64ImageSource` - - `:"context-1m-2025-08-07"` + Base64-encoded image data. - - `:"context-management-2025-06-27"` + - `type: :base64` - - `:"model-context-window-exceeded-2025-08-26"` + - `data: String` - - `:"skills-2025-10-02"` + Base64-encoded image data. - - `:"fast-mode-2026-02-01"` + minLength: 1 - - `:"output-300k-2026-03-24"` + - `media_type: String` - - `:"user-profiles-2026-03-24"` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `:"user-profiles-2026-08-18"` + minLength: 1 - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsURLImageSource` - - `:"advisor-tool-2026-03-01"` + Image referenced by URL. - - `:"managed-agents-2026-04-01"` + - `type: :url` - - `:"cache-diagnosis-2026-04-07"` + - `url: String` - - `:"dreaming-2026-04-21"` + URL of the image to fetch. - - `:"thinking-token-count-2026-05-13"` + minLength: 1 - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsFileImageSource` - - `:"server-side-fallback-2026-07-01"` + Image referenced by file ID. - - `:"fallback-credit-2026-06-01"` + - `type: :file` - - `:"fallback-credit-2026-07-01"` + - `file_id: String` - - `:"agent-memory-2026-07-22"` + ID of a previously uploaded file. - - `:"mid-conversation-tool-changes-2026-07-01"` + minLength: 1 - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsDocumentBlock` - - `:"computer-use-2025-11-24"` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `:"mcp-tunnels-2026-06-22"` + - `type: :document` - - `:"structured-outputs-2025-11-13"` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `:"task-budgets-2026-03-13"` + The source of the document data. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsBase64DocumentSource` - - `:"ce-user-management-2026-07-13"` + Base64-encoded document data. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :base64` - - `:"thinking-binding-controls-2026-08-01"` + - `data: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Base64-encoded document data. - - `:"compact-2026-09-04"` + minLength: 1 - - `:"inline-tools-2026-09-15"` + - `media_type: String` - - `:"mcp-client-2026-09-15"` + MIME type of the document (e.g., "application/pdf"). - - `:"ce-plugins-2026-09-01"` + minLength: 1 - - `:"spend-limit-reads-2026-09-26"` + - `class BetaManagedAgentsPlainTextDocumentSource` - - `:"telemetry-destinations-2026-08-11"` + Plain text document content. -- `workspace_id: String` (header parameter) + - `type: :text` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `data: String` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + The plain text content. -#### Returns + minLength: 1 -- `class BetaManagedAgentsDeleteSessionResource` + - `media_type: :"text/plain"` - Confirmation of resource deletion. + MIME type of the text content. Must be "text/plain". - - `type: :session_resource_deleted` + - `class BetaManagedAgentsURLDocumentSource` - - `id: String` + Document referenced by URL. -#### Example + - `type: :url` -```ruby -require "anthropic" + - `url: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + URL of the document to fetch. -beta_managed_agents_delete_session_resource = anthropic.beta.sessions.resources.delete( - "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + minLength: 1 -puts(beta_managed_agents_delete_session_resource) -``` + - `class BetaManagedAgentsFileDocumentSource` -##### Response (200) + Document referenced by file ID. -```json -{ - "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", - "type": "session_resource_deleted" -} -``` + - `type: :file` -## Beta › Sessions › Threads + - `file_id: String` -### List Session Threads + ID of a previously uploaded file. -`beta.sessions.threads.list(session_id, **kwargs) -> PageCursor` + minLength: 1 -**GET** `/v1/sessions/{session_id}/threads` + - `context: String` -List Session Threads + Additional context about the document for the model. -#### Parameters + - `title: String` -- `session_id: String` (path parameter) + The title of the document. -- `limit: Integer` (query parameter) + - `class BetaManagedAgentsRedactedBlock` - Maximum results per page. Defaults to 1000. + Placeholder for content withheld by Anthropic model policy. - format: int32 + - `type: :redacted` -- `page: String` (query parameter) + - `class BetaManagedAgentsUserInterruptEventParams` - Opaque pagination cursor from a previous response's `next_page`. Forward-only. + Parameters for sending an interrupt to pause the agent. -- `statuses: Array[BetaManagedAgentsSessionThreadStatus]` (query parameter) + - `type: :"user.interrupt"` - Return only threads that have one of these statuses. + - `session_thread_id: String` - Repeat the parameter to give more than one status. Leave it out to return threads of every status. + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - `:running` + - `class BetaManagedAgentsUserToolConfirmationEventParams` - - `:idle` + Parameters for confirming or denying a tool execution request. - - `:rescheduling` + - `type: :"user.tool_confirmation"` - - `:terminated` + - `result: :allow | :deny` + + The confirmation result: 'allow' or 'deny'. + + - `:allow` + + - `:deny` + + - `tool_use_id: String` + + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + + minLength: 1, maxLength: 128 + + - `deny_message: String` + + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + + maxLength: 10000 + + - `class BetaManagedAgentsUserCustomToolResultEventParams` + + Parameters for providing the result of a custom tool execution. + + - `type: :"user.custom_tool_result"` + + - `custom_tool_use_id: String` + + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + + minLength: 1, maxLength: 128 + + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + + The result content returned by the tool. + + - `class BetaManagedAgentsTextBlock` + + Regular text content. + + - `class BetaManagedAgentsImageBlock` + + Image content specified directly as base64 data or as a reference via a URL. + + - `class BetaManagedAgentsDocumentBlock` + + Document content, either specified directly as base64 data, as text, or as a reference via a URL. + + - `class BetaManagedAgentsSearchResultBlock` + + A block containing a web search result. + + - `type: :search_result` + + - `citations: BetaManagedAgentsSearchResultCitations` + + Citation settings for this search result. + + - `enabled: bool` + + Whether citations are enabled for this search result. + + - `content: Array[BetaManagedAgentsSearchResultContent]` + + Array of text content blocks from the search result. + + - `type: :text` + + - `text: String` + + The text content. + + minLength: 1 + + - `source: String` + + The URL source of the search result. + + minLength: 1 + + - `title: String` + + The title of the search result. + + minLength: 1 + + - `is_error: bool` + + Whether the tool execution resulted in an error. + + - `class BetaManagedAgentsUserDefineOutcomeEventParams` + + Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. + + - `type: :"user.define_outcome"` + + - `description: String` + + What the agent should produce. This is the task specification. + + - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` + + How to grade the outcome. Text or file reference. + + - `class BetaManagedAgentsFileRubricParams` + + Rubric referenced by a file uploaded via the Files API. + + - `type: :file` + + - `file_id: String` + + ID of the rubric file. + + - `class BetaManagedAgentsTextRubricParams` + + Rubric content provided inline as text. + + - `type: :text` + + - `content: String` + + Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + + maxLength: 262144 + + - `max_iterations: Integer` + + Eval→revision cycles before giving up. Default 3, max 20. + + format: int32 + + - `class BetaManagedAgentsUserToolResultEventParams` + + Parameters for providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + + - `type: :"user.tool_result"` + + - `tool_use_id: String` + + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + + minLength: 1, maxLength: 128 + + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + + The result content returned by the tool. + + - `class BetaManagedAgentsTextBlock` + + Regular text content. + + - `class BetaManagedAgentsImageBlock` + + Image content specified directly as base64 data or as a reference via a URL. + + - `class BetaManagedAgentsDocumentBlock` + + Document content, either specified directly as base64 data, as text, or as a reference via a URL. + + - `class BetaManagedAgentsSearchResultBlock` + + A block containing a web search result. + + - `is_error: bool` + + Whether the tool execution resulted in an error. + + - `class BetaManagedAgentsSystemMessageEventParams` + + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. + + - `type: :"system.message"` + + - `content: Array[BetaManagedAgentsSystemContentBlock]` + + System content blocks to append. Text-only. + + - `type: :text` + + - `text: String` + + The text content. + + minLength: 1 - `betas: Array[AnthropicBeta]` (header parameter) @@ -52959,6 +52450,8 @@ List Session Threads - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52967,3641 +52460,3374 @@ List Session Threads #### Returns -- `class BetaManagedAgentsSessionThread` +- `class BetaManagedAgentsSendSessionEvents` - An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. + Events that were successfully sent to the session. - - `type: :session_thread` + - `data: Array[BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 4 more]` - - `id: String` + Sent events - Unique identifier for this thread. + - `class BetaManagedAgentsUserMessageEvent` - - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` + A user message event in the session conversation. - Resolved agent definition for this thread. Snapshot of the agent at thread creation time. + - `type: :"user.message"` - - `class BetaManagedAgentsSessionThreadAgent` + - `id: String` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + Unique identifier for this event. - - `type: :agent` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `id: String` + Array of content blocks comprising the user message. - - `description: String` + - `class BetaManagedAgentsTextBlock` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Regular text content. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `type: :text` - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `text: String` - An AWS IAM role principal as returned in API responses. + The text content. - - `type: :aws_role` + minLength: 1 - - `role_arn: String` + - `class BetaManagedAgentsImageBlock` - The IAM role's ARN. + Image content specified directly as base64 data or as a reference via a URL. - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + - `type: :image` - The Anthropic-managed service account as returned in API responses. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `type: :service_account` + The source of the image data. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsBase64ImageSource` - - `type: :url` + Base64-encoded image data. - - `name: String` + - `type: :base64` - - `url: String` + - `data: String` - - `model: BetaManagedAgentsModelConfig` + Base64-encoded image data. - Model identifier and configuration. + minLength: 1 - - `id: BetaManagedAgentsModel` + - `media_type: String` - The model that will power your agent. + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + minLength: 1 - - `:"claude-haiku-5-5"` + - `class BetaManagedAgentsURLImageSource` - Fastest model for high-volume, real-time tasks + Image referenced by URL. - - `:"claude-sonnet-5-5"` + - `type: :url` - Efficient model for coding and agents + - `url: String` - - `:"claude-opus-5-5"` + URL of the image to fetch. - Powerful intelligence for coding, knowledge work, and long-running agents + minLength: 1 - - `:"claude-fable-5-1"` + - `class BetaManagedAgentsFileImageSource` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Image referenced by file ID. - - `:"claude-sonnet-5"` + - `type: :file` - Efficient model for coding and agents + - `file_id: String` - - `:"claude-fable-5"` + ID of a previously uploaded file. - Next generation of intelligence for the hardest knowledge work and coding problems + minLength: 1 - - `:"claude-opus-5"` + - `class BetaManagedAgentsDocumentBlock` - Powerful intelligence for long-running agents and coding + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `:"claude-opus-4-8"` + - `type: :document` - Powerful intelligence for long-running agents and coding + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `:"claude-opus-4-7"` + The source of the document data. - Powerful intelligence for long-running agents and coding + - `class BetaManagedAgentsBase64DocumentSource` - - `:"claude-opus-4-6"` + Base64-encoded document data. - Powerful intelligence for long-running agents and coding + - `type: :base64` - - `:"claude-sonnet-4-6"` + - `data: String` - Best combination of speed and intelligence + Base64-encoded document data. - - `:"claude-haiku-4-5"` + minLength: 1 - - `:"claude-haiku-4-5-20251001"` + - `media_type: String` - - `:"claude-opus-4-5"` + MIME type of the document (e.g., "application/pdf"). - Powerful intelligence for long-running agents and coding + minLength: 1 - - `:"claude-opus-4-5-20251101"` + - `class BetaManagedAgentsPlainTextDocumentSource` - Powerful intelligence for long-running agents and coding + Plain text document content. - - `:"claude-sonnet-4-5"` + - `type: :text` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `data: String` - High-performance model for agents and coding + The plain text content. - - `:"claude-sonnet-4-5-20250929"` + minLength: 1 - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `media_type: :"text/plain"` - High-performance model for agents and coding + MIME type of the text content. Must be "text/plain". - - `String = String` + - `class BetaManagedAgentsURLDocumentSource` - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + Document referenced by URL. - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `type: :url` - - `class BetaManagedAgentsEffortLow` + - `url: String` - Low effort. Favors latency over reasoning depth. + URL of the document to fetch. - - `type: :low` + minLength: 1 - - `class BetaManagedAgentsEffortMedium` + - `class BetaManagedAgentsFileDocumentSource` - Medium effort. Balances latency and reasoning depth. + Document referenced by file ID. - - `type: :medium` + - `type: :file` - - `class BetaManagedAgentsEffortHigh` + - `file_id: String` - High effort. Favors reasoning depth. + ID of a previously uploaded file. - - `type: :high` + minLength: 1 - - `class BetaManagedAgentsEffortXhigh` + - `context: String` - Extra-high effort. Not all models accept this level. + Additional context about the document for the model. - - `type: :xhigh` + - `title: String` - - `class BetaManagedAgentsEffortMax` + The title of the document. - Maximum effort. Favors reasoning depth over latency. + - `class BetaManagedAgentsRedactedBlock` - - `type: :max` + Placeholder for content withheld by Anthropic model policy. - - `inference_geo: String` + - `type: :redacted` - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `processed_at: Time` - - `speed: :standard | :fast` + Timestamp when the agent finished processing this message. - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + format: date-time - - `:standard` + - `class BetaManagedAgentsUserInterruptEvent` - - `:fast` + An interrupt event that pauses agent execution and returns control to the user. - - `name: String` + - `type: :"user.interrupt"` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `id: String` - - `class BetaManagedAgentsAnthropicSkill` + Unique identifier for this event. - A resolved Anthropic-managed skill. + - `processed_at: Time` - - `type: :anthropic` + Timestamp when the interrupt was processed. - - `skill_id: String` + format: date-time - - `version: String` + - `session_thread_id: String` - - `class BetaManagedAgentsCustomSkill` + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - A resolved user-created custom skill. + - `class BetaManagedAgentsUserToolConfirmationEvent` - - `type: :custom` + A tool confirmation event that approves or denies a pending tool execution. - - `skill_id: String` + - `type: :"user.tool_confirmation"` - - `version: String` + - `id: String` - - `system_: String` + Unique identifier for this event. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `result: :allow | :deny` - - `class BetaManagedAgentsAgentToolset20260401` + The confirmation result: 'allow' or 'deny'. - - `type: :agent_toolset_20260401` + - `:allow` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `:deny` - - `class BetaManagedAgentsBashToolConfig` + - `tool_use_id: String` - Configuration for the bash tool. + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `type: :bash` + - `deny_message: String` - - `enabled: bool` + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - - `name: :bash` + maxLength: 10000 - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - Permission policy for tool execution. + Timestamp when the confirmation was processed. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: date-time - Tool calls are automatically approved without user confirmation. + - `session_thread_id: String` - - `type: :always_allow` + Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsUserCustomToolResultEvent` - Tool calls require user confirmation before execution. + Event sent by the client providing the result of a custom tool execution. - - `type: :always_ask` + - `type: :"user.custom_tool_result"` - - `class BetaManagedAgentsAutoPolicy` + - `id: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Unique identifier for this event. - - `type: :auto` + - `custom_tool_use_id: String` - - `class BetaManagedAgentsEditToolConfig` + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - Configuration for the edit tool. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `type: :edit` + The result content returned by the tool. - - `enabled: bool` + - `class BetaManagedAgentsTextBlock` - - `name: :edit` + Regular text content. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsImageBlock` - Permission policy for tool execution. + Image content specified directly as base64 data or as a reference via a URL. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsDocumentBlock` - Tool calls are automatically approved without user confirmation. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsSearchResultBlock` - Tool calls require user confirmation before execution. + A block containing a web search result. - - `class BetaManagedAgentsAutoPolicy` + - `type: :search_result` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `citations: BetaManagedAgentsSearchResultCitations` - - `class BetaManagedAgentsReadToolConfig` + Citation settings for this search result. - Configuration for the read tool. + - `enabled: bool` - - `type: :read` + Whether citations are enabled for this search result. - - `enabled: bool` + - `content: Array[BetaManagedAgentsSearchResultContent]` - - `name: :read` + Array of text content blocks from the search result. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :text` - Permission policy for tool execution. + - `text: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The text content. - Tool calls are automatically approved without user confirmation. + minLength: 1 - - `class BetaManagedAgentsAlwaysAskPolicy` + - `source: String` - Tool calls require user confirmation before execution. + The URL source of the search result. - - `class BetaManagedAgentsAutoPolicy` + minLength: 1 - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `title: String` - - `class BetaManagedAgentsWriteToolConfig` + The title of the search result. - Configuration for the write tool. + minLength: 1 - - `type: :write` + - `is_error: bool` - - `enabled: bool` + Whether the tool execution resulted in an error. - - `name: :write` + - `processed_at: Time` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Timestamp when this result was processed. - Permission policy for tool execution. + format: date-time - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `session_thread_id: String` - Tool calls are automatically approved without user confirmation. + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsUserDefineOutcomeEvent` - Tool calls require user confirmation before execution. + Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. - - `class BetaManagedAgentsAutoPolicy` + - `type: :"user.define_outcome"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `id: String` - - `class BetaManagedAgentsGlobToolConfig` + Unique identifier for this event. - Configuration for the glob tool. + - `description: String` - - `type: :glob` + What the agent should produce. Copied from the input event. - - `enabled: bool` + - `max_iterations: Integer` - - `name: :glob` + Evaluate-then-revise cycles before giving up. Default 3, max 20. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + format: int32 - Permission policy for tool execution. + - `outcome_id: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. - Tool calls are automatically approved without user confirmation. + - `processed_at: Time` - - `class BetaManagedAgentsAlwaysAskPolicy` + Timestamp when the outcome was accepted. - Tool calls require user confirmation before execution. + format: date-time - - `class BetaManagedAgentsAutoPolicy` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. - - `class BetaManagedAgentsGrepToolConfig` + - `class BetaManagedAgentsFileRubric` - Configuration for the grep tool. + Rubric referenced by a file uploaded via the Files API. - - `type: :grep` + - `type: :file` - - `enabled: bool` + - `file_id: String` - - `name: :grep` + ID of the rubric file. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsTextRubric` - Permission policy for tool execution. + Rubric content provided inline as text. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :text` - Tool calls are automatically approved without user confirmation. + - `content: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsUserToolResultEvent` - - `class BetaManagedAgentsAutoPolicy` + Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :"user.tool_result"` - - `class BetaManagedAgentsWebFetchToolConfig` + - `id: String` - Configuration for the web_fetch tool. + Unique identifier for this event. - - `type: :web_fetch` + - `tool_use_id: String` - - `enabled: bool` + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `name: :web_fetch` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The result content returned by the tool. - Permission policy for tool execution. + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Regular text content. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsAlwaysAskPolicy` + Image content specified directly as base64 data or as a reference via a URL. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsAutoPolicy` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsSearchResultBlock` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + A block containing a web search result. - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `is_error: bool` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + Whether the tool execution resulted in an error. - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `processed_at: Time` - - `class BetaManagedAgentsWebFetchURLSourceAll` + Timestamp when this result was processed. - Every URL from this source may be fetched. This is the default. + format: date-time - - `type: :all` + - `session_thread_id: String` - - `class BetaManagedAgentsWebFetchURLSourceNone` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - This source contributes no URLs that may be fetched. + - `class BetaManagedAgentsSystemMessageEvent` - - `type: :none` + A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `type: :"system.message"` - Only the named tools' results contribute URLs that may be fetched. + - `id: String` - - `type: :only` + Unique identifier for this event. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + System content blocks. Text-only. - - `type: :tool_reference` + - `type: :text` - Must be "tool_reference". + - `text: String` - - `name: String` + The text content. - Name of the tool. Compared exactly, so upper and lower case letters are different. + minLength: 1 - minLength: 1, maxLength: 128 + - `processed_at: Time` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + Timestamp when this system message was processed. - Every tool's results contribute URLs that may be fetched, except the named tools' results. + format: date-time - - `type: :except` +#### Example - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` +```ruby +require "anthropic" - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :tool_reference` +beta_managed_agents_send_session_events = anthropic.beta.sessions.events.send_( + "sesn_011CZkZAtmR3yMPDzynEDxu7", + events: [{content: [{text: "Where is my order #1234?", type: :text}], type: :"user.message"}] +) - Must be "tool_reference". +puts(beta_managed_agents_send_session_events) +``` - - `name: String` +##### Response (200) - Name of the tool. Compared exactly, so upper and lower case letters are different. +```json +{ + "data": [ + { + "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", + "content": [ + { + "text": "Where is my order #1234?", + "type": "text" + } + ], + "type": "user.message", + "processed_at": "2026-03-15T10:00:00Z" + } + ] +} +``` - minLength: 1, maxLength: 128 +### Stream Events - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` +`beta.sessions.events.stream_events(session_id, **kwargs) -> Stream` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. +**GET** `/v1/sessions/{session_id}/events/stream` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` +Stream Events - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. +#### Parameters - - `class BetaManagedAgentsWebFetchURLSourceAll` +- `session_id: String` (path parameter) - Every URL from this source may be fetched. This is the default. +- `event_deltas: Array[BetaManagedAgentsDeltaType]` (query parameter) - - `class BetaManagedAgentsWebFetchURLSourceNone` + When set, this connection also receives streaming deltas (`event_start`, `event_delta`) while an event is being produced, before the event itself arrives. Deltas are best-effort; when the final event is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no final event — its terminal `span.model_request_end` closes the preview. Accepts one or more event types to preview and may be repeated: `agent.message` streams `content_delta` fragments; `agent.thinking` is start-only — a signal that the agent has begun extended thinking, concluded by the `agent.thinking` event itself. Only previews of the requested event types are sent. - This source contributes no URLs that may be fetched. + - `:"agent.message"` - - `allowed_domains: Array[String]` + - `:"agent.thinking"` - - `blocked_domains: Array[String]` +- `betas: Array[AnthropicBeta]` (header parameter) - - `max_content_tokens: Integer` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - format: int32 + - `String = String` - - `class BetaManagedAgentsWebSearchToolConfig` + - `:"message-batches-2024-09-24"` - Configuration for the web_search tool. + - `:"prompt-caching-2024-07-31"` - - `type: :web_search` + - `:"computer-use-2024-10-22"` - - `enabled: bool` + - `:"computer-use-2025-01-24"` - - `name: :web_search` + - `:"pdfs-2024-09-25"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"token-counting-2024-11-01"` - Permission policy for tool execution. + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"output-128k-2025-02-19"` - Tool calls are automatically approved without user confirmation. + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"mcp-client-2025-04-04"` - Tool calls require user confirmation before execution. + - `:"mcp-client-2025-11-20"` - - `class BetaManagedAgentsAutoPolicy` + - `:"dev-full-thinking-2025-05-14"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"interleaved-thinking-2025-05-14"` - - `allowed_domains: Array[String]` + - `:"code-execution-2025-05-22"` - - `blocked_domains: Array[String]` + - `:"extended-cache-ttl-2025-04-11"` - - `user_location: BetaManagedAgentsUserLocation` + - `:"context-1m-2025-08-07"` - Approximate user location for search result localization. + - `:"context-management-2025-06-27"` - - `type: :approximate` + - `:"model-context-window-exceeded-2025-08-26"` - Location precision. Only "approximate" is supported. + - `:"skills-2025-10-02"` - - `city: String` + - `:"fast-mode-2026-02-01"` - City name. + - `:"output-300k-2026-03-24"` - minLength: 1, maxLength: 255 + - `:"user-profiles-2026-03-24"` - - `country: String` + - `:"user-profiles-2026-08-18"` - Two-letter ISO 3166-1 country code, uppercase. + - `:"user-profiles-2026-09-04"` - - `region: String` + - `:"advisor-tool-2026-03-01"` - Region or state name. + - `:"managed-agents-2026-04-01"` - minLength: 1, maxLength: 255 + - `:"cache-diagnosis-2026-04-07"` - - `timezone: String` + - `:"dreaming-2026-04-21"` - IANA timezone identifier, e.g. "America/Los_Angeles". + - `:"thinking-token-count-2026-05-13"` - minLength: 1, maxLength: 255 + - `:"server-side-fallback-2026-06-01"` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `:"server-side-fallback-2026-07-01"` - Resolved default configuration for agent tools. + - `:"fallback-credit-2026-06-01"` - - `enabled: bool` + - `:"fallback-credit-2026-07-01"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"agent-memory-2026-07-22"` - Permission policy for tool execution. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"compact-2026-01-12"` - Tool calls are automatically approved without user confirmation. + - `:"computer-use-2025-11-24"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"mcp-tunnels-2026-06-22"` - Tool calls require user confirmation before execution. + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsAutoPolicy` + - `:"task-budgets-2026-03-13"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaManagedAgentsMCPToolset` + - `:"ce-user-management-2026-07-13"` - - `type: :mcp_toolset` + - `:"mid-conversation-output-config-2026-07-01"` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `:"thinking-binding-controls-2026-08-01"` - - `enabled: bool` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `name: String` + - `:"compact-2026-09-04"` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"inline-tools-2026-09-15"` - Permission policy for tool execution. + - `:"mcp-client-2026-09-15"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"ce-plugins-2026-09-01"` - Tool calls are automatically approved without user confirmation. + - `:"spend-limit-reads-2026-09-26"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"telemetry-destinations-2026-08-11"` - Tool calls require user confirmation before execution. + - `:"webhooks-2026-10-07"` - - `class BetaManagedAgentsAutoPolicy` +- `workspace_id: String` (header parameter) - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Resolved default configuration for all tools from an MCP server. +#### Returns - - `enabled: bool` +- `type BetaManagedAgentsStreamSessionEvents = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 41 more` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Server-sent event in the session stream. - Permission policy for tool execution. + - `class BetaManagedAgentsUserMessageEvent` - - `class BetaManagedAgentsAlwaysAllowPolicy` + A user message event in the session conversation. - Tool calls are automatically approved without user confirmation. + - `type: :"user.message"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `id: String` - Tool calls require user confirmation before execution. + Unique identifier for this event. - - `class BetaManagedAgentsAutoPolicy` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Array of content blocks comprising the user message. - - `mcp_server_name: String` + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsCustomTool` + Regular text content. - A custom tool as returned in API responses. + - `type: :text` - - `type: :custom` + - `text: String` - - `description: String` + The text content. - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + minLength: 1 - JSON Schema for custom tool input parameters. + - `class BetaManagedAgentsImageBlock` - - `type: :object` + Image content specified directly as base64 data or as a reference via a URL. - - `properties: Hash[Symbol, untyped]` + - `type: :image` - - `required: Array[String]` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `name: String` + The source of the image data. - - `version: Integer` + - `class BetaManagedAgentsBase64ImageSource` - format: int32 + Base64-encoded image data. - - `class BetaManagedAgentsAdvisor` + - `type: :base64` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `data: String` - - `type: :advisor` + Base64-encoded image data. - - `model: String` + minLength: 1 - The advisor model id. + - `media_type: String` - - `class BetaManagedAgentsInlineAgent` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. + minLength: 1 - - `type: :inline` + - `class BetaManagedAgentsURLImageSource` - - `description: String` + Image referenced by URL. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `type: :url` - The session's execution principal. + - `url: String` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + URL of the image to fetch. - - `type: :url` + minLength: 1 - - `name: String` + - `class BetaManagedAgentsFileImageSource` - - `url: String` + Image referenced by file ID. - - `model: BetaManagedAgentsModelConfig` + - `type: :file` - Model identifier and configuration. + - `file_id: String` - - `name: String` + ID of a previously uploaded file. - The name that the agent's definition gave, or one that the server assigned. + minLength: 1 - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsAnthropicSkill` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - A resolved Anthropic-managed skill. + - `type: :document` - - `class BetaManagedAgentsCustomSkill` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - A resolved user-created custom skill. + The source of the document data. - - `system_: String` + - `class BetaManagedAgentsBase64DocumentSource` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + Base64-encoded document data. - - `class BetaManagedAgentsAgentToolset20260401` + - `type: :base64` - - `class BetaManagedAgentsMCPToolset` + - `data: String` - - `class BetaManagedAgentsCustomTool` + Base64-encoded document data. - A custom tool as returned in API responses. + minLength: 1 - - `archived_at: Time` + - `media_type: String` - When the thread was archived. Null if not archived. + MIME type of the document (e.g., "application/pdf"). - format: date-time + minLength: 1 - - `created_at: Time` + - `class BetaManagedAgentsPlainTextDocumentSource` - When the thread was created. + Plain text document content. - format: date-time + - `type: :text` - - `parent_thread_id: String` + - `data: String` - Parent thread that spawned this thread. Null for the primary thread. + The plain text content. - - `session_id: String` + minLength: 1 - The session this thread belongs to. + - `media_type: :"text/plain"` - - `stats: BetaManagedAgentsSessionThreadStats` + MIME type of the text content. Must be "text/plain". - Timing statistics for this thread. Null until the thread's first status transition. + - `class BetaManagedAgentsURLDocumentSource` - - `active_seconds: Float` + Document referenced by URL. - Cumulative time in seconds the thread spent actively running. Excludes idle time. + - `type: :url` - format: double + - `url: String` - - `duration_seconds: Float` + URL of the document to fetch. - Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. + minLength: 1 - format: double + - `class BetaManagedAgentsFileDocumentSource` - - `startup_seconds: Float` + Document referenced by file ID. - Time in seconds for the thread to begin running. Zero for child threads, which start immediately. + - `type: :file` - format: double + - `file_id: String` - - `status: BetaManagedAgentsSessionThreadStatus` + ID of a previously uploaded file. - Current execution status of the thread. + minLength: 1 - - `:running` + - `context: String` - - `:idle` + Additional context about the document for the model. - - `:rescheduling` + - `title: String` - - `:terminated` + The title of the document. - - `updated_at: Time` + - `class BetaManagedAgentsRedactedBlock` - When the thread was last updated. + Placeholder for content withheld by Anthropic model policy. - format: date-time + - `type: :redacted` - - `usage: BetaManagedAgentsSessionThreadUsage` + - `processed_at: Time` - Cumulative token usage for this thread. Null until the thread's first idle transition. + Timestamp when the agent finished processing this message. - - `active_seconds: Float` + format: date-time - Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. + - `class BetaManagedAgentsUserInterruptEvent` - format: double + An interrupt event that pauses agent execution and returns control to the user. - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `type: :"user.interrupt"` - Tokens used to create prompt cache entries, broken down by cache TTL. + - `id: String` - - `ephemeral_1h_input_tokens: Integer` + Unique identifier for this event. - Tokens used to create 1-hour ephemeral cache entries. + - `processed_at: Time` - format: int32 + Timestamp when the interrupt was processed. - - `ephemeral_5m_input_tokens: Integer` + format: date-time - Tokens used to create 5-minute ephemeral cache entries. + - `session_thread_id: String` - format: int32 + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - `cache_read_input_tokens: Integer` + - `class BetaManagedAgentsUserToolConfirmationEvent` - Total tokens read from prompt cache. + A tool confirmation event that approves or denies a pending tool execution. - format: int32 + - `type: :"user.tool_confirmation"` - - `input_tokens: Integer` + - `id: String` - Total input tokens consumed across all turns. + Unique identifier for this event. - format: int32 + - `result: :allow | :deny` - - `list_cost: BetaMonetaryAmount` + The confirmation result: 'allow' or 'deny'. - Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. + - `:allow` - - `amount: String` + - `:deny` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `tool_use_id: String` - - `currency: BetaCurrency` + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `deny_message: String` - - `output_tokens: Integer` + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - Total output tokens generated across all turns. + maxLength: 10000 - format: int32 + - `processed_at: Time` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Timestamp when the confirmation was processed. - Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. + format: date-time - - `web_fetch_requests: Integer` + - `session_thread_id: String` - Number of server-executed web fetch requests. + Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - format: int32 + - `class BetaManagedAgentsUserCustomToolResultEvent` - - `web_search_requests: Integer` + Event sent by the client providing the result of a custom tool execution. - Number of server-executed web search requests. + - `type: :"user.custom_tool_result"` - format: int32 + - `id: String` - - `workflow_run_id: String` + Unique identifier for this event. - Identifier of the workflow run that created the thread, or `null` for any other thread. + - `custom_tool_use_id: String` -#### Example + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. -```ruby -require "anthropic" + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The result content returned by the tool. -page = anthropic.beta.sessions.threads.list("sesn_011CZkZAtmR3yMPDzynEDxu7") + - `class BetaManagedAgentsTextBlock` -puts(page) -``` + Regular text content. -##### Response (200) + - `class BetaManagedAgentsImageBlock` -```json -{ - "data": [ - { - "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "parent_thread_id": null, - "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "stats": { - "active_seconds": 0, - "duration_seconds": 0, - "startup_seconds": 0 - }, - "status": "idle", - "type": "session_thread", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "workflow_run_id": null - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + Image content specified directly as base64 data or as a reference via a URL. -### Get Session Thread + - `class BetaManagedAgentsDocumentBlock` -`beta.sessions.threads.retrieve(thread_id, **kwargs) -> BetaManagedAgentsSessionThread` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. -**GET** `/v1/sessions/{session_id}/threads/{thread_id}` + - `class BetaManagedAgentsSearchResultBlock` -Get Session Thread + A block containing a web search result. -#### Parameters + - `type: :search_result` -- `session_id: String` (path parameter) + - `citations: BetaManagedAgentsSearchResultCitations` -- `thread_id: String` (path parameter) + Citation settings for this search result. -- `betas: Array[AnthropicBeta]` (header parameter) + - `enabled: bool` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Whether citations are enabled for this search result. - - `String = String` + - `content: Array[BetaManagedAgentsSearchResultContent]` - - `:"message-batches-2024-09-24"` + Array of text content blocks from the search result. - - `:"prompt-caching-2024-07-31"` + - `type: :text` - - `:"computer-use-2024-10-22"` + - `text: String` - - `:"computer-use-2025-01-24"` + The text content. - - `:"pdfs-2024-09-25"` + minLength: 1 - - `:"token-counting-2024-11-01"` + - `source: String` - - `:"token-efficient-tools-2025-02-19"` + The URL source of the search result. - - `:"output-128k-2025-02-19"` + minLength: 1 - - `:"files-api-2025-04-14"` + - `title: String` - - `:"mcp-client-2025-04-04"` + The title of the search result. - - `:"mcp-client-2025-11-20"` + minLength: 1 - - `:"dev-full-thinking-2025-05-14"` + - `is_error: bool` - - `:"interleaved-thinking-2025-05-14"` + Whether the tool execution resulted in an error. - - `:"code-execution-2025-05-22"` + - `processed_at: Time` - - `:"extended-cache-ttl-2025-04-11"` + Timestamp when this result was processed. - - `:"context-1m-2025-08-07"` + format: date-time - - `:"context-management-2025-06-27"` + - `session_thread_id: String` - - `:"model-context-window-exceeded-2025-08-26"` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `:"skills-2025-10-02"` + - `class BetaManagedAgentsAgentCustomToolUseEvent` - - `:"fast-mode-2026-02-01"` + Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. - - `:"output-300k-2026-03-24"` + - `type: :"agent.custom_tool_use"` - - `:"user-profiles-2026-03-24"` + - `id: String` - - `:"user-profiles-2026-08-18"` + Unique identifier for this event. - - `:"user-profiles-2026-09-04"` + - `input: Hash[Symbol, untyped]` - - `:"advisor-tool-2026-03-01"` + Input parameters for the tool call. - - `:"managed-agents-2026-04-01"` + - `name: String` - - `:"cache-diagnosis-2026-04-07"` + Name of the custom tool being called. - - `:"dreaming-2026-04-21"` + - `processed_at: Time` - - `:"thinking-token-count-2026-05-13"` + Timestamp when this tool use was processed. - - `:"server-side-fallback-2026-06-01"` + format: date-time - - `:"server-side-fallback-2026-07-01"` + - `session_thread_id: String` - - `:"fallback-credit-2026-06-01"` + When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsAgentMessageEvent` - - `:"agent-memory-2026-07-22"` + An agent response event in the session conversation. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :"agent.message"` - - `:"compact-2026-01-12"` + - `id: String` - - `:"computer-use-2025-11-24"` + Unique identifier for this event. - - `:"mcp-tunnels-2026-06-22"` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` - - `:"structured-outputs-2025-11-13"` + Array of text blocks comprising the agent response. - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsTextBlock` - - `:"thinking-display-updates-2026-08-18"` + Regular text content. - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsRedactedBlock` - - `:"mid-conversation-output-config-2026-07-01"` + Placeholder for content withheld by Anthropic model policy. - - `:"thinking-binding-controls-2026-08-01"` + - `processed_at: Time` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Timestamp when this response was generated. - - `:"compact-2026-09-04"` + format: date-time - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsAgentThinkingEvent` - - `:"mcp-client-2026-09-15"` + Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. - - `:"ce-plugins-2026-09-01"` + - `type: :"agent.thinking"` - - `:"spend-limit-reads-2026-09-26"` + - `id: String` - - `:"telemetry-destinations-2026-08-11"` + Unique identifier for this event. -- `workspace_id: String` (header parameter) + - `processed_at: Time` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Timestamp when this thinking was produced. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + format: date-time -#### Returns + - `class BetaManagedAgentsAgentMCPToolUseEvent` -- `class BetaManagedAgentsSessionThread` + Event emitted when the agent invokes a tool provided by an MCP server. - An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. + - `type: :"agent.mcp_tool_use"` - - `type: :session_thread` + - `id: String` - - `id: String` + Unique identifier for this event. - Unique identifier for this thread. + - `input: Hash[Symbol, untyped]` - - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` + Input parameters for the tool call. - Resolved agent definition for this thread. Snapshot of the agent at thread creation time. + - `mcp_server_name: String` - - `class BetaManagedAgentsSessionThreadAgent` + Name of the MCP server providing the tool. - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `name: String` - - `type: :agent` + Name of the MCP tool being used. - - `id: String` + - `processed_at: Time` - - `description: String` + Timestamp when this event was processed. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + format: date-time - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + The evaluated permission policy for this tool invocation. - An AWS IAM role principal as returned in API responses. + - `:allow` - - `type: :aws_role` + - `:ask` - - `role_arn: String` + - `:deny` - The IAM role's ARN. + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - The Anthropic-managed service account as returned in API responses. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` - - `type: :service_account` + The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `type: :always_allow` - - `type: :url` + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` - - `name: String` + The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". - - `url: String` + - `type: :always_ask` - - `model: BetaManagedAgentsModelConfig` + - `class BetaManagedAgentsAgentToolEvaluationAuto` - Model identifier and configuration. + The resolved permission_policy was auto: the server judged this invocation individually. - - `id: BetaManagedAgentsModel` + - `type: :auto` - The model that will power your agent. + - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + The server's judgement for this invocation. - - `:"claude-haiku-5-5"` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` - Fastest model for high-volume, real-time tasks + The server judged the invocation safe to execute without client approval. - - `:"claude-sonnet-5-5"` + - `type: :allow` - Efficient model for coding and agents + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` - - `:"claude-opus-5-5"` + The server reached no judgement; the invocation is held for client approval. - Powerful intelligence for coding, knowledge work, and long-running agents + - `type: :ask` - - `:"claude-fable-5-1"` + - `reason_code: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. - - `:"claude-sonnet-5"` + maxLength: 64 - Efficient model for coding and agents + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` - - `:"claude-fable-5"` + The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. - Next generation of intelligence for the hardest knowledge work and coding problems + - `type: :deny` - - `:"claude-opus-5"` + - `reason_code: String` - Powerful intelligence for long-running agents and coding + The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. - - `:"claude-opus-4-8"` + maxLength: 64 - Powerful intelligence for long-running agents and coding + - `session_thread_id: String` - - `:"claude-opus-4-7"` + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. - Powerful intelligence for long-running agents and coding + - `class BetaManagedAgentsAgentMCPToolResultEvent` - - `:"claude-opus-4-6"` + Event representing the result of an MCP tool execution. - Powerful intelligence for long-running agents and coding + - `type: :"agent.mcp_tool_result"` - - `:"claude-sonnet-4-6"` + - `id: String` - Best combination of speed and intelligence + Unique identifier for this event. - - `:"claude-haiku-4-5"` + - `mcp_tool_use_id: String` - - `:"claude-haiku-4-5-20251001"` + The id of the `agent.mcp_tool_use` event this result corresponds to. - - `:"claude-opus-4-5"` + - `processed_at: Time` - Powerful intelligence for long-running agents and coding + Timestamp when this event was processed. - - `:"claude-opus-4-5-20251101"` + format: date-time - Powerful intelligence for long-running agents and coding + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `:"claude-sonnet-4-5"` + The result content returned by the tool. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `class BetaManagedAgentsTextBlock` - High-performance model for agents and coding + Regular text content. - - `:"claude-sonnet-4-5-20250929"` + - `class BetaManagedAgentsImageBlock` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Image content specified directly as base64 data or as a reference via a URL. - High-performance model for agents and coding + - `class BetaManagedAgentsDocumentBlock` - - `String = String` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `class BetaManagedAgentsSearchResultBlock` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + A block containing a web search result. - - `class BetaManagedAgentsEffortLow` + - `is_error: bool` - Low effort. Favors latency over reasoning depth. + Whether the tool execution resulted in an error. - - `type: :low` + - `class BetaManagedAgentsAgentToolUseEvent` - - `class BetaManagedAgentsEffortMedium` + Event emitted when the agent invokes a built-in agent tool. - Medium effort. Balances latency and reasoning depth. + - `type: :"agent.tool_use"` - - `type: :medium` + - `id: String` - - `class BetaManagedAgentsEffortHigh` + Unique identifier for this event. - High effort. Favors reasoning depth. + - `input: Hash[Symbol, untyped]` - - `type: :high` + Input parameters for the tool call. - - `class BetaManagedAgentsEffortXhigh` + - `name: String` - Extra-high effort. Not all models accept this level. + Name of the agent tool being used. - - `type: :xhigh` + - `processed_at: Time` - - `class BetaManagedAgentsEffortMax` + Timestamp when this event was processed. - Maximum effort. Favors reasoning depth over latency. + format: date-time - - `type: :max` + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `inference_geo: String` + The evaluated permission policy for this tool invocation. - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `speed: :standard | :fast` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `session_thread_id: String` - - `:standard` + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. - - `:fast` + - `class BetaManagedAgentsAgentToolResultEvent` - - `name: String` + Event representing the result of an agent tool execution. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `type: :"agent.tool_result"` - - `class BetaManagedAgentsAnthropicSkill` + - `id: String` - A resolved Anthropic-managed skill. + Unique identifier for this event. - - `type: :anthropic` + - `processed_at: Time` - - `skill_id: String` + Timestamp when this event was processed. - - `version: String` + format: date-time - - `class BetaManagedAgentsCustomSkill` + - `tool_use_id: String` - A resolved user-created custom skill. + The id of the `agent.tool_use` event this result corresponds to. - - `type: :custom` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `skill_id: String` + The result content returned by the tool. - - `version: String` + - `class BetaManagedAgentsTextBlock` - - `system_: String` + Regular text content. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsAgentToolset20260401` + Image content specified directly as base64 data or as a reference via a URL. - - `type: :agent_toolset_20260401` + - `class BetaManagedAgentsDocumentBlock` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsBashToolConfig` + - `class BetaManagedAgentsSearchResultBlock` - Configuration for the bash tool. + A block containing a web search result. - - `type: :bash` + - `is_error: bool` - - `enabled: bool` + Whether the tool execution resulted in an error. - - `name: :bash` + - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Delivery event written to the target thread's input stream when an agent-to-agent message arrives. - Permission policy for tool execution. + - `type: :"agent.thread_message_received"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `id: String` - Tool calls are automatically approved without user confirmation. + Unique identifier for this event. - - `type: :always_allow` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `class BetaManagedAgentsAlwaysAskPolicy` + Message content blocks. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsTextBlock` - - `type: :always_ask` + Regular text content. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsImageBlock` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Image content specified directly as base64 data or as a reference via a URL. - - `type: :auto` + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsEditToolConfig` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - Configuration for the edit tool. + - `class BetaManagedAgentsRedactedBlock` - - `type: :edit` + Placeholder for content withheld by Anthropic model policy. - - `enabled: bool` + - `from_session_thread_id: String` - - `name: :edit` + Public `sthr_` ID of the thread that sent the message. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - Permission policy for tool execution. + Timestamp when the message was received. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: date-time - Tool calls are automatically approved without user confirmation. + - `from_agent_name: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Name of the callable agent this message came from. Absent when received from the primary agent. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsAgentThreadMessageSentEvent` - - `class BetaManagedAgentsAutoPolicy` + Observability event emitted to the sender's output stream when an agent-to-agent message is sent. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :"agent.thread_message_sent"` - - `class BetaManagedAgentsReadToolConfig` + - `id: String` - Configuration for the read tool. + Unique identifier for this event. - - `type: :read` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `enabled: bool` + Message content blocks. - - `name: :read` + - `class BetaManagedAgentsTextBlock` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Regular text content. - Permission policy for tool execution. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Image content specified directly as base64 data or as a reference via a URL. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsAlwaysAskPolicy` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsRedactedBlock` - - `class BetaManagedAgentsAutoPolicy` + Placeholder for content withheld by Anthropic model policy. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `processed_at: Time` - - `class BetaManagedAgentsWriteToolConfig` + Timestamp when the message was sent. - Configuration for the write tool. + format: date-time - - `type: :write` + - `to_session_thread_id: String` - - `enabled: bool` + Public `sthr_` ID of the thread the message was sent to. - - `name: :write` + - `to_agent_name: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Name of the callable agent this message was sent to. Absent when sent to the primary agent. - Permission policy for tool execution. + - `class BetaManagedAgentsAgentThreadContextCompactedEvent` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Indicates that context compaction (summarization) occurred during the session. - Tool calls are automatically approved without user confirmation. + - `type: :"agent.thread_context_compacted"` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `id: String` - Tool calls require user confirmation before execution. + Unique identifier for this event. - - `class BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Timestamp when compaction was processed. - - `class BetaManagedAgentsGlobToolConfig` + format: date-time - Configuration for the glob tool. + - `class BetaManagedAgentsSessionErrorEvent` - - `type: :glob` + An error event indicating a problem occurred during session execution. - - `enabled: bool` + - `type: :"session.error"` - - `name: :glob` + - `id: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Unique identifier for this event. - Permission policy for tool execution. + - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsUnknownError` - Tool calls are automatically approved without user confirmation. + An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :unknown_error` - Tool calls require user confirmation before execution. + - `message: String` - - `class BetaManagedAgentsAutoPolicy` + Human-readable error description. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsGrepToolConfig` + What the client should do next. - Configuration for the grep tool. + - `class BetaManagedAgentsRetryStatusRetrying` - - `type: :grep` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `enabled: bool` + - `type: :retrying` - - `name: :grep` + - `class BetaManagedAgentsRetryStatusExhausted` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Permission policy for tool execution. + - `type: :exhausted` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsRetryStatusTerminal` - Tool calls are automatically approved without user confirmation. + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :terminal` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsModelOverloadedError` - - `class BetaManagedAgentsAutoPolicy` + The model is currently overloaded. Emitted after automatic retries are exhausted. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :model_overloaded_error` - - `class BetaManagedAgentsWebFetchToolConfig` + - `message: String` - Configuration for the web_fetch tool. + Human-readable error description. - - `type: :web_fetch` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `enabled: bool` + What the client should do next. - - `name: :web_fetch` + - `class BetaManagedAgentsRetryStatusRetrying` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Permission policy for tool execution. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAlwaysAllowPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAlwaysAskPolicy` + The session encountered a terminal error and will transition to `terminated` state. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsModelRateLimitedError` - - `class BetaManagedAgentsAutoPolicy` + The model request was rate-limited. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :model_rate_limited_error` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `message: String` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + Human-readable error description. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + What the client should do next. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `class BetaManagedAgentsRetryStatusRetrying` - Every URL from this source may be fetched. This is the default. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `type: :all` + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsWebFetchURLSourceNone` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - This source contributes no URLs that may be fetched. + - `class BetaManagedAgentsRetryStatusTerminal` - - `type: :none` + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `class BetaManagedAgentsModelRequestFailedError` - Only the named tools' results contribute URLs that may be fetched. + A model request failed for a reason other than overload or rate-limiting. - - `type: :only` + - `type: :model_request_failed_error` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `message: String` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + Human-readable error description. - - `type: :tool_reference` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Must be "tool_reference". + What the client should do next. - - `name: String` + - `class BetaManagedAgentsRetryStatusRetrying` - Name of the tool. Compared exactly, so upper and lower case letters are different. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - minLength: 1, maxLength: 128 + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `class BetaManagedAgentsRetryStatusTerminal` - - `type: :except` + The session encountered a terminal error and will transition to `terminated` state. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `class BetaManagedAgentsMCPConnectionFailedError` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + Failed to connect to an MCP server. - - `type: :tool_reference` + - `type: :mcp_connection_failed_error` - Must be "tool_reference". + - `mcp_server_name: String` - - `name: String` + Name of the MCP server that failed to connect. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `message: String` - minLength: 1, maxLength: 128 + Human-readable error description. - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + What the client should do next. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `class BetaManagedAgentsRetryStatusRetrying` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `class BetaManagedAgentsRetryStatusExhausted` - Every URL from this source may be fetched. This is the default. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `class BetaManagedAgentsRetryStatusTerminal` - This source contributes no URLs that may be fetched. + The session encountered a terminal error and will transition to `terminated` state. - - `allowed_domains: Array[String]` + - `class BetaManagedAgentsMCPAuthenticationFailedError` - - `blocked_domains: Array[String]` + Authentication to an MCP server failed. - - `max_content_tokens: Integer` + - `type: :mcp_authentication_failed_error` - format: int32 + - `mcp_server_name: String` - - `class BetaManagedAgentsWebSearchToolConfig` + Name of the MCP server that failed authentication. - Configuration for the web_search tool. + - `message: String` - - `type: :web_search` + Human-readable error description. - - `enabled: bool` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `name: :web_search` + What the client should do next. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsRetryStatusRetrying` - Permission policy for tool execution. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsRetryStatusExhausted` - Tool calls are automatically approved without user confirmation. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsRetryStatusTerminal` - Tool calls require user confirmation before execution. + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsBillingError` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. - - `allowed_domains: Array[String]` + - `type: :billing_error` - - `blocked_domains: Array[String]` + - `message: String` - - `user_location: BetaManagedAgentsUserLocation` + Human-readable error description. - Approximate user location for search result localization. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :approximate` + What the client should do next. - Location precision. Only "approximate" is supported. + - `class BetaManagedAgentsRetryStatusRetrying` - - `city: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - City name. + - `class BetaManagedAgentsRetryStatusExhausted` - minLength: 1, maxLength: 255 + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `country: String` + - `class BetaManagedAgentsRetryStatusTerminal` - Two-letter ISO 3166-1 country code, uppercase. + The session encountered a terminal error and will transition to `terminated` state. - - `region: String` + - `class BetaManagedAgentsCredentialHostUnreachableError` - Region or state name. + An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. - minLength: 1, maxLength: 255 + - `type: :credential_host_unreachable_error` - - `timezone: String` + - `credential_id: String` - IANA timezone identifier, e.g. "America/Los_Angeles". + ID of the affected credential. - minLength: 1, maxLength: 255 + - `message: String` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + Human-readable error description. - Resolved default configuration for agent tools. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `enabled: bool` + What the client should do next. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsRetryStatusRetrying` - Permission policy for tool execution. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsRetryStatusExhausted` - Tool calls are automatically approved without user confirmation. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsRetryStatusTerminal` - Tool calls require user confirmation before execution. + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsAutoPolicy` + - `vault_id: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + ID of the vault containing the affected credential. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsRepositoryAuthenticationError` - - `type: :mcp_toolset` + The repository host rejected the credentials, or required credentials and received none. - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `type: :repository_authentication_error` - - `enabled: bool` + - `message: String` - - `name: String` + Human-readable error description. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `repository_url: String` - Permission policy for tool execution. + URL of the repository that could not be cloned. Null when it could not be identified. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Tool calls are automatically approved without user confirmation. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsRetryStatusRetrying` - Tool calls require user confirmation before execution. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsRetryStatusExhausted` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `class BetaManagedAgentsRetryStatusTerminal` - Resolved default configuration for all tools from an MCP server. + The session encountered a terminal error and will transition to `terminated` state. - - `enabled: bool` + - `class BetaManagedAgentsRepositoryForbiddenError` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The repository host refused access to the repository. - Permission policy for tool execution. + - `type: :repository_forbidden_error` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `message: String` - Tool calls are automatically approved without user confirmation. + Human-readable error description. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `repository_url: String` - Tool calls require user confirmation before execution. + URL of the repository that could not be cloned. Null when it could not be identified. - - `class BetaManagedAgentsAutoPolicy` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `mcp_server_name: String` + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsCustomTool` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - A custom tool as returned in API responses. + - `class BetaManagedAgentsRetryStatusExhausted` - - `type: :custom` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `description: String` + - `class BetaManagedAgentsRetryStatusTerminal` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + The session encountered a terminal error and will transition to `terminated` state. - JSON Schema for custom tool input parameters. + - `class BetaManagedAgentsRepositoryNotFoundError` - - `type: :object` + The repository host reported the repository as not found. - - `properties: Hash[Symbol, untyped]` + - `type: :repository_not_found_error` - - `required: Array[String]` + - `message: String` - - `name: String` + Human-readable error description. - - `version: Integer` + - `repository_url: String` - format: int32 + URL of the repository that could not be cloned. Null when it could not be identified. - - `class BetaManagedAgentsAdvisor` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `type: :advisor` + - `class BetaManagedAgentsRetryStatusRetrying` - - `model: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - The advisor model id. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsInlineAgent` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. + - `class BetaManagedAgentsRetryStatusTerminal` - - `type: :inline` + The session encountered a terminal error and will transition to `terminated` state. - - `description: String` + - `class BetaManagedAgentsRepositoryCheckoutError` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + The requested branch or commit does not exist in the repository. - The session's execution principal. + - `type: :repository_checkout_error` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `message: String` - - `type: :url` + Human-readable error description. - - `name: String` + - `repository_url: String` - - `url: String` + URL of the repository that could not be cloned. Null when it could not be identified. - - `model: BetaManagedAgentsModelConfig` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Model identifier and configuration. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `name: String` + - `class BetaManagedAgentsRetryStatusRetrying` - The name that the agent's definition gave, or one that the server assigned. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAnthropicSkill` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - A resolved Anthropic-managed skill. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsCustomSkill` + The session encountered a terminal error and will transition to `terminated` state. - A resolved user-created custom skill. + - `class BetaManagedAgentsRepositoryCloneError` - - `system_: String` + The repository could not be cloned. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `type: :repository_clone_error` - - `class BetaManagedAgentsAgentToolset20260401` + - `message: String` - - `class BetaManagedAgentsMCPToolset` + Human-readable error description. - - `class BetaManagedAgentsCustomTool` + - `repository_url: String` - A custom tool as returned in API responses. + URL of the repository that could not be cloned. Null when it could not be identified. - - `archived_at: Time` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - When the thread was archived. Null if not archived. + What the client should do next. Always `retrying`: the session keeps running without the repository. - format: date-time + - `class BetaManagedAgentsRetryStatusRetrying` - - `created_at: Time` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - When the thread was created. + - `class BetaManagedAgentsRetryStatusExhausted` - format: date-time + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `parent_thread_id: String` + - `class BetaManagedAgentsRetryStatusTerminal` - Parent thread that spawned this thread. Null for the primary thread. + The session encountered a terminal error and will transition to `terminated` state. - - `session_id: String` + - `processed_at: Time` - The session this thread belongs to. + Timestamp when the error occurred. - - `stats: BetaManagedAgentsSessionThreadStats` + format: date-time - Timing statistics for this thread. Null until the thread's first status transition. + - `class BetaManagedAgentsSessionStatusRescheduledEvent` - - `active_seconds: Float` + Indicates the session is recovering from an error state and is rescheduled for execution. - Cumulative time in seconds the thread spent actively running. Excludes idle time. + - `type: :"session.status_rescheduled"` - format: double + - `id: String` - - `duration_seconds: Float` + Unique identifier for this event. - Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. + - `processed_at: Time` - format: double + Timestamp of status change. - - `startup_seconds: Float` + format: date-time - Time in seconds for the thread to begin running. Zero for child threads, which start immediately. + - `class BetaManagedAgentsSessionStatusRunningEvent` - format: double + Indicates the session is actively running and the agent is working. - - `status: BetaManagedAgentsSessionThreadStatus` + - `type: :"session.status_running"` - Current execution status of the thread. + - `id: String` - - `:running` + Unique identifier for this event. - - `:idle` + - `processed_at: Time` - - `:rescheduling` + Timestamp of status change. - - `:terminated` + format: date-time - - `updated_at: Time` + - `class BetaManagedAgentsSessionStatusIdleEvent` - When the thread was last updated. + Indicates the agent has paused and is awaiting user input. - format: date-time + - `type: :"session.status_idle"` - - `usage: BetaManagedAgentsSessionThreadUsage` + - `id: String` - Cumulative token usage for this thread. Null until the thread's first idle transition. + Unique identifier for this event. - - `active_seconds: Float` + - `processed_at: Time` - Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. + Timestamp of status change. - format: double + format: date-time - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - Tokens used to create prompt cache entries, broken down by cache TTL. + Structured information about why the session stopped. `null` when there is nothing more to report. - - `ephemeral_1h_input_tokens: Integer` + - `type: :refusal` - Tokens used to create 1-hour ephemeral cache entries. + - `category: :cyber | :bio | :frontier_llm | 2 more` - format: int32 + The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. - - `ephemeral_5m_input_tokens: Integer` + - `:cyber` - Tokens used to create 5-minute ephemeral cache entries. + - `:bio` - format: int32 + - `:frontier_llm` - - `cache_read_input_tokens: Integer` + - `:reasoning_extraction` - Total tokens read from prompt cache. + - `:general_harms` - format: int32 + - `explanation: String` - - `input_tokens: Integer` + Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. - Total input tokens consumed across all turns. + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - format: int32 + - `class BetaManagedAgentsSessionEndTurn` - - `list_cost: BetaMonetaryAmount` + The agent completed its turn naturally and is ready for the next user message. - Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. + - `type: :end_turn` - - `amount: String` + - `class BetaManagedAgentsSessionRequiresAction` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - - `currency: BetaCurrency` + - `type: :requires_action` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `event_ids: Array[String]` - - `output_tokens: Integer` + The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. - Total output tokens generated across all turns. + - `class BetaManagedAgentsSessionRetriesExhausted` - format: int32 + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - - `server_tool_use: BetaManagedAgentsServerToolUsage` + - `type: :retries_exhausted` - Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. + - `class BetaManagedAgentsSessionBudgetReached` - - `web_fetch_requests: Integer` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - Number of server-executed web fetch requests. + - `type: :budget_reached` - format: int32 + - `class BetaManagedAgentsSessionRefusal` - - `web_search_requests: Integer` + The turn ended because the model's response was refused, for example by a safety classifier. - Number of server-executed web search requests. + - `type: :refusal` - format: int32 + - `class BetaManagedAgentsSessionStatusTerminatedEvent` - - `workflow_run_id: String` + Indicates the session has terminated, either due to an error or completion. - Identifier of the workflow run that created the thread, or `null` for any other thread. + - `type: :"session.status_terminated"` -#### Example + - `id: String` -```ruby -require "anthropic" + Unique identifier for this event. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `processed_at: Time` -beta_managed_agents_session_thread = anthropic.beta.sessions.threads.retrieve( - "sthr_011CZkZVWa6oJjw1rgXZpnBt", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + Timestamp of status change. -puts(beta_managed_agents_session_thread) -``` + format: date-time -##### Response (200) + - `class BetaManagedAgentsSessionThreadCreatedEvent` -```json -{ - "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "parent_thread_id": null, - "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "stats": { - "active_seconds": 0, - "duration_seconds": 0, - "startup_seconds": 0 - }, - "status": "idle", - "type": "session_thread", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "workflow_run_id": null -} -``` + Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. -### Archive Session Thread + - `type: :"session.thread_created"` -`beta.sessions.threads.archive(thread_id, **kwargs) -> BetaManagedAgentsSessionThread` + - `id: String` -**POST** `/v1/sessions/{session_id}/threads/{thread_id}/archive` + Unique identifier for this event. -Archive Session Thread + - `agent_name: String` -#### Parameters + Name of the callable agent the thread runs. -- `session_id: String` (path parameter) + - `processed_at: Time` -- `thread_id: String` (path parameter) + Timestamp when the thread was created. -- `betas: Array[AnthropicBeta]` (header parameter) + format: date-time - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `session_thread_id: String` - - `String = String` + Public `sthr_` ID of the newly created thread. - - `:"message-batches-2024-09-24"` + - `workflow_run_id: String` - - `:"prompt-caching-2024-07-31"` + Identifier of the workflow run that created the thread, or `null` for any other thread. - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` - - `:"computer-use-2025-01-24"` + Emitted when an outcome evaluation cycle begins. - - `:"pdfs-2024-09-25"` + - `type: :"span.outcome_evaluation_start"` - - `:"token-counting-2024-11-01"` + - `id: String` - - `:"token-efficient-tools-2025-02-19"` + Unique identifier for this event. - - `:"output-128k-2025-02-19"` + - `iteration: Integer` - - `:"files-api-2025-04-14"` + 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. - - `:"mcp-client-2025-04-04"` + format: int32 - - `:"mcp-client-2025-11-20"` + - `outcome_id: String` - - `:"dev-full-thinking-2025-05-14"` + The `outc_` ID of the outcome being evaluated. - - `:"interleaved-thinking-2025-05-14"` + - `processed_at: Time` - - `:"code-execution-2025-05-22"` + Timestamp when outcome evaluation started. - - `:"extended-cache-ttl-2025-04-11"` + format: date-time - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` - - `:"context-management-2025-06-27"` + Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :"span.outcome_evaluation_end"` - - `:"skills-2025-10-02"` + - `id: String` - - `:"fast-mode-2026-02-01"` + Unique identifier for this event. - - `:"output-300k-2026-03-24"` + - `explanation: String` - - `:"user-profiles-2026-03-24"` + Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. - - `:"user-profiles-2026-08-18"` + - `iteration: Integer` - - `:"user-profiles-2026-09-04"` + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `:"advisor-tool-2026-03-01"` + format: int32 - - `:"managed-agents-2026-04-01"` + - `outcome_evaluation_start_id: String` - - `:"cache-diagnosis-2026-04-07"` + The id of the corresponding `span.outcome_evaluation_start` event. - - `:"dreaming-2026-04-21"` + - `outcome_id: String` - - `:"thinking-token-count-2026-05-13"` + The `outc_` ID of the outcome being evaluated. - - `:"server-side-fallback-2026-06-01"` + - `processed_at: Time` - - `:"server-side-fallback-2026-07-01"` + Timestamp when outcome evaluation ended. - - `:"fallback-credit-2026-06-01"` + format: date-time - - `:"fallback-credit-2026-07-01"` + - `result: String` - - `:"agent-memory-2026-07-22"` + Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `usage: BetaManagedAgentsSpanModelUsage` - - `:"compact-2026-01-12"` + Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. - - `:"computer-use-2025-11-24"` + - `cache_creation_input_tokens: Integer` - - `:"mcp-tunnels-2026-06-22"` + Tokens used to create prompt cache in this request. - - `:"structured-outputs-2025-11-13"` + format: int32 - - `:"task-budgets-2026-03-13"` + - `cache_read_input_tokens: Integer` - - `:"thinking-display-updates-2026-08-18"` + Tokens read from prompt cache in this request. - - `:"ce-user-management-2026-07-13"` + format: int32 - - `:"mid-conversation-output-config-2026-07-01"` + - `input_tokens: Integer` - - `:"thinking-binding-controls-2026-08-01"` + Input tokens consumed by this request. - - `:"mid-conversation-system-clear-at-2026-08-21"` + format: int32 - - `:"compact-2026-09-04"` + - `output_tokens: Integer` - - `:"inline-tools-2026-09-15"` + Output tokens generated by this request. - - `:"mcp-client-2026-09-15"` + format: int32 - - `:"ce-plugins-2026-09-01"` + - `speed: :standard | :fast` - - `:"spend-limit-reads-2026-09-26"` + Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. - - `:"telemetry-destinations-2026-08-11"` + - `:standard` -- `workspace_id: String` (header parameter) + - `:fast` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsSpanModelRequestStartEvent` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Emitted when a model request is initiated by the agent. -#### Returns + - `type: :"span.model_request_start"` -- `class BetaManagedAgentsSessionThread` + - `id: String` - An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. + Unique identifier for this event. - - `type: :session_thread` + - `processed_at: Time` - - `id: String` + Timestamp when the model request started. - Unique identifier for this thread. + format: date-time - - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` + - `class BetaManagedAgentsSpanModelRequestEndEvent` - Resolved agent definition for this thread. Snapshot of the agent at thread creation time. + Emitted when a model request completes. - - `class BetaManagedAgentsSessionThreadAgent` + - `type: :"span.model_request_end"` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `id: String` - - `type: :agent` + Unique identifier for this event. - - `id: String` + - `is_error: bool` - - `description: String` + Whether the model request resulted in an error. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `model_request_start_id: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + The id of the corresponding `span.model_request_start` event. - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `model_usage: BetaManagedAgentsSpanModelUsage` - An AWS IAM role principal as returned in API responses. + Token usage for this model request. - - `type: :aws_role` + - `processed_at: Time` - - `role_arn: String` + Timestamp when the model request completed. - The IAM role's ARN. + format: date-time - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` - The Anthropic-managed service account as returned in API responses. + Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. - - `type: :service_account` + - `type: :"span.outcome_evaluation_ongoing"` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `id: String` - - `type: :url` + Unique identifier for this event. - - `name: String` + - `iteration: Integer` - - `url: String` + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `model: BetaManagedAgentsModelConfig` + format: int32 - Model identifier and configuration. + - `outcome_id: String` - - `id: BetaManagedAgentsModel` + The `outc_` ID of the outcome being evaluated. - The model that will power your agent. + - `processed_at: Time` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + Timestamp when this heartbeat was emitted. - - `:"claude-haiku-5-5"` + format: date-time - Fastest model for high-volume, real-time tasks + - `class BetaManagedAgentsUserDefineOutcomeEvent` - - `:"claude-sonnet-5-5"` + Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. - Efficient model for coding and agents + - `type: :"user.define_outcome"` - - `:"claude-opus-5-5"` + - `id: String` - Powerful intelligence for coding, knowledge work, and long-running agents + Unique identifier for this event. - - `:"claude-fable-5-1"` + - `description: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + What the agent should produce. Copied from the input event. - - `:"claude-sonnet-5"` + - `max_iterations: Integer` - Efficient model for coding and agents + Evaluate-then-revise cycles before giving up. Default 3, max 20. - - `:"claude-fable-5"` + format: int32 - Next generation of intelligence for the hardest knowledge work and coding problems + - `outcome_id: String` - - `:"claude-opus-5"` + Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. - Powerful intelligence for long-running agents and coding + - `processed_at: Time` - - `:"claude-opus-4-8"` + Timestamp when the outcome was accepted. - Powerful intelligence for long-running agents and coding + format: date-time - - `:"claude-opus-4-7"` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - Powerful intelligence for long-running agents and coding + How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. - - `:"claude-opus-4-6"` + - `class BetaManagedAgentsFileRubric` - Powerful intelligence for long-running agents and coding + Rubric referenced by a file uploaded via the Files API. - - `:"claude-sonnet-4-6"` + - `type: :file` - Best combination of speed and intelligence + - `file_id: String` - - `:"claude-haiku-4-5"` + ID of the rubric file. - - `:"claude-haiku-4-5-20251001"` + - `class BetaManagedAgentsTextRubric` - - `:"claude-opus-4-5"` + Rubric content provided inline as text. - Powerful intelligence for long-running agents and coding + - `type: :text` - - `:"claude-opus-4-5-20251101"` + - `content: String` - Powerful intelligence for long-running agents and coding + Rubric content. Plain text or markdown — the grader treats it as freeform text. - - `:"claude-sonnet-4-5"` + - `class BetaManagedAgentsSessionDeletedEvent` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. - High-performance model for agents and coding + - `type: :"session.deleted"` - - `:"claude-sonnet-4-5-20250929"` + - `id: String` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Unique identifier for this event. - High-performance model for agents and coding + - `processed_at: Time` - - `String = String` + Timestamp when the session was deleted. - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + format: date-time - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + - `class BetaManagedAgentsSessionThreadStatusRunningEvent` - - `class BetaManagedAgentsEffortLow` + A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - Low effort. Favors latency over reasoning depth. + - `type: :"session.thread_status_running"` - - `type: :low` + - `id: String` - - `class BetaManagedAgentsEffortMedium` + Unique identifier for this event. - Medium effort. Balances latency and reasoning depth. + - `agent_name: String` - - `type: :medium` + Name of the agent the thread runs. - - `class BetaManagedAgentsEffortHigh` + - `processed_at: Time` - High effort. Favors reasoning depth. + Timestamp of the status transition. - - `type: :high` + format: date-time - - `class BetaManagedAgentsEffortXhigh` + - `session_thread_id: String` - Extra-high effort. Not all models accept this level. + Public sthr_ ID of the thread that started running. - - `type: :xhigh` + - `class BetaManagedAgentsSessionThreadStatusIdleEvent` - - `class BetaManagedAgentsEffortMax` + A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - Maximum effort. Favors reasoning depth over latency. + - `type: :"session.thread_status_idle"` - - `type: :max` + - `id: String` - - `inference_geo: String` + Unique identifier for this event. - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `agent_name: String` - - `speed: :standard | :fast` + Name of the agent the thread runs. - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + - `processed_at: Time` - - `:standard` + Timestamp of the status transition. - - `:fast` + format: date-time - - `name: String` + - `session_thread_id: String` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Public sthr_ ID of the thread that went idle. - - `class BetaManagedAgentsAnthropicSkill` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - A resolved Anthropic-managed skill. + Structured information about why the thread stopped. `null` when there is nothing more to report. - - `type: :anthropic` + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - - `skill_id: String` + - `class BetaManagedAgentsSessionEndTurn` - - `version: String` + The agent completed its turn naturally and is ready for the next user message. - - `class BetaManagedAgentsCustomSkill` + - `class BetaManagedAgentsSessionRequiresAction` - A resolved user-created custom skill. + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - - `type: :custom` + - `class BetaManagedAgentsSessionRetriesExhausted` - - `skill_id: String` + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - - `version: String` + - `class BetaManagedAgentsSessionBudgetReached` - - `system_: String` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsSessionRefusal` - - `class BetaManagedAgentsAgentToolset20260401` + The turn ended because the model's response was refused, for example by a safety classifier. - - `type: :agent_toolset_20260401` + - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `class BetaManagedAgentsBashToolConfig` + - `type: :"session.thread_status_terminated"` - Configuration for the bash tool. + - `id: String` - - `type: :bash` + Unique identifier for this event. - - `enabled: bool` + - `agent_name: String` - - `name: :bash` + Name of the agent the thread runs. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - Permission policy for tool execution. + Timestamp of the status transition. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: date-time - Tool calls are automatically approved without user confirmation. + - `session_thread_id: String` - - `type: :always_allow` + Public sthr_ ID of the thread that terminated. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsUserToolResultEvent` - Tool calls require user confirmation before execution. + Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. - - `type: :always_ask` + - `type: :"user.tool_result"` - - `class BetaManagedAgentsAutoPolicy` + - `id: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Unique identifier for this event. - - `type: :auto` + - `tool_use_id: String` - - `class BetaManagedAgentsEditToolConfig` + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - Configuration for the edit tool. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `type: :edit` + The result content returned by the tool. - - `enabled: bool` + - `class BetaManagedAgentsTextBlock` - - `name: :edit` + Regular text content. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsImageBlock` - Permission policy for tool execution. + Image content specified directly as base64 data or as a reference via a URL. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsDocumentBlock` - Tool calls are automatically approved without user confirmation. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsSearchResultBlock` - Tool calls require user confirmation before execution. + A block containing a web search result. - - `class BetaManagedAgentsAutoPolicy` + - `is_error: bool` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Whether the tool execution resulted in an error. - - `class BetaManagedAgentsReadToolConfig` + - `processed_at: Time` - Configuration for the read tool. + Timestamp when this result was processed. - - `type: :read` + format: date-time - - `enabled: bool` + - `session_thread_id: String` - - `name: :read` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` - Permission policy for tool execution. + A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :"session.thread_status_rescheduled"` - Tool calls are automatically approved without user confirmation. + - `id: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + Unique identifier for this event. - Tool calls require user confirmation before execution. + - `agent_name: String` - - `class BetaManagedAgentsAutoPolicy` + Name of the agent the thread runs. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `processed_at: Time` - - `class BetaManagedAgentsWriteToolConfig` + Timestamp of the status transition. - Configuration for the write tool. + format: date-time - - `type: :write` + - `session_thread_id: String` - - `enabled: bool` + Public sthr_ ID of the thread that is retrying. - - `name: :write` + - `class BetaManagedAgentsSessionUpdatedEvent` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. - Permission policy for tool execution. + - `type: :"session.updated"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `id: String` - Tool calls are automatically approved without user confirmation. + Unique identifier for this event. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `processed_at: Time` - Tool calls require user confirmation before execution. + Timestamp when the update was applied. - - `class BetaManagedAgentsAutoPolicy` + format: date-time - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `agent: BetaManagedAgentsSessionAgent` - - `class BetaManagedAgentsGlobToolConfig` + The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. - Configuration for the glob tool. + - `type: :agent` - - `type: :glob` + - `id: String` - - `enabled: bool` + - `description: String` - - `name: :glob` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Permission policy for tool execution. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `class BetaManagedAgentsAlwaysAllowPolicy` + An AWS IAM role principal as returned in API responses. - Tool calls are automatically approved without user confirmation. + - `type: :aws_role` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `role_arn: String` - Tool calls require user confirmation before execution. + The IAM role's ARN. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + The Anthropic-managed service account as returned in API responses. - - `class BetaManagedAgentsGrepToolConfig` + - `type: :service_account` - Configuration for the grep tool. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `type: :grep` + - `type: :url` - - `enabled: bool` + - `name: String` - - `name: :grep` + - `url: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `model: BetaManagedAgentsModelConfig` - Permission policy for tool execution. + Model identifier and configuration. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `id: BetaManagedAgentsModel` - Tool calls are automatically approved without user confirmation. + The model that will power your agent. - - `class BetaManagedAgentsAlwaysAskPolicy` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Tool calls require user confirmation before execution. + - `:"claude-haiku-5-5"` - - `class BetaManagedAgentsAutoPolicy` + Fastest model for high-volume, real-time tasks - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `:"claude-sonnet-5-5"` - - `class BetaManagedAgentsWebFetchToolConfig` + Efficient model for coding and agents - Configuration for the web_fetch tool. + - `:"claude-opus-5-5"` - - `type: :web_fetch` + Powerful intelligence for coding, knowledge work, and long-running agents - - `enabled: bool` + - `:"claude-fable-5-1"` - - `name: :web_fetch` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:"claude-sonnet-5"` - Permission policy for tool execution. + Efficient model for coding and agents - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `:"claude-fable-5"` - Tool calls are automatically approved without user confirmation. + Next generation of intelligence for the hardest knowledge work and coding problems - - `class BetaManagedAgentsAlwaysAskPolicy` + - `:"claude-opus-5"` - Tool calls require user confirmation before execution. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsAutoPolicy` + - `:"claude-opus-4-8"` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Powerful intelligence for long-running agents and coding - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `:"claude-opus-4-7"` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + Powerful intelligence for long-running agents and coding - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `:"claude-opus-4-6"` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `:"claude-sonnet-4-6"` - Every URL from this source may be fetched. This is the default. + Best combination of speed and intelligence - - `type: :all` + - `:"claude-haiku-4-5"` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `:"claude-haiku-4-5-20251001"` - This source contributes no URLs that may be fetched. + - `:"claude-opus-4-5"` - - `type: :none` + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `:"claude-opus-4-5-20251101"` - Only the named tools' results contribute URLs that may be fetched. + Powerful intelligence for long-running agents and coding - - `type: :only` + - `:"claude-sonnet-4-5"` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + High-performance model for agents and coding - - `type: :tool_reference` + - `:"claude-sonnet-4-5-20250929"` - Must be "tool_reference". + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `name: String` + High-performance model for agents and coding - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `String = String` - minLength: 1, maxLength: 128 + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `class BetaManagedAgentsEffortLow` - - `type: :except` + Low effort. Favors latency over reasoning depth. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `type: :low` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `class BetaManagedAgentsEffortMedium` - - `type: :tool_reference` + Medium effort. Balances latency and reasoning depth. - Must be "tool_reference". + - `type: :medium` - - `name: String` + - `class BetaManagedAgentsEffortHigh` - Name of the tool. Compared exactly, so upper and lower case letters are different. + High effort. Favors reasoning depth. - minLength: 1, maxLength: 128 + - `type: :high` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `class BetaManagedAgentsEffortXhigh` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + Extra-high effort. Not all models accept this level. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `type: :xhigh` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `class BetaManagedAgentsEffortMax` - - `class BetaManagedAgentsWebFetchURLSourceAll` + Maximum effort. Favors reasoning depth over latency. - Every URL from this source may be fetched. This is the default. + - `type: :max` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `inference_geo: String` - This source contributes no URLs that may be fetched. + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `allowed_domains: Array[String]` + - `speed: :standard | :fast` - - `blocked_domains: Array[String]` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - - `max_content_tokens: Integer` + - `:standard` - format: int32 + - `:fast` - - `class BetaManagedAgentsWebSearchToolConfig` + - `multiagent: BetaManagedAgentsSessionMultiagent` - Configuration for the web_search tool. + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - - `type: :web_search` + - `class BetaManagedAgentsSessionMultiagentCoordinator` - - `enabled: bool` + Resolved coordinator topology with full agent definitions for each roster member. - - `name: :web_search` + - `type: :coordinator` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - Permission policy for tool execution. + Full `agent` definitions the coordinator may spawn as session threads. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsSessionThreadAgent` - Tool calls are automatically approved without user confirmation. + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :agent` - Tool calls require user confirmation before execution. + - `id: String` - - `class BetaManagedAgentsAutoPolicy` + - `description: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `allowed_domains: Array[String]` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `blocked_domains: Array[String]` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `user_location: BetaManagedAgentsUserLocation` + - `type: :url` - Approximate user location for search result localization. + - `name: String` - - `type: :approximate` + - `url: String` - Location precision. Only "approximate" is supported. + - `model: BetaManagedAgentsModelConfig` - - `city: String` + Model identifier and configuration. - City name. + - `name: String` - minLength: 1, maxLength: 255 + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `country: String` + - `class BetaManagedAgentsAnthropicSkill` - Two-letter ISO 3166-1 country code, uppercase. + A resolved Anthropic-managed skill. - - `region: String` + - `type: :anthropic` - Region or state name. + - `skill_id: String` - minLength: 1, maxLength: 255 + - `version: String` - - `timezone: String` + - `class BetaManagedAgentsCustomSkill` - IANA timezone identifier, e.g. "America/Los_Angeles". + A resolved user-created custom skill. - minLength: 1, maxLength: 255 + - `type: :custom` - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `skill_id: String` - Resolved default configuration for agent tools. + - `version: String` - - `enabled: bool` + - `system_: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Permission policy for tool execution. + - `class BetaManagedAgentsAgentToolset20260401` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :agent_toolset_20260401` - Tool calls are automatically approved without user confirmation. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsBashToolConfig` - Tool calls require user confirmation before execution. + Configuration for the bash tool. - - `class BetaManagedAgentsAutoPolicy` + - `type: :bash` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `enabled: bool` - - `class BetaManagedAgentsMCPToolset` + - `name: :bash` - - `type: :mcp_toolset` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + Permission policy for tool execution. - - `enabled: bool` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `name: String` + Tool calls are automatically approved without user confirmation. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :always_allow` - Permission policy for tool execution. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Tool calls require user confirmation before execution. - Tool calls are automatically approved without user confirmation. + - `type: :always_ask` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAutoPolicy` - Tool calls require user confirmation before execution. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsAutoPolicy` + - `type: :auto` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsEditToolConfig` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + Configuration for the edit tool. - Resolved default configuration for all tools from an MCP server. + - `type: :edit` - - `enabled: bool` + - `enabled: bool` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `name: :edit` - Permission policy for tool execution. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Permission policy for tool execution. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsAlwaysAskPolicy` + Tool calls are automatically approved without user confirmation. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsAutoPolicy` + Tool calls require user confirmation before execution. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsAutoPolicy` - - `mcp_server_name: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsCustomTool` + - `class BetaManagedAgentsReadToolConfig` - A custom tool as returned in API responses. + Configuration for the read tool. - - `type: :custom` + - `type: :read` - - `description: String` + - `enabled: bool` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `name: :read` - JSON Schema for custom tool input parameters. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :object` + Permission policy for tool execution. - - `properties: Hash[Symbol, untyped]` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `required: Array[String]` + Tool calls are automatically approved without user confirmation. - - `name: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `version: Integer` + Tool calls require user confirmation before execution. - format: int32 + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsAdvisor` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `class BetaManagedAgentsWriteToolConfig` - - `type: :advisor` + Configuration for the write tool. - - `model: String` + - `type: :write` - The advisor model id. + - `enabled: bool` - - `class BetaManagedAgentsInlineAgent` + - `name: :write` - An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :inline` + Permission policy for tool execution. - - `description: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Tool calls are automatically approved without user confirmation. - The session's execution principal. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + Tool calls require user confirmation before execution. - - `type: :url` + - `class BetaManagedAgentsAutoPolicy` - - `name: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `url: String` + - `class BetaManagedAgentsGlobToolConfig` - - `model: BetaManagedAgentsModelConfig` + Configuration for the glob tool. - Model identifier and configuration. + - `type: :glob` - - `name: String` + - `enabled: bool` - The name that the agent's definition gave, or one that the server assigned. + - `name: :glob` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsAnthropicSkill` + Permission policy for tool execution. - A resolved Anthropic-managed skill. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsCustomSkill` + Tool calls are automatically approved without user confirmation. - A resolved user-created custom skill. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `system_: String` + Tool calls require user confirmation before execution. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsAgentToolset20260401` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsGrepToolConfig` - - `class BetaManagedAgentsCustomTool` + Configuration for the grep tool. - A custom tool as returned in API responses. + - `type: :grep` - - `archived_at: Time` + - `enabled: bool` - When the thread was archived. Null if not archived. + - `name: :grep` - format: date-time + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `created_at: Time` + Permission policy for tool execution. - When the thread was created. + - `class BetaManagedAgentsAlwaysAllowPolicy` - format: date-time + Tool calls are automatically approved without user confirmation. - - `parent_thread_id: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - Parent thread that spawned this thread. Null for the primary thread. + Tool calls require user confirmation before execution. - - `session_id: String` + - `class BetaManagedAgentsAutoPolicy` - The session this thread belongs to. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `stats: BetaManagedAgentsSessionThreadStats` + - `class BetaManagedAgentsWebFetchToolConfig` - Timing statistics for this thread. Null until the thread's first status transition. + Configuration for the web_fetch tool. - - `active_seconds: Float` + - `type: :web_fetch` - Cumulative time in seconds the thread spent actively running. Excludes idle time. + - `enabled: bool` - format: double + - `name: :web_fetch` - - `duration_seconds: Float` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. + Permission policy for tool execution. - format: double + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `startup_seconds: Float` + Tool calls are automatically approved without user confirmation. - Time in seconds for the thread to begin running. Zero for child threads, which start immediately. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: double + Tool calls require user confirmation before execution. - - `status: BetaManagedAgentsSessionThreadStatus` + - `class BetaManagedAgentsAutoPolicy` - Current execution status of the thread. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:running` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `:idle` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `:rescheduling` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:terminated` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `updated_at: Time` + - `class BetaManagedAgentsWebFetchURLSourceAll` - When the thread was last updated. + Every URL from this source may be fetched. This is the default. - format: date-time + - `type: :all` - - `usage: BetaManagedAgentsSessionThreadUsage` + - `class BetaManagedAgentsWebFetchURLSourceNone` - Cumulative token usage for this thread. Null until the thread's first idle transition. + This source contributes no URLs that may be fetched. - - `active_seconds: Float` + - `type: :none` - Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. + - `class BetaManagedAgentsWebFetchURLSourceOnly` - format: double + Only the named tools' results contribute URLs that may be fetched. - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `type: :only` - Tokens used to create prompt cache entries, broken down by cache TTL. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `ephemeral_1h_input_tokens: Integer` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - Tokens used to create 1-hour ephemeral cache entries. + - `type: :tool_reference` - format: int32 + Must be "tool_reference". - - `ephemeral_5m_input_tokens: Integer` + - `name: String` - Tokens used to create 5-minute ephemeral cache entries. + Name of the tool. Compared exactly, so upper and lower case letters are different. - format: int32 + minLength: 1, maxLength: 128 - - `cache_read_input_tokens: Integer` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - Total tokens read from prompt cache. + Every tool's results contribute URLs that may be fetched, except the named tools' results. - format: int32 + - `type: :except` - - `input_tokens: Integer` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - Total input tokens consumed across all turns. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - format: int32 + - `type: :tool_reference` - - `list_cost: BetaMonetaryAmount` + Must be "tool_reference". - Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. + - `name: String` - - `amount: String` + Name of the tool. Compared exactly, so upper and lower case letters are different. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + minLength: 1, maxLength: 128 - - `currency: BetaCurrency` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `output_tokens: Integer` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - Total output tokens generated across all turns. + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - format: int32 + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Every URL from this source may be fetched. This is the default. - Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `web_fetch_requests: Integer` + This source contributes no URLs that may be fetched. - Number of server-executed web fetch requests. + - `allowed_domains: Array[String]` - format: int32 + - `blocked_domains: Array[String]` - - `web_search_requests: Integer` + - `max_content_tokens: Integer` - Number of server-executed web search requests. + format: int32 - format: int32 + - `class BetaManagedAgentsWebSearchToolConfig` - - `workflow_run_id: String` + Configuration for the web_search tool. - Identifier of the workflow run that created the thread, or `null` for any other thread. + - `type: :web_search` -#### Example + - `enabled: bool` -```ruby -require "anthropic" + - `name: :web_search` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -beta_managed_agents_session_thread = anthropic.beta.sessions.threads.archive( - "sthr_011CZkZVWa6oJjw1rgXZpnBt", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + Permission policy for tool execution. -puts(beta_managed_agents_session_thread) -``` + - `class BetaManagedAgentsAlwaysAllowPolicy` -##### Response (200) + Tool calls are automatically approved without user confirmation. -```json -{ - "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "description": "A focused research subagent.", - "execution_identity": { - "type": "service_account" - }, - "mcp_servers": [ - { - "name": "example-mcp", - "type": "url", - "url": "https://example-server.modelcontextprotocol.io/sse" - } - ], - "model": { - "id": "claude-opus-5-5", - "effort": { - "type": "low" - }, - "inference_geo": "inference_geo", - "speed": "standard" - }, - "name": "Researcher", - "skills": [ - { - "skill_id": "xlsx", - "type": "anthropic", - "version": "1" - } - ], - "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", - "tools": [ - { - "configs": [ - { - "enabled": true, - "name": "bash", - "permission_policy": { - "type": "always_allow" - }, - "type": "bash" - } - ], - "default_config": { - "enabled": true, - "permission_policy": { - "type": "always_ask" - } - }, - "type": "agent_toolset_20260401" - } - ], - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "parent_thread_id": null, - "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "stats": { - "active_seconds": 0, - "duration_seconds": 0, - "startup_seconds": 0 - }, - "status": "idle", - "type": "session_thread", - "updated_at": "2026-03-15T10:00:00Z", - "usage": { - "active_seconds": 0, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "list_cost": { - "amount": "2500", - "currency": "USD" - }, - "output_tokens": 0, - "server_tool_use": { - "web_fetch_requests": 0, - "web_search_requests": 3 - } - }, - "workflow_run_id": null -} -``` + - `class BetaManagedAgentsAlwaysAskPolicy` -## Beta › Sessions › Threads › Events + Tool calls require user confirmation before execution. -### List Session Thread Events + - `class BetaManagedAgentsAutoPolicy` -`beta.sessions.threads.events.list(thread_id, **kwargs) -> PageCursor` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -**GET** `/v1/sessions/{session_id}/threads/{thread_id}/events` + - `allowed_domains: Array[String]` -List Session Thread Events + - `blocked_domains: Array[String]` -#### Parameters + - `user_location: BetaManagedAgentsUserLocation` -- `session_id: String` (path parameter) + Approximate user location for search result localization. -- `thread_id: String` (path parameter) + - `type: :approximate` -- `limit: Integer` (query parameter) + Location precision. Only "approximate" is supported. - format: int32 + - `city: String` -- `page: String` (query parameter) + City name. -- `betas: Array[AnthropicBeta]` (header parameter) + minLength: 1, maxLength: 255 - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `country: String` - - `String = String` + Two-letter ISO 3166-1 country code, uppercase. - - `:"message-batches-2024-09-24"` + - `region: String` - - `:"prompt-caching-2024-07-31"` + Region or state name. - - `:"computer-use-2024-10-22"` + minLength: 1, maxLength: 255 - - `:"computer-use-2025-01-24"` + - `timezone: String` - - `:"pdfs-2024-09-25"` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `:"token-counting-2024-11-01"` + minLength: 1, maxLength: 255 - - `:"token-efficient-tools-2025-02-19"` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `:"output-128k-2025-02-19"` + Resolved default configuration for agent tools. - - `:"files-api-2025-04-14"` + - `enabled: bool` - - `:"mcp-client-2025-04-04"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"mcp-client-2025-11-20"` + Permission policy for tool execution. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"interleaved-thinking-2025-05-14"` + Tool calls are automatically approved without user confirmation. - - `:"code-execution-2025-05-22"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"extended-cache-ttl-2025-04-11"` + Tool calls require user confirmation before execution. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsAutoPolicy` - - `:"context-management-2025-06-27"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsMCPToolset` - - `:"skills-2025-10-02"` + - `type: :mcp_toolset` - - `:"fast-mode-2026-02-01"` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `:"output-300k-2026-03-24"` + - `enabled: bool` - - `:"user-profiles-2026-03-24"` + - `name: String` - - `:"user-profiles-2026-08-18"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-09-04"` + Permission policy for tool execution. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"managed-agents-2026-04-01"` + Tool calls are automatically approved without user confirmation. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"dreaming-2026-04-21"` + Tool calls require user confirmation before execution. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"server-side-fallback-2026-06-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"server-side-fallback-2026-07-01"` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `:"fallback-credit-2026-06-01"` + Resolved default configuration for all tools from an MCP server. - - `:"fallback-credit-2026-07-01"` + - `enabled: bool` - - `:"agent-memory-2026-07-22"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"mid-conversation-tool-changes-2026-07-01"` + Permission policy for tool execution. - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"computer-use-2025-11-24"` + Tool calls are automatically approved without user confirmation. - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"structured-outputs-2025-11-13"` + Tool calls require user confirmation before execution. - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"thinking-display-updates-2026-08-18"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"ce-user-management-2026-07-13"` + - `mcp_server_name: String` - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsCustomTool` - - `:"thinking-binding-controls-2026-08-01"` + A custom tool as returned in API responses. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :custom` - - `:"compact-2026-09-04"` + - `description: String` - - `:"inline-tools-2026-09-15"` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `:"mcp-client-2026-09-15"` + JSON Schema for custom tool input parameters. - - `:"ce-plugins-2026-09-01"` + - `type: :object` - - `:"spend-limit-reads-2026-09-26"` + - `properties: Hash[Symbol, untyped]` - - `:"telemetry-destinations-2026-08-11"` + - `required: Array[String]` -- `workspace_id: String` (header parameter) + - `name: String` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `version: Integer` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + format: int32 -#### Returns + - `class BetaManagedAgentsAdvisor` -- `type BetaManagedAgentsSessionEvent = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 39 more` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - Union type for all event types in a session. + - `type: :advisor` - - `class BetaManagedAgentsUserMessageEvent` + - `model: String` - A user message event in the session conversation. + The advisor model id. - - `type: :"user.message"` + - `class BetaManagedAgentsSessionMultiagent20261001` - - `id: String` + Resolved multiagent configuration with three members, as copied to the `session` at creation. - Unique identifier for this event. + - `type: :multiagent_20261001` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `advisor: BetaManagedAgentsMultiagentAdvisor` - Array of content blocks comprising the user message. + Whether the session's primary thread can consult an advisor model. - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - Regular text content. + The session's primary thread can consult `model` mid-turn. - - `type: :text` + - `type: :enabled` - - `text: String` + - `model: String` - The text content. + The advisor model id. - minLength: 1 + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - - `class BetaManagedAgentsImageBlock` + The agent has no advisor. - Image content specified directly as base64 data or as a reference via a URL. + - `type: :disabled` - - `type: :image` + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + Whether the agent can spawn session threads. - The source of the image data. + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - - `class BetaManagedAgentsBase64ImageSource` + The agent can spawn session threads. - Base64-encoded image data. + - `type: :enabled` - - `type: :base64` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `data: String` + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - Base64-encoded image data. + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - minLength: 1 + The agent can define inline agents. - - `media_type: String` + - `type: :enabled` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - minLength: 1 + The agent cannot define inline agents. - - `class BetaManagedAgentsURLImageSource` + - `type: :disabled` - Image referenced by URL. + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - - `type: :url` + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - - `url: String` + - `type: :agent` - URL of the image to fetch. + - `id: String` - minLength: 1 + - `description: String` - - `class BetaManagedAgentsFileImageSource` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Image referenced by file ID. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :file` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `file_id: String` + - `model: BetaManagedAgentsModelConfig` - ID of a previously uploaded file. + Model identifier and configuration. - minLength: 1 + - `name: String` - - `class BetaManagedAgentsDocumentBlock` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `system_: String` - - `type: :document` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `version: Integer` - The source of the document data. + format: int32 - - `class BetaManagedAgentsBase64DocumentSource` + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - Base64-encoded document data. + The agent cannot spawn session threads. - - `type: :base64` + - `type: :disabled` - - `data: String` + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - Base64-encoded document data. + Whether the agent can start workflow runs. - minLength: 1 + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - - `media_type: String` + The agent can start workflow runs. - MIME type of the document (e.g., "application/pdf"). + - `type: :enabled` - minLength: 1 + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `class BetaManagedAgentsPlainTextDocumentSource` + Whether a run's plan can define inline agents, which are not saved. - Plain text document content. + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - - `type: :text` + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - - `data: String` + - `type: :agent` - The plain text content. + - `id: String` - minLength: 1 + - `description: String` - - `media_type: :"text/plain"` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - MIME type of the text content. Must be "text/plain". + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `class BetaManagedAgentsURLDocumentSource` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Document referenced by URL. + - `model: BetaManagedAgentsModelConfig` - - `type: :url` + Model identifier and configuration. - - `url: String` + - `name: String` - URL of the document to fetch. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - minLength: 1 + - `system_: String` - - `class BetaManagedAgentsFileDocumentSource` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Document referenced by file ID. + - `version: Integer` - - `type: :file` + format: int32 - - `file_id: String` + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - ID of a previously uploaded file. + The agent cannot start workflow runs. - minLength: 1 + - `type: :disabled` - - `context: String` + - `name: String` - Additional context about the document for the model. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `title: String` + - `class BetaManagedAgentsAnthropicSkill` - The title of the document. + A resolved Anthropic-managed skill. - - `class BetaManagedAgentsRedactedBlock` + - `class BetaManagedAgentsCustomSkill` - Placeholder for content withheld by Anthropic model policy. + A resolved user-created custom skill. - - `type: :redacted` + - `system_: String` - - `processed_at: Time` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Timestamp when the agent finished processing this message. + - `class BetaManagedAgentsAgentToolset20260401` - format: date-time + - `class BetaManagedAgentsMCPToolset` - - `class BetaManagedAgentsUserInterruptEvent` + - `class BetaManagedAgentsCustomTool` - An interrupt event that pauses agent execution and returns control to the user. + A custom tool as returned in API responses. - - `type: :"user.interrupt"` + - `version: Integer` - - `id: String` + format: int32 - Unique identifier for this event. + - `budget: BetaManagedAgentsBudgetLimit` - - `processed_at: Time` + The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. - Timestamp when the interrupt was processed. + - `type: :limit` - format: date-time + - `max_list_cost: BetaMonetaryAmount` - - `session_thread_id: String` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. + - `amount: String` - - `class BetaManagedAgentsUserToolConfirmationEvent` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - A tool confirmation event that approves or denies a pending tool execution. + - `currency: BetaCurrency` - - `type: :"user.tool_confirmation"` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `id: String` + - `metadata: Hash[Symbol, String]` - Unique identifier for this event. + The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. - - `result: :allow | :deny` + - `title: String` - The confirmation result: 'allow' or 'deny'. + The session's new title. Present only when the update changed it. - - `:allow` + - `class BetaManagedAgentsStartEvent` - - `:deny` + Opens a preview of a buffered event. Carries the previewed event's type and id only. Followed by zero or more event_delta events with the same event id, normally concluded by the buffered event carrying that id. If the producing model request ends without that event (an error or interrupt mid-stream), its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. - - `tool_use_id: String` + - `type: :event_start` - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `event: BetaManagedAgentsStartEventPreview` - - `deny_message: String` + The previewed event's type and id. The event type determines which delta types the preview's event_delta events carry: agent.message events stream content_delta fragments; agent.thinking previews are start-only — no deltas follow, and the buffered agent.thinking with the same id concludes them. - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + - `class BetaManagedAgentsAgentMessagePreview` - maxLength: 10000 + - `type: :"agent.message"` - - `processed_at: Time` + - `id: String` - Timestamp when the confirmation was processed. + The id the buffered agent.message will carry if it is emitted. Matches the event_id on this preview's event_delta events. - format: date-time + - `class BetaManagedAgentsAgentThinkingPreview` - - `session_thread_id: String` + - `type: :"agent.thinking"` - Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. + - `id: String` - - `class BetaManagedAgentsUserCustomToolResultEvent` + The id the buffered agent.thinking will carry if it is emitted. Start-only — no event_delta events follow. - Event sent by the client providing the result of a custom tool execution. + - `class BetaManagedAgentsDeltaEvent` - - `type: :"user.custom_tool_result"` + An incremental update to an event that is still being streamed. Deltas are best-effort and may stop early; when the buffered event with id == event_id is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no buffered event — its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. - - `id: String` + - `type: :event_delta` - Unique identifier for this event. + - `delta: BetaManagedAgentsDeltaContent` - - `custom_tool_use_id: String` + One fragment of the previewed event. The delta type is named for the previewed event's field it streams into: agent.message events stream content_delta fragments, each a partial element of the content array. - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `type: :content_delta` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `content: BetaManagedAgentsTextBlock` - The result content returned by the tool. + A partial element of the content array at index, typed like the element itself — the same shape the buffered agent.message carries in content. - - `class BetaManagedAgentsTextBlock` + - `index: Integer` - Regular text content. + Which entry in the previewed event's content array this fragment lands in. Insert content as that entry when the index is new; append to the existing entry otherwise. - - `class BetaManagedAgentsImageBlock` + - `event_id: String` - Image content specified directly as base64 data or as a reference via a URL. + The id of the event being previewed. Matches event.id on the corresponding event_start and the buffered event that reconciles the preview. - - `class BetaManagedAgentsDocumentBlock` + - `class BetaManagedAgentsSystemMessageEvent` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. - - `class BetaManagedAgentsSearchResultBlock` + - `type: :"system.message"` - A block containing a web search result. + - `id: String` - - `type: :search_result` + Unique identifier for this event. - - `citations: BetaManagedAgentsSearchResultCitations` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - Citation settings for this search result. + System content blocks. Text-only. - - `enabled: bool` + - `type: :text` - Whether citations are enabled for this search result. + - `text: String` - - `content: Array[BetaManagedAgentsSearchResultContent]` + The text content. - Array of text content blocks from the search result. + minLength: 1 - - `type: :text` + - `processed_at: Time` - - `text: String` + Timestamp when this system message was processed. - The text content. + format: date-time - minLength: 1 + - `class BetaManagedAgentsSessionUsageEvent` - - `source: String` + Periodic snapshot of the session's cumulative usage and tracked list cost. - The URL source of the search result. + - `type: :"session.usage"` - minLength: 1 + - `id: String` - - `title: String` + Unique identifier for this event. - The title of the search result. + - `processed_at: Time` - minLength: 1 + Timestamp when the snapshot was taken. - - `is_error: bool` + format: date-time - Whether the tool execution resulted in an error. + - `usage: BetaManagedAgentsSessionUsageSnapshot` - - `processed_at: Time` + The session's cumulative usage at the snapshot time. - Timestamp when this result was processed. + - `active_seconds: Float` - format: date-time + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. - - `session_thread_id: String` + format: double - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `class BetaManagedAgentsAgentCustomToolUseEvent` + Tokens used to create prompt cache entries, broken down by cache TTL. - Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. + - `ephemeral_1h_input_tokens: Integer` - - `type: :"agent.custom_tool_use"` + Tokens used to create 1-hour ephemeral cache entries. - - `id: String` + format: int32 - Unique identifier for this event. + - `ephemeral_5m_input_tokens: Integer` - - `input: Hash[Symbol, untyped]` + Tokens used to create 5-minute ephemeral cache entries. - Input parameters for the tool call. + format: int32 - - `name: String` + - `cache_read_input_tokens: Integer` - Name of the custom tool being called. + Total tokens read from prompt cache. - - `processed_at: Time` + format: int32 - Timestamp when this tool use was processed. + - `input_tokens: Integer` - format: date-time + Total input tokens consumed across all turns. - - `session_thread_id: String` + format: int32 - When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. + - `list_cost: BetaMonetaryAmount` - - `class BetaManagedAgentsAgentMessageEvent` + Cumulative list cost of the session across all turns, priced at public list rates. - An agent response event in the session conversation. + - `output_tokens: Integer` - - `type: :"agent.message"` + Total output tokens generated across all turns. - - `id: String` + format: int32 - Unique identifier for this event. + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` + Cumulative server-executed tool usage across all turns. - Array of text blocks comprising the agent response. + - `web_fetch_requests: Integer` - - `class BetaManagedAgentsTextBlock` + Number of server-executed web fetch requests. - Regular text content. + format: int32 - - `class BetaManagedAgentsRedactedBlock` + - `web_search_requests: Integer` - Placeholder for content withheld by Anthropic model policy. + Number of server-executed web search requests. - - `processed_at: Time` + format: int32 - Timestamp when this response was generated. + - `budget: BetaManagedAgentsBudgetLimit` - format: date-time + The session's configured budget at the snapshot time, or null when the session has no budget. - - `class BetaManagedAgentsAgentThinkingEvent` + - `class BetaManagedAgentsWorkflowRunCreatedEvent` - Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. + A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. - - `type: :"agent.thinking"` + - `type: :"workflow_run.created"` - `id: String` Unique identifier for this event. - - `processed_at: Time` - - Timestamp when this thinking was produced. - - format: date-time + - `description: String` - - `class BetaManagedAgentsAgentMCPToolUseEvent` + Description that the agent gave the run, passed on as written, or `null` if it gave none. - Event emitted when the agent invokes a tool provided by an MCP server. + - `name: String` - - `type: :"agent.mcp_tool_use"` + Name that the agent gave the run, passed on as written, or a name that the server assigned. - - `id: String` + - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` - Unique identifier for this event. + The phases that the run's plan declares, in the plan's order. Can be empty. - - `input: Hash[Symbol, untyped]` + - `id: String` - Input parameters for the tool call. + Unique identifier for the phase. - - `mcp_server_name: String` + - `description: String` - Name of the MCP server providing the tool. + Description that the agent gave the phase, passed on as written, or `null` if it gave none. - - `name: String` + - `name: String` - Name of the MCP tool being used. + Name that the agent gave the phase, passed on as written. - `processed_at: Time` @@ -56609,137 +55835,143 @@ List Session Thread Events format: date-time - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + - `workflow_run_id: String` - The evaluated permission policy for this tool invocation. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `:allow` + - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` - - `:ask` + A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. - - `:deny` + - `type: :"workflow_run.status_ended"` - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + - `id: String` - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + Unique identifier for this event. - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` + - `processed_at: Time` - The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". + Timestamp when this event was processed. - - `type: :always_allow` + format: date-time - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` + - `result: BetaManagedAgentsWorkflowRunResult` - The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". + How the run ended. - - `type: :always_ask` + - `class BetaManagedAgentsWorkflowRunResultCompleted` - - `class BetaManagedAgentsAgentToolEvaluationAuto` + The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. - The resolved permission_policy was auto: the server judged this invocation individually. + - `type: :completed` - - `type: :auto` + - `class BetaManagedAgentsWorkflowRunResultError` - - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` + The run failed or reached its time limit. - The server's judgement for this invocation. + - `type: :error` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` + - `error: BetaManagedAgentsWorkflowRunError` - The server judged the invocation safe to execute without client approval. + Why the run did not finish. - - `type: :allow` + - `class BetaManagedAgentsTimeoutWorkflowRunError` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` + The run reached its time limit. - The server reached no judgement; the invocation is held for client approval. + - `type: :timeout_error` - - `type: :ask` + - `message: String` - - `reason_code: String` + Short explanation written by the server. It never contains content from the run or its agents. - The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. + - `class BetaManagedAgentsProgramWorkflowRunError` - maxLength: 64 + The plan, a program that the agent wrote, failed, or the server refused it. - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` + - `type: :program_error` - The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. + - `message: String` - - `type: :deny` + Short explanation written by the server. It never contains content from the run or its agents. - - `reason_code: String` + - `class BetaManagedAgentsUnknownWorkflowRunError` - The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. + A failure that has no type of its own. - maxLength: 64 + - `type: :unknown_error` - - `session_thread_id: String` + - `message: String` - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. + Short explanation written by the server. It never contains content from the run or its agents. - - `class BetaManagedAgentsAgentMCPToolResultEvent` + - `class BetaManagedAgentsThreadLimitWorkflowRunError` - Event representing the result of an MCP tool execution. + The run exceeded the limit on the number of threads that a run can create. - - `type: :"agent.mcp_tool_result"` + - `type: :thread_limit_error` - - `id: String` + - `message: String` - Unique identifier for this event. + Short explanation written by the server. It never contains content from the run or its agents. - - `mcp_tool_use_id: String` + - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` - The id of the `agent.mcp_tool_use` event this result corresponds to. + No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. - - `processed_at: Time` + - `type: :max_workflow_runs_error` - Timestamp when this event was processed. + - `message: String` - format: date-time + Short explanation written by the server. It never contains content from the run or its agents. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `class BetaManagedAgentsWorkflowRunResultStopped` - The result content returned by the tool. + The agent stopped the run. - - `class BetaManagedAgentsTextBlock` + - `type: :stopped` - Regular text content. + - `workflow_run_id: String` - - `class BetaManagedAgentsImageBlock` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - Image content specified directly as base64 data or as a reference via a URL. + - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` - - `class BetaManagedAgentsDocumentBlock` + A workflow run's plan entered a phase. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `type: :"workflow_run.phase_started"` - - `class BetaManagedAgentsSearchResultBlock` + - `id: String` - A block containing a web search result. + Unique identifier for this event. - - `is_error: bool` + - `processed_at: Time` - Whether the tool execution resulted in an error. + Timestamp when this event was processed. - - `class BetaManagedAgentsAgentToolUseEvent` + format: date-time - Event emitted when the agent invokes a built-in agent tool. + - `workflow_run_id: String` - - `type: :"agent.tool_use"` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `id: String` + - `workflow_run_phase_id: String` - Unique identifier for this event. + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - - `input: Hash[Symbol, untyped]` + - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` - Input parameters for the tool call. + A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. - - `name: String` + - `type: :"workflow_run.phase_ended"` - Name of the agent tool being used. + - `id: String` + + Unique identifier for this event. + + - `phase_started_id: String` + + Identifier of the `workflow_run.phase_started` event that opened the phase. - `processed_at: Time` @@ -56747,23 +55979,19 @@ List Session Thread Events format: date-time - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - The evaluated permission policy for this tool invocation. - - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + - `workflow_run_id: String` - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `session_thread_id: String` + - `workflow_run_phase_id: String` - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - - `class BetaManagedAgentsAgentToolResultEvent` + - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` - Event representing the result of an agent tool execution. + A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. - - `type: :"agent.tool_result"` + - `type: :"workflow_run.status_running"` - `id: String` @@ -56775,1117 +56003,1451 @@ List Session Thread Events format: date-time - - `tool_use_id: String` - - The id of the `agent.tool_use` event this result corresponds to. - - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `workflow_run_id: String` - The result content returned by the tool. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `class BetaManagedAgentsTextBlock` + - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` - Regular text content. + A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. - - `class BetaManagedAgentsImageBlock` + - `type: :"workflow_run.status_idle"` - Image content specified directly as base64 data or as a reference via a URL. + - `id: String` - - `class BetaManagedAgentsDocumentBlock` + Unique identifier for this event. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `processed_at: Time` - - `class BetaManagedAgentsSearchResultBlock` + Timestamp when this event was processed. - A block containing a web search result. + format: date-time - - `is_error: bool` + - `workflow_run_id: String` - Whether the tool execution resulted in an error. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` + - `class BetaManagedAgentsWorkflowRunErrorEvent` - Delivery event written to the target thread's input stream when an agent-to-agent message arrives. + A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. - - `type: :"agent.thread_message_received"` + - `type: :"workflow_run.error"` - `id: String` Unique identifier for this event. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `error: BetaManagedAgentsWorkflowRunError` - Message content blocks. + Why the run did not finish, or was not created. - - `class BetaManagedAgentsTextBlock` + - `processed_at: Time` - Regular text content. + Timestamp when this event was processed. - - `class BetaManagedAgentsImageBlock` + format: date-time - Image content specified directly as base64 data or as a reference via a URL. + - `workflow_run_id: String` - - `class BetaManagedAgentsDocumentBlock` + Identifier of the run that met the error, or `null` when the error kept a run from being created. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. +#### Example - - `class BetaManagedAgentsRedactedBlock` +```ruby +require "anthropic" - Placeholder for content withheld by Anthropic model policy. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `from_session_thread_id: String` +stream = anthropic.beta.sessions.events.stream_events("sesn_011CZkZAtmR3yMPDzynEDxu7") - Public `sthr_` ID of the thread that sent the message. +stream.each do |event| + puts(event) +end +``` - - `processed_at: Time` +##### Response (200) - Timestamp when the message was received. +```json +{ + "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", + "content": [ + { + "text": "Where is my order #1234?", + "type": "text" + } + ], + "type": "user.message", + "processed_at": "2026-03-15T10:00:00Z" +} +``` - format: date-time +## Beta › Sessions › Resources - - `from_agent_name: String` +### Add Session Resource - Name of the callable agent this message came from. Absent when received from the primary agent. +`beta.sessions.resources.add(session_id, **kwargs) -> BetaManagedAgentsFileResource` - - `class BetaManagedAgentsAgentThreadMessageSentEvent` +**POST** `/v1/sessions/{session_id}/resources` - Observability event emitted to the sender's output stream when an agent-to-agent message is sent. +Add Session Resource - - `type: :"agent.thread_message_sent"` +#### Parameters - - `id: String` +- `session_id: String` (path parameter) - Unique identifier for this event. +- `file_id: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + ID of a previously uploaded file. - Message content blocks. + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsTextBlock` +- `type: :file` - Regular text content. +- `mount_path: String` - - `class BetaManagedAgentsImageBlock` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - Image content specified directly as base64 data or as a reference via a URL. + minLength: 1, maxLength: 4096 - - `class BetaManagedAgentsDocumentBlock` +- `betas: Array[AnthropicBeta]` (header parameter) - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - `class BetaManagedAgentsRedactedBlock` + - `String = String` - Placeholder for content withheld by Anthropic model policy. + - `:"message-batches-2024-09-24"` - - `processed_at: Time` + - `:"prompt-caching-2024-07-31"` - Timestamp when the message was sent. + - `:"computer-use-2024-10-22"` - format: date-time + - `:"computer-use-2025-01-24"` - - `to_session_thread_id: String` + - `:"pdfs-2024-09-25"` - Public `sthr_` ID of the thread the message was sent to. + - `:"token-counting-2024-11-01"` - - `to_agent_name: String` + - `:"token-efficient-tools-2025-02-19"` - Name of the callable agent this message was sent to. Absent when sent to the primary agent. + - `:"output-128k-2025-02-19"` - - `class BetaManagedAgentsAgentThreadContextCompactedEvent` + - `:"files-api-2025-04-14"` - Indicates that context compaction (summarization) occurred during the session. + - `:"mcp-client-2025-04-04"` - - `type: :"agent.thread_context_compacted"` + - `:"mcp-client-2025-11-20"` - - `id: String` + - `:"dev-full-thinking-2025-05-14"` - Unique identifier for this event. + - `:"interleaved-thinking-2025-05-14"` - - `processed_at: Time` + - `:"code-execution-2025-05-22"` - Timestamp when compaction was processed. + - `:"extended-cache-ttl-2025-04-11"` - format: date-time + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsSessionErrorEvent` + - `:"context-management-2025-06-27"` - An error event indicating a problem occurred during session execution. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :"session.error"` + - `:"skills-2025-10-02"` - - `id: String` + - `:"fast-mode-2026-02-01"` - Unique identifier for this event. + - `:"output-300k-2026-03-24"` - - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsUnknownError` + - `:"user-profiles-2026-08-18"` - An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. + - `:"user-profiles-2026-09-04"` - - `type: :unknown_error` + - `:"advisor-tool-2026-03-01"` - - `message: String` + - `:"managed-agents-2026-04-01"` - Human-readable error description. + - `:"cache-diagnosis-2026-04-07"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"dreaming-2026-04-21"` - What the client should do next. + - `:"thinking-token-count-2026-05-13"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"server-side-fallback-2026-06-01"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"server-side-fallback-2026-07-01"` - - `type: :retrying` + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"fallback-credit-2026-07-01"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"agent-memory-2026-07-22"` - - `type: :exhausted` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"compact-2026-01-12"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"computer-use-2025-11-24"` - - `type: :terminal` + - `:"mcp-tunnels-2026-06-22"` - - `class BetaManagedAgentsModelOverloadedError` + - `:"structured-outputs-2025-11-13"` - The model is currently overloaded. Emitted after automatic retries are exhausted. + - `:"task-budgets-2026-03-13"` - - `type: :model_overloaded_error` + - `:"thinking-display-updates-2026-08-18"` - - `message: String` + - `:"ce-user-management-2026-07-13"` - Human-readable error description. + - `:"mid-conversation-output-config-2026-07-01"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"thinking-binding-controls-2026-08-01"` - What the client should do next. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"compact-2026-09-04"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"inline-tools-2026-09-15"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"mcp-client-2026-09-15"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"ce-plugins-2026-09-01"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"spend-limit-reads-2026-09-26"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"telemetry-destinations-2026-08-11"` - - `class BetaManagedAgentsModelRateLimitedError` + - `:"webhooks-2026-10-07"` - The model request was rate-limited. +- `workspace_id: String` (header parameter) - - `type: :model_rate_limited_error` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `message: String` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Human-readable error description. +#### Returns - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` +- `class BetaManagedAgentsFileResource` - What the client should do next. + - `type: :file` - - `class BetaManagedAgentsRetryStatusRetrying` + - `id: String` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `created_at: Time` - - `class BetaManagedAgentsRetryStatusExhausted` + A timestamp in RFC 3339 format - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + format: date-time - - `class BetaManagedAgentsRetryStatusTerminal` + - `file_id: String` - The session encountered a terminal error and will transition to `terminated` state. + - `mount_path: String` - - `class BetaManagedAgentsModelRequestFailedError` + - `updated_at: Time` - A model request failed for a reason other than overload or rate-limiting. + A timestamp in RFC 3339 format - - `type: :model_request_failed_error` + format: date-time - - `message: String` +#### Example - Human-readable error description. +```ruby +require "anthropic" - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - What the client should do next. +beta_managed_agents_file_resource = anthropic.beta.sessions.resources.add( + "sesn_011CZkZAtmR3yMPDzynEDxu7", + file_id: "file_011CNha8iCJcU1wXNR6q4V8w", + type: :file +) - - `class BetaManagedAgentsRetryStatusRetrying` +puts(beta_managed_agents_file_resource) +``` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. +##### Response (200) - - `class BetaManagedAgentsRetryStatusExhausted` +```json +{ + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" +} +``` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. +### List Session Resources - - `class BetaManagedAgentsRetryStatusTerminal` +`beta.sessions.resources.list(session_id, **kwargs) -> PageCursor` - The session encountered a terminal error and will transition to `terminated` state. +**GET** `/v1/sessions/{session_id}/resources` - - `class BetaManagedAgentsMCPConnectionFailedError` +List Session Resources - Failed to connect to an MCP server. +#### Parameters - - `type: :mcp_connection_failed_error` +- `session_id: String` (path parameter) - - `mcp_server_name: String` +- `limit: Integer` (query parameter) - Name of the MCP server that failed to connect. + Maximum number of resources to return per page (max 1000). If omitted, returns all resources. - - `message: String` + format: int32 - Human-readable error description. +- `page: String` (query parameter) - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Opaque cursor from a previous response's `next_page` field. - What the client should do next. +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaManagedAgentsRetryStatusRetrying` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `String = String` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"message-batches-2024-09-24"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"prompt-caching-2024-07-31"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"computer-use-2024-10-22"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsMCPAuthenticationFailedError` + - `:"pdfs-2024-09-25"` - Authentication to an MCP server failed. + - `:"token-counting-2024-11-01"` - - `type: :mcp_authentication_failed_error` + - `:"token-efficient-tools-2025-02-19"` - - `mcp_server_name: String` + - `:"output-128k-2025-02-19"` - Name of the MCP server that failed authentication. + - `:"files-api-2025-04-14"` - - `message: String` + - `:"mcp-client-2025-04-04"` - Human-readable error description. + - `:"mcp-client-2025-11-20"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"dev-full-thinking-2025-05-14"` - What the client should do next. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"code-execution-2025-05-22"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"extended-cache-ttl-2025-04-11"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"context-1m-2025-08-07"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"context-management-2025-06-27"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"model-context-window-exceeded-2025-08-26"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"skills-2025-10-02"` - - `class BetaManagedAgentsBillingError` + - `:"fast-mode-2026-02-01"` - The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. + - `:"output-300k-2026-03-24"` - - `type: :billing_error` + - `:"user-profiles-2026-03-24"` - - `message: String` + - `:"user-profiles-2026-08-18"` - Human-readable error description. + - `:"user-profiles-2026-09-04"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"advisor-tool-2026-03-01"` - What the client should do next. + - `:"managed-agents-2026-04-01"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"cache-diagnosis-2026-04-07"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"dreaming-2026-04-21"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"thinking-token-count-2026-05-13"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"server-side-fallback-2026-06-01"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"server-side-fallback-2026-07-01"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"fallback-credit-2026-06-01"` - - `class BetaManagedAgentsCredentialHostUnreachableError` + - `:"fallback-credit-2026-07-01"` - An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. + - `:"agent-memory-2026-07-22"` - - `type: :credential_host_unreachable_error` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `credential_id: String` + - `:"compact-2026-01-12"` - ID of the affected credential. + - `:"computer-use-2025-11-24"` - - `message: String` + - `:"mcp-tunnels-2026-06-22"` - Human-readable error description. + - `:"structured-outputs-2025-11-13"` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `:"task-budgets-2026-03-13"` - What the client should do next. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:"ce-user-management-2026-07-13"` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaManagedAgentsRetryStatusExhausted` + - `:"thinking-binding-controls-2026-08-01"` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaManagedAgentsRetryStatusTerminal` + - `:"compact-2026-09-04"` - The session encountered a terminal error and will transition to `terminated` state. + - `:"inline-tools-2026-09-15"` - - `vault_id: String` + - `:"mcp-client-2026-09-15"` - ID of the vault containing the affected credential. + - `:"ce-plugins-2026-09-01"` - - `class BetaManagedAgentsRepositoryAuthenticationError` + - `:"spend-limit-reads-2026-09-26"` - The repository host rejected the credentials, or required credentials and received none. + - `:"telemetry-destinations-2026-08-11"` - - `type: :repository_authentication_error` + - `:"webhooks-2026-10-07"` - - `message: String` +- `workspace_id: String` (header parameter) - Human-readable error description. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `repository_url: String` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - URL of the repository that could not be cloned. Null when it could not be identified. +#### Returns - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` +- `type BetaManagedAgentsSessionResource = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `class BetaManagedAgentsGitHubRepositoryResource` - - `class BetaManagedAgentsRetryStatusRetrying` + - `type: :github_repository` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `id: String` - - `class BetaManagedAgentsRetryStatusExhausted` + - `created_at: Time` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + A timestamp in RFC 3339 format - - `class BetaManagedAgentsRetryStatusTerminal` + format: date-time - The session encountered a terminal error and will transition to `terminated` state. + - `mount_path: String` - - `class BetaManagedAgentsRepositoryForbiddenError` + - `updated_at: Time` - The repository host refused access to the repository. + A timestamp in RFC 3339 format - - `type: :repository_forbidden_error` + format: date-time - - `message: String` + - `url: String` - Human-readable error description. + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `repository_url: String` + - `class BetaManagedAgentsBranchCheckout` - URL of the repository that could not be cloned. Null when it could not be identified. + - `type: :branch` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `name: String` - What the client should do next. Always `retrying`: the session keeps running without the repository. + Branch name to check out. - - `class BetaManagedAgentsRetryStatusRetrying` + minLength: 1, maxLength: 255 - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsCommitCheckout` - - `class BetaManagedAgentsRetryStatusExhausted` + - `type: :commit` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `sha: String` - - `class BetaManagedAgentsRetryStatusTerminal` + Full commit SHA to check out. - The session encountered a terminal error and will transition to `terminated` state. + minLength: 7, maxLength: 64 - - `class BetaManagedAgentsRepositoryNotFoundError` + - `class BetaManagedAgentsFileResource` - The repository host reported the repository as not found. + - `type: :file` - - `type: :repository_not_found_error` + - `id: String` - - `message: String` + - `created_at: Time` - Human-readable error description. + A timestamp in RFC 3339 format - - `repository_url: String` + format: date-time - URL of the repository that could not be cloned. Null when it could not be identified. + - `file_id: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `mount_path: String` - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `updated_at: Time` - - `class BetaManagedAgentsRetryStatusRetrying` + A timestamp in RFC 3339 format - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + format: date-time - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsMemoryStoreResource` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + A memory store attached to an agent session. - - `class BetaManagedAgentsRetryStatusTerminal` + - `type: :memory_store` - The session encountered a terminal error and will transition to `terminated` state. + - `memory_store_id: String` - - `class BetaManagedAgentsRepositoryCheckoutError` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - The requested branch or commit does not exist in the repository. + - `access: :read_write | :read_only` - - `type: :repository_checkout_error` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - - `message: String` + - `:read_write` - Human-readable error description. + - `:read_only` - - `repository_url: String` + - `description: String` - URL of the repository that could not be cloned. Null when it could not be identified. + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `instructions: String` - What the client should do next. Always `retrying`: the session keeps running without the repository. + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `class BetaManagedAgentsRetryStatusRetrying` + maxLength: 4096 - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `mount_path: String` - - `class BetaManagedAgentsRetryStatusExhausted` + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `name: String` - - `class BetaManagedAgentsRetryStatusTerminal` + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - The session encountered a terminal error and will transition to `terminated` state. +#### Example - - `class BetaManagedAgentsRepositoryCloneError` +```ruby +require "anthropic" - The repository could not be cloned. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :repository_clone_error` +page = anthropic.beta.sessions.resources.list("sesn_011CZkZAtmR3yMPDzynEDxu7") - - `message: String` +puts(page) +``` - Human-readable error description. +##### Response (200) - - `repository_url: String` +```json +{ + "data": [ + { + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "mount_path": "/uploads/receipt.pdf", + "type": "file", + "updated_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` - URL of the repository that could not be cloned. Null when it could not be identified. +### Get Session Resource - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` +`beta.sessions.resources.retrieve(resource_id, **kwargs) -> ResourceRetrieveResponse` - What the client should do next. Always `retrying`: the session keeps running without the repository. +**GET** `/v1/sessions/{session_id}/resources/{resource_id}` - - `class BetaManagedAgentsRetryStatusRetrying` +Get Session Resource - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. +#### Parameters - - `class BetaManagedAgentsRetryStatusExhausted` +- `session_id: String` (path parameter) - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. +- `resource_id: String` (path parameter) - - `class BetaManagedAgentsRetryStatusTerminal` +- `betas: Array[AnthropicBeta]` (header parameter) - The session encountered a terminal error and will transition to `terminated` state. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - `processed_at: Time` + - `String = String` - Timestamp when the error occurred. + - `:"message-batches-2024-09-24"` - format: date-time + - `:"prompt-caching-2024-07-31"` - - `class BetaManagedAgentsSessionStatusRescheduledEvent` + - `:"computer-use-2024-10-22"` - Indicates the session is recovering from an error state and is rescheduled for execution. + - `:"computer-use-2025-01-24"` - - `type: :"session.status_rescheduled"` + - `:"pdfs-2024-09-25"` - - `id: String` + - `:"token-counting-2024-11-01"` - Unique identifier for this event. + - `:"token-efficient-tools-2025-02-19"` - - `processed_at: Time` + - `:"output-128k-2025-02-19"` - Timestamp of status change. + - `:"files-api-2025-04-14"` - format: date-time + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsSessionStatusRunningEvent` + - `:"mcp-client-2025-11-20"` - Indicates the session is actively running and the agent is working. + - `:"dev-full-thinking-2025-05-14"` - - `type: :"session.status_running"` + - `:"interleaved-thinking-2025-05-14"` - - `id: String` + - `:"code-execution-2025-05-22"` - Unique identifier for this event. + - `:"extended-cache-ttl-2025-04-11"` - - `processed_at: Time` + - `:"context-1m-2025-08-07"` - Timestamp of status change. + - `:"context-management-2025-06-27"` - format: date-time + - `:"model-context-window-exceeded-2025-08-26"` - - `class BetaManagedAgentsSessionStatusIdleEvent` + - `:"skills-2025-10-02"` - Indicates the agent has paused and is awaiting user input. + - `:"fast-mode-2026-02-01"` - - `type: :"session.status_idle"` + - `:"output-300k-2026-03-24"` - - `id: String` + - `:"user-profiles-2026-03-24"` - Unique identifier for this event. + - `:"user-profiles-2026-08-18"` - - `processed_at: Time` + - `:"user-profiles-2026-09-04"` - Timestamp of status change. + - `:"advisor-tool-2026-03-01"` - format: date-time + - `:"managed-agents-2026-04-01"` - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + - `:"cache-diagnosis-2026-04-07"` - Structured information about why the session stopped. `null` when there is nothing more to report. + - `:"dreaming-2026-04-21"` - - `type: :refusal` + - `:"thinking-token-count-2026-05-13"` - - `category: :cyber | :bio | :frontier_llm | 2 more` + - `:"server-side-fallback-2026-06-01"` - The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. + - `:"server-side-fallback-2026-07-01"` - - `:cyber` + - `:"fallback-credit-2026-06-01"` - - `:bio` + - `:"fallback-credit-2026-07-01"` - - `:frontier_llm` + - `:"agent-memory-2026-07-22"` - - `:reasoning_extraction` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:general_harms` + - `:"compact-2026-01-12"` - - `explanation: String` + - `:"computer-use-2025-11-24"` - Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. + - `:"mcp-tunnels-2026-06-22"` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsSessionEndTurn` + - `:"task-budgets-2026-03-13"` - The agent completed its turn naturally and is ready for the next user message. + - `:"thinking-display-updates-2026-08-18"` - - `type: :end_turn` + - `:"ce-user-management-2026-07-13"` - - `class BetaManagedAgentsSessionRequiresAction` + - `:"mid-conversation-output-config-2026-07-01"` - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `:"thinking-binding-controls-2026-08-01"` - - `type: :requires_action` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `event_ids: Array[String]` + - `:"compact-2026-09-04"` - The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. + - `:"inline-tools-2026-09-15"` - - `class BetaManagedAgentsSessionRetriesExhausted` + - `:"mcp-client-2026-09-15"` - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `:"ce-plugins-2026-09-01"` - - `type: :retries_exhausted` + - `:"spend-limit-reads-2026-09-26"` - - `class BetaManagedAgentsSessionBudgetReached` + - `:"telemetry-destinations-2026-08-11"` - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + - `:"webhooks-2026-10-07"` - - `type: :budget_reached` +- `workspace_id: String` (header parameter) - - `class BetaManagedAgentsSessionRefusal` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The turn ended because the model's response was refused, for example by a safety classifier. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :refusal` +#### Returns - - `class BetaManagedAgentsSessionStatusTerminatedEvent` +- `type ResourceRetrieveResponse = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` - Indicates the session has terminated, either due to an error or completion. + The requested session resource. - - `type: :"session.status_terminated"` + - `class BetaManagedAgentsGitHubRepositoryResource` - - `id: String` + - `type: :github_repository` - Unique identifier for this event. + - `id: String` - - `processed_at: Time` + - `created_at: Time` - Timestamp of status change. + A timestamp in RFC 3339 format format: date-time - - `class BetaManagedAgentsSessionThreadCreatedEvent` + - `mount_path: String` - Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. + - `updated_at: Time` - - `type: :"session.thread_created"` + A timestamp in RFC 3339 format - - `id: String` + format: date-time - Unique identifier for this event. + - `url: String` - - `agent_name: String` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - Name of the callable agent the thread runs. + - `class BetaManagedAgentsBranchCheckout` - - `processed_at: Time` + - `type: :branch` - Timestamp when the thread was created. + - `name: String` - format: date-time + Branch name to check out. - - `session_thread_id: String` + minLength: 1, maxLength: 255 - Public `sthr_` ID of the newly created thread. + - `class BetaManagedAgentsCommitCheckout` - - `workflow_run_id: String` + - `type: :commit` - Identifier of the workflow run that created the thread, or `null` for any other thread. + - `sha: String` - - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` + Full commit SHA to check out. - Emitted when an outcome evaluation cycle begins. + minLength: 7, maxLength: 64 - - `type: :"span.outcome_evaluation_start"` + - `class BetaManagedAgentsFileResource` - - `id: String` + - `type: :file` - Unique identifier for this event. + - `id: String` - - `iteration: Integer` + - `created_at: Time` - 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. + A timestamp in RFC 3339 format - format: int32 + format: date-time - - `outcome_id: String` + - `file_id: String` - The `outc_` ID of the outcome being evaluated. + - `mount_path: String` - - `processed_at: Time` + - `updated_at: Time` - Timestamp when outcome evaluation started. + A timestamp in RFC 3339 format format: date-time - - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` - - Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. + - `class BetaManagedAgentsMemoryStoreResource` - - `type: :"span.outcome_evaluation_end"` + A memory store attached to an agent session. - - `id: String` + - `type: :memory_store` - Unique identifier for this event. + - `memory_store_id: String` - - `explanation: String` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. + - `access: :read_write | :read_only` - - `iteration: Integer` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + - `:read_write` - format: int32 + - `:read_only` - - `outcome_evaluation_start_id: String` + - `description: String` - The id of the corresponding `span.outcome_evaluation_start` event. + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - - `outcome_id: String` + - `instructions: String` - The `outc_` ID of the outcome being evaluated. + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `processed_at: Time` + maxLength: 4096 - Timestamp when outcome evaluation ended. + - `mount_path: String` - format: date-time + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - - `result: String` + - `name: String` - Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - - `usage: BetaManagedAgentsSpanModelUsage` +#### Example - Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. +```ruby +require "anthropic" - - `cache_creation_input_tokens: Integer` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Tokens used to create prompt cache in this request. +resource = anthropic.beta.sessions.resources.retrieve( + "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) - format: int32 +puts(resource) +``` - - `cache_read_input_tokens: Integer` +##### Response (200) - Tokens read from prompt cache in this request. +```json +{ + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } +} +``` - format: int32 +### Update Session Resource - - `input_tokens: Integer` +`beta.sessions.resources.update(resource_id, **kwargs) -> ResourceUpdateResponse` - Input tokens consumed by this request. +**POST** `/v1/sessions/{session_id}/resources/{resource_id}` - format: int32 +Update Session Resource - - `output_tokens: Integer` +#### Parameters - Output tokens generated by this request. +- `session_id: String` (path parameter) - format: int32 +- `resource_id: String` (path parameter) - - `speed: :standard | :fast` +- `authorization_token: String` - Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. + New authorization token for the resource. Currently only `github_repository` resources support token rotation. - - `:standard` + minLength: 1, maxLength: 4096 - - `:fast` +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaManagedAgentsSpanModelRequestStartEvent` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - Emitted when a model request is initiated by the agent. + - `String = String` - - `type: :"span.model_request_start"` + - `:"message-batches-2024-09-24"` - - `id: String` + - `:"prompt-caching-2024-07-31"` - Unique identifier for this event. + - `:"computer-use-2024-10-22"` - - `processed_at: Time` + - `:"computer-use-2025-01-24"` - Timestamp when the model request started. + - `:"pdfs-2024-09-25"` - format: date-time + - `:"token-counting-2024-11-01"` - - `class BetaManagedAgentsSpanModelRequestEndEvent` + - `:"token-efficient-tools-2025-02-19"` - Emitted when a model request completes. + - `:"output-128k-2025-02-19"` - - `type: :"span.model_request_end"` + - `:"files-api-2025-04-14"` - - `id: String` + - `:"mcp-client-2025-04-04"` - Unique identifier for this event. + - `:"mcp-client-2025-11-20"` - - `is_error: bool` + - `:"dev-full-thinking-2025-05-14"` - Whether the model request resulted in an error. + - `:"interleaved-thinking-2025-05-14"` - - `model_request_start_id: String` + - `:"code-execution-2025-05-22"` - The id of the corresponding `span.model_request_start` event. + - `:"extended-cache-ttl-2025-04-11"` - - `model_usage: BetaManagedAgentsSpanModelUsage` + - `:"context-1m-2025-08-07"` - Token usage for this model request. + - `:"context-management-2025-06-27"` - - `processed_at: Time` + - `:"model-context-window-exceeded-2025-08-26"` - Timestamp when the model request completed. + - `:"skills-2025-10-02"` - format: date-time + - `:"fast-mode-2026-02-01"` - - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` + - `:"output-300k-2026-03-24"` - Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. + - `:"user-profiles-2026-03-24"` - - `type: :"span.outcome_evaluation_ongoing"` + - `:"user-profiles-2026-08-18"` - - `id: String` + - `:"user-profiles-2026-09-04"` - Unique identifier for this event. + - `:"advisor-tool-2026-03-01"` - - `iteration: Integer` + - `:"managed-agents-2026-04-01"` - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + - `:"cache-diagnosis-2026-04-07"` - format: int32 + - `:"dreaming-2026-04-21"` - - `outcome_id: String` + - `:"thinking-token-count-2026-05-13"` - The `outc_` ID of the outcome being evaluated. + - `:"server-side-fallback-2026-06-01"` - - `processed_at: Time` + - `:"server-side-fallback-2026-07-01"` - Timestamp when this heartbeat was emitted. + - `:"fallback-credit-2026-06-01"` - format: date-time + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsUserDefineOutcomeEvent` + - `:"agent-memory-2026-07-22"` - Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `type: :"user.define_outcome"` + - `:"compact-2026-01-12"` - - `id: String` + - `:"computer-use-2025-11-24"` - Unique identifier for this event. + - `:"mcp-tunnels-2026-06-22"` - - `description: String` + - `:"structured-outputs-2025-11-13"` - What the agent should produce. Copied from the input event. + - `:"task-budgets-2026-03-13"` - - `max_iterations: Integer` + - `:"thinking-display-updates-2026-08-18"` - Evaluate-then-revise cycles before giving up. Default 3, max 20. + - `:"ce-user-management-2026-07-13"` - format: int32 + - `:"mid-conversation-output-config-2026-07-01"` - - `outcome_id: String` + - `:"thinking-binding-controls-2026-08-01"` - Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `processed_at: Time` + - `:"compact-2026-09-04"` - Timestamp when the outcome was accepted. + - `:"inline-tools-2026-09-15"` - format: date-time + - `:"mcp-client-2026-09-15"` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `:"ce-plugins-2026-09-01"` - How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. + - `:"spend-limit-reads-2026-09-26"` - - `class BetaManagedAgentsFileRubric` + - `:"telemetry-destinations-2026-08-11"` - Rubric referenced by a file uploaded via the Files API. + - `:"webhooks-2026-10-07"` - - `type: :file` +- `workspace_id: String` (header parameter) - - `file_id: String` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - ID of the rubric file. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaManagedAgentsTextRubric` +#### Returns - Rubric content provided inline as text. +- `type ResourceUpdateResponse = BetaManagedAgentsGitHubRepositoryResource | BetaManagedAgentsFileResource | BetaManagedAgentsMemoryStoreResource` - - `type: :text` + The updated session resource. - - `content: String` + - `class BetaManagedAgentsGitHubRepositoryResource` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + - `type: :github_repository` - - `class BetaManagedAgentsSessionDeletedEvent` + - `id: String` - Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. + - `created_at: Time` - - `type: :"session.deleted"` + A timestamp in RFC 3339 format - - `id: String` + format: date-time - Unique identifier for this event. + - `mount_path: String` - - `processed_at: Time` + - `updated_at: Time` - Timestamp when the session was deleted. + A timestamp in RFC 3339 format format: date-time - - `class BetaManagedAgentsSessionThreadStatusRunningEvent` - - A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `url: String` - - `type: :"session.thread_status_running"` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `id: String` + - `class BetaManagedAgentsBranchCheckout` - Unique identifier for this event. + - `type: :branch` - - `agent_name: String` + - `name: String` - Name of the agent the thread runs. + Branch name to check out. - - `processed_at: Time` + minLength: 1, maxLength: 255 - Timestamp of the status transition. + - `class BetaManagedAgentsCommitCheckout` - format: date-time + - `type: :commit` - - `session_thread_id: String` + - `sha: String` - Public sthr_ ID of the thread that started running. + Full commit SHA to check out. - - `class BetaManagedAgentsSessionThreadStatusIdleEvent` + minLength: 7, maxLength: 64 - A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `class BetaManagedAgentsFileResource` - - `type: :"session.thread_status_idle"` + - `type: :file` - `id: String` - Unique identifier for this event. + - `created_at: Time` - - `agent_name: String` + A timestamp in RFC 3339 format - Name of the agent the thread runs. + format: date-time - - `processed_at: Time` + - `file_id: String` - Timestamp of the status transition. + - `mount_path: String` + + - `updated_at: Time` + + A timestamp in RFC 3339 format format: date-time - - `session_thread_id: String` + - `class BetaManagedAgentsMemoryStoreResource` - Public sthr_ ID of the thread that went idle. + A memory store attached to an agent session. - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + - `type: :memory_store` - Structured information about why the thread stopped. `null` when there is nothing more to report. + - `memory_store_id: String` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - - `class BetaManagedAgentsSessionEndTurn` + - `access: :read_write | :read_only` - The agent completed its turn naturally and is ready for the next user message. + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - - `class BetaManagedAgentsSessionRequiresAction` + - `:read_write` - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `:read_only` - - `class BetaManagedAgentsSessionRetriesExhausted` + - `description: String` - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + Description of the memory store, snapshotted at attach time. Rendered into the agent's system prompt. Empty string when the store has no description. - - `class BetaManagedAgentsSessionBudgetReached` + - `instructions: String` - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `class BetaManagedAgentsSessionRefusal` + maxLength: 4096 - The turn ended because the model's response was refused, for example by a safety classifier. + - `mount_path: String` - - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` + Filesystem path where the store is mounted in the session container, e.g. /mnt/memory/user-preferences. Derived from the store's name. Output-only. - A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `name: String` - - `type: :"session.thread_status_terminated"` + Display name of the memory store, snapshotted at attach time. Later edits to the store's name do not propagate to this resource. - - `id: String` +#### Example - Unique identifier for this event. +```ruby +require "anthropic" - - `agent_name: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Name of the agent the thread runs. +resource = anthropic.beta.sessions.resources.update( + "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7", + authorization_token: "ghp_exampletoken" +) - - `processed_at: Time` +puts(resource) +``` - Timestamp of the status transition. +##### Response (200) - format: date-time +```json +{ + "id": "sesrsc_011CZkZCKr6eXym1gWMPdQiu", + "created_at": "2026-03-15T10:00:00Z", + "mount_path": "/workspace/example-repo", + "type": "github_repository", + "updated_at": "2026-03-15T10:00:00Z", + "url": "https://github.com/example-org/example-repo", + "checkout": { + "name": "main", + "type": "branch" + } +} +``` - - `session_thread_id: String` +### Delete Session Resource - Public sthr_ ID of the thread that terminated. +`beta.sessions.resources.delete(resource_id, **kwargs) -> BetaManagedAgentsDeleteSessionResource` - - `class BetaManagedAgentsUserToolResultEvent` +**DELETE** `/v1/sessions/{session_id}/resources/{resource_id}` - Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. +Delete Session Resource - - `type: :"user.tool_result"` +#### Parameters - - `id: String` +- `session_id: String` (path parameter) - Unique identifier for this event. +- `resource_id: String` (path parameter) - - `tool_use_id: String` +- `betas: Array[AnthropicBeta]` (header parameter) - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `String = String` - The result content returned by the tool. + - `:"message-batches-2024-09-24"` - - `class BetaManagedAgentsTextBlock` + - `:"prompt-caching-2024-07-31"` - Regular text content. + - `:"computer-use-2024-10-22"` - - `class BetaManagedAgentsImageBlock` + - `:"computer-use-2025-01-24"` - Image content specified directly as base64 data or as a reference via a URL. + - `:"pdfs-2024-09-25"` - - `class BetaManagedAgentsDocumentBlock` + - `:"token-counting-2024-11-01"` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsSearchResultBlock` + - `:"output-128k-2025-02-19"` - A block containing a web search result. + - `:"files-api-2025-04-14"` - - `is_error: bool` + - `:"mcp-client-2025-04-04"` - Whether the tool execution resulted in an error. + - `:"mcp-client-2025-11-20"` - - `processed_at: Time` + - `:"dev-full-thinking-2025-05-14"` - Timestamp when this result was processed. + - `:"interleaved-thinking-2025-05-14"` - format: date-time + - `:"code-execution-2025-05-22"` - - `session_thread_id: String` + - `:"extended-cache-ttl-2025-04-11"` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` + - `:"context-management-2025-06-27"` - A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :"session.thread_status_rescheduled"` + - `:"skills-2025-10-02"` - - `id: String` + - `:"fast-mode-2026-02-01"` - Unique identifier for this event. + - `:"output-300k-2026-03-24"` - - `agent_name: String` + - `:"user-profiles-2026-03-24"` - Name of the agent the thread runs. + - `:"user-profiles-2026-08-18"` - - `processed_at: Time` + - `:"user-profiles-2026-09-04"` - Timestamp of the status transition. + - `:"advisor-tool-2026-03-01"` - format: date-time + - `:"managed-agents-2026-04-01"` - - `session_thread_id: String` + - `:"cache-diagnosis-2026-04-07"` - Public sthr_ ID of the thread that is retrying. + - `:"dreaming-2026-04-21"` - - `class BetaManagedAgentsSessionUpdatedEvent` + - `:"thinking-token-count-2026-05-13"` - Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. + - `:"server-side-fallback-2026-06-01"` - - `type: :"session.updated"` + - `:"server-side-fallback-2026-07-01"` - - `id: String` + - `:"fallback-credit-2026-06-01"` - Unique identifier for this event. + - `:"fallback-credit-2026-07-01"` - - `processed_at: Time` + - `:"agent-memory-2026-07-22"` - Timestamp when the update was applied. + - `:"mid-conversation-tool-changes-2026-07-01"` - format: date-time + - `:"compact-2026-01-12"` - - `agent: BetaManagedAgentsSessionAgent` + - `:"computer-use-2025-11-24"` - The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaManagedAgentsDeleteSessionResource` + + Confirmation of resource deletion. + + - `type: :session_resource_deleted` + + - `id: String` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_managed_agents_delete_session_resource = anthropic.beta.sessions.resources.delete( + "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) + +puts(beta_managed_agents_delete_session_resource) +``` + +##### Response (200) + +```json +{ + "id": "sesrsc_011CZkZBJq5dWxk9fVLNcPht", + "type": "session_resource_deleted" +} +``` + +## Beta › Sessions › Threads + +### List Session Threads + +`beta.sessions.threads.list(session_id, **kwargs) -> PageCursor` + +**GET** `/v1/sessions/{session_id}/threads` + +List Session Threads + +#### Parameters + +- `session_id: String` (path parameter) + +- `limit: Integer` (query parameter) + + Maximum results per page. Defaults to 1000. + + format: int32 + +- `page: String` (query parameter) + + Opaque pagination cursor from a previous response's `next_page`. Forward-only. + +- `statuses: Array[BetaManagedAgentsSessionThreadStatus]` (query parameter) + + Return only threads that have one of these statuses. + + Repeat the parameter to give more than one status. Leave it out to return threads of every status. + + - `:running` + + - `:idle` + + - `:rescheduling` + + - `:terminated` + +- `betas: Array[AnthropicBeta]` (header parameter) + + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaManagedAgentsSessionThread` + + An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. + + - `type: :session_thread` + + - `id: String` + + Unique identifier for this thread. + + - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` + + Resolved agent definition for this thread. Snapshot of the agent at thread creation time. + + - `class BetaManagedAgentsSessionThreadAgent` + + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - `type: :agent` @@ -58047,4034 +57609,4285 @@ List Session Thread Events - `:fast` - - `multiagent: BetaManagedAgentsSessionMultiagent` + - `name: String` - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsSessionMultiagentCoordinator` + - `class BetaManagedAgentsAnthropicSkill` - Resolved coordinator topology with full agent definitions for each roster member. + A resolved Anthropic-managed skill. - - `type: :coordinator` + - `type: :anthropic` - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + - `skill_id: String` - Full `agent` definitions the coordinator may spawn as session threads. + - `version: String` - - `class BetaManagedAgentsSessionThreadAgent` + - `class BetaManagedAgentsCustomSkill` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + A resolved user-created custom skill. - - `type: :agent` + - `type: :custom` - - `id: String` + - `skill_id: String` - - `description: String` + - `version: String` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `system_: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsAgentToolset20260401` - - `type: :url` + - `type: :agent_toolset_20260401` - - `name: String` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `url: String` + - `class BetaManagedAgentsBashToolConfig` - - `model: BetaManagedAgentsModelConfig` + Configuration for the bash tool. - Model identifier and configuration. + - `type: :bash` - - `name: String` + - `enabled: bool` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `name: :bash` - - `class BetaManagedAgentsAnthropicSkill` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A resolved Anthropic-managed skill. + Permission policy for tool execution. - - `type: :anthropic` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `skill_id: String` + Tool calls are automatically approved without user confirmation. - - `version: String` + - `type: :always_allow` - - `class BetaManagedAgentsCustomSkill` + - `class BetaManagedAgentsAlwaysAskPolicy` - A resolved user-created custom skill. + Tool calls require user confirmation before execution. - - `type: :custom` + - `type: :always_ask` - - `skill_id: String` + - `class BetaManagedAgentsAutoPolicy` - - `version: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `system_: String` + - `type: :auto` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsEditToolConfig` - - `class BetaManagedAgentsAgentToolset20260401` + Configuration for the edit tool. - - `type: :agent_toolset_20260401` + - `type: :edit` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `enabled: bool` - - `class BetaManagedAgentsBashToolConfig` + - `name: :edit` - Configuration for the bash tool. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :bash` + Permission policy for tool execution. - - `enabled: bool` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `name: :bash` + Tool calls are automatically approved without user confirmation. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAlwaysAskPolicy` - Permission policy for tool execution. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsAutoPolicy` - Tool calls are automatically approved without user confirmation. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :always_allow` + - `class BetaManagedAgentsReadToolConfig` - - `class BetaManagedAgentsAlwaysAskPolicy` + Configuration for the read tool. - Tool calls require user confirmation before execution. + - `type: :read` - - `type: :always_ask` + - `enabled: bool` - - `class BetaManagedAgentsAutoPolicy` + - `name: :read` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :auto` + Permission policy for tool execution. - - `class BetaManagedAgentsEditToolConfig` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Configuration for the edit tool. + Tool calls are automatically approved without user confirmation. - - `type: :edit` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: :edit` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `class BetaManagedAgentsWriteToolConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Configuration for the write tool. - Tool calls are automatically approved without user confirmation. + - `type: :write` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + - `name: :write` - - `class BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Permission policy for tool execution. - - `class BetaManagedAgentsReadToolConfig` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Configuration for the read tool. + Tool calls are automatically approved without user confirmation. - - `type: :read` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: :read` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `class BetaManagedAgentsGlobToolConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Configuration for the glob tool. - Tool calls are automatically approved without user confirmation. + - `type: :glob` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + - `name: :glob` - - `class BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Permission policy for tool execution. - - `class BetaManagedAgentsWriteToolConfig` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Configuration for the write tool. + Tool calls are automatically approved without user confirmation. - - `type: :write` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: :write` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `class BetaManagedAgentsGrepToolConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Configuration for the grep tool. - Tool calls are automatically approved without user confirmation. + - `type: :grep` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + - `name: :grep` - - `class BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Permission policy for tool execution. - - `class BetaManagedAgentsGlobToolConfig` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Configuration for the glob tool. + Tool calls are automatically approved without user confirmation. - - `type: :glob` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: :glob` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `class BetaManagedAgentsWebFetchToolConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Configuration for the web_fetch tool. - Tool calls are automatically approved without user confirmation. + - `type: :web_fetch` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `enabled: bool` - Tool calls require user confirmation before execution. + - `name: :web_fetch` - - `class BetaManagedAgentsAutoPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Permission policy for tool execution. - - `class BetaManagedAgentsGrepToolConfig` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Configuration for the grep tool. + Tool calls are automatically approved without user confirmation. - - `type: :grep` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `enabled: bool` + Tool calls require user confirmation before execution. - - `name: :grep` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - Tool calls are automatically approved without user confirmation. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `class BetaManagedAgentsAlwaysAskPolicy` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `class BetaManagedAgentsAutoPolicy` + Every URL from this source may be fetched. This is the default. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :all` - - `class BetaManagedAgentsWebFetchToolConfig` + - `class BetaManagedAgentsWebFetchURLSourceNone` - Configuration for the web_fetch tool. + This source contributes no URLs that may be fetched. - - `type: :web_fetch` + - `type: :none` - - `enabled: bool` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `name: :web_fetch` + Only the named tools' results contribute URLs that may be fetched. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :only` - Permission policy for tool execution. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - Tool calls are automatically approved without user confirmation. + - `type: :tool_reference` - - `class BetaManagedAgentsAlwaysAskPolicy` + Must be "tool_reference". - Tool calls require user confirmation before execution. + - `name: String` - - `class BetaManagedAgentsAutoPolicy` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + minLength: 1, maxLength: 128 - - `url_sources: BetaManagedAgentsWebFetchURLSources` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `type: :except` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsWebFetchURLSourceAll` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Every URL from this source may be fetched. This is the default. + - `type: :tool_reference` - - `type: :all` + Must be "tool_reference". - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `name: String` - This source contributes no URLs that may be fetched. + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `type: :none` + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsWebFetchURLSourceOnly` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Only the named tools' results contribute URLs that may be fetched. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `type: :only` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `type: :tool_reference` + Every URL from this source may be fetched. This is the default. - Must be "tool_reference". + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `name: String` + This source contributes no URLs that may be fetched. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `allowed_domains: Array[String]` - minLength: 1, maxLength: 128 + - `blocked_domains: Array[String]` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + - `max_content_tokens: Integer` - Every tool's results contribute URLs that may be fetched, except the named tools' results. + format: int32 - - `type: :except` + - `class BetaManagedAgentsWebSearchToolConfig` - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + Configuration for the web_search tool. - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `type: :web_search` - - `type: :tool_reference` + - `enabled: bool` - Must be "tool_reference". + - `name: :web_search` - - `name: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Name of the tool. Compared exactly, so upper and lower case letters are different. + Permission policy for tool execution. - minLength: 1, maxLength: 128 + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + Tool calls are automatically approved without user confirmation. - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + Tool calls require user confirmation before execution. - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsWebFetchURLSourceAll` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Every URL from this source may be fetched. This is the default. + - `allowed_domains: Array[String]` - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `blocked_domains: Array[String]` - This source contributes no URLs that may be fetched. + - `user_location: BetaManagedAgentsUserLocation` - - `allowed_domains: Array[String]` + Approximate user location for search result localization. - - `blocked_domains: Array[String]` + - `type: :approximate` - - `max_content_tokens: Integer` + Location precision. Only "approximate" is supported. - format: int32 + - `city: String` - - `class BetaManagedAgentsWebSearchToolConfig` + City name. - Configuration for the web_search tool. + minLength: 1, maxLength: 255 - - `type: :web_search` + - `country: String` - - `enabled: bool` + Two-letter ISO 3166-1 country code, uppercase. - - `name: :web_search` + - `region: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Region or state name. - Permission policy for tool execution. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `timezone: String` - Tool calls are automatically approved without user confirmation. + IANA timezone identifier, e.g. "America/Los_Angeles". - - `class BetaManagedAgentsAlwaysAskPolicy` + minLength: 1, maxLength: 255 - Tool calls require user confirmation before execution. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `class BetaManagedAgentsAutoPolicy` + Resolved default configuration for agent tools. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `enabled: bool` - - `allowed_domains: Array[String]` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `blocked_domains: Array[String]` + Permission policy for tool execution. - - `user_location: BetaManagedAgentsUserLocation` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Approximate user location for search result localization. + Tool calls are automatically approved without user confirmation. - - `type: :approximate` + - `class BetaManagedAgentsAlwaysAskPolicy` - Location precision. Only "approximate" is supported. + Tool calls require user confirmation before execution. - - `city: String` + - `class BetaManagedAgentsAutoPolicy` - City name. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsMCPToolset` - - `country: String` + - `type: :mcp_toolset` - Two-letter ISO 3166-1 country code, uppercase. + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `region: String` + - `enabled: bool` - Region or state name. + - `name: String` - minLength: 1, maxLength: 255 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `timezone: String` + Permission policy for tool execution. - IANA timezone identifier, e.g. "America/Los_Angeles". + - `class BetaManagedAgentsAlwaysAllowPolicy` - minLength: 1, maxLength: 255 + Tool calls are automatically approved without user confirmation. - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + - `class BetaManagedAgentsAlwaysAskPolicy` - Resolved default configuration for agent tools. + Tool calls require user confirmation before execution. - - `enabled: bool` + - `class BetaManagedAgentsAutoPolicy` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Permission policy for tool execution. + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Resolved default configuration for all tools from an MCP server. - Tool calls are automatically approved without user confirmation. + - `enabled: bool` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Tool calls require user confirmation before execution. + Permission policy for tool execution. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAlwaysAllowPolicy` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :mcp_toolset` + Tool calls require user confirmation before execution. - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + - `class BetaManagedAgentsAutoPolicy` - - `enabled: bool` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `name: String` + - `mcp_server_name: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsCustomTool` - Permission policy for tool execution. + A custom tool as returned in API responses. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `type: :custom` - Tool calls are automatically approved without user confirmation. + - `description: String` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - Tool calls require user confirmation before execution. + JSON Schema for custom tool input parameters. - - `class BetaManagedAgentsAutoPolicy` + - `type: :object` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `properties: Hash[Symbol, untyped]` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + - `required: Array[String]` - Resolved default configuration for all tools from an MCP server. + - `name: String` - - `enabled: bool` + - `version: Integer` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + format: int32 - Permission policy for tool execution. + - `class BetaManagedAgentsAdvisor` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - Tool calls are automatically approved without user confirmation. + - `type: :advisor` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `model: String` - Tool calls require user confirmation before execution. + The advisor model id. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsInlineAgent` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. - - `mcp_server_name: String` + - `type: :inline` - - `class BetaManagedAgentsCustomTool` + - `description: String` - A custom tool as returned in API responses. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `type: :custom` + The session's execution principal. - - `description: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + - `type: :url` - JSON Schema for custom tool input parameters. + - `name: String` - - `type: :object` + - `url: String` - - `properties: Hash[Symbol, untyped]` + - `model: BetaManagedAgentsModelConfig` - - `required: Array[String]` + Model identifier and configuration. - - `name: String` + - `name: String` - - `version: Integer` + The name that the agent's definition gave, or one that the server assigned. - format: int32 + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsAdvisor` + - `class BetaManagedAgentsAnthropicSkill` - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + A resolved Anthropic-managed skill. - - `type: :advisor` + - `class BetaManagedAgentsCustomSkill` - - `model: String` + A resolved user-created custom skill. - The advisor model id. + - `system_: String` - - `class BetaManagedAgentsSessionMultiagent20261001` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Resolved multiagent configuration with three members, as copied to the `session` at creation. + - `class BetaManagedAgentsAgentToolset20260401` - - `type: :multiagent_20261001` + - `class BetaManagedAgentsMCPToolset` - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `class BetaManagedAgentsCustomTool` - Whether the session's primary thread can consult an advisor model. + A custom tool as returned in API responses. - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `archived_at: Time` - The session's primary thread can consult `model` mid-turn. + When the thread was archived. Null if not archived. - - `type: :enabled` + format: date-time - - `model: String` + - `created_at: Time` - The advisor model id. + When the thread was created. - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + format: date-time - The agent has no advisor. + - `parent_thread_id: String` - - `type: :disabled` + Parent thread that spawned this thread. Null for the primary thread. - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` + - `session_id: String` - Whether the agent can spawn session threads. + The session this thread belongs to. - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + - `stats: BetaManagedAgentsSessionThreadStats` - The agent can spawn session threads. + Timing statistics for this thread. Null until the thread's first status transition. - - `type: :enabled` + - `active_seconds: Float` - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + Cumulative time in seconds the thread spent actively running. Excludes idle time. - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + format: double - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `duration_seconds: Float` - The agent can define inline agents. + Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. - - `type: :enabled` + format: double - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + - `startup_seconds: Float` - The agent cannot define inline agents. + Time in seconds for the thread to begin running. Zero for child threads, which start immediately. - - `type: :disabled` + format: double - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `status: BetaManagedAgentsSessionThreadStatus` - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. + Current execution status of the thread. - - `type: :agent` + - `:running` - - `id: String` + - `:idle` - - `description: String` + - `:rescheduling` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `:terminated` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `updated_at: Time` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + When the thread was last updated. - - `model: BetaManagedAgentsModelConfig` + format: date-time - Model identifier and configuration. + - `usage: BetaManagedAgentsSessionThreadUsage` - - `name: String` + Cumulative token usage for this thread. Null until the thread's first idle transition. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `active_seconds: Float` - - `system_: String` + Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + format: double - - `version: Integer` + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - format: int32 + Tokens used to create prompt cache entries, broken down by cache TTL. - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `ephemeral_1h_input_tokens: Integer` - The agent cannot spawn session threads. + Tokens used to create 1-hour ephemeral cache entries. - - `type: :disabled` + format: int32 - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + - `ephemeral_5m_input_tokens: Integer` - Whether the agent can start workflow runs. + Tokens used to create 5-minute ephemeral cache entries. - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + format: int32 - The agent can start workflow runs. + - `cache_read_input_tokens: Integer` - - `type: :enabled` + Total tokens read from prompt cache. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + format: int32 - Whether a run's plan can define inline agents, which are not saved. + - `input_tokens: Integer` - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + Total input tokens consumed across all turns. - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + format: int32 - - `type: :agent` + - `list_cost: BetaMonetaryAmount` - - `id: String` + Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. - - `description: String` + - `amount: String` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + - `currency: BetaCurrency` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `model: BetaManagedAgentsModelConfig` + - `output_tokens: Integer` - Model identifier and configuration. + Total output tokens generated across all turns. - - `name: String` + format: int32 - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `system_: String` + Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `web_fetch_requests: Integer` - - `version: Integer` + Number of server-executed web fetch requests. - format: int32 + format: int32 - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + - `web_search_requests: Integer` - The agent cannot start workflow runs. + Number of server-executed web search requests. - - `type: :disabled` + format: int32 - - `name: String` + - `workflow_run_id: String` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + Identifier of the workflow run that created the thread, or `null` for any other thread. - - `class BetaManagedAgentsAnthropicSkill` +#### Example - A resolved Anthropic-managed skill. +```ruby +require "anthropic" - - `class BetaManagedAgentsCustomSkill` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - A resolved user-created custom skill. +page = anthropic.beta.sessions.threads.list("sesn_011CZkZAtmR3yMPDzynEDxu7") - - `system_: String` +puts(page) +``` - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` +##### Response (200) - - `class BetaManagedAgentsAgentToolset20260401` +```json +{ + "data": [ + { + "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "parent_thread_id": null, + "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "stats": { + "active_seconds": 0, + "duration_seconds": 0, + "startup_seconds": 0 + }, + "status": "idle", + "type": "session_thread", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "workflow_run_id": null + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` - - `class BetaManagedAgentsMCPToolset` +### Get Session Thread - - `class BetaManagedAgentsCustomTool` +`beta.sessions.threads.retrieve(thread_id, **kwargs) -> BetaManagedAgentsSessionThread` - A custom tool as returned in API responses. +**GET** `/v1/sessions/{session_id}/threads/{thread_id}` - - `version: Integer` +Get Session Thread - format: int32 +#### Parameters - - `budget: BetaManagedAgentsBudgetLimit` +- `session_id: String` (path parameter) - The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. +- `thread_id: String` (path parameter) - - `type: :limit` +- `betas: Array[AnthropicBeta]` (header parameter) - - `max_list_cost: BetaMonetaryAmount` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `String = String` - - `amount: String` + - `:"message-batches-2024-09-24"` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `:"prompt-caching-2024-07-31"` - - `currency: BetaCurrency` + - `:"computer-use-2024-10-22"` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `:"computer-use-2025-01-24"` - - `metadata: Hash[Symbol, String]` + - `:"pdfs-2024-09-25"` - The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. + - `:"token-counting-2024-11-01"` - - `title: String` + - `:"token-efficient-tools-2025-02-19"` - The session's new title. Present only when the update changed it. + - `:"output-128k-2025-02-19"` - - `class BetaManagedAgentsSystemMessageEvent` + - `:"files-api-2025-04-14"` - A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. + - `:"mcp-client-2025-04-04"` - - `type: :"system.message"` + - `:"mcp-client-2025-11-20"` - - `id: String` + - `:"dev-full-thinking-2025-05-14"` - Unique identifier for this event. + - `:"interleaved-thinking-2025-05-14"` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `:"code-execution-2025-05-22"` - System content blocks. Text-only. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :text` + - `:"context-1m-2025-08-07"` - - `text: String` + - `:"context-management-2025-06-27"` - The text content. + - `:"model-context-window-exceeded-2025-08-26"` - minLength: 1 + - `:"skills-2025-10-02"` - - `processed_at: Time` + - `:"fast-mode-2026-02-01"` - Timestamp when this system message was processed. + - `:"output-300k-2026-03-24"` - format: date-time + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsSessionUsageEvent` + - `:"user-profiles-2026-08-18"` - Periodic snapshot of the session's cumulative usage and tracked list cost. + - `:"user-profiles-2026-09-04"` - - `type: :"session.usage"` + - `:"advisor-tool-2026-03-01"` - - `id: String` + - `:"managed-agents-2026-04-01"` - Unique identifier for this event. + - `:"cache-diagnosis-2026-04-07"` - - `processed_at: Time` + - `:"dreaming-2026-04-21"` - Timestamp when the snapshot was taken. + - `:"thinking-token-count-2026-05-13"` - format: date-time + - `:"server-side-fallback-2026-06-01"` - - `usage: BetaManagedAgentsSessionUsageSnapshot` + - `:"server-side-fallback-2026-07-01"` - The session's cumulative usage at the snapshot time. + - `:"fallback-credit-2026-06-01"` - - `active_seconds: Float` + - `:"fallback-credit-2026-07-01"` - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. + - `:"agent-memory-2026-07-22"` - format: double + - `:"mid-conversation-tool-changes-2026-07-01"` - - `cache_creation: BetaManagedAgentsCacheCreationUsage` + - `:"compact-2026-01-12"` - Tokens used to create prompt cache entries, broken down by cache TTL. + - `:"computer-use-2025-11-24"` - - `ephemeral_1h_input_tokens: Integer` + - `:"mcp-tunnels-2026-06-22"` - Tokens used to create 1-hour ephemeral cache entries. + - `:"structured-outputs-2025-11-13"` - format: int32 + - `:"task-budgets-2026-03-13"` - - `ephemeral_5m_input_tokens: Integer` + - `:"thinking-display-updates-2026-08-18"` - Tokens used to create 5-minute ephemeral cache entries. + - `:"ce-user-management-2026-07-13"` - format: int32 + - `:"mid-conversation-output-config-2026-07-01"` - - `cache_read_input_tokens: Integer` + - `:"thinking-binding-controls-2026-08-01"` - Total tokens read from prompt cache. + - `:"mid-conversation-system-clear-at-2026-08-21"` - format: int32 + - `:"compact-2026-09-04"` - - `input_tokens: Integer` + - `:"inline-tools-2026-09-15"` - Total input tokens consumed across all turns. + - `:"mcp-client-2026-09-15"` - format: int32 + - `:"ce-plugins-2026-09-01"` - - `list_cost: BetaMonetaryAmount` + - `:"spend-limit-reads-2026-09-26"` - Cumulative list cost of the session across all turns, priced at public list rates. + - `:"telemetry-destinations-2026-08-11"` - - `output_tokens: Integer` + - `:"webhooks-2026-10-07"` - Total output tokens generated across all turns. +- `workspace_id: String` (header parameter) - format: int32 + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Cumulative server-executed tool usage across all turns. +#### Returns - - `web_fetch_requests: Integer` +- `class BetaManagedAgentsSessionThread` - Number of server-executed web fetch requests. + An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. - format: int32 + - `type: :session_thread` - - `web_search_requests: Integer` + - `id: String` - Number of server-executed web search requests. + Unique identifier for this thread. - format: int32 + - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` - - `budget: BetaManagedAgentsBudgetLimit` + Resolved agent definition for this thread. Snapshot of the agent at thread creation time. - The session's configured budget at the snapshot time, or null when the session has no budget. + - `class BetaManagedAgentsSessionThreadAgent` - - `class BetaManagedAgentsWorkflowRunCreatedEvent` + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. + - `type: :agent` - - `type: :"workflow_run.created"` + - `id: String` - - `id: String` + - `description: String` - Unique identifier for this event. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `description: String` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Description that the agent gave the run, passed on as written, or `null` if it gave none. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `name: String` + An AWS IAM role principal as returned in API responses. - Name that the agent gave the run, passed on as written, or a name that the server assigned. + - `type: :aws_role` - - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` + - `role_arn: String` - The phases that the run's plan declares, in the plan's order. Can be empty. + The IAM role's ARN. - - `id: String` + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - Unique identifier for the phase. + The Anthropic-managed service account as returned in API responses. - - `description: String` + - `type: :service_account` - Description that the agent gave the phase, passed on as written, or `null` if it gave none. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `name: String` + - `type: :url` - Name that the agent gave the phase, passed on as written. + - `name: String` - - `processed_at: Time` + - `url: String` - Timestamp when this event was processed. + - `model: BetaManagedAgentsModelConfig` - format: date-time + Model identifier and configuration. - - `workflow_run_id: String` + - `id: BetaManagedAgentsModel` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + The model that will power your agent. - - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. + - `:"claude-haiku-5-5"` - - `type: :"workflow_run.status_ended"` + Fastest model for high-volume, real-time tasks - - `id: String` + - `:"claude-sonnet-5-5"` - Unique identifier for this event. + Efficient model for coding and agents - - `processed_at: Time` + - `:"claude-opus-5-5"` - Timestamp when this event was processed. + Powerful intelligence for coding, knowledge work, and long-running agents - format: date-time + - `:"claude-fable-5-1"` - - `result: BetaManagedAgentsWorkflowRunResult` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - How the run ended. + - `:"claude-sonnet-5"` - - `class BetaManagedAgentsWorkflowRunResultCompleted` + Efficient model for coding and agents - The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. + - `:"claude-fable-5"` - - `type: :completed` + Next generation of intelligence for the hardest knowledge work and coding problems - - `class BetaManagedAgentsWorkflowRunResultError` + - `:"claude-opus-5"` - The run failed or reached its time limit. + Powerful intelligence for long-running agents and coding - - `type: :error` + - `:"claude-opus-4-8"` - - `error: BetaManagedAgentsWorkflowRunError` + Powerful intelligence for long-running agents and coding - Why the run did not finish. + - `:"claude-opus-4-7"` - - `class BetaManagedAgentsTimeoutWorkflowRunError` + Powerful intelligence for long-running agents and coding - The run reached its time limit. + - `:"claude-opus-4-6"` - - `type: :timeout_error` + Powerful intelligence for long-running agents and coding - - `message: String` + - `:"claude-sonnet-4-6"` - Short explanation written by the server. It never contains content from the run or its agents. + Best combination of speed and intelligence - - `class BetaManagedAgentsProgramWorkflowRunError` + - `:"claude-haiku-4-5"` - The plan, a program that the agent wrote, failed, or the server refused it. + - `:"claude-haiku-4-5-20251001"` - - `type: :program_error` + - `:"claude-opus-4-5"` - - `message: String` + Powerful intelligence for long-running agents and coding - Short explanation written by the server. It never contains content from the run or its agents. + - `:"claude-opus-4-5-20251101"` - - `class BetaManagedAgentsUnknownWorkflowRunError` + Powerful intelligence for long-running agents and coding - A failure that has no type of its own. + - `:"claude-sonnet-4-5"` - - `type: :unknown_error` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `message: String` + High-performance model for agents and coding - Short explanation written by the server. It never contains content from the run or its agents. + - `:"claude-sonnet-4-5-20250929"` - - `class BetaManagedAgentsThreadLimitWorkflowRunError` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - The run exceeded the limit on the number of threads that a run can create. + High-performance model for agents and coding - - `type: :thread_limit_error` + - `String = String` - - `message: String` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - Short explanation written by the server. It never contains content from the run or its agents. + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` + - `class BetaManagedAgentsEffortLow` - No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. + Low effort. Favors latency over reasoning depth. - - `type: :max_workflow_runs_error` + - `type: :low` - - `message: String` + - `class BetaManagedAgentsEffortMedium` - Short explanation written by the server. It never contains content from the run or its agents. + Medium effort. Balances latency and reasoning depth. - - `class BetaManagedAgentsWorkflowRunResultStopped` + - `type: :medium` - The agent stopped the run. + - `class BetaManagedAgentsEffortHigh` - - `type: :stopped` + High effort. Favors reasoning depth. - - `workflow_run_id: String` + - `type: :high` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `class BetaManagedAgentsEffortXhigh` - - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` + Extra-high effort. Not all models accept this level. - A workflow run's plan entered a phase. + - `type: :xhigh` - - `type: :"workflow_run.phase_started"` + - `class BetaManagedAgentsEffortMax` - - `id: String` + Maximum effort. Favors reasoning depth over latency. - Unique identifier for this event. + - `type: :max` - - `processed_at: Time` + - `inference_geo: String` - Timestamp when this event was processed. + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - format: date-time + - `speed: :standard | :fast` - - `workflow_run_id: String` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `:standard` - - `workflow_run_phase_id: String` + - `:fast` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + - `name: String` - - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. + - `class BetaManagedAgentsAnthropicSkill` - - `type: :"workflow_run.phase_ended"` + A resolved Anthropic-managed skill. - - `id: String` + - `type: :anthropic` - Unique identifier for this event. + - `skill_id: String` - - `phase_started_id: String` + - `version: String` - Identifier of the `workflow_run.phase_started` event that opened the phase. + - `class BetaManagedAgentsCustomSkill` - - `processed_at: Time` + A resolved user-created custom skill. - Timestamp when this event was processed. + - `type: :custom` - format: date-time + - `skill_id: String` - - `workflow_run_id: String` + - `version: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `system_: String` - - `workflow_run_phase_id: String` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + - `class BetaManagedAgentsAgentToolset20260401` - - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` + - `type: :agent_toolset_20260401` - A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `type: :"workflow_run.status_running"` + - `class BetaManagedAgentsBashToolConfig` - - `id: String` + Configuration for the bash tool. - Unique identifier for this event. + - `type: :bash` - - `processed_at: Time` + - `enabled: bool` - Timestamp when this event was processed. + - `name: :bash` - format: date-time + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `workflow_run_id: String` + Permission policy for tool execution. - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` + Tool calls are automatically approved without user confirmation. - A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. + - `type: :always_allow` - - `type: :"workflow_run.status_idle"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `id: String` + Tool calls require user confirmation before execution. - Unique identifier for this event. + - `type: :always_ask` - - `processed_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Timestamp when this event was processed. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `type: :auto` - - `workflow_run_id: String` + - `class BetaManagedAgentsEditToolConfig` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Configuration for the edit tool. - - `class BetaManagedAgentsWorkflowRunErrorEvent` + - `type: :edit` - A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. + - `enabled: bool` - - `type: :"workflow_run.error"` + - `name: :edit` - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Unique identifier for this event. + Permission policy for tool execution. - - `error: BetaManagedAgentsWorkflowRunError` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Why the run did not finish, or was not created. + Tool calls are automatically approved without user confirmation. - - `processed_at: Time` + - `class BetaManagedAgentsAlwaysAskPolicy` - Timestamp when this event was processed. + Tool calls require user confirmation before execution. - format: date-time + - `class BetaManagedAgentsAutoPolicy` - - `workflow_run_id: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Identifier of the run that met the error, or `null` when the error kept a run from being created. + - `class BetaManagedAgentsReadToolConfig` -#### Example + Configuration for the read tool. -```ruby -require "anthropic" + - `type: :read` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `enabled: bool` -page = anthropic.beta.sessions.threads.events.list( - "sthr_011CZkZVWa6oJjw1rgXZpnBt", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + - `name: :read` -puts(page) -``` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -##### Response (200) + Permission policy for tool execution. -```json -{ - "data": [ - { - "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", - "content": [ - { - "text": "Where is my order #1234?", - "type": "text" - } - ], - "type": "user.message", - "processed_at": "2026-03-15T10:00:00Z" - }, - { - "id": "sevt_011CZkZHPq1jCdq5mbRTjiVn", - "content": [ - { - "text": "Let me look up order #1234 for you.", - "type": "text" - } - ], - "processed_at": "2026-03-15T10:00:00Z", - "type": "agent.message" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + - `class BetaManagedAgentsAlwaysAllowPolicy` -### Stream Session Thread Events + Tool calls are automatically approved without user confirmation. -`beta.sessions.threads.events.stream_events(thread_id, **kwargs) -> Stream` + - `class BetaManagedAgentsAlwaysAskPolicy` -**GET** `/v1/sessions/{session_id}/threads/{thread_id}/stream` + Tool calls require user confirmation before execution. -Stream Session Thread Events + - `class BetaManagedAgentsAutoPolicy` -#### Parameters + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -- `session_id: String` (path parameter) + - `class BetaManagedAgentsWriteToolConfig` -- `thread_id: String` (path parameter) + Configuration for the write tool. -- `event_deltas: Array[BetaManagedAgentsDeltaType]` (query parameter) + - `type: :write` - When set, this connection also receives streaming deltas (`event_start`, `event_delta`) while an event is being produced, before the event itself arrives. Deltas are best-effort; when the final event is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no final event — its terminal `span.model_request_end` closes the preview. Accepts one or more event types to preview and may be repeated: `agent.message` streams `content_delta` fragments; `agent.thinking` is start-only — a signal that the agent has begun extended thinking, concluded by the `agent.thinking` event itself. Only previews of the requested event types are sent. + - `enabled: bool` - - `:"agent.message"` + - `name: :write` - - `:"agent.thinking"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -- `betas: Array[AnthropicBeta]` (header parameter) + Permission policy for tool execution. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `String = String` + Tool calls are automatically approved without user confirmation. - - `:"message-batches-2024-09-24"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"prompt-caching-2024-07-31"` + Tool calls require user confirmation before execution. - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsAutoPolicy` - - `:"computer-use-2025-01-24"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsGlobToolConfig` - - `:"token-counting-2024-11-01"` + Configuration for the glob tool. - - `:"token-efficient-tools-2025-02-19"` + - `type: :glob` - - `:"output-128k-2025-02-19"` + - `enabled: bool` - - `:"files-api-2025-04-14"` + - `name: :glob` - - `:"mcp-client-2025-04-04"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"mcp-client-2025-11-20"` + Permission policy for tool execution. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"interleaved-thinking-2025-05-14"` + Tool calls are automatically approved without user confirmation. - - `:"code-execution-2025-05-22"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"extended-cache-ttl-2025-04-11"` + Tool calls require user confirmation before execution. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsAutoPolicy` - - `:"context-management-2025-06-27"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsGrepToolConfig` - - `:"skills-2025-10-02"` + Configuration for the grep tool. - - `:"fast-mode-2026-02-01"` + - `type: :grep` - - `:"output-300k-2026-03-24"` + - `enabled: bool` - - `:"user-profiles-2026-03-24"` + - `name: :grep` - - `:"user-profiles-2026-08-18"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"user-profiles-2026-09-04"` + Permission policy for tool execution. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"managed-agents-2026-04-01"` + Tool calls are automatically approved without user confirmation. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"dreaming-2026-04-21"` + Tool calls require user confirmation before execution. - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"server-side-fallback-2026-06-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsWebFetchToolConfig` - - `:"fallback-credit-2026-06-01"` + Configuration for the web_fetch tool. - - `:"fallback-credit-2026-07-01"` + - `type: :web_fetch` - - `:"agent-memory-2026-07-22"` + - `enabled: bool` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `name: :web_fetch` - - `:"compact-2026-01-12"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"computer-use-2025-11-24"` + Permission policy for tool execution. - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"structured-outputs-2025-11-13"` + Tool calls are automatically approved without user confirmation. - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"thinking-display-updates-2026-08-18"` + Tool calls require user confirmation before execution. - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"mid-conversation-output-config-2026-07-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"thinking-binding-controls-2026-08-01"` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - - `:"compact-2026-09-04"` + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `:"inline-tools-2026-09-15"` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `:"ce-plugins-2026-09-01"` + Every URL from this source may be fetched. This is the default. - - `:"spend-limit-reads-2026-09-26"` + - `type: :all` - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsWebFetchURLSourceNone` -- `workspace_id: String` (header parameter) + This source contributes no URLs that may be fetched. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :none` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsWebFetchURLSourceOnly` -#### Returns + Only the named tools' results contribute URLs that may be fetched. -- `type BetaManagedAgentsStreamSessionThreadEvents = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 41 more` + - `type: :only` - Server-sent event in a single thread's stream. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsUserMessageEvent` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - A user message event in the session conversation. + - `type: :tool_reference` - - `type: :"user.message"` + Must be "tool_reference". - - `id: String` + - `name: String` - Unique identifier for this event. + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + minLength: 1, maxLength: 128 - Array of content blocks comprising the user message. + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `class BetaManagedAgentsTextBlock` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - Regular text content. + - `type: :except` - - `type: :text` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `text: String` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - The text content. + - `type: :tool_reference` - minLength: 1 + Must be "tool_reference". - - `class BetaManagedAgentsImageBlock` + - `name: String` - Image content specified directly as base64 data or as a reference via a URL. + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `type: :image` + minLength: 1, maxLength: 128 - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - The source of the image data. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `class BetaManagedAgentsBase64ImageSource` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - Base64-encoded image data. + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `type: :base64` + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `data: String` + Every URL from this source may be fetched. This is the default. - Base64-encoded image data. + - `class BetaManagedAgentsWebFetchURLSourceNone` - minLength: 1 + This source contributes no URLs that may be fetched. - - `media_type: String` + - `allowed_domains: Array[String]` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `blocked_domains: Array[String]` - minLength: 1 + - `max_content_tokens: Integer` - - `class BetaManagedAgentsURLImageSource` + format: int32 - Image referenced by URL. + - `class BetaManagedAgentsWebSearchToolConfig` - - `type: :url` + Configuration for the web_search tool. - - `url: String` + - `type: :web_search` - URL of the image to fetch. + - `enabled: bool` - minLength: 1 + - `name: :web_search` - - `class BetaManagedAgentsFileImageSource` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Image referenced by file ID. + Permission policy for tool execution. - - `type: :file` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `file_id: String` + Tool calls are automatically approved without user confirmation. - ID of a previously uploaded file. + - `class BetaManagedAgentsAlwaysAskPolicy` - minLength: 1 + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsDocumentBlock` + - `class BetaManagedAgentsAutoPolicy` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :document` + - `allowed_domains: Array[String]` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `blocked_domains: Array[String]` - The source of the document data. + - `user_location: BetaManagedAgentsUserLocation` - - `class BetaManagedAgentsBase64DocumentSource` + Approximate user location for search result localization. - Base64-encoded document data. + - `type: :approximate` - - `type: :base64` + Location precision. Only "approximate" is supported. - - `data: String` + - `city: String` - Base64-encoded document data. + City name. - minLength: 1 + minLength: 1, maxLength: 255 - - `media_type: String` + - `country: String` - MIME type of the document (e.g., "application/pdf"). + Two-letter ISO 3166-1 country code, uppercase. - minLength: 1 + - `region: String` - - `class BetaManagedAgentsPlainTextDocumentSource` + Region or state name. - Plain text document content. + minLength: 1, maxLength: 255 - - `type: :text` + - `timezone: String` - - `data: String` + IANA timezone identifier, e.g. "America/Los_Angeles". - The plain text content. + minLength: 1, maxLength: 255 - minLength: 1 + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `media_type: :"text/plain"` + Resolved default configuration for agent tools. - MIME type of the text content. Must be "text/plain". + - `enabled: bool` - - `class BetaManagedAgentsURLDocumentSource` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Document referenced by URL. + Permission policy for tool execution. - - `type: :url` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `url: String` + Tool calls are automatically approved without user confirmation. - URL of the document to fetch. + - `class BetaManagedAgentsAlwaysAskPolicy` - minLength: 1 + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsAutoPolicy` - Document referenced by file ID. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :file` + - `class BetaManagedAgentsMCPToolset` - - `file_id: String` + - `type: :mcp_toolset` - ID of a previously uploaded file. + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - minLength: 1 + - `enabled: bool` - - `context: String` + - `name: String` - Additional context about the document for the model. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `title: String` + Permission policy for tool execution. - The title of the document. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsRedactedBlock` + Tool calls are automatically approved without user confirmation. - Placeholder for content withheld by Anthropic model policy. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :redacted` + Tool calls require user confirmation before execution. - - `processed_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Timestamp when the agent finished processing this message. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `class BetaManagedAgentsUserInterruptEvent` + Resolved default configuration for all tools from an MCP server. - An interrupt event that pauses agent execution and returns control to the user. + - `enabled: bool` - - `type: :"user.interrupt"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `id: String` + Permission policy for tool execution. - Unique identifier for this event. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `processed_at: Time` + Tool calls are automatically approved without user confirmation. - Timestamp when the interrupt was processed. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: date-time + Tool calls require user confirmation before execution. - - `session_thread_id: String` + - `class BetaManagedAgentsAutoPolicy` - If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsUserToolConfirmationEvent` + - `mcp_server_name: String` - A tool confirmation event that approves or denies a pending tool execution. + - `class BetaManagedAgentsCustomTool` - - `type: :"user.tool_confirmation"` + A custom tool as returned in API responses. - - `id: String` + - `type: :custom` - Unique identifier for this event. + - `description: String` - - `result: :allow | :deny` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - The confirmation result: 'allow' or 'deny'. + JSON Schema for custom tool input parameters. - - `:allow` + - `type: :object` - - `:deny` + - `properties: Hash[Symbol, untyped]` - - `tool_use_id: String` + - `required: Array[String]` - The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `name: String` - - `deny_message: String` + - `version: Integer` - Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. + format: int32 - maxLength: 10000 + - `class BetaManagedAgentsAdvisor` - - `processed_at: Time` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - Timestamp when the confirmation was processed. + - `type: :advisor` - format: date-time + - `model: String` - - `session_thread_id: String` + The advisor model id. - Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. + - `class BetaManagedAgentsInlineAgent` - - `class BetaManagedAgentsUserCustomToolResultEvent` + An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. - Event sent by the client providing the result of a custom tool execution. + - `type: :inline` - - `type: :"user.custom_tool_result"` + - `description: String` - - `id: String` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Unique identifier for this event. + The session's execution principal. - - `custom_tool_use_id: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + - `type: :url` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `name: String` - The result content returned by the tool. + - `url: String` - - `class BetaManagedAgentsTextBlock` + - `model: BetaManagedAgentsModelConfig` - Regular text content. + Model identifier and configuration. - - `class BetaManagedAgentsImageBlock` + - `name: String` - Image content specified directly as base64 data or as a reference via a URL. + The name that the agent's definition gave, or one that the server assigned. - - `class BetaManagedAgentsDocumentBlock` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `class BetaManagedAgentsAnthropicSkill` - - `class BetaManagedAgentsSearchResultBlock` + A resolved Anthropic-managed skill. - A block containing a web search result. + - `class BetaManagedAgentsCustomSkill` - - `type: :search_result` + A resolved user-created custom skill. - - `citations: BetaManagedAgentsSearchResultCitations` + - `system_: String` - Citation settings for this search result. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `enabled: bool` + - `class BetaManagedAgentsAgentToolset20260401` - Whether citations are enabled for this search result. + - `class BetaManagedAgentsMCPToolset` - - `content: Array[BetaManagedAgentsSearchResultContent]` + - `class BetaManagedAgentsCustomTool` - Array of text content blocks from the search result. + A custom tool as returned in API responses. - - `type: :text` + - `archived_at: Time` - - `text: String` + When the thread was archived. Null if not archived. - The text content. + format: date-time - minLength: 1 + - `created_at: Time` - - `source: String` + When the thread was created. - The URL source of the search result. + format: date-time - minLength: 1 + - `parent_thread_id: String` - - `title: String` + Parent thread that spawned this thread. Null for the primary thread. - The title of the search result. + - `session_id: String` - minLength: 1 + The session this thread belongs to. - - `is_error: bool` + - `stats: BetaManagedAgentsSessionThreadStats` - Whether the tool execution resulted in an error. + Timing statistics for this thread. Null until the thread's first status transition. - - `processed_at: Time` + - `active_seconds: Float` - Timestamp when this result was processed. + Cumulative time in seconds the thread spent actively running. Excludes idle time. - format: date-time + format: double - - `session_thread_id: String` + - `duration_seconds: Float` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. - - `class BetaManagedAgentsAgentCustomToolUseEvent` + format: double - Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. + - `startup_seconds: Float` - - `type: :"agent.custom_tool_use"` + Time in seconds for the thread to begin running. Zero for child threads, which start immediately. - - `id: String` + format: double - Unique identifier for this event. + - `status: BetaManagedAgentsSessionThreadStatus` - - `input: Hash[Symbol, untyped]` + Current execution status of the thread. - Input parameters for the tool call. + - `:running` - - `name: String` + - `:idle` - Name of the custom tool being called. + - `:rescheduling` - - `processed_at: Time` + - `:terminated` - Timestamp when this tool use was processed. + - `updated_at: Time` - format: date-time + When the thread was last updated. - - `session_thread_id: String` + format: date-time - When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. + - `usage: BetaManagedAgentsSessionThreadUsage` - - `class BetaManagedAgentsAgentMessageEvent` + Cumulative token usage for this thread. Null until the thread's first idle transition. - An agent response event in the session conversation. + - `active_seconds: Float` - - `type: :"agent.message"` + Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. - - `id: String` + format: double - Unique identifier for this event. + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` + Tokens used to create prompt cache entries, broken down by cache TTL. - Array of text blocks comprising the agent response. + - `ephemeral_1h_input_tokens: Integer` - - `class BetaManagedAgentsTextBlock` + Tokens used to create 1-hour ephemeral cache entries. - Regular text content. + format: int32 - - `class BetaManagedAgentsRedactedBlock` + - `ephemeral_5m_input_tokens: Integer` - Placeholder for content withheld by Anthropic model policy. + Tokens used to create 5-minute ephemeral cache entries. - - `processed_at: Time` + format: int32 - Timestamp when this response was generated. + - `cache_read_input_tokens: Integer` - format: date-time + Total tokens read from prompt cache. - - `class BetaManagedAgentsAgentThinkingEvent` + format: int32 - Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. + - `input_tokens: Integer` - - `type: :"agent.thinking"` + Total input tokens consumed across all turns. - - `id: String` + format: int32 - Unique identifier for this event. + - `list_cost: BetaMonetaryAmount` - - `processed_at: Time` + Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. - Timestamp when this thinking was produced. + - `amount: String` - format: date-time + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `class BetaManagedAgentsAgentMCPToolUseEvent` + - `currency: BetaCurrency` - Event emitted when the agent invokes a tool provided by an MCP server. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `type: :"agent.mcp_tool_use"` + - `output_tokens: Integer` - - `id: String` + Total output tokens generated across all turns. - Unique identifier for this event. + format: int32 - - `input: Hash[Symbol, untyped]` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - Input parameters for the tool call. + Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. - - `mcp_server_name: String` + - `web_fetch_requests: Integer` - Name of the MCP server providing the tool. + Number of server-executed web fetch requests. - - `name: String` + format: int32 - Name of the MCP tool being used. + - `web_search_requests: Integer` - - `processed_at: Time` + Number of server-executed web search requests. - Timestamp when this event was processed. + format: int32 - format: date-time + - `workflow_run_id: String` - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + Identifier of the workflow run that created the thread, or `null` for any other thread. - The evaluated permission policy for this tool invocation. +#### Example - - `:allow` +```ruby +require "anthropic" - - `:ask` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:deny` +beta_managed_agents_session_thread = anthropic.beta.sessions.threads.retrieve( + "sthr_011CZkZVWa6oJjw1rgXZpnBt", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) - - `evaluation: BetaManagedAgentsAgentToolEvaluation` +puts(beta_managed_agents_session_thread) +``` - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). +##### Response (200) - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` +```json +{ + "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "parent_thread_id": null, + "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "stats": { + "active_seconds": 0, + "duration_seconds": 0, + "startup_seconds": 0 + }, + "status": "idle", + "type": "session_thread", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "workflow_run_id": null +} +``` - The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". +### Archive Session Thread - - `type: :always_allow` +`beta.sessions.threads.archive(thread_id, **kwargs) -> BetaManagedAgentsSessionThread` - - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` +**POST** `/v1/sessions/{session_id}/threads/{thread_id}/archive` - The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". +Archive Session Thread - - `type: :always_ask` +#### Parameters - - `class BetaManagedAgentsAgentToolEvaluationAuto` +- `session_id: String` (path parameter) - The resolved permission_policy was auto: the server judged this invocation individually. +- `thread_id: String` (path parameter) - - `type: :auto` +- `betas: Array[AnthropicBeta]` (header parameter) - - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - The server's judgement for this invocation. + - `String = String` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` + - `:"message-batches-2024-09-24"` - The server judged the invocation safe to execute without client approval. + - `:"prompt-caching-2024-07-31"` - - `type: :allow` + - `:"computer-use-2024-10-22"` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` + - `:"computer-use-2025-01-24"` - The server reached no judgement; the invocation is held for client approval. + - `:"pdfs-2024-09-25"` - - `type: :ask` + - `:"token-counting-2024-11-01"` - - `reason_code: String` + - `:"token-efficient-tools-2025-02-19"` - The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. + - `:"output-128k-2025-02-19"` - maxLength: 64 + - `:"files-api-2025-04-14"` - - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` + - `:"mcp-client-2025-04-04"` - The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. + - `:"mcp-client-2025-11-20"` - - `type: :deny` + - `:"dev-full-thinking-2025-05-14"` - - `reason_code: String` + - `:"interleaved-thinking-2025-05-14"` - The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. + - `:"code-execution-2025-05-22"` - maxLength: 64 + - `:"extended-cache-ttl-2025-04-11"` - - `session_thread_id: String` + - `:"context-1m-2025-08-07"` - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. + - `:"context-management-2025-06-27"` - - `class BetaManagedAgentsAgentMCPToolResultEvent` + - `:"model-context-window-exceeded-2025-08-26"` - Event representing the result of an MCP tool execution. + - `:"skills-2025-10-02"` - - `type: :"agent.mcp_tool_result"` + - `:"fast-mode-2026-02-01"` - - `id: String` + - `:"output-300k-2026-03-24"` - Unique identifier for this event. + - `:"user-profiles-2026-03-24"` - - `mcp_tool_use_id: String` + - `:"user-profiles-2026-08-18"` - The id of the `agent.mcp_tool_use` event this result corresponds to. + - `:"user-profiles-2026-09-04"` - - `processed_at: Time` + - `:"advisor-tool-2026-03-01"` - Timestamp when this event was processed. + - `:"managed-agents-2026-04-01"` - format: date-time + - `:"cache-diagnosis-2026-04-07"` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `:"dreaming-2026-04-21"` - The result content returned by the tool. + - `:"thinking-token-count-2026-05-13"` - - `class BetaManagedAgentsTextBlock` + - `:"server-side-fallback-2026-06-01"` - Regular text content. + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsImageBlock` + - `:"fallback-credit-2026-06-01"` - Image content specified directly as base64 data or as a reference via a URL. + - `:"fallback-credit-2026-07-01"` - - `class BetaManagedAgentsDocumentBlock` + - `:"agent-memory-2026-07-22"` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaManagedAgentsSearchResultBlock` + - `:"compact-2026-01-12"` - A block containing a web search result. + - `:"computer-use-2025-11-24"` - - `is_error: bool` + - `:"mcp-tunnels-2026-06-22"` - Whether the tool execution resulted in an error. + - `:"structured-outputs-2025-11-13"` - - `class BetaManagedAgentsAgentToolUseEvent` + - `:"task-budgets-2026-03-13"` - Event emitted when the agent invokes a built-in agent tool. + - `:"thinking-display-updates-2026-08-18"` - - `type: :"agent.tool_use"` + - `:"ce-user-management-2026-07-13"` - - `id: String` + - `:"mid-conversation-output-config-2026-07-01"` - Unique identifier for this event. + - `:"thinking-binding-controls-2026-08-01"` - - `input: Hash[Symbol, untyped]` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Input parameters for the tool call. + - `:"compact-2026-09-04"` - - `name: String` + - `:"inline-tools-2026-09-15"` - Name of the agent tool being used. + - `:"mcp-client-2026-09-15"` - - `processed_at: Time` + - `:"ce-plugins-2026-09-01"` - Timestamp when this event was processed. + - `:"spend-limit-reads-2026-09-26"` - format: date-time + - `:"telemetry-destinations-2026-08-11"` - - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` + - `:"webhooks-2026-10-07"` - The evaluated permission policy for this tool invocation. +- `workspace_id: String` (header parameter) - - `evaluation: BetaManagedAgentsAgentToolEvaluation` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `session_thread_id: String` +#### Returns - When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. +- `class BetaManagedAgentsSessionThread` - - `class BetaManagedAgentsAgentToolResultEvent` + An execution thread within a `session`. Each session has one primary thread plus zero or more child threads. - Event representing the result of an agent tool execution. + - `type: :session_thread` - - `type: :"agent.tool_result"` + - `id: String` - - `id: String` + Unique identifier for this thread. - Unique identifier for this event. + - `agent: BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor | BetaManagedAgentsInlineAgent` - - `processed_at: Time` + Resolved agent definition for this thread. Snapshot of the agent at thread creation time. - Timestamp when this event was processed. + - `class BetaManagedAgentsSessionThreadAgent` - format: date-time + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `tool_use_id: String` + - `type: :agent` - The id of the `agent.tool_use` event this result corresponds to. + - `id: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `description: String` - The result content returned by the tool. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `class BetaManagedAgentsTextBlock` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Regular text content. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `class BetaManagedAgentsImageBlock` + An AWS IAM role principal as returned in API responses. - Image content specified directly as base64 data or as a reference via a URL. + - `type: :aws_role` - - `class BetaManagedAgentsDocumentBlock` + - `role_arn: String` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + The IAM role's ARN. - - `class BetaManagedAgentsSearchResultBlock` + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - A block containing a web search result. + The Anthropic-managed service account as returned in API responses. - - `is_error: bool` + - `type: :service_account` - Whether the tool execution resulted in an error. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` + - `type: :url` - Delivery event written to the target thread's input stream when an agent-to-agent message arrives. + - `name: String` - - `type: :"agent.thread_message_received"` + - `url: String` - - `id: String` + - `model: BetaManagedAgentsModelConfig` - Unique identifier for this event. + Model identifier and configuration. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `id: BetaManagedAgentsModel` - Message content blocks. + The model that will power your agent. - - `class BetaManagedAgentsTextBlock` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Regular text content. + - `:"claude-haiku-5-5"` - - `class BetaManagedAgentsImageBlock` + Fastest model for high-volume, real-time tasks - Image content specified directly as base64 data or as a reference via a URL. + - `:"claude-sonnet-5-5"` - - `class BetaManagedAgentsDocumentBlock` + Efficient model for coding and agents - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"claude-opus-5-5"` - - `class BetaManagedAgentsRedactedBlock` + Powerful intelligence for coding, knowledge work, and long-running agents - Placeholder for content withheld by Anthropic model policy. + - `:"claude-fable-5-1"` - - `from_session_thread_id: String` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - Public `sthr_` ID of the thread that sent the message. + - `:"claude-sonnet-5"` - - `processed_at: Time` + Efficient model for coding and agents - Timestamp when the message was received. + - `:"claude-fable-5"` - format: date-time + Next generation of intelligence for the hardest knowledge work and coding problems - - `from_agent_name: String` + - `:"claude-opus-5"` - Name of the callable agent this message came from. Absent when received from the primary agent. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsAgentThreadMessageSentEvent` + - `:"claude-opus-4-8"` - Observability event emitted to the sender's output stream when an agent-to-agent message is sent. + Powerful intelligence for long-running agents and coding - - `type: :"agent.thread_message_sent"` + - `:"claude-opus-4-7"` - - `id: String` + Powerful intelligence for long-running agents and coding - Unique identifier for this event. + - `:"claude-opus-4-6"` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Powerful intelligence for long-running agents and coding - Message content blocks. + - `:"claude-sonnet-4-6"` - - `class BetaManagedAgentsTextBlock` + Best combination of speed and intelligence - Regular text content. + - `:"claude-haiku-4-5"` - - `class BetaManagedAgentsImageBlock` + - `:"claude-haiku-4-5-20251001"` - Image content specified directly as base64 data or as a reference via a URL. + - `:"claude-opus-4-5"` - - `class BetaManagedAgentsDocumentBlock` + Powerful intelligence for long-running agents and coding - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `:"claude-opus-4-5-20251101"` - - `class BetaManagedAgentsRedactedBlock` + Powerful intelligence for long-running agents and coding - Placeholder for content withheld by Anthropic model policy. + - `:"claude-sonnet-4-5"` - - `processed_at: Time` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Timestamp when the message was sent. + High-performance model for agents and coding - format: date-time + - `:"claude-sonnet-4-5-20250929"` - - `to_session_thread_id: String` + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - Public `sthr_` ID of the thread the message was sent to. + High-performance model for agents and coding - - `to_agent_name: String` + - `String = String` - Name of the callable agent this message was sent to. Absent when sent to the primary agent. + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - - `class BetaManagedAgentsAgentThreadContextCompactedEvent` + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - Indicates that context compaction (summarization) occurred during the session. + - `class BetaManagedAgentsEffortLow` - - `type: :"agent.thread_context_compacted"` + Low effort. Favors latency over reasoning depth. - - `id: String` + - `type: :low` - Unique identifier for this event. + - `class BetaManagedAgentsEffortMedium` - - `processed_at: Time` + Medium effort. Balances latency and reasoning depth. - Timestamp when compaction was processed. + - `type: :medium` - format: date-time + - `class BetaManagedAgentsEffortHigh` - - `class BetaManagedAgentsSessionErrorEvent` + High effort. Favors reasoning depth. - An error event indicating a problem occurred during session execution. + - `type: :high` - - `type: :"session.error"` + - `class BetaManagedAgentsEffortXhigh` - - `id: String` + Extra-high effort. Not all models accept this level. - Unique identifier for this event. + - `type: :xhigh` - - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` + - `class BetaManagedAgentsEffortMax` - - `class BetaManagedAgentsUnknownError` + Maximum effort. Favors reasoning depth over latency. - An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. + - `type: :max` - - `type: :unknown_error` + - `inference_geo: String` - - `message: String` + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - Human-readable error description. + - `speed: :standard | :fast` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - What the client should do next. + - `:standard` - - `class BetaManagedAgentsRetryStatusRetrying` + - `:fast` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `name: String` - - `type: :retrying` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsAnthropicSkill` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + A resolved Anthropic-managed skill. - - `type: :exhausted` + - `type: :anthropic` - - `class BetaManagedAgentsRetryStatusTerminal` + - `skill_id: String` - The session encountered a terminal error and will transition to `terminated` state. + - `version: String` - - `type: :terminal` + - `class BetaManagedAgentsCustomSkill` - - `class BetaManagedAgentsModelOverloadedError` + A resolved user-created custom skill. - The model is currently overloaded. Emitted after automatic retries are exhausted. + - `type: :custom` - - `type: :model_overloaded_error` + - `skill_id: String` - - `message: String` + - `version: String` - Human-readable error description. + - `system_: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - What the client should do next. + - `class BetaManagedAgentsAgentToolset20260401` - - `class BetaManagedAgentsRetryStatusRetrying` + - `type: :agent_toolset_20260401` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsBashToolConfig` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + Configuration for the bash tool. - - `class BetaManagedAgentsRetryStatusTerminal` + - `type: :bash` - The session encountered a terminal error and will transition to `terminated` state. + - `enabled: bool` - - `class BetaManagedAgentsModelRateLimitedError` + - `name: :bash` - The model request was rate-limited. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :model_rate_limited_error` + Permission policy for tool execution. - - `message: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Human-readable error description. + Tool calls are automatically approved without user confirmation. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + - `type: :always_allow` - What the client should do next. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + Tool calls require user confirmation before execution. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `type: :always_ask` - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsAutoPolicy` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsRetryStatusTerminal` + - `type: :auto` - The session encountered a terminal error and will transition to `terminated` state. + - `class BetaManagedAgentsEditToolConfig` - - `class BetaManagedAgentsModelRequestFailedError` + Configuration for the edit tool. - A model request failed for a reason other than overload or rate-limiting. + - `type: :edit` - - `type: :model_request_failed_error` + - `enabled: bool` - - `message: String` + - `name: :edit` - Human-readable error description. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Permission policy for tool execution. - What the client should do next. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + Tool calls are automatically approved without user confirmation. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsRetryStatusExhausted` + Tool calls require user confirmation before execution. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsRetryStatusTerminal` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The session encountered a terminal error and will transition to `terminated` state. + - `class BetaManagedAgentsReadToolConfig` - - `class BetaManagedAgentsMCPConnectionFailedError` + Configuration for the read tool. - Failed to connect to an MCP server. + - `type: :read` - - `type: :mcp_connection_failed_error` + - `enabled: bool` - - `mcp_server_name: String` + - `name: :read` - Name of the MCP server that failed to connect. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `message: String` + Permission policy for tool execution. - Human-readable error description. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Tool calls are automatically approved without user confirmation. - What the client should do next. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + Tool calls require user confirmation before execution. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsRetryStatusExhausted` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `class BetaManagedAgentsWriteToolConfig` - - `class BetaManagedAgentsRetryStatusTerminal` + Configuration for the write tool. - The session encountered a terminal error and will transition to `terminated` state. + - `type: :write` - - `class BetaManagedAgentsMCPAuthenticationFailedError` + - `enabled: bool` - Authentication to an MCP server failed. + - `name: :write` - - `type: :mcp_authentication_failed_error` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `mcp_server_name: String` + Permission policy for tool execution. - Name of the MCP server that failed authentication. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `message: String` + Tool calls are automatically approved without user confirmation. - Human-readable error description. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Tool calls require user confirmation before execution. - What the client should do next. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsGlobToolConfig` - - `class BetaManagedAgentsRetryStatusExhausted` + Configuration for the glob tool. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `type: :glob` - - `class BetaManagedAgentsRetryStatusTerminal` + - `enabled: bool` - The session encountered a terminal error and will transition to `terminated` state. + - `name: :glob` - - `class BetaManagedAgentsBillingError` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. + Permission policy for tool execution. - - `type: :billing_error` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `message: String` + Tool calls are automatically approved without user confirmation. - Human-readable error description. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Tool calls require user confirmation before execution. - What the client should do next. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsGrepToolConfig` - - `class BetaManagedAgentsRetryStatusExhausted` + Configuration for the grep tool. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `type: :grep` - - `class BetaManagedAgentsRetryStatusTerminal` + - `enabled: bool` - The session encountered a terminal error and will transition to `terminated` state. + - `name: :grep` - - `class BetaManagedAgentsCredentialHostUnreachableError` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. + Permission policy for tool execution. - - `type: :credential_host_unreachable_error` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `credential_id: String` + Tool calls are automatically approved without user confirmation. - ID of the affected credential. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `message: String` + Tool calls require user confirmation before execution. - Human-readable error description. + - `class BetaManagedAgentsAutoPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - What the client should do next. + - `class BetaManagedAgentsWebFetchToolConfig` - - `class BetaManagedAgentsRetryStatusRetrying` + Configuration for the web_fetch tool. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `type: :web_fetch` - - `class BetaManagedAgentsRetryStatusExhausted` + - `enabled: bool` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `name: :web_fetch` - - `class BetaManagedAgentsRetryStatusTerminal` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - The session encountered a terminal error and will transition to `terminated` state. + Permission policy for tool execution. - - `vault_id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - ID of the vault containing the affected credential. + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsRepositoryAuthenticationError` + - `class BetaManagedAgentsAlwaysAskPolicy` - The repository host rejected the credentials, or required credentials and received none. + Tool calls require user confirmation before execution. - - `type: :repository_authentication_error` + - `class BetaManagedAgentsAutoPolicy` - - `message: String` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Human-readable error description. + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `repository_url: String` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - URL of the repository that could not be cloned. Null when it could not be identified. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `class BetaManagedAgentsRetryStatusRetrying` + Every URL from this source may be fetched. This is the default. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `type: :all` - - `class BetaManagedAgentsRetryStatusExhausted` + - `class BetaManagedAgentsWebFetchURLSourceNone` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + This source contributes no URLs that may be fetched. - - `class BetaManagedAgentsRetryStatusTerminal` + - `type: :none` - The session encountered a terminal error and will transition to `terminated` state. + - `class BetaManagedAgentsWebFetchURLSourceOnly` - - `class BetaManagedAgentsRepositoryForbiddenError` + Only the named tools' results contribute URLs that may be fetched. - The repository host refused access to the repository. + - `type: :only` - - `type: :repository_forbidden_error` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `message: String` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - Human-readable error description. + - `type: :tool_reference` - - `repository_url: String` + Must be "tool_reference". - URL of the repository that could not be cloned. Null when it could not be identified. + - `name: String` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Name of the tool. Compared exactly, so upper and lower case letters are different. - What the client should do next. Always `retrying`: the session keeps running without the repository. + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsRetryStatusRetrying` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `class BetaManagedAgentsRetryStatusExhausted` + - `type: :except` - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsRetryStatusTerminal` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - The session encountered a terminal error and will transition to `terminated` state. + - `type: :tool_reference` - - `class BetaManagedAgentsRepositoryNotFoundError` + Must be "tool_reference". - The repository host reported the repository as not found. + - `name: String` - - `type: :repository_not_found_error` + Name of the tool. Compared exactly, so upper and lower case letters are different. - - `message: String` + minLength: 1, maxLength: 128 - Human-readable error description. + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `repository_url: String` + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - URL of the repository that could not be cloned. Null when it could not be identified. + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `class BetaManagedAgentsRetryStatusRetrying` + Every URL from this source may be fetched. This is the default. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `class BetaManagedAgentsRetryStatusExhausted` + This source contributes no URLs that may be fetched. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `allowed_domains: Array[String]` - - `class BetaManagedAgentsRetryStatusTerminal` + - `blocked_domains: Array[String]` - The session encountered a terminal error and will transition to `terminated` state. + - `max_content_tokens: Integer` - - `class BetaManagedAgentsRepositoryCheckoutError` + format: int32 - The requested branch or commit does not exist in the repository. + - `class BetaManagedAgentsWebSearchToolConfig` - - `type: :repository_checkout_error` + Configuration for the web_search tool. - - `message: String` + - `type: :web_search` - Human-readable error description. + - `enabled: bool` - - `repository_url: String` + - `name: :web_search` - URL of the repository that could not be cloned. Null when it could not be identified. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + Permission policy for tool execution. - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsRetryStatusRetrying` + Tool calls are automatically approved without user confirmation. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsRetryStatusExhausted` + Tool calls require user confirmation before execution. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsRetryStatusTerminal` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The session encountered a terminal error and will transition to `terminated` state. + - `allowed_domains: Array[String]` - - `class BetaManagedAgentsRepositoryCloneError` + - `blocked_domains: Array[String]` - The repository could not be cloned. + - `user_location: BetaManagedAgentsUserLocation` - - `type: :repository_clone_error` + Approximate user location for search result localization. - - `message: String` + - `type: :approximate` - Human-readable error description. + Location precision. Only "approximate" is supported. - - `repository_url: String` + - `city: String` - URL of the repository that could not be cloned. Null when it could not be identified. + City name. - - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` + minLength: 1, maxLength: 255 - What the client should do next. Always `retrying`: the session keeps running without the repository. + - `country: String` - - `class BetaManagedAgentsRetryStatusRetrying` + Two-letter ISO 3166-1 country code, uppercase. - The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. + - `region: String` - - `class BetaManagedAgentsRetryStatusExhausted` + Region or state name. - This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsRetryStatusTerminal` + - `timezone: String` - The session encountered a terminal error and will transition to `terminated` state. + IANA timezone identifier, e.g. "America/Los_Angeles". - - `processed_at: Time` + minLength: 1, maxLength: 255 - Timestamp when the error occurred. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - format: date-time + Resolved default configuration for agent tools. - - `class BetaManagedAgentsSessionStatusRescheduledEvent` + - `enabled: bool` - Indicates the session is recovering from an error state and is rescheduled for execution. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :"session.status_rescheduled"` + Permission policy for tool execution. - - `id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Unique identifier for this event. + Tool calls are automatically approved without user confirmation. - - `processed_at: Time` + - `class BetaManagedAgentsAlwaysAskPolicy` - Timestamp of status change. + Tool calls require user confirmation before execution. - format: date-time + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSessionStatusRunningEvent` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Indicates the session is actively running and the agent is working. + - `class BetaManagedAgentsMCPToolset` - - `type: :"session.status_running"` + - `type: :mcp_toolset` - - `id: String` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - Unique identifier for this event. + - `enabled: bool` - - `processed_at: Time` + - `name: String` - Timestamp of status change. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - format: date-time + Permission policy for tool execution. - - `class BetaManagedAgentsSessionStatusIdleEvent` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Indicates the agent has paused and is awaiting user input. + Tool calls are automatically approved without user confirmation. - - `type: :"session.status_idle"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `id: String` + Tool calls require user confirmation before execution. - Unique identifier for this event. + - `class BetaManagedAgentsAutoPolicy` - - `processed_at: Time` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Timestamp of status change. + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - format: date-time + Resolved default configuration for all tools from an MCP server. - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` + - `enabled: bool` - Structured information about why the session stopped. `null` when there is nothing more to report. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :refusal` + Permission policy for tool execution. - - `category: :cyber | :bio | :frontier_llm | 2 more` + - `class BetaManagedAgentsAlwaysAllowPolicy` - The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. + Tool calls are automatically approved without user confirmation. - - `:cyber` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:bio` + Tool calls require user confirmation before execution. - - `:frontier_llm` + - `class BetaManagedAgentsAutoPolicy` - - `:reasoning_extraction` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:general_harms` + - `mcp_server_name: String` - - `explanation: String` + - `class BetaManagedAgentsCustomTool` - Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. + A custom tool as returned in API responses. - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + - `type: :custom` - - `class BetaManagedAgentsSessionEndTurn` + - `description: String` - The agent completed its turn naturally and is ready for the next user message. + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `type: :end_turn` + JSON Schema for custom tool input parameters. - - `class BetaManagedAgentsSessionRequiresAction` + - `type: :object` - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `properties: Hash[Symbol, untyped]` - - `type: :requires_action` + - `required: Array[String]` - - `event_ids: Array[String]` + - `name: String` - The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. + - `version: Integer` - - `class BetaManagedAgentsSessionRetriesExhausted` + format: int32 - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `class BetaManagedAgentsAdvisor` - - `type: :retries_exhausted` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `class BetaManagedAgentsSessionBudgetReached` + - `type: :advisor` - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + - `model: String` - - `type: :budget_reached` + The advisor model id. - - `class BetaManagedAgentsSessionRefusal` + - `class BetaManagedAgentsInlineAgent` - The turn ended because the model's response was refused, for example by a safety classifier. + An agent that has no Agent resource, and so no `id` or `version`. It is defined inline, in a workflow run's plan or when a session thread is spawned, and is not saved. - - `type: :refusal` + - `type: :inline` - - `class BetaManagedAgentsSessionStatusTerminatedEvent` + - `description: String` - Indicates the session has terminated, either due to an error or completion. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `type: :"session.status_terminated"` + The session's execution principal. - - `id: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Unique identifier for this event. + - `type: :url` - - `processed_at: Time` + - `name: String` - Timestamp of status change. + - `url: String` - format: date-time + - `model: BetaManagedAgentsModelConfig` - - `class BetaManagedAgentsSessionThreadCreatedEvent` + Model identifier and configuration. - Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. + - `name: String` - - `type: :"session.thread_created"` + The name that the agent's definition gave, or one that the server assigned. - - `id: String` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - Unique identifier for this event. + - `class BetaManagedAgentsAnthropicSkill` - - `agent_name: String` + A resolved Anthropic-managed skill. - Name of the callable agent the thread runs. + - `class BetaManagedAgentsCustomSkill` - - `processed_at: Time` + A resolved user-created custom skill. - Timestamp when the thread was created. + - `system_: String` - format: date-time + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `session_thread_id: String` + - `class BetaManagedAgentsAgentToolset20260401` - Public `sthr_` ID of the newly created thread. + - `class BetaManagedAgentsMCPToolset` - - `workflow_run_id: String` + - `class BetaManagedAgentsCustomTool` - Identifier of the workflow run that created the thread, or `null` for any other thread. + A custom tool as returned in API responses. - - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` + - `archived_at: Time` - Emitted when an outcome evaluation cycle begins. + When the thread was archived. Null if not archived. - - `type: :"span.outcome_evaluation_start"` + format: date-time - - `id: String` + - `created_at: Time` - Unique identifier for this event. + When the thread was created. - - `iteration: Integer` + format: date-time - 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. + - `parent_thread_id: String` - format: int32 + Parent thread that spawned this thread. Null for the primary thread. - - `outcome_id: String` + - `session_id: String` - The `outc_` ID of the outcome being evaluated. + The session this thread belongs to. - - `processed_at: Time` + - `stats: BetaManagedAgentsSessionThreadStats` - Timestamp when outcome evaluation started. + Timing statistics for this thread. Null until the thread's first status transition. - format: date-time + - `active_seconds: Float` - - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` + Cumulative time in seconds the thread spent actively running. Excludes idle time. - Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. + format: double - - `type: :"span.outcome_evaluation_end"` + - `duration_seconds: Float` - - `id: String` + Elapsed time since thread creation in seconds. For archived threads, frozen at the final update. - Unique identifier for this event. + format: double - - `explanation: String` + - `startup_seconds: Float` - Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. + Time in seconds for the thread to begin running. Zero for child threads, which start immediately. - - `iteration: Integer` + format: double - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + - `status: BetaManagedAgentsSessionThreadStatus` - format: int32 + Current execution status of the thread. - - `outcome_evaluation_start_id: String` + - `:running` - The id of the corresponding `span.outcome_evaluation_start` event. + - `:idle` - - `outcome_id: String` + - `:rescheduling` - The `outc_` ID of the outcome being evaluated. + - `:terminated` - - `processed_at: Time` + - `updated_at: Time` - Timestamp when outcome evaluation ended. + When the thread was last updated. - format: date-time + format: date-time - - `result: String` + - `usage: BetaManagedAgentsSessionThreadUsage` - Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. + Cumulative token usage for this thread. Null until the thread's first idle transition. - - `usage: BetaManagedAgentsSpanModelUsage` + - `active_seconds: Float` - Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. + Cumulative time in seconds this thread spent in running status. Equal to `stats.active_seconds`; surfaced here so a thread's usage carries every quantity its cost is priced on. - - `cache_creation_input_tokens: Integer` + format: double - Tokens used to create prompt cache in this request. + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - format: int32 + Tokens used to create prompt cache entries, broken down by cache TTL. - - `cache_read_input_tokens: Integer` + - `ephemeral_1h_input_tokens: Integer` - Tokens read from prompt cache in this request. + Tokens used to create 1-hour ephemeral cache entries. format: int32 - - `input_tokens: Integer` + - `ephemeral_5m_input_tokens: Integer` - Input tokens consumed by this request. + Tokens used to create 5-minute ephemeral cache entries. format: int32 - - `output_tokens: Integer` + - `cache_read_input_tokens: Integer` - Output tokens generated by this request. + Total tokens read from prompt cache. - format: int32 + format: int32 - - `speed: :standard | :fast` + - `input_tokens: Integer` - Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. + Total input tokens consumed across all turns. - - `:standard` + format: int32 - - `:fast` + - `list_cost: BetaMonetaryAmount` - - `class BetaManagedAgentsSpanModelRequestStartEvent` + Cumulative list cost of this thread across all turns, priced at public list rates. Absent until cost tracking is available for the thread. Each figure is rounded to the nearest cent independently and the session's aggregate `usage.list_cost` additionally includes session runtime, so per-thread costs do not sum exactly to the session figure; the session figure is authoritative and is what a budget is enforced against. - Emitted when a model request is initiated by the agent. + - `amount: String` - - `type: :"span.model_request_start"` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `id: String` + - `currency: BetaCurrency` - Unique identifier for this event. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `processed_at: Time` + - `output_tokens: Integer` - Timestamp when the model request started. + Total output tokens generated across all turns. - format: date-time + format: int32 - - `class BetaManagedAgentsSpanModelRequestEndEvent` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - Emitted when a model request completes. + Cumulative server-executed tool usage across all turns of this thread. Absent until server-tool tracking is available for the thread. - - `type: :"span.model_request_end"` + - `web_fetch_requests: Integer` - - `id: String` + Number of server-executed web fetch requests. - Unique identifier for this event. + format: int32 - - `is_error: bool` + - `web_search_requests: Integer` - Whether the model request resulted in an error. + Number of server-executed web search requests. - - `model_request_start_id: String` + format: int32 - The id of the corresponding `span.model_request_start` event. + - `workflow_run_id: String` - - `model_usage: BetaManagedAgentsSpanModelUsage` + Identifier of the workflow run that created the thread, or `null` for any other thread. - Token usage for this model request. +#### Example - - `processed_at: Time` +```ruby +require "anthropic" - Timestamp when the model request completed. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - format: date-time +beta_managed_agents_session_thread = anthropic.beta.sessions.threads.archive( + "sthr_011CZkZVWa6oJjw1rgXZpnBt", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) - - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` +puts(beta_managed_agents_session_thread) +``` - Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. +##### Response (200) - - `type: :"span.outcome_evaluation_ongoing"` +```json +{ + "id": "sthr_011CZkZVWa6oJjw1rgXZpnBt", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "description": "A focused research subagent.", + "execution_identity": { + "type": "service_account" + }, + "mcp_servers": [ + { + "name": "example-mcp", + "type": "url", + "url": "https://example-server.modelcontextprotocol.io/sse" + } + ], + "model": { + "id": "claude-opus-5-5", + "effort": { + "type": "low" + }, + "inference_geo": "inference_geo", + "speed": "standard" + }, + "name": "Researcher", + "skills": [ + { + "skill_id": "xlsx", + "type": "anthropic", + "version": "1" + } + ], + "system": "You are a research subagent that gathers and summarises sources for the coordinating agent.", + "tools": [ + { + "configs": [ + { + "enabled": true, + "name": "bash", + "permission_policy": { + "type": "always_allow" + }, + "type": "bash" + } + ], + "default_config": { + "enabled": true, + "permission_policy": { + "type": "always_ask" + } + }, + "type": "agent_toolset_20260401" + } + ], + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "parent_thread_id": null, + "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "stats": { + "active_seconds": 0, + "duration_seconds": 0, + "startup_seconds": 0 + }, + "status": "idle", + "type": "session_thread", + "updated_at": "2026-03-15T10:00:00Z", + "usage": { + "active_seconds": 0, + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "list_cost": { + "amount": "2500", + "currency": "USD" + }, + "output_tokens": 0, + "server_tool_use": { + "web_fetch_requests": 0, + "web_search_requests": 3 + } + }, + "workflow_run_id": null +} +``` - - `id: String` +## Beta › Sessions › Threads › Events - Unique identifier for this event. +### List Session Thread Events - - `iteration: Integer` +`beta.sessions.threads.events.list(thread_id, **kwargs) -> PageCursor` - 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. +**GET** `/v1/sessions/{session_id}/threads/{thread_id}/events` - format: int32 +List Session Thread Events - - `outcome_id: String` +#### Parameters - The `outc_` ID of the outcome being evaluated. +- `session_id: String` (path parameter) - - `processed_at: Time` +- `thread_id: String` (path parameter) - Timestamp when this heartbeat was emitted. +- `limit: Integer` (query parameter) - format: date-time + format: int32 - - `class BetaManagedAgentsUserDefineOutcomeEvent` +- `page: String` (query parameter) - Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. +- `betas: Array[AnthropicBeta]` (header parameter) - - `type: :"user.define_outcome"` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - - `id: String` + - `String = String` - Unique identifier for this event. + - `:"message-batches-2024-09-24"` - - `description: String` + - `:"prompt-caching-2024-07-31"` - What the agent should produce. Copied from the input event. + - `:"computer-use-2024-10-22"` - - `max_iterations: Integer` + - `:"computer-use-2025-01-24"` - Evaluate-then-revise cycles before giving up. Default 3, max 20. + - `:"pdfs-2024-09-25"` - format: int32 + - `:"token-counting-2024-11-01"` - - `outcome_id: String` + - `:"token-efficient-tools-2025-02-19"` - Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. + - `:"output-128k-2025-02-19"` - - `processed_at: Time` + - `:"files-api-2025-04-14"` - Timestamp when the outcome was accepted. + - `:"mcp-client-2025-04-04"` - format: date-time + - `:"mcp-client-2025-11-20"` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `:"dev-full-thinking-2025-05-14"` - How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsFileRubric` + - `:"code-execution-2025-05-22"` - Rubric referenced by a file uploaded via the Files API. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :file` + - `:"context-1m-2025-08-07"` - - `file_id: String` + - `:"context-management-2025-06-27"` - ID of the rubric file. + - `:"model-context-window-exceeded-2025-08-26"` - - `class BetaManagedAgentsTextRubric` + - `:"skills-2025-10-02"` - Rubric content provided inline as text. + - `:"fast-mode-2026-02-01"` - - `type: :text` + - `:"output-300k-2026-03-24"` - - `content: String` + - `:"user-profiles-2026-03-24"` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + - `:"user-profiles-2026-08-18"` - - `class BetaManagedAgentsSessionDeletedEvent` + - `:"user-profiles-2026-09-04"` - Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. + - `:"advisor-tool-2026-03-01"` - - `type: :"session.deleted"` + - `:"managed-agents-2026-04-01"` - - `id: String` + - `:"cache-diagnosis-2026-04-07"` - Unique identifier for this event. + - `:"dreaming-2026-04-21"` - - `processed_at: Time` + - `:"thinking-token-count-2026-05-13"` - Timestamp when the session was deleted. + - `:"server-side-fallback-2026-06-01"` - format: date-time + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsSessionThreadStatusRunningEvent` + - `:"fallback-credit-2026-06-01"` - A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `:"fallback-credit-2026-07-01"` - - `type: :"session.thread_status_running"` + - `:"agent-memory-2026-07-22"` - - `id: String` + - `:"mid-conversation-tool-changes-2026-07-01"` - Unique identifier for this event. + - `:"compact-2026-01-12"` - - `agent_name: String` + - `:"computer-use-2025-11-24"` - Name of the agent the thread runs. + - `:"mcp-tunnels-2026-06-22"` - - `processed_at: Time` + - `:"structured-outputs-2025-11-13"` - Timestamp of the status transition. + - `:"task-budgets-2026-03-13"` - format: date-time + - `:"thinking-display-updates-2026-08-18"` - - `session_thread_id: String` + - `:"ce-user-management-2026-07-13"` - Public sthr_ ID of the thread that started running. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaManagedAgentsSessionThreadStatusIdleEvent` + - `:"thinking-binding-controls-2026-08-01"` - A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `type: :"session.thread_status_idle"` + - `:"compact-2026-09-04"` - - `id: String` + - `:"inline-tools-2026-09-15"` - Unique identifier for this event. + - `:"mcp-client-2026-09-15"` - - `agent_name: String` + - `:"ce-plugins-2026-09-01"` - Name of the agent the thread runs. + - `:"spend-limit-reads-2026-09-26"` - - `processed_at: Time` + - `:"telemetry-destinations-2026-08-11"` - Timestamp of the status transition. + - `:"webhooks-2026-10-07"` - format: date-time +- `workspace_id: String` (header parameter) - - `session_thread_id: String` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Public sthr_ ID of the thread that went idle. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` +#### Returns - Structured information about why the thread stopped. `null` when there is nothing more to report. +- `type BetaManagedAgentsSessionEvent = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 39 more` - - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` + Union type for all event types in a session. - - `class BetaManagedAgentsSessionEndTurn` + - `class BetaManagedAgentsUserMessageEvent` - The agent completed its turn naturally and is ready for the next user message. + A user message event in the session conversation. - - `class BetaManagedAgentsSessionRequiresAction` + - `type: :"user.message"` - The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. + - `id: String` - - `class BetaManagedAgentsSessionRetriesExhausted` + Unique identifier for this event. - The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `class BetaManagedAgentsSessionBudgetReached` + Array of content blocks comprising the user message. - The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsSessionRefusal` + Regular text content. - The turn ended because the model's response was refused, for example by a safety classifier. + - `type: :text` - - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` + - `text: String` - A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + The text content. - - `type: :"session.thread_status_terminated"` + minLength: 1 - - `id: String` + - `class BetaManagedAgentsImageBlock` - Unique identifier for this event. + Image content specified directly as base64 data or as a reference via a URL. - - `agent_name: String` + - `type: :image` - Name of the agent the thread runs. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `processed_at: Time` + The source of the image data. - Timestamp of the status transition. + - `class BetaManagedAgentsBase64ImageSource` - format: date-time + Base64-encoded image data. - - `session_thread_id: String` + - `type: :base64` - Public sthr_ ID of the thread that terminated. + - `data: String` - - `class BetaManagedAgentsUserToolResultEvent` + Base64-encoded image data. - Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. + minLength: 1 - - `type: :"user.tool_result"` + - `media_type: String` - - `id: String` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - Unique identifier for this event. + minLength: 1 - - `tool_use_id: String` + - `class BetaManagedAgentsURLImageSource` - The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. + Image referenced by URL. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` + - `type: :url` - The result content returned by the tool. + - `url: String` - - `class BetaManagedAgentsTextBlock` + URL of the image to fetch. - Regular text content. + minLength: 1 - - `class BetaManagedAgentsImageBlock` + - `class BetaManagedAgentsFileImageSource` - Image content specified directly as base64 data or as a reference via a URL. + Image referenced by file ID. - - `class BetaManagedAgentsDocumentBlock` + - `type: :file` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `file_id: String` - - `class BetaManagedAgentsSearchResultBlock` + ID of a previously uploaded file. - A block containing a web search result. + minLength: 1 - - `is_error: bool` + - `class BetaManagedAgentsDocumentBlock` - Whether the tool execution resulted in an error. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `processed_at: Time` + - `type: :document` - Timestamp when this result was processed. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - format: date-time + The source of the document data. - - `session_thread_id: String` + - `class BetaManagedAgentsBase64DocumentSource` - Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. + Base64-encoded document data. - - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` + - `type: :base64` - A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. + - `data: String` - - `type: :"session.thread_status_rescheduled"` + Base64-encoded document data. - - `id: String` + minLength: 1 - Unique identifier for this event. + - `media_type: String` - - `agent_name: String` + MIME type of the document (e.g., "application/pdf"). - Name of the agent the thread runs. + minLength: 1 - - `processed_at: Time` + - `class BetaManagedAgentsPlainTextDocumentSource` - Timestamp of the status transition. + Plain text document content. - format: date-time + - `type: :text` - - `session_thread_id: String` + - `data: String` - Public sthr_ ID of the thread that is retrying. + The plain text content. - - `class BetaManagedAgentsSessionUpdatedEvent` + minLength: 1 - Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. + - `media_type: :"text/plain"` - - `type: :"session.updated"` + MIME type of the text content. Must be "text/plain". - - `id: String` + - `class BetaManagedAgentsURLDocumentSource` - Unique identifier for this event. + Document referenced by URL. - - `processed_at: Time` + - `type: :url` - Timestamp when the update was applied. + - `url: String` - format: date-time + URL of the document to fetch. - - `agent: BetaManagedAgentsSessionAgent` + minLength: 1 - The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. + - `class BetaManagedAgentsFileDocumentSource` - - `type: :agent` + Document referenced by file ID. - - `id: String` + - `type: :file` - - `description: String` + - `file_id: String` - - `execution_identity: BetaManagedAgentsExecutionIdentity` + ID of a previously uploaded file. - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + minLength: 1 - - `class BetaManagedAgentsAWSRoleExecutionIdentity` + - `context: String` - An AWS IAM role principal as returned in API responses. + Additional context about the document for the model. - - `type: :aws_role` + - `title: String` - - `role_arn: String` + The title of the document. - The IAM role's ARN. + - `class BetaManagedAgentsRedactedBlock` - - `class BetaManagedAgentsServiceAccountExecutionIdentity` + Placeholder for content withheld by Anthropic model policy. - The Anthropic-managed service account as returned in API responses. + - `type: :redacted` - - `type: :service_account` + - `processed_at: Time` - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + Timestamp when the agent finished processing this message. - - `type: :url` + format: date-time - - `name: String` + - `class BetaManagedAgentsUserInterruptEvent` - - `url: String` + An interrupt event that pauses agent execution and returns control to the user. - - `model: BetaManagedAgentsModelConfig` + - `type: :"user.interrupt"` - Model identifier and configuration. + - `id: String` - - `id: BetaManagedAgentsModel` + Unique identifier for this event. - The model that will power your agent. + - `processed_at: Time` - See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + Timestamp when the interrupt was processed. - - `:"claude-haiku-5-5"` + format: date-time - Fastest model for high-volume, real-time tasks + - `session_thread_id: String` - - `:"claude-sonnet-5-5"` + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - Efficient model for coding and agents + - `class BetaManagedAgentsUserToolConfirmationEvent` - - `:"claude-opus-5-5"` + A tool confirmation event that approves or denies a pending tool execution. - Powerful intelligence for coding, knowledge work, and long-running agents + - `type: :"user.tool_confirmation"` - - `:"claude-fable-5-1"` + - `id: String` - Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + Unique identifier for this event. - - `:"claude-sonnet-5"` + - `result: :allow | :deny` - Efficient model for coding and agents + The confirmation result: 'allow' or 'deny'. - - `:"claude-fable-5"` + - `:allow` - Next generation of intelligence for the hardest knowledge work and coding problems + - `:deny` - - `:"claude-opus-5"` + - `tool_use_id: String` - Powerful intelligence for long-running agents and coding + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `:"claude-opus-4-8"` + - `deny_message: String` - Powerful intelligence for long-running agents and coding + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - - `:"claude-opus-4-7"` + maxLength: 10000 - Powerful intelligence for long-running agents and coding + - `processed_at: Time` - - `:"claude-opus-4-6"` + Timestamp when the confirmation was processed. - Powerful intelligence for long-running agents and coding + format: date-time - - `:"claude-sonnet-4-6"` + - `session_thread_id: String` - Best combination of speed and intelligence + Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - - `:"claude-haiku-4-5"` + - `class BetaManagedAgentsUserCustomToolResultEvent` - - `:"claude-haiku-4-5-20251001"` + Event sent by the client providing the result of a custom tool execution. - - `:"claude-opus-4-5"` + - `type: :"user.custom_tool_result"` - Powerful intelligence for long-running agents and coding + - `id: String` - - `:"claude-opus-4-5-20251101"` + Unique identifier for this event. - Powerful intelligence for long-running agents and coding + - `custom_tool_use_id: String` - - `:"claude-sonnet-4-5"` + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - High-performance model for agents and coding + The result content returned by the tool. - - `:"claude-sonnet-4-5-20250929"` + - `class BetaManagedAgentsTextBlock` - **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + Regular text content. - High-performance model for agents and coding + - `class BetaManagedAgentsImageBlock` - - `String = String` + Image content specified directly as base64 data or as a reference via a URL. - - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` + - `class BetaManagedAgentsDocumentBlock` - How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsEffortLow` + - `class BetaManagedAgentsSearchResultBlock` - Low effort. Favors latency over reasoning depth. + A block containing a web search result. - - `type: :low` + - `type: :search_result` - - `class BetaManagedAgentsEffortMedium` + - `citations: BetaManagedAgentsSearchResultCitations` - Medium effort. Balances latency and reasoning depth. + Citation settings for this search result. - - `type: :medium` + - `enabled: bool` - - `class BetaManagedAgentsEffortHigh` + Whether citations are enabled for this search result. - High effort. Favors reasoning depth. + - `content: Array[BetaManagedAgentsSearchResultContent]` - - `type: :high` + Array of text content blocks from the search result. - - `class BetaManagedAgentsEffortXhigh` + - `type: :text` - Extra-high effort. Not all models accept this level. + - `text: String` - - `type: :xhigh` + The text content. - - `class BetaManagedAgentsEffortMax` + minLength: 1 - Maximum effort. Favors reasoning depth over latency. + - `source: String` - - `type: :max` + The URL source of the search result. - - `inference_geo: String` + minLength: 1 - Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. + - `title: String` - - `speed: :standard | :fast` + The title of the search result. - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. + minLength: 1 - - `:standard` + - `is_error: bool` - - `:fast` + Whether the tool execution resulted in an error. - - `multiagent: BetaManagedAgentsSessionMultiagent` + - `processed_at: Time` - Resolved multiagent orchestration configuration. Null when the agent is single-threaded. + Timestamp when this result was processed. - - `class BetaManagedAgentsSessionMultiagentCoordinator` + format: date-time - Resolved coordinator topology with full agent definitions for each roster member. + - `session_thread_id: String` - - `type: :coordinator` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` + - `class BetaManagedAgentsAgentCustomToolUseEvent` - Full `agent` definitions the coordinator may spawn as session threads. + Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. - - `class BetaManagedAgentsSessionThreadAgent` + - `type: :"agent.custom_tool_use"` - Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. + - `id: String` - - `type: :agent` + Unique identifier for this event. - - `id: String` + - `input: Hash[Symbol, untyped]` - - `description: String` + Input parameters for the tool call. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `name: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Name of the custom tool being called. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `processed_at: Time` - - `type: :url` + Timestamp when this tool use was processed. - - `name: String` + format: date-time - - `url: String` + - `session_thread_id: String` - - `model: BetaManagedAgentsModelConfig` + When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. - Model identifier and configuration. + - `class BetaManagedAgentsAgentMessageEvent` - - `name: String` + An agent response event in the session conversation. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `type: :"agent.message"` - - `class BetaManagedAgentsAnthropicSkill` + - `id: String` - A resolved Anthropic-managed skill. + Unique identifier for this event. - - `type: :anthropic` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` - - `skill_id: String` + Array of text blocks comprising the agent response. - - `version: String` + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsCustomSkill` + Regular text content. - A resolved user-created custom skill. + - `class BetaManagedAgentsRedactedBlock` - - `type: :custom` + Placeholder for content withheld by Anthropic model policy. - - `skill_id: String` + - `processed_at: Time` - - `version: String` + Timestamp when this response was generated. - - `system_: String` + format: date-time - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsAgentThinkingEvent` - - `class BetaManagedAgentsAgentToolset20260401` + Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. - - `type: :agent_toolset_20260401` + - `type: :"agent.thinking"` - - `configs: Array[BetaManagedAgentsAgentToolConfig]` + - `id: String` - - `class BetaManagedAgentsBashToolConfig` + Unique identifier for this event. - Configuration for the bash tool. + - `processed_at: Time` - - `type: :bash` + Timestamp when this thinking was produced. - - `enabled: bool` + format: date-time - - `name: :bash` + - `class BetaManagedAgentsAgentMCPToolUseEvent` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Event emitted when the agent invokes a tool provided by an MCP server. - Permission policy for tool execution. + - `type: :"agent.mcp_tool_use"` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `id: String` - Tool calls are automatically approved without user confirmation. + Unique identifier for this event. - - `type: :always_allow` + - `input: Hash[Symbol, untyped]` - - `class BetaManagedAgentsAlwaysAskPolicy` + Input parameters for the tool call. - Tool calls require user confirmation before execution. + - `mcp_server_name: String` - - `type: :always_ask` + Name of the MCP server providing the tool. - - `class BetaManagedAgentsAutoPolicy` + - `name: String` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Name of the MCP tool being used. - - `type: :auto` + - `processed_at: Time` - - `class BetaManagedAgentsEditToolConfig` + Timestamp when this event was processed. - Configuration for the edit tool. + format: date-time - - `type: :edit` + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `enabled: bool` + The evaluated permission policy for this tool invocation. - - `name: :edit` + - `:allow` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `:ask` - Permission policy for tool execution. + - `:deny` - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - Tool calls are automatically approved without user confirmation. + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` - Tool calls require user confirmation before execution. + The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". - - `class BetaManagedAgentsAutoPolicy` + - `type: :always_allow` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` - - `class BetaManagedAgentsReadToolConfig` + The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". - Configuration for the read tool. + - `type: :always_ask` - - `type: :read` + - `class BetaManagedAgentsAgentToolEvaluationAuto` - - `enabled: bool` + The resolved permission_policy was auto: the server judged this invocation individually. - - `name: :read` + - `type: :auto` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` - Permission policy for tool execution. + The server's judgement for this invocation. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` - Tool calls are automatically approved without user confirmation. + The server judged the invocation safe to execute without client approval. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :allow` - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` - - `class BetaManagedAgentsAutoPolicy` + The server reached no judgement; the invocation is held for client approval. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `type: :ask` - - `class BetaManagedAgentsWriteToolConfig` + - `reason_code: String` - Configuration for the write tool. + The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. - - `type: :write` + maxLength: 64 - - `enabled: bool` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` - - `name: :write` + The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :deny` - Permission policy for tool execution. + - `reason_code: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. - Tool calls are automatically approved without user confirmation. + maxLength: 64 - - `class BetaManagedAgentsAlwaysAskPolicy` + - `session_thread_id: String` - Tool calls require user confirmation before execution. + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. - - `class BetaManagedAgentsAutoPolicy` + - `class BetaManagedAgentsAgentMCPToolResultEvent` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + Event representing the result of an MCP tool execution. - - `class BetaManagedAgentsGlobToolConfig` + - `type: :"agent.mcp_tool_result"` - Configuration for the glob tool. + - `id: String` - - `type: :glob` + Unique identifier for this event. - - `enabled: bool` + - `mcp_tool_use_id: String` - - `name: :glob` + The id of the `agent.mcp_tool_use` event this result corresponds to. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `processed_at: Time` - Permission policy for tool execution. + Timestamp when this event was processed. - - `class BetaManagedAgentsAlwaysAllowPolicy` + format: date-time - Tool calls are automatically approved without user confirmation. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `class BetaManagedAgentsAlwaysAskPolicy` + The result content returned by the tool. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsAutoPolicy` + Regular text content. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsGrepToolConfig` + Image content specified directly as base64 data or as a reference via a URL. - Configuration for the grep tool. + - `class BetaManagedAgentsDocumentBlock` - - `type: :grep` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `enabled: bool` + - `class BetaManagedAgentsSearchResultBlock` - - `name: :grep` + A block containing a web search result. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `is_error: bool` - Permission policy for tool execution. + Whether the tool execution resulted in an error. - - `class BetaManagedAgentsAlwaysAllowPolicy` + - `class BetaManagedAgentsAgentToolUseEvent` - Tool calls are automatically approved without user confirmation. + Event emitted when the agent invokes a built-in agent tool. - - `class BetaManagedAgentsAlwaysAskPolicy` + - `type: :"agent.tool_use"` - Tool calls require user confirmation before execution. + - `id: String` - - `class BetaManagedAgentsAutoPolicy` + Unique identifier for this event. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `input: Hash[Symbol, untyped]` - - `class BetaManagedAgentsWebFetchToolConfig` + Input parameters for the tool call. - Configuration for the web_fetch tool. + - `name: String` - - `type: :web_fetch` + Name of the agent tool being used. - - `enabled: bool` + - `processed_at: Time` - - `name: :web_fetch` + Timestamp when this event was processed. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + format: date-time - Permission policy for tool execution. + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `class BetaManagedAgentsAlwaysAllowPolicy` + The evaluated permission policy for this tool invocation. - Tool calls are automatically approved without user confirmation. + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `class BetaManagedAgentsAlwaysAskPolicy` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - Tool calls require user confirmation before execution. + - `session_thread_id: String` - - `class BetaManagedAgentsAutoPolicy` + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsAgentToolResultEvent` - - `url_sources: BetaManagedAgentsWebFetchURLSources` + Event representing the result of an agent tool execution. - Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. + - `type: :"agent.tool_result"` - - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `id: String` - Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. + Unique identifier for this event. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `processed_at: Time` - Every URL from this source may be fetched. This is the default. + Timestamp when this event was processed. - - `type: :all` + format: date-time - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `tool_use_id: String` - This source contributes no URLs that may be fetched. + The id of the `agent.tool_use` event this result corresponds to. - - `type: :none` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `class BetaManagedAgentsWebFetchURLSourceOnly` + The result content returned by the tool. - Only the named tools' results contribute URLs that may be fetched. + - `class BetaManagedAgentsTextBlock` - - `type: :only` + Regular text content. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `class BetaManagedAgentsImageBlock` - The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. + Image content specified directly as base64 data or as a reference via a URL. - - `type: :tool_reference` + - `class BetaManagedAgentsDocumentBlock` - Must be "tool_reference". + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `name: String` + - `class BetaManagedAgentsSearchResultBlock` - Name of the tool. Compared exactly, so upper and lower case letters are different. + A block containing a web search result. - minLength: 1, maxLength: 128 + - `is_error: bool` - - `class BetaManagedAgentsWebFetchURLSourceExcept` + Whether the tool execution resulted in an error. - Every tool's results contribute URLs that may be fetched, except the named tools' results. + - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` - - `type: :except` + Delivery event written to the target thread's input stream when an agent-to-agent message arrives. - - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` + - `type: :"agent.thread_message_received"` - The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. + - `id: String` - - `type: :tool_reference` + Unique identifier for this event. - Must be "tool_reference". + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `name: String` + Message content blocks. - Name of the tool. Compared exactly, so upper and lower case letters are different. + - `class BetaManagedAgentsTextBlock` - minLength: 1, maxLength: 128 + Regular text content. - - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` + - `class BetaManagedAgentsImageBlock` - Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. + Image content specified directly as base64 data or as a reference via a URL. - - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` + - `class BetaManagedAgentsDocumentBlock` - Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsWebFetchURLSourceAll` + - `class BetaManagedAgentsRedactedBlock` - Every URL from this source may be fetched. This is the default. + Placeholder for content withheld by Anthropic model policy. - - `class BetaManagedAgentsWebFetchURLSourceNone` + - `from_session_thread_id: String` - This source contributes no URLs that may be fetched. + Public `sthr_` ID of the thread that sent the message. - - `allowed_domains: Array[String]` + - `processed_at: Time` - - `blocked_domains: Array[String]` + Timestamp when the message was received. - - `max_content_tokens: Integer` + format: date-time - format: int32 + - `from_agent_name: String` - - `class BetaManagedAgentsWebSearchToolConfig` + Name of the callable agent this message came from. Absent when received from the primary agent. - Configuration for the web_search tool. + - `class BetaManagedAgentsAgentThreadMessageSentEvent` - - `type: :web_search` + Observability event emitted to the sender's output stream when an agent-to-agent message is sent. - - `enabled: bool` + - `type: :"agent.thread_message_sent"` - - `name: :web_search` + - `id: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Unique identifier for this event. - Permission policy for tool execution. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Message content blocks. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsAlwaysAskPolicy` + Regular text content. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsAutoPolicy` + Image content specified directly as base64 data or as a reference via a URL. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsDocumentBlock` - - `allowed_domains: Array[String]` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `blocked_domains: Array[String]` + - `class BetaManagedAgentsRedactedBlock` - - `user_location: BetaManagedAgentsUserLocation` + Placeholder for content withheld by Anthropic model policy. - Approximate user location for search result localization. + - `processed_at: Time` - - `type: :approximate` + Timestamp when the message was sent. - Location precision. Only "approximate" is supported. + format: date-time - - `city: String` + - `to_session_thread_id: String` - City name. + Public `sthr_` ID of the thread the message was sent to. - minLength: 1, maxLength: 255 + - `to_agent_name: String` - - `country: String` + Name of the callable agent this message was sent to. Absent when sent to the primary agent. - Two-letter ISO 3166-1 country code, uppercase. + - `class BetaManagedAgentsAgentThreadContextCompactedEvent` - - `region: String` + Indicates that context compaction (summarization) occurred during the session. - Region or state name. + - `type: :"agent.thread_context_compacted"` - minLength: 1, maxLength: 255 + - `id: String` - - `timezone: String` + Unique identifier for this event. - IANA timezone identifier, e.g. "America/Los_Angeles". + - `processed_at: Time` - minLength: 1, maxLength: 255 + Timestamp when compaction was processed. - - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` + format: date-time - Resolved default configuration for agent tools. + - `class BetaManagedAgentsSessionErrorEvent` - - `enabled: bool` + An error event indicating a problem occurred during session execution. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :"session.error"` - Permission policy for tool execution. + - `id: String` - - `class BetaManagedAgentsAlwaysAllowPolicy` + Unique identifier for this event. - Tool calls are automatically approved without user confirmation. + - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsUnknownError` - Tool calls require user confirmation before execution. + An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. - - `class BetaManagedAgentsAutoPolicy` + - `type: :unknown_error` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `message: String` - - `class BetaManagedAgentsMCPToolset` + Human-readable error description. - - `type: :mcp_toolset` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `configs: Array[BetaManagedAgentsMCPToolConfig]` + What the client should do next. - - `enabled: bool` + - `class BetaManagedAgentsRetryStatusRetrying` - - `name: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + - `type: :retrying` - Permission policy for tool execution. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAlwaysAllowPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Tool calls are automatically approved without user confirmation. + - `type: :exhausted` - - `class BetaManagedAgentsAlwaysAskPolicy` + - `class BetaManagedAgentsRetryStatusTerminal` - Tool calls require user confirmation before execution. + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsAutoPolicy` + - `type: :terminal` - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsModelOverloadedError` - - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` + The model is currently overloaded. Emitted after automatic retries are exhausted. - Resolved default configuration for all tools from an MCP server. + - `type: :model_overloaded_error` - - `enabled: bool` + - `message: String` - - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` + Human-readable error description. - Permission policy for tool execution. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAlwaysAllowPolicy` + What the client should do next. - Tool calls are automatically approved without user confirmation. + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsAlwaysAskPolicy` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Tool calls require user confirmation before execution. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsAutoPolicy` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. + - `class BetaManagedAgentsRetryStatusTerminal` - - `mcp_server_name: String` + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsCustomTool` + - `class BetaManagedAgentsModelRateLimitedError` - A custom tool as returned in API responses. + The model request was rate-limited. - - `type: :custom` + - `type: :model_rate_limited_error` - - `description: String` + - `message: String` - - `input_schema: BetaManagedAgentsCustomToolInputSchema` + Human-readable error description. - JSON Schema for custom tool input parameters. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :object` + What the client should do next. - - `properties: Hash[Symbol, untyped]` + - `class BetaManagedAgentsRetryStatusRetrying` - - `required: Array[String]` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `name: String` + - `class BetaManagedAgentsRetryStatusExhausted` - - `version: Integer` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - format: int32 + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAdvisor` + The session encountered a terminal error and will transition to `terminated` state. - Platform advisor roster entry: a model the session's primary thread may consult mid-turn. + - `class BetaManagedAgentsModelRequestFailedError` - - `type: :advisor` + A model request failed for a reason other than overload or rate-limiting. - - `model: String` + - `type: :model_request_failed_error` - The advisor model id. + - `message: String` - - `class BetaManagedAgentsSessionMultiagent20261001` + Human-readable error description. - Resolved multiagent configuration with three members, as copied to the `session` at creation. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :multiagent_20261001` + What the client should do next. - - `advisor: BetaManagedAgentsMultiagentAdvisor` + - `class BetaManagedAgentsRetryStatusRetrying` - Whether the session's primary thread can consult an advisor model. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsMultiagentAdvisorEnabled` + - `class BetaManagedAgentsRetryStatusExhausted` - The session's primary thread can consult `model` mid-turn. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `type: :enabled` + - `class BetaManagedAgentsRetryStatusTerminal` - - `model: String` + The session encountered a terminal error and will transition to `terminated` state. - The advisor model id. + - `class BetaManagedAgentsMCPConnectionFailedError` - - `class BetaManagedAgentsMultiagentAdvisorDisabled` + Failed to connect to an MCP server. - The agent has no advisor. + - `type: :mcp_connection_failed_error` - - `type: :disabled` + - `mcp_server_name: String` - - `subagents: BetaManagedAgentsSessionMultiagentSubagents` + Name of the MCP server that failed to connect. - Whether the agent can spawn session threads. + - `message: String` - - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` + Human-readable error description. - The agent can spawn session threads. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :enabled` + What the client should do next. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `class BetaManagedAgentsRetryStatusRetrying` - Whether the agent can define inline agents, which are not saved, when it spawns session threads. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` + - `class BetaManagedAgentsRetryStatusExhausted` - The agent can define inline agents. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `type: :enabled` + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` + The session encountered a terminal error and will transition to `terminated` state. - The agent cannot define inline agents. + - `class BetaManagedAgentsMCPAuthenticationFailedError` - - `type: :disabled` + Authentication to an MCP server failed. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `type: :mcp_authentication_failed_error` - Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. + - `mcp_server_name: String` - - `type: :agent` + Name of the MCP server that failed authentication. - - `id: String` + - `message: String` - - `description: String` + Human-readable error description. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + What the client should do next. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `class BetaManagedAgentsRetryStatusRetrying` - - `model: BetaManagedAgentsModelConfig` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Model identifier and configuration. + - `class BetaManagedAgentsRetryStatusExhausted` - - `name: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsRetryStatusTerminal` - - `system_: String` + The session encountered a terminal error and will transition to `terminated` state. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsBillingError` - - `version: Integer` + The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. - format: int32 + - `type: :billing_error` - - `class BetaManagedAgentsMultiagentSubagentsDisabled` + - `message: String` - The agent cannot spawn session threads. + Human-readable error description. - - `type: :disabled` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` + What the client should do next. - Whether the agent can start workflow runs. + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - The agent can start workflow runs. + - `class BetaManagedAgentsRetryStatusExhausted` - - `type: :enabled` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` + - `class BetaManagedAgentsRetryStatusTerminal` - Whether a run's plan can define inline agents, which are not saved. + The session encountered a terminal error and will transition to `terminated` state. - - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` + - `class BetaManagedAgentsCredentialHostUnreachableError` - Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. + An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. - - `type: :agent` + - `type: :credential_host_unreachable_error` - - `id: String` + - `credential_id: String` - - `description: String` + ID of the affected credential. - - `execution_identity: BetaManagedAgentsExecutionIdentity` + - `message: String` - Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. + Human-readable error description. - - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `model: BetaManagedAgentsModelConfig` + What the client should do next. - Model identifier and configuration. + - `class BetaManagedAgentsRetryStatusRetrying` - - `name: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `class BetaManagedAgentsRetryStatusExhausted` - - `system_: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsRetryStatusTerminal` - - `version: Integer` + The session encountered a terminal error and will transition to `terminated` state. - format: int32 + - `vault_id: String` - - `class BetaManagedAgentsMultiagentWorkflowsDisabled` + ID of the vault containing the affected credential. - The agent cannot start workflow runs. + - `class BetaManagedAgentsRepositoryAuthenticationError` - - `type: :disabled` + The repository host rejected the credentials, or required credentials and received none. - - `name: String` + - `type: :repository_authentication_error` - - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` + - `message: String` - - `class BetaManagedAgentsAnthropicSkill` + Human-readable error description. - A resolved Anthropic-managed skill. + - `repository_url: String` - - `class BetaManagedAgentsCustomSkill` + URL of the repository that could not be cloned. Null when it could not be identified. - A resolved user-created custom skill. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `system_: String` + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsAgentToolset20260401` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsMCPToolset` + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsCustomTool` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - A custom tool as returned in API responses. + - `class BetaManagedAgentsRetryStatusTerminal` - - `version: Integer` + The session encountered a terminal error and will transition to `terminated` state. - format: int32 + - `class BetaManagedAgentsRepositoryForbiddenError` - - `budget: BetaManagedAgentsBudgetLimit` + The repository host refused access to the repository. - The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. + - `type: :repository_forbidden_error` - - `type: :limit` + - `message: String` - - `max_list_cost: BetaMonetaryAmount` + Human-readable error description. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `repository_url: String` - - `amount: String` + URL of the repository that could not be cloned. Null when it could not be identified. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `currency: BetaCurrency` + What the client should do next. Always `retrying`: the session keeps running without the repository. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `class BetaManagedAgentsRetryStatusRetrying` - - `metadata: Hash[Symbol, String]` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. + - `class BetaManagedAgentsRetryStatusExhausted` - - `title: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - The session's new title. Present only when the update changed it. + - `class BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsStartEvent` + The session encountered a terminal error and will transition to `terminated` state. - Opens a preview of a buffered event. Carries the previewed event's type and id only. Followed by zero or more event_delta events with the same event id, normally concluded by the buffered event carrying that id. If the producing model request ends without that event (an error or interrupt mid-stream), its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. + - `class BetaManagedAgentsRepositoryNotFoundError` - - `type: :event_start` + The repository host reported the repository as not found. - - `event: BetaManagedAgentsStartEventPreview` + - `type: :repository_not_found_error` - The previewed event's type and id. The event type determines which delta types the preview's event_delta events carry: agent.message events stream content_delta fragments; agent.thinking previews are start-only — no deltas follow, and the buffered agent.thinking with the same id concludes them. + - `message: String` - - `class BetaManagedAgentsAgentMessagePreview` + Human-readable error description. - - `type: :"agent.message"` + - `repository_url: String` - - `id: String` + URL of the repository that could not be cloned. Null when it could not be identified. - The id the buffered agent.message will carry if it is emitted. Matches the event_id on this preview's event_delta events. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsAgentThinkingPreview` + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `type: :"agent.thinking"` + - `class BetaManagedAgentsRetryStatusRetrying` - - `id: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - The id the buffered agent.thinking will carry if it is emitted. Start-only — no event_delta events follow. + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsDeltaEvent` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - An incremental update to an event that is still being streamed. Deltas are best-effort and may stop early; when the buffered event with id == event_id is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no buffered event — its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. + - `class BetaManagedAgentsRetryStatusTerminal` - - `type: :event_delta` + The session encountered a terminal error and will transition to `terminated` state. - - `delta: BetaManagedAgentsDeltaContent` + - `class BetaManagedAgentsRepositoryCheckoutError` - One fragment of the previewed event. The delta type is named for the previewed event's field it streams into: agent.message events stream content_delta fragments, each a partial element of the content array. + The requested branch or commit does not exist in the repository. - - `type: :content_delta` + - `type: :repository_checkout_error` - - `content: BetaManagedAgentsTextBlock` + - `message: String` - A partial element of the content array at index, typed like the element itself — the same shape the buffered agent.message carries in content. + Human-readable error description. - - `index: Integer` + - `repository_url: String` - Which entry in the previewed event's content array this fragment lands in. Insert content as that entry when the index is new; append to the existing entry otherwise. + URL of the repository that could not be cloned. Null when it could not be identified. - - `event_id: String` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - The id of the event being previewed. Matches event.id on the corresponding event_start and the buffered event that reconciles the preview. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `class BetaManagedAgentsSystemMessageEvent` + - `class BetaManagedAgentsRetryStatusRetrying` - A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `type: :"system.message"` + - `class BetaManagedAgentsRetryStatusExhausted` - - `id: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Unique identifier for this event. + - `class BetaManagedAgentsRetryStatusTerminal` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + The session encountered a terminal error and will transition to `terminated` state. - System content blocks. Text-only. + - `class BetaManagedAgentsRepositoryCloneError` - - `type: :text` + The repository could not be cloned. - - `text: String` + - `type: :repository_clone_error` - The text content. + - `message: String` - minLength: 1 + Human-readable error description. - - `processed_at: Time` + - `repository_url: String` - Timestamp when this system message was processed. + URL of the repository that could not be cloned. Null when it could not be identified. - format: date-time + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `class BetaManagedAgentsSessionUsageEvent` + What the client should do next. Always `retrying`: the session keeps running without the repository. - Periodic snapshot of the session's cumulative usage and tracked list cost. + - `class BetaManagedAgentsRetryStatusRetrying` - - `type: :"session.usage"` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `id: String` + - `class BetaManagedAgentsRetryStatusExhausted` - Unique identifier for this event. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. + + - `class BetaManagedAgentsRetryStatusTerminal` + + The session encountered a terminal error and will transition to `terminated` state. - `processed_at: Time` - Timestamp when the snapshot was taken. + Timestamp when the error occurred. format: date-time - - `usage: BetaManagedAgentsSessionUsageSnapshot` + - `class BetaManagedAgentsSessionStatusRescheduledEvent` - The session's cumulative usage at the snapshot time. + Indicates the session is recovering from an error state and is rescheduled for execution. - - `active_seconds: Float` + - `type: :"session.status_rescheduled"` - Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. + - `id: String` - format: double + Unique identifier for this event. - - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - Tokens used to create prompt cache entries, broken down by cache TTL. - - - `ephemeral_1h_input_tokens: Integer` + - `processed_at: Time` - Tokens used to create 1-hour ephemeral cache entries. + Timestamp of status change. - format: int32 + format: date-time - - `ephemeral_5m_input_tokens: Integer` + - `class BetaManagedAgentsSessionStatusRunningEvent` - Tokens used to create 5-minute ephemeral cache entries. + Indicates the session is actively running and the agent is working. - format: int32 + - `type: :"session.status_running"` - - `cache_read_input_tokens: Integer` + - `id: String` - Total tokens read from prompt cache. + Unique identifier for this event. - format: int32 + - `processed_at: Time` - - `input_tokens: Integer` + Timestamp of status change. - Total input tokens consumed across all turns. + format: date-time - format: int32 + - `class BetaManagedAgentsSessionStatusIdleEvent` - - `list_cost: BetaMonetaryAmount` + Indicates the agent has paused and is awaiting user input. - Cumulative list cost of the session across all turns, priced at public list rates. + - `type: :"session.status_idle"` - - `output_tokens: Integer` + - `id: String` - Total output tokens generated across all turns. + Unique identifier for this event. - format: int32 + - `processed_at: Time` - - `server_tool_use: BetaManagedAgentsServerToolUsage` + Timestamp of status change. - Cumulative server-executed tool usage across all turns. + format: date-time - - `web_fetch_requests: Integer` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - Number of server-executed web fetch requests. + Structured information about why the session stopped. `null` when there is nothing more to report. - format: int32 + - `type: :refusal` - - `web_search_requests: Integer` + - `category: :cyber | :bio | :frontier_llm | 2 more` - Number of server-executed web search requests. + The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. - format: int32 + - `:cyber` - - `budget: BetaManagedAgentsBudgetLimit` + - `:bio` - The session's configured budget at the snapshot time, or null when the session has no budget. + - `:frontier_llm` - - `class BetaManagedAgentsWorkflowRunCreatedEvent` + - `:reasoning_extraction` - A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. + - `:general_harms` - - `type: :"workflow_run.created"` + - `explanation: String` - - `id: String` + Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. - Unique identifier for this event. + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - - `description: String` + - `class BetaManagedAgentsSessionEndTurn` - Description that the agent gave the run, passed on as written, or `null` if it gave none. + The agent completed its turn naturally and is ready for the next user message. - - `name: String` + - `type: :end_turn` - Name that the agent gave the run, passed on as written, or a name that the server assigned. + - `class BetaManagedAgentsSessionRequiresAction` - - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - The phases that the run's plan declares, in the plan's order. Can be empty. + - `type: :requires_action` - - `id: String` + - `event_ids: Array[String]` - Unique identifier for the phase. + The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. - - `description: String` + - `class BetaManagedAgentsSessionRetriesExhausted` - Description that the agent gave the phase, passed on as written, or `null` if it gave none. + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - - `name: String` + - `type: :retries_exhausted` - Name that the agent gave the phase, passed on as written. + - `class BetaManagedAgentsSessionBudgetReached` - - `processed_at: Time` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - Timestamp when this event was processed. + - `type: :budget_reached` - format: date-time + - `class BetaManagedAgentsSessionRefusal` - - `workflow_run_id: String` + The turn ended because the model's response was refused, for example by a safety classifier. - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `type: :refusal` - - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` + - `class BetaManagedAgentsSessionStatusTerminatedEvent` - A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. + Indicates the session has terminated, either due to an error or completion. - - `type: :"workflow_run.status_ended"` + - `type: :"session.status_terminated"` - `id: String` @@ -62082,147 +61895,143 @@ Stream Session Thread Events - `processed_at: Time` - Timestamp when this event was processed. + Timestamp of status change. format: date-time - - `result: BetaManagedAgentsWorkflowRunResult` - - How the run ended. - - - `class BetaManagedAgentsWorkflowRunResultCompleted` - - The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. - - - `type: :completed` + - `class BetaManagedAgentsSessionThreadCreatedEvent` - - `class BetaManagedAgentsWorkflowRunResultError` + Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. - The run failed or reached its time limit. + - `type: :"session.thread_created"` - - `type: :error` + - `id: String` - - `error: BetaManagedAgentsWorkflowRunError` + Unique identifier for this event. - Why the run did not finish. + - `agent_name: String` - - `class BetaManagedAgentsTimeoutWorkflowRunError` + Name of the callable agent the thread runs. - The run reached its time limit. + - `processed_at: Time` - - `type: :timeout_error` + Timestamp when the thread was created. - - `message: String` + format: date-time - Short explanation written by the server. It never contains content from the run or its agents. + - `session_thread_id: String` - - `class BetaManagedAgentsProgramWorkflowRunError` + Public `sthr_` ID of the newly created thread. - The plan, a program that the agent wrote, failed, or the server refused it. + - `workflow_run_id: String` - - `type: :program_error` + Identifier of the workflow run that created the thread, or `null` for any other thread. - - `message: String` + - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` - Short explanation written by the server. It never contains content from the run or its agents. + Emitted when an outcome evaluation cycle begins. - - `class BetaManagedAgentsUnknownWorkflowRunError` + - `type: :"span.outcome_evaluation_start"` - A failure that has no type of its own. + - `id: String` - - `type: :unknown_error` + Unique identifier for this event. - - `message: String` + - `iteration: Integer` - Short explanation written by the server. It never contains content from the run or its agents. + 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. - - `class BetaManagedAgentsThreadLimitWorkflowRunError` + format: int32 - The run exceeded the limit on the number of threads that a run can create. + - `outcome_id: String` - - `type: :thread_limit_error` + The `outc_` ID of the outcome being evaluated. - - `message: String` + - `processed_at: Time` - Short explanation written by the server. It never contains content from the run or its agents. + Timestamp when outcome evaluation started. - - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` + format: date-time - No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. + - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` - - `type: :max_workflow_runs_error` + Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. - - `message: String` + - `type: :"span.outcome_evaluation_end"` - Short explanation written by the server. It never contains content from the run or its agents. + - `id: String` - - `class BetaManagedAgentsWorkflowRunResultStopped` + Unique identifier for this event. - The agent stopped the run. + - `explanation: String` - - `type: :stopped` + Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. - - `workflow_run_id: String` + - `iteration: Integer` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` + format: int32 - A workflow run's plan entered a phase. + - `outcome_evaluation_start_id: String` - - `type: :"workflow_run.phase_started"` + The id of the corresponding `span.outcome_evaluation_start` event. - - `id: String` + - `outcome_id: String` - Unique identifier for this event. + The `outc_` ID of the outcome being evaluated. - `processed_at: Time` - Timestamp when this event was processed. + Timestamp when outcome evaluation ended. format: date-time - - `workflow_run_id: String` + - `result: String` - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. - - `workflow_run_phase_id: String` + - `usage: BetaManagedAgentsSpanModelUsage` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. - - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` + - `cache_creation_input_tokens: Integer` - A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. + Tokens used to create prompt cache in this request. - - `type: :"workflow_run.phase_ended"` + format: int32 - - `id: String` + - `cache_read_input_tokens: Integer` - Unique identifier for this event. + Tokens read from prompt cache in this request. - - `phase_started_id: String` + format: int32 - Identifier of the `workflow_run.phase_started` event that opened the phase. + - `input_tokens: Integer` - - `processed_at: Time` + Input tokens consumed by this request. - Timestamp when this event was processed. + format: int32 - format: date-time + - `output_tokens: Integer` - - `workflow_run_id: String` + Output tokens generated by this request. - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + format: int32 - - `workflow_run_phase_id: String` + - `speed: :standard | :fast` - Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. + Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. - - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` + - `:standard` - A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. + - `:fast` - - `type: :"workflow_run.status_running"` + - `class BetaManagedAgentsSpanModelRequestStartEvent` + + Emitted when a model request is initiated by the agent. + + - `type: :"span.model_request_start"` - `id: String` @@ -62230,5701 +62039,5165 @@ Stream Session Thread Events - `processed_at: Time` - Timestamp when this event was processed. + Timestamp when the model request started. format: date-time - - `workflow_run_id: String` - - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` + - `class BetaManagedAgentsSpanModelRequestEndEvent` - A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. + Emitted when a model request completes. - - `type: :"workflow_run.status_idle"` + - `type: :"span.model_request_end"` - `id: String` Unique identifier for this event. - - `processed_at: Time` + - `is_error: bool` - Timestamp when this event was processed. + Whether the model request resulted in an error. - format: date-time + - `model_request_start_id: String` - - `workflow_run_id: String` + The id of the corresponding `span.model_request_start` event. - Identifier of the run. The same value is on all of the run's `workflow_run.*` events. + - `model_usage: BetaManagedAgentsSpanModelUsage` - - `class BetaManagedAgentsWorkflowRunErrorEvent` + Token usage for this model request. - A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. + - `processed_at: Time` - - `type: :"workflow_run.error"` + Timestamp when the model request completed. + + format: date-time + + - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` + + Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. + + - `type: :"span.outcome_evaluation_ongoing"` - `id: String` Unique identifier for this event. - - `error: BetaManagedAgentsWorkflowRunError` + - `iteration: Integer` - Why the run did not finish, or was not created. + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. + + format: int32 + + - `outcome_id: String` + + The `outc_` ID of the outcome being evaluated. - `processed_at: Time` - Timestamp when this event was processed. + Timestamp when this heartbeat was emitted. format: date-time - - `workflow_run_id: String` + - `class BetaManagedAgentsUserDefineOutcomeEvent` - Identifier of the run that met the error, or `null` when the error kept a run from being created. + Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. -#### Example + - `type: :"user.define_outcome"` -```ruby -require "anthropic" + - `id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Unique identifier for this event. -stream = anthropic.beta.sessions.threads.events.stream_events( - "sthr_011CZkZVWa6oJjw1rgXZpnBt", - session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" -) + - `description: String` -stream.each do |event| - puts(event) -end -``` + What the agent should produce. Copied from the input event. -##### Response (200) + - `max_iterations: Integer` -```json -{ - "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", - "content": [ - { - "text": "Where is my order #1234?", - "type": "text" - } - ], - "type": "user.message", - "processed_at": "2026-03-15T10:00:00Z" -} -``` + Evaluate-then-revise cycles before giving up. Default 3, max 20. -## Beta › Deployments + format: int32 -### Create Deployment + - `outcome_id: String` -`beta.deployments.create(**kwargs) -> BetaManagedAgentsDeployment` + Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. -**POST** `/v1/deployments` + - `processed_at: Time` -Create Deployment + Timestamp when the outcome was accepted. -#### Parameters + format: date-time -- `agent: String | BetaManagedAgentsAgentParams` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - Agent to deploy. Accepts the `agent` ID string, which pins the latest version, or an `agent` object with both id and version specified. The agent must exist and not be archived. + How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. - - `String = String` + - `class BetaManagedAgentsFileRubric` - - `class BetaManagedAgentsAgentParams` + Rubric referenced by a file uploaded via the Files API. - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + - `type: :file` - - `type: :agent` + - `file_id: String` - - `id: String` + ID of the rubric file. - The `agent` ID. + - `class BetaManagedAgentsTextRubric` - minLength: 1, maxLength: 128 + Rubric content provided inline as text. - - `version: Integer` + - `type: :text` - The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. + - `content: String` - format: int32 + Rubric content. Plain text or markdown — the grader treats it as freeform text. -- `environment_id: String` + - `class BetaManagedAgentsSessionDeletedEvent` - ID of the `environment` defining the container configuration for sessions created from this deployment. + Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. - minLength: 1, maxLength: 128 + - `type: :"session.deleted"` -- `initial_events: Array[BetaManagedAgentsDeploymentInitialEventParams]` + - `id: String` - Events to send to each session immediately after creation. At least 1, maximum 50. + Unique identifier for this event. - - `class BetaManagedAgentsUserMessageEventParams` + - `processed_at: Time` - Parameters for sending a user message to the session. + Timestamp when the session was deleted. - - `type: :"user.message"` + format: date-time - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `class BetaManagedAgentsSessionThreadStatusRunningEvent` - Array of content blocks for the user message. + A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `class BetaManagedAgentsTextBlock` + - `type: :"session.thread_status_running"` - Regular text content. + - `id: String` - - `type: :text` + Unique identifier for this event. - - `text: String` + - `agent_name: String` - The text content. + Name of the agent the thread runs. - minLength: 1 + - `processed_at: Time` - - `class BetaManagedAgentsImageBlock` + Timestamp of the status transition. - Image content specified directly as base64 data or as a reference via a URL. + format: date-time - - `type: :image` + - `session_thread_id: String` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + Public sthr_ ID of the thread that started running. - The source of the image data. + - `class BetaManagedAgentsSessionThreadStatusIdleEvent` - - `class BetaManagedAgentsBase64ImageSource` + A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - Base64-encoded image data. + - `type: :"session.thread_status_idle"` - - `type: :base64` + - `id: String` - - `data: String` + Unique identifier for this event. - Base64-encoded image data. + - `agent_name: String` - minLength: 1 + Name of the agent the thread runs. - - `media_type: String` + - `processed_at: Time` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Timestamp of the status transition. - minLength: 1 + format: date-time - - `class BetaManagedAgentsURLImageSource` + - `session_thread_id: String` - Image referenced by URL. + Public sthr_ ID of the thread that went idle. - - `type: :url` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - - `url: String` + Structured information about why the thread stopped. `null` when there is nothing more to report. - URL of the image to fetch. + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - minLength: 1 + - `class BetaManagedAgentsSessionEndTurn` - - `class BetaManagedAgentsFileImageSource` + The agent completed its turn naturally and is ready for the next user message. - Image referenced by file ID. + - `class BetaManagedAgentsSessionRequiresAction` - - `type: :file` + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - - `file_id: String` + - `class BetaManagedAgentsSessionRetriesExhausted` - ID of a previously uploaded file. + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - minLength: 1 + - `class BetaManagedAgentsSessionBudgetReached` - - `class BetaManagedAgentsDocumentBlock` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `class BetaManagedAgentsSessionRefusal` - - `type: :document` + The turn ended because the model's response was refused, for example by a safety classifier. - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` - The source of the document data. + A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `class BetaManagedAgentsBase64DocumentSource` + - `type: :"session.thread_status_terminated"` - Base64-encoded document data. + - `id: String` - - `type: :base64` + Unique identifier for this event. - - `data: String` + - `agent_name: String` - Base64-encoded document data. + Name of the agent the thread runs. - minLength: 1 + - `processed_at: Time` - - `media_type: String` + Timestamp of the status transition. - MIME type of the document (e.g., "application/pdf"). + format: date-time - minLength: 1 + - `session_thread_id: String` - - `class BetaManagedAgentsPlainTextDocumentSource` + Public sthr_ ID of the thread that terminated. - Plain text document content. + - `class BetaManagedAgentsUserToolResultEvent` - - `type: :text` + Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. - - `data: String` + - `type: :"user.tool_result"` - The plain text content. + - `id: String` - minLength: 1 + Unique identifier for this event. - - `media_type: :"text/plain"` + - `tool_use_id: String` - MIME type of the text content. Must be "text/plain". + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `class BetaManagedAgentsURLDocumentSource` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - Document referenced by URL. + The result content returned by the tool. - - `type: :url` + - `class BetaManagedAgentsTextBlock` - - `url: String` + Regular text content. - URL of the document to fetch. + - `class BetaManagedAgentsImageBlock` - minLength: 1 + Image content specified directly as base64 data or as a reference via a URL. - - `class BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsDocumentBlock` - Document referenced by file ID. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `type: :file` + - `class BetaManagedAgentsSearchResultBlock` - - `file_id: String` + A block containing a web search result. - ID of a previously uploaded file. + - `is_error: bool` - minLength: 1 + Whether the tool execution resulted in an error. - - `context: String` + - `processed_at: Time` - Additional context about the document for the model. + Timestamp when this result was processed. - - `title: String` + format: date-time - The title of the document. + - `session_thread_id: String` - - `class BetaManagedAgentsRedactedBlock` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - Placeholder for content withheld by Anthropic model policy. + - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` - - `type: :redacted` + A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `class BetaManagedAgentsUserDefineOutcomeEventParams` + - `type: :"session.thread_status_rescheduled"` - Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. + - `id: String` - - `type: :"user.define_outcome"` + Unique identifier for this event. - - `description: String` + - `agent_name: String` - What the agent should produce. This is the task specification. + Name of the agent the thread runs. - - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` + - `processed_at: Time` - How to grade the outcome. Text or file reference. + Timestamp of the status transition. - - `class BetaManagedAgentsFileRubricParams` + format: date-time - Rubric referenced by a file uploaded via the Files API. + - `session_thread_id: String` - - `type: :file` + Public sthr_ ID of the thread that is retrying. - - `file_id: String` + - `class BetaManagedAgentsSessionUpdatedEvent` - ID of the rubric file. + Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. - - `class BetaManagedAgentsTextRubricParams` + - `type: :"session.updated"` - Rubric content provided inline as text. + - `id: String` - - `type: :text` + Unique identifier for this event. - - `content: String` + - `processed_at: Time` - Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + Timestamp when the update was applied. - maxLength: 262144 + format: date-time - - `max_iterations: Integer` + - `agent: BetaManagedAgentsSessionAgent` - Eval→revision cycles before giving up. Default 3, max 20. + The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. - format: int32 + - `type: :agent` - - `class BetaManagedAgentsSystemMessageEventParams` + - `id: String` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. + - `description: String` - - `type: :"system.message"` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - System content blocks to append. Text-only. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `type: :text` + An AWS IAM role principal as returned in API responses. - - `text: String` + - `type: :aws_role` - The text content. + - `role_arn: String` - minLength: 1 + The IAM role's ARN. -- `name: String` + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - Human-readable name for the deployment. + The Anthropic-managed service account as returned in API responses. - minLength: 1, maxLength: 256 + - `type: :service_account` -- `budget: BetaManagedAgentsBudgetLimit` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Enforced spend ceiling stamped onto each session created from this deployment, copied at session-creation time. Omit to leave sessions uncapped. The deployment agent's model must have a public list price, or the request is rejected; a multiagent roster is re-validated in full when each fire copies the cap, which fails closed the same way. + - `type: :url` - - `type: :limit` + - `name: String` - - `max_list_cost: BetaMonetaryAmount` + - `url: String` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `model: BetaManagedAgentsModelConfig` - - `amount: String` + Model identifier and configuration. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `id: BetaManagedAgentsModel` - - `currency: BetaCurrency` + The model that will power your agent. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. -- `description: String` + - `:"claude-haiku-5-5"` - Description of what the deployment does. + Fastest model for high-volume, real-time tasks - maxLength: 2048 + - `:"claude-sonnet-5-5"` -- `metadata: Hash[Symbol, String]` + Efficient model for coding and agents - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `:"claude-opus-5-5"` -- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` + Powerful intelligence for coding, knowledge work, and long-running agents - Resources (e.g. repositories, files) to mount into each session's container. Maximum 500. + - `:"claude-fable-5-1"` - - `class BetaManagedAgentsGitHubRepositoryResourceParams` + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - Mount a GitHub repository into the session's container. + - `:"claude-sonnet-5"` - - `type: :github_repository` + Efficient model for coding and agents - - `url: String` + - `:"claude-fable-5"` - Github URL of the repository + Next generation of intelligence for the hardest knowledge work and coding problems - minLength: 1, maxLength: 2048 + - `:"claude-opus-5"` - - `authorization_token: String` + Powerful intelligence for long-running agents and coding - GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. + - `:"claude-opus-4-8"` - minLength: 1, maxLength: 4096 + Powerful intelligence for long-running agents and coding - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `:"claude-opus-4-7"` - Branch or commit to check out. Defaults to the repository's default branch. + Powerful intelligence for long-running agents and coding - - `class BetaManagedAgentsBranchCheckout` + - `:"claude-opus-4-6"` - - `type: :branch` + Powerful intelligence for long-running agents and coding - - `name: String` + - `:"claude-sonnet-4-6"` - Branch name to check out. + Best combination of speed and intelligence - minLength: 1, maxLength: 255 + - `:"claude-haiku-4-5"` - - `class BetaManagedAgentsCommitCheckout` + - `:"claude-haiku-4-5-20251001"` - - `type: :commit` + - `:"claude-opus-4-5"` - - `sha: String` + Powerful intelligence for long-running agents and coding - Full commit SHA to check out. + - `:"claude-opus-4-5-20251101"` - minLength: 7, maxLength: 64 + Powerful intelligence for long-running agents and coding - - `mount_path: String` + - `:"claude-sonnet-4-5"` - Mount path in the container. Defaults to `/workspace/`. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - minLength: 1, maxLength: 4096 + High-performance model for agents and coding - - `class BetaManagedAgentsFileResourceParams` + - `:"claude-sonnet-4-5-20250929"` - Mount a file uploaded via the Files API into the session. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `type: :file` + High-performance model for agents and coding - - `file_id: String` + - `String = String` - ID of a previously uploaded file. + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - minLength: 1, maxLength: 128 + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `mount_path: String` + - `class BetaManagedAgentsEffortLow` - Mount path in the container. Defaults to `/mnt/session/uploads/`. + Low effort. Favors latency over reasoning depth. - minLength: 1, maxLength: 4096 + - `type: :low` - - `class BetaManagedAgentsMemoryStoreResourceParam` + - `class BetaManagedAgentsEffortMedium` - Parameters for attaching a memory store to an agent session. + Medium effort. Balances latency and reasoning depth. - - `type: :memory_store` + - `type: :medium` - - `memory_store_id: String` + - `class BetaManagedAgentsEffortHigh` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + High effort. Favors reasoning depth. - - `access: :read_write | :read_only` + - `type: :high` - Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. + - `class BetaManagedAgentsEffortXhigh` - - `:read_write` + Extra-high effort. Not all models accept this level. - - `:read_only` + - `type: :xhigh` - - `instructions: String` + - `class BetaManagedAgentsEffortMax` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + Maximum effort. Favors reasoning depth over latency. - maxLength: 4096 + - `type: :max` -- `schedule: BetaManagedAgentsScheduleParams` + - `inference_geo: String` - Optional recurring cron schedule. When present, the deployment fires automatically. Both expression and timezone are required when schedule is set. + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. - - `type: :cron` + - `speed: :standard | :fast` - - `expression: String` + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `:standard` - minLength: 1, maxLength: 256 + - `:fast` - - `timezone: String` + - `multiagent: BetaManagedAgentsSessionMultiagent` - Required. IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). Validated against the IANA timezone database. + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. - minLength: 1 + - `class BetaManagedAgentsSessionMultiagentCoordinator` -- `vault_ids: Array[String]` + Resolved coordinator topology with full agent definitions for each roster member. - Vault IDs for stored credentials the agent can use during sessions created from this deployment. Maximum 50. + - `type: :coordinator` -- `betas: Array[AnthropicBeta]` (header parameter) + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Full `agent` definitions the coordinator may spawn as session threads. - - `String = String` + - `class BetaManagedAgentsSessionThreadAgent` - - `:"message-batches-2024-09-24"` + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. - - `:"prompt-caching-2024-07-31"` + - `type: :agent` - - `:"computer-use-2024-10-22"` + - `id: String` - - `:"computer-use-2025-01-24"` + - `description: String` - - `:"pdfs-2024-09-25"` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `:"token-counting-2024-11-01"` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `:"token-efficient-tools-2025-02-19"` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `:"output-128k-2025-02-19"` + - `type: :url` - - `:"files-api-2025-04-14"` + - `name: String` - - `:"mcp-client-2025-04-04"` + - `url: String` - - `:"mcp-client-2025-11-20"` + - `model: BetaManagedAgentsModelConfig` - - `:"dev-full-thinking-2025-05-14"` + Model identifier and configuration. - - `:"interleaved-thinking-2025-05-14"` + - `name: String` - - `:"code-execution-2025-05-22"` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsAnthropicSkill` - - `:"context-1m-2025-08-07"` + A resolved Anthropic-managed skill. - - `:"context-management-2025-06-27"` + - `type: :anthropic` - - `:"model-context-window-exceeded-2025-08-26"` + - `skill_id: String` - - `:"skills-2025-10-02"` + - `version: String` - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsCustomSkill` - - `:"output-300k-2026-03-24"` + A resolved user-created custom skill. - - `:"user-profiles-2026-03-24"` + - `type: :custom` - - `:"user-profiles-2026-08-18"` + - `skill_id: String` - - `:"user-profiles-2026-09-04"` + - `version: String` - - `:"advisor-tool-2026-03-01"` + - `system_: String` - - `:"managed-agents-2026-04-01"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsAgentToolset20260401` - - `:"dreaming-2026-04-21"` + - `type: :agent_toolset_20260401` - - `:"thinking-token-count-2026-05-13"` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsBashToolConfig` - - `:"server-side-fallback-2026-07-01"` + Configuration for the bash tool. - - `:"fallback-credit-2026-06-01"` + - `type: :bash` - - `:"fallback-credit-2026-07-01"` + - `enabled: bool` - - `:"agent-memory-2026-07-22"` + - `name: :bash` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"compact-2026-01-12"` + Permission policy for tool execution. - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"mcp-tunnels-2026-06-22"` + Tool calls are automatically approved without user confirmation. - - `:"structured-outputs-2025-11-13"` + - `type: :always_allow` - - `:"task-budgets-2026-03-13"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"thinking-display-updates-2026-08-18"` + Tool calls require user confirmation before execution. - - `:"ce-user-management-2026-07-13"` + - `type: :always_ask` - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsAutoPolicy` - - `:"thinking-binding-controls-2026-08-01"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :auto` - - `:"compact-2026-09-04"` + - `class BetaManagedAgentsEditToolConfig` - - `:"inline-tools-2026-09-15"` + Configuration for the edit tool. - - `:"mcp-client-2026-09-15"` + - `type: :edit` - - `:"ce-plugins-2026-09-01"` + - `enabled: bool` - - `:"spend-limit-reads-2026-09-26"` + - `name: :edit` - - `:"telemetry-destinations-2026-08-11"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` -- `workspace_id: String` (header parameter) + Permission policy for tool execution. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsAlwaysAllowPolicy` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Tool calls are automatically approved without user confirmation. -#### Returns + - `class BetaManagedAgentsAlwaysAskPolicy` -- `class BetaManagedAgentsDeployment` + Tool calls require user confirmation before execution. - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. + - `class BetaManagedAgentsAutoPolicy` - - `type: :deployment` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `id: String` + - `class BetaManagedAgentsReadToolConfig` - Unique identifier for this deployment. + Configuration for the read tool. - - `agent: BetaManagedAgentsAgentReference` + - `type: :read` - Reference to the agent this deployment runs, resolved to a concrete version. + - `enabled: bool` - - `type: :agent` + - `name: :read` - - `id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `version: Integer` + Permission policy for tool execution. - format: int32 + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `archived_at: Time` + Tool calls are automatically approved without user confirmation. - Time the deployment was archived. Null if not archived. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: date-time + Tool calls require user confirmation before execution. - - `created_at: Time` + - `class BetaManagedAgentsAutoPolicy` - Time the deployment was created. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - format: date-time + - `class BetaManagedAgentsWriteToolConfig` - - `description: String` + Configuration for the write tool. - Description of what the deployment does. + - `type: :write` - - `environment_id: String` + - `enabled: bool` - ID of the `environment` where sessions run. + - `name: :write` - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Events sent to each session immediately after creation. + Permission policy for tool execution. - - `class BetaManagedAgentsDeploymentUserMessageEvent` + - `class BetaManagedAgentsAlwaysAllowPolicy` - A user message sent to the session. + Tool calls are automatically approved without user confirmation. - - `type: :"user.message"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Tool calls require user confirmation before execution. - Array of content blocks for the user message. + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsTextBlock` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Regular text content. + - `class BetaManagedAgentsGlobToolConfig` - - `type: :text` + Configuration for the glob tool. - - `text: String` + - `type: :glob` - The text content. + - `enabled: bool` - minLength: 1 + - `name: :glob` - - `class BetaManagedAgentsImageBlock` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Image content specified directly as base64 data or as a reference via a URL. + Permission policy for tool execution. - - `type: :image` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + Tool calls are automatically approved without user confirmation. - The source of the image data. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsBase64ImageSource` + Tool calls require user confirmation before execution. - Base64-encoded image data. + - `class BetaManagedAgentsAutoPolicy` - - `type: :base64` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `data: String` + - `class BetaManagedAgentsGrepToolConfig` - Base64-encoded image data. + Configuration for the grep tool. - minLength: 1 + - `type: :grep` - - `media_type: String` + - `enabled: bool` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `name: :grep` - minLength: 1 + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsURLImageSource` + Permission policy for tool execution. - Image referenced by URL. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :url` + Tool calls are automatically approved without user confirmation. - - `url: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - URL of the image to fetch. + Tool calls require user confirmation before execution. - minLength: 1 + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsFileImageSource` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Image referenced by file ID. + - `class BetaManagedAgentsWebFetchToolConfig` - - `type: :file` + Configuration for the web_fetch tool. - - `file_id: String` + - `type: :web_fetch` - ID of a previously uploaded file. + - `enabled: bool` - minLength: 1 + - `name: :web_fetch` - - `class BetaManagedAgentsDocumentBlock` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Permission policy for tool execution. - - `type: :document` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + Tool calls are automatically approved without user confirmation. - The source of the document data. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsBase64DocumentSource` + Tool calls require user confirmation before execution. - Base64-encoded document data. + - `class BetaManagedAgentsAutoPolicy` - - `type: :base64` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `data: String` + - `url_sources: BetaManagedAgentsWebFetchURLSources` - Base64-encoded document data. + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - minLength: 1 + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `media_type: String` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - MIME type of the document (e.g., "application/pdf"). + - `class BetaManagedAgentsWebFetchURLSourceAll` - minLength: 1 + Every URL from this source may be fetched. This is the default. - - `class BetaManagedAgentsPlainTextDocumentSource` + - `type: :all` - Plain text document content. + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `type: :text` + This source contributes no URLs that may be fetched. - - `data: String` + - `type: :none` - The plain text content. + - `class BetaManagedAgentsWebFetchURLSourceOnly` - minLength: 1 + Only the named tools' results contribute URLs that may be fetched. - - `media_type: :"text/plain"` + - `type: :only` - MIME type of the text content. Must be "text/plain". + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsURLDocumentSource` + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - Document referenced by URL. + - `type: :tool_reference` - - `type: :url` + Must be "tool_reference". - - `url: String` + - `name: String` - URL of the document to fetch. + Name of the tool. Compared exactly, so upper and lower case letters are different. - minLength: 1 + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - Document referenced by file ID. + Every tool's results contribute URLs that may be fetched, except the named tools' results. - - `type: :file` + - `type: :except` - - `file_id: String` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - ID of a previously uploaded file. + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - minLength: 1 + - `type: :tool_reference` - - `context: String` + Must be "tool_reference". - Additional context about the document for the model. + - `name: String` - - `title: String` + Name of the tool. Compared exactly, so upper and lower case letters are different. - The title of the document. + minLength: 1, maxLength: 128 - - `class BetaManagedAgentsRedactedBlock` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Placeholder for content withheld by Anthropic model policy. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `type: :redacted` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - An outcome the agent should work toward. The agent begins work on receipt. + - `class BetaManagedAgentsWebFetchURLSourceAll` - - `type: :"user.define_outcome"` + Every URL from this source may be fetched. This is the default. - - `description: String` + - `class BetaManagedAgentsWebFetchURLSourceNone` - What the agent should produce. This is the task specification. + This source contributes no URLs that may be fetched. - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `allowed_domains: Array[String]` - How to grade the outcome. Text or file reference. + - `blocked_domains: Array[String]` - - `class BetaManagedAgentsFileRubric` + - `max_content_tokens: Integer` - Rubric referenced by a file uploaded via the Files API. + format: int32 - - `type: :file` + - `class BetaManagedAgentsWebSearchToolConfig` - - `file_id: String` + Configuration for the web_search tool. - ID of the rubric file. + - `type: :web_search` - - `class BetaManagedAgentsTextRubric` + - `enabled: bool` - Rubric content provided inline as text. + - `name: :web_search` - - `type: :text` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `content: String` + Permission policy for tool execution. - Rubric content. Plain text or markdown — the grader treats it as freeform text. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `max_iterations: Integer` + Tool calls are automatically approved without user confirmation. - Eval→revision cycles before giving up. Default 3, max 20. + - `class BetaManagedAgentsAlwaysAskPolicy` - format: int32 + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + - `class BetaManagedAgentsAutoPolicy` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :"system.message"` + - `allowed_domains: Array[String]` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `blocked_domains: Array[String]` - System content blocks to append. Text-only. + - `user_location: BetaManagedAgentsUserLocation` - - `type: :text` + Approximate user location for search result localization. - - `text: String` + - `type: :approximate` - The text content. + Location precision. Only "approximate" is supported. - minLength: 1 + - `city: String` - - `metadata: Hash[Symbol, String]` + City name. - Arbitrary key-value metadata. Maximum 16 pairs. + minLength: 1, maxLength: 255 - - `name: String` + - `country: String` - Human-readable name. + Two-letter ISO 3166-1 country code, uppercase. - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` + - `region: String` - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. + Region or state name. - - `class BetaManagedAgentsManualDeploymentPausedReason` + minLength: 1, maxLength: 255 - The caller invoked the pause endpoint on the deployment. + - `timezone: String` - - `type: :manual` + IANA timezone identifier, e.g. "America/Los_Angeles". - - `class BetaManagedAgentsErrorDeploymentPausedReason` + minLength: 1, maxLength: 255 - A scheduled fire recorded a failed run whose error auto-pauses the deployment. + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - - `type: :error` + Resolved default configuration for agent tools. - - `error: BetaManagedAgentsDeploymentPausedReasonError` + - `enabled: bool` - The failed run's error. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` + Permission policy for tool execution. - The deployment's environment was archived. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :environment_archived_error` + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsAlwaysAskPolicy` - The deployment's agent was archived. + Tool calls require user confirmation before execution. - - `type: :agent_archived_error` + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The deployment's environment no longer exists. + - `class BetaManagedAgentsMCPToolset` - - `type: :environment_not_found_error` + - `type: :mcp_toolset` - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - A vault referenced by the deployment no longer exists. + - `enabled: bool` - - `type: :vault_not_found_error` + - `name: String` - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A file resource referenced by the deployment no longer exists. + Permission policy for tool execution. - - `type: :file_not_found_error` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + Tool calls are automatically approved without user confirmation. - A referenced resource no longer exists and its kind was not reported. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `type: :session_resource_not_found_error` + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsAutoPolicy` - The deployment's workspace was archived. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :workspace_archived_error` + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + Resolved default configuration for all tools from an MCP server. - The deployment's organization is disabled. + - `enabled: bool` - - `type: :organization_disabled_error` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + Permission policy for tool execution. - A memory store referenced by the deployment is archived. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :memory_store_archived_error` + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + - `class BetaManagedAgentsAlwaysAskPolicy` - A skill referenced by the deployment's agent no longer exists. + Tool calls require user confirmation before execution. - - `type: :skill_not_found_error` + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - A vault referenced by the deployment is archived. + - `mcp_server_name: String` - - `type: :vault_archived_error` + - `class BetaManagedAgentsCustomTool` - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + A custom tool as returned in API responses. - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + - `type: :custom` - - `type: :unknown_error` + - `description: String` - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - The deployment configures resources, but its environment is self-hosted and cannot mount them. + JSON Schema for custom tool input parameters. - - `type: :self_hosted_resources_unsupported_error` + - `type: :object` - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + - `properties: Hash[Symbol, untyped]` - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `required: Array[String]` - - `type: :mcp_egress_blocked_error` + - `name: String` - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + - `version: Integer` - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + format: int32 - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + - `class BetaManagedAgentsAdvisor` - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `type: :github_repository` + - `type: :advisor` - - `url: String` + - `model: String` - Github URL of the repository + The advisor model id. - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `class BetaManagedAgentsSessionMultiagent20261001` - Branch or commit to check out. Defaults to the repository's default branch. + Resolved multiagent configuration with three members, as copied to the `session` at creation. - - `class BetaManagedAgentsBranchCheckout` + - `type: :multiagent_20261001` - - `type: :branch` + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `name: String` + Whether the session's primary thread can consult an advisor model. - Branch name to check out. + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - minLength: 1, maxLength: 255 + The session's primary thread can consult `model` mid-turn. - - `class BetaManagedAgentsCommitCheckout` + - `type: :enabled` - - `type: :commit` + - `model: String` - - `sha: String` + The advisor model id. - Full commit SHA to check out. + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - minLength: 7, maxLength: 64 + The agent has no advisor. - - `mount_path: String` + - `type: :disabled` - Mount path in the container. Defaults to `/workspace/`. + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - - `class BetaManagedAgentsFileResourceConfig` + Whether the agent can spawn session threads. - A file mounted into each session's container. + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - - `type: :file` + The agent can spawn session threads. - - `file_id: String` + - `type: :enabled` - ID of a previously uploaded file. + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - - `mount_path: String` + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `class BetaManagedAgentsMemoryStoreResourceConfig` + The agent can define inline agents. - A memory store attached to each session created from this deployment. + - `type: :enabled` - - `type: :memory_store` + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - - `memory_store_id: String` + The agent cannot define inline agents. - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `type: :disabled` - - `access: :read_write | :read_only` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - - `:read_write` + - `type: :agent` - - `:read_only` + - `id: String` - - `instructions: String` + - `description: String` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `schedule: BetaManagedAgentsSchedule` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `type: :cron` + - `model: BetaManagedAgentsModelConfig` - - `expression: String` + Model identifier and configuration. - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `name: String` - minLength: 1, maxLength: 256 + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `timezone: String` + - `system_: String` - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - minLength: 1 + - `version: Integer` - - `last_run_at: Time` + format: int32 - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - format: date-time + The agent cannot spawn session threads. - - `upcoming_runs_at: Array[Time]` + - `type: :disabled` - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - - `status: BetaManagedAgentsDeploymentStatus` + Whether the agent can start workflow runs. - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - - `:active` + The agent can start workflow runs. - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + - `type: :enabled` - - `:paused` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + Whether a run's plan can define inline agents, which are not saved. - - `updated_at: Time` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - Time the deployment was last updated. + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - format: date-time + - `type: :agent` - - `vault_ids: Array[String]` + - `id: String` - Vault IDs supplying stored credentials for sessions created from this deployment. + - `description: String` - - `budget: BetaManagedAgentsBudgetLimit` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `type: :limit` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `max_list_cost: BetaMonetaryAmount` + - `model: BetaManagedAgentsModelConfig` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + Model identifier and configuration. - - `amount: String` + - `name: String` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `currency: BetaCurrency` + - `system_: String` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` -#### Example + - `version: Integer` -```ruby -require "anthropic" + format: int32 -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` -beta_managed_agents_deployment = anthropic.beta.deployments.create( - agent: "string", - environment_id: "x", - initial_events: [{content: [{text: "Where is my order #1234?", type: :text}], type: :"user.message"}], - name: "x" -) + The agent cannot start workflow runs. -puts(beta_managed_agents_deployment) -``` + - `type: :disabled` -##### Response (200) + - `name: String` -```json -{ - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } -} -``` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` -### List Deployments + - `class BetaManagedAgentsAnthropicSkill` -`beta.deployments.list(**kwargs) -> PageCursor` + A resolved Anthropic-managed skill. -**GET** `/v1/deployments` + - `class BetaManagedAgentsCustomSkill` -List Deployments + A resolved user-created custom skill. -#### Parameters + - `system_: String` -- `agent_id: String` (query parameter) + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - Filter by agent ID. + - `class BetaManagedAgentsAgentToolset20260401` -- `created_at_gte: Time` (query parameter) + - `class BetaManagedAgentsMCPToolset` - Return deployments created at or after this time (inclusive). + - `class BetaManagedAgentsCustomTool` - format: date-time + A custom tool as returned in API responses. -- `created_at_lte: Time` (query parameter) + - `version: Integer` - Return deployments created at or before this time (inclusive). + format: int32 - format: date-time + - `budget: BetaManagedAgentsBudgetLimit` -- `include_archived: bool` (query parameter) + The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. - When true, includes archived deployments. Default: false (exclude archived). + - `type: :limit` -- `limit: Integer` (query parameter) + - `max_list_cost: BetaMonetaryAmount` - Maximum results per page. Default 20, maximum 100. + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - format: int32 + - `amount: String` -- `page: String` (query parameter) + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - Opaque pagination cursor. + - `currency: BetaCurrency` -- `status: BetaManagedAgentsDeploymentStatus` (query parameter) + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - Filter by status: `active` or `paused`. Omit for both. To include archived deployments, use `include_archived` instead; the two cannot be combined. + - `metadata: Hash[Symbol, String]` - - `:active` + The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + - `title: String` - - `:paused` + The session's new title. Present only when the update changed it. - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + - `class BetaManagedAgentsSystemMessageEvent` -- `betas: Array[AnthropicBeta]` (header parameter) + A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `type: :"system.message"` - - `String = String` + - `id: String` - - `:"message-batches-2024-09-24"` + Unique identifier for this event. - - `:"prompt-caching-2024-07-31"` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `:"computer-use-2024-10-22"` + System content blocks. Text-only. - - `:"computer-use-2025-01-24"` + - `type: :text` - - `:"pdfs-2024-09-25"` + - `text: String` - - `:"token-counting-2024-11-01"` + The text content. - - `:"token-efficient-tools-2025-02-19"` + minLength: 1 - - `:"output-128k-2025-02-19"` + - `processed_at: Time` - - `:"files-api-2025-04-14"` + Timestamp when this system message was processed. - - `:"mcp-client-2025-04-04"` + format: date-time - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsSessionUsageEvent` - - `:"dev-full-thinking-2025-05-14"` + Periodic snapshot of the session's cumulative usage and tracked list cost. - - `:"interleaved-thinking-2025-05-14"` + - `type: :"session.usage"` - - `:"code-execution-2025-05-22"` + - `id: String` - - `:"extended-cache-ttl-2025-04-11"` + Unique identifier for this event. - - `:"context-1m-2025-08-07"` + - `processed_at: Time` - - `:"context-management-2025-06-27"` + Timestamp when the snapshot was taken. - - `:"model-context-window-exceeded-2025-08-26"` + format: date-time - - `:"skills-2025-10-02"` + - `usage: BetaManagedAgentsSessionUsageSnapshot` - - `:"fast-mode-2026-02-01"` + The session's cumulative usage at the snapshot time. - - `:"output-300k-2026-03-24"` + - `active_seconds: Float` - - `:"user-profiles-2026-03-24"` + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. - - `:"user-profiles-2026-08-18"` + format: double - - `:"user-profiles-2026-09-04"` + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `:"advisor-tool-2026-03-01"` + Tokens used to create prompt cache entries, broken down by cache TTL. - - `:"managed-agents-2026-04-01"` + - `ephemeral_1h_input_tokens: Integer` - - `:"cache-diagnosis-2026-04-07"` + Tokens used to create 1-hour ephemeral cache entries. - - `:"dreaming-2026-04-21"` + format: int32 - - `:"thinking-token-count-2026-05-13"` + - `ephemeral_5m_input_tokens: Integer` - - `:"server-side-fallback-2026-06-01"` + Tokens used to create 5-minute ephemeral cache entries. - - `:"server-side-fallback-2026-07-01"` + format: int32 - - `:"fallback-credit-2026-06-01"` + - `cache_read_input_tokens: Integer` - - `:"fallback-credit-2026-07-01"` + Total tokens read from prompt cache. - - `:"agent-memory-2026-07-22"` + format: int32 - - `:"mid-conversation-tool-changes-2026-07-01"` + - `input_tokens: Integer` - - `:"compact-2026-01-12"` + Total input tokens consumed across all turns. - - `:"computer-use-2025-11-24"` + format: int32 - - `:"mcp-tunnels-2026-06-22"` + - `list_cost: BetaMonetaryAmount` - - `:"structured-outputs-2025-11-13"` + Cumulative list cost of the session across all turns, priced at public list rates. - - `:"task-budgets-2026-03-13"` + - `output_tokens: Integer` - - `:"thinking-display-updates-2026-08-18"` + Total output tokens generated across all turns. - - `:"ce-user-management-2026-07-13"` + format: int32 - - `:"mid-conversation-output-config-2026-07-01"` + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `:"thinking-binding-controls-2026-08-01"` + Cumulative server-executed tool usage across all turns. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `web_fetch_requests: Integer` - - `:"compact-2026-09-04"` + Number of server-executed web fetch requests. - - `:"inline-tools-2026-09-15"` + format: int32 - - `:"mcp-client-2026-09-15"` + - `web_search_requests: Integer` - - `:"ce-plugins-2026-09-01"` + Number of server-executed web search requests. - - `:"spend-limit-reads-2026-09-26"` + format: int32 - - `:"telemetry-destinations-2026-08-11"` + - `budget: BetaManagedAgentsBudgetLimit` -- `workspace_id: String` (header parameter) + The session's configured budget at the snapshot time, or null when the session has no budget. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsWorkflowRunCreatedEvent` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. -#### Returns + - `type: :"workflow_run.created"` -- `class BetaManagedAgentsDeployment` + - `id: String` - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. + Unique identifier for this event. - - `type: :deployment` + - `description: String` - - `id: String` + Description that the agent gave the run, passed on as written, or `null` if it gave none. - Unique identifier for this deployment. + - `name: String` - - `agent: BetaManagedAgentsAgentReference` + Name that the agent gave the run, passed on as written, or a name that the server assigned. - Reference to the agent this deployment runs, resolved to a concrete version. + - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` - - `type: :agent` + The phases that the run's plan declares, in the plan's order. Can be empty. - - `id: String` + - `id: String` - - `version: Integer` + Unique identifier for the phase. - format: int32 + - `description: String` - - `archived_at: Time` + Description that the agent gave the phase, passed on as written, or `null` if it gave none. - Time the deployment was archived. Null if not archived. + - `name: String` - format: date-time + Name that the agent gave the phase, passed on as written. - - `created_at: Time` + - `processed_at: Time` - Time the deployment was created. + Timestamp when this event was processed. - format: date-time + format: date-time - - `description: String` + - `workflow_run_id: String` - Description of what the deployment does. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `environment_id: String` + - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` - ID of the `environment` where sessions run. + A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + - `type: :"workflow_run.status_ended"` - Events sent to each session immediately after creation. + - `id: String` - - `class BetaManagedAgentsDeploymentUserMessageEvent` + Unique identifier for this event. - A user message sent to the session. + - `processed_at: Time` - - `type: :"user.message"` + Timestamp when this event was processed. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + format: date-time - Array of content blocks for the user message. + - `result: BetaManagedAgentsWorkflowRunResult` - - `class BetaManagedAgentsTextBlock` + How the run ended. - Regular text content. + - `class BetaManagedAgentsWorkflowRunResultCompleted` - - `type: :text` + The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. - - `text: String` + - `type: :completed` - The text content. + - `class BetaManagedAgentsWorkflowRunResultError` - minLength: 1 + The run failed or reached its time limit. - - `class BetaManagedAgentsImageBlock` + - `type: :error` - Image content specified directly as base64 data or as a reference via a URL. + - `error: BetaManagedAgentsWorkflowRunError` - - `type: :image` + Why the run did not finish. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `class BetaManagedAgentsTimeoutWorkflowRunError` - The source of the image data. + The run reached its time limit. - - `class BetaManagedAgentsBase64ImageSource` + - `type: :timeout_error` - Base64-encoded image data. + - `message: String` - - `type: :base64` + Short explanation written by the server. It never contains content from the run or its agents. - - `data: String` + - `class BetaManagedAgentsProgramWorkflowRunError` - Base64-encoded image data. + The plan, a program that the agent wrote, failed, or the server refused it. - minLength: 1 + - `type: :program_error` - - `media_type: String` + - `message: String` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Short explanation written by the server. It never contains content from the run or its agents. - minLength: 1 + - `class BetaManagedAgentsUnknownWorkflowRunError` - - `class BetaManagedAgentsURLImageSource` + A failure that has no type of its own. - Image referenced by URL. + - `type: :unknown_error` - - `type: :url` + - `message: String` - - `url: String` + Short explanation written by the server. It never contains content from the run or its agents. - URL of the image to fetch. + - `class BetaManagedAgentsThreadLimitWorkflowRunError` - minLength: 1 + The run exceeded the limit on the number of threads that a run can create. - - `class BetaManagedAgentsFileImageSource` + - `type: :thread_limit_error` - Image referenced by file ID. + - `message: String` - - `type: :file` + Short explanation written by the server. It never contains content from the run or its agents. - - `file_id: String` + - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` - ID of a previously uploaded file. + No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. - minLength: 1 + - `type: :max_workflow_runs_error` - - `class BetaManagedAgentsDocumentBlock` + - `message: String` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Short explanation written by the server. It never contains content from the run or its agents. - - `type: :document` + - `class BetaManagedAgentsWorkflowRunResultStopped` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + The agent stopped the run. - The source of the document data. + - `type: :stopped` - - `class BetaManagedAgentsBase64DocumentSource` + - `workflow_run_id: String` - Base64-encoded document data. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `type: :base64` + - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` - - `data: String` + A workflow run's plan entered a phase. - Base64-encoded document data. + - `type: :"workflow_run.phase_started"` - minLength: 1 + - `id: String` - - `media_type: String` + Unique identifier for this event. - MIME type of the document (e.g., "application/pdf"). + - `processed_at: Time` - minLength: 1 + Timestamp when this event was processed. - - `class BetaManagedAgentsPlainTextDocumentSource` + format: date-time - Plain text document content. + - `workflow_run_id: String` - - `type: :text` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `data: String` + - `workflow_run_phase_id: String` - The plain text content. + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - minLength: 1 + - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` - - `media_type: :"text/plain"` + A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. - MIME type of the text content. Must be "text/plain". + - `type: :"workflow_run.phase_ended"` - - `class BetaManagedAgentsURLDocumentSource` + - `id: String` - Document referenced by URL. + Unique identifier for this event. - - `type: :url` + - `phase_started_id: String` - - `url: String` + Identifier of the `workflow_run.phase_started` event that opened the phase. - URL of the document to fetch. + - `processed_at: Time` - minLength: 1 + Timestamp when this event was processed. - - `class BetaManagedAgentsFileDocumentSource` + format: date-time - Document referenced by file ID. + - `workflow_run_id: String` - - `type: :file` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `file_id: String` + - `workflow_run_phase_id: String` - ID of a previously uploaded file. + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - minLength: 1 + - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` - - `context: String` + A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. - Additional context about the document for the model. + - `type: :"workflow_run.status_running"` - - `title: String` + - `id: String` - The title of the document. + Unique identifier for this event. - - `class BetaManagedAgentsRedactedBlock` + - `processed_at: Time` - Placeholder for content withheld by Anthropic model policy. + Timestamp when this event was processed. - - `type: :redacted` + format: date-time - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + - `workflow_run_id: String` - An outcome the agent should work toward. The agent begins work on receipt. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `type: :"user.define_outcome"` + - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` - - `description: String` + A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. - What the agent should produce. This is the task specification. + - `type: :"workflow_run.status_idle"` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `id: String` - How to grade the outcome. Text or file reference. + Unique identifier for this event. - - `class BetaManagedAgentsFileRubric` + - `processed_at: Time` - Rubric referenced by a file uploaded via the Files API. + Timestamp when this event was processed. - - `type: :file` + format: date-time - - `file_id: String` + - `workflow_run_id: String` - ID of the rubric file. + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `class BetaManagedAgentsTextRubric` + - `class BetaManagedAgentsWorkflowRunErrorEvent` - Rubric content provided inline as text. + A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. - - `type: :text` + - `type: :"workflow_run.error"` - - `content: String` + - `id: String` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + Unique identifier for this event. - - `max_iterations: Integer` + - `error: BetaManagedAgentsWorkflowRunError` - Eval→revision cycles before giving up. Default 3, max 20. + Why the run did not finish, or was not created. - format: int32 + - `processed_at: Time` - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + Timestamp when this event was processed. - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + format: date-time - - `type: :"system.message"` + - `workflow_run_id: String` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + Identifier of the run that met the error, or `null` when the error kept a run from being created. - System content blocks to append. Text-only. +#### Example - - `type: :text` +```ruby +require "anthropic" - - `text: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The text content. +page = anthropic.beta.sessions.threads.events.list( + "sthr_011CZkZVWa6oJjw1rgXZpnBt", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) - minLength: 1 +puts(page) +``` - - `metadata: Hash[Symbol, String]` +##### Response (200) - Arbitrary key-value metadata. Maximum 16 pairs. +```json +{ + "data": [ + { + "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", + "content": [ + { + "text": "Where is my order #1234?", + "type": "text" + } + ], + "type": "user.message", + "processed_at": "2026-03-15T10:00:00Z" + }, + { + "id": "sevt_011CZkZHPq1jCdq5mbRTjiVn", + "content": [ + { + "text": "Let me look up order #1234 for you.", + "type": "text" + } + ], + "processed_at": "2026-03-15T10:00:00Z", + "type": "agent.message" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` - - `name: String` +### Stream Session Thread Events - Human-readable name. +`beta.sessions.threads.events.stream_events(thread_id, **kwargs) -> Stream` - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` +**GET** `/v1/sessions/{session_id}/threads/{thread_id}/stream` - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. +Stream Session Thread Events - - `class BetaManagedAgentsManualDeploymentPausedReason` +#### Parameters - The caller invoked the pause endpoint on the deployment. +- `session_id: String` (path parameter) - - `type: :manual` +- `thread_id: String` (path parameter) - - `class BetaManagedAgentsErrorDeploymentPausedReason` +- `event_deltas: Array[BetaManagedAgentsDeltaType]` (query parameter) - A scheduled fire recorded a failed run whose error auto-pauses the deployment. + When set, this connection also receives streaming deltas (`event_start`, `event_delta`) while an event is being produced, before the event itself arrives. Deltas are best-effort; when the final event is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no final event — its terminal `span.model_request_end` closes the preview. Accepts one or more event types to preview and may be repeated: `agent.message` streams `content_delta` fragments; `agent.thinking` is start-only — a signal that the agent has begun extended thinking, concluded by the `agent.thinking` event itself. Only previews of the requested event types are sent. - - `type: :error` + - `:"agent.message"` - - `error: BetaManagedAgentsDeploymentPausedReasonError` + - `:"agent.thinking"` - The failed run's error. +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - The deployment's environment was archived. + - `String = String` - - `type: :environment_archived_error` + - `:"message-batches-2024-09-24"` - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` + - `:"prompt-caching-2024-07-31"` - The deployment's agent was archived. + - `:"computer-use-2024-10-22"` - - `type: :agent_archived_error` + - `:"computer-use-2025-01-24"` - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + - `:"pdfs-2024-09-25"` - The deployment's environment no longer exists. + - `:"token-counting-2024-11-01"` - - `type: :environment_not_found_error` + - `:"token-efficient-tools-2025-02-19"` - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + - `:"output-128k-2025-02-19"` - A vault referenced by the deployment no longer exists. + - `:"files-api-2025-04-14"` - - `type: :vault_not_found_error` + - `:"mcp-client-2025-04-04"` - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + - `:"mcp-client-2025-11-20"` - A file resource referenced by the deployment no longer exists. + - `:"dev-full-thinking-2025-05-14"` - - `type: :file_not_found_error` + - `:"interleaved-thinking-2025-05-14"` - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + - `:"code-execution-2025-05-22"` - A referenced resource no longer exists and its kind was not reported. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :session_resource_not_found_error` + - `:"context-1m-2025-08-07"` - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + - `:"context-management-2025-06-27"` - The deployment's workspace was archived. + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :workspace_archived_error` + - `:"skills-2025-10-02"` - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + - `:"fast-mode-2026-02-01"` - The deployment's organization is disabled. + - `:"output-300k-2026-03-24"` - - `type: :organization_disabled_error` + - `:"user-profiles-2026-03-24"` - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + - `:"user-profiles-2026-08-18"` - A memory store referenced by the deployment is archived. + - `:"user-profiles-2026-09-04"` - - `type: :memory_store_archived_error` + - `:"advisor-tool-2026-03-01"` - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + - `:"managed-agents-2026-04-01"` - A skill referenced by the deployment's agent no longer exists. + - `:"cache-diagnosis-2026-04-07"` - - `type: :skill_not_found_error` + - `:"dreaming-2026-04-21"` - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + - `:"thinking-token-count-2026-05-13"` - A vault referenced by the deployment is archived. + - `:"server-side-fallback-2026-06-01"` - - `type: :vault_archived_error` + - `:"server-side-fallback-2026-07-01"` - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + - `:"fallback-credit-2026-06-01"` - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + - `:"fallback-credit-2026-07-01"` - - `type: :unknown_error` + - `:"agent-memory-2026-07-22"` - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + - `:"mid-conversation-tool-changes-2026-07-01"` - The deployment configures resources, but its environment is self-hosted and cannot mount them. + - `:"compact-2026-01-12"` - - `type: :self_hosted_resources_unsupported_error` + - `:"computer-use-2025-11-24"` - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + - `:"mcp-tunnels-2026-06-22"` - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `:"structured-outputs-2025-11-13"` - - `type: :mcp_egress_blocked_error` + - `:"task-budgets-2026-03-13"` - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + - `:"thinking-display-updates-2026-08-18"` - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + - `:"ce-user-management-2026-07-13"` - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + - `:"mid-conversation-output-config-2026-07-01"` - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + - `:"thinking-binding-controls-2026-08-01"` - - `type: :github_repository` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `url: String` + - `:"compact-2026-09-04"` - Github URL of the repository + - `:"inline-tools-2026-09-15"` - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `:"mcp-client-2026-09-15"` - Branch or commit to check out. Defaults to the repository's default branch. + - `:"ce-plugins-2026-09-01"` - - `class BetaManagedAgentsBranchCheckout` + - `:"spend-limit-reads-2026-09-26"` - - `type: :branch` + - `:"telemetry-destinations-2026-08-11"` - - `name: String` + - `:"webhooks-2026-10-07"` - Branch name to check out. +- `workspace_id: String` (header parameter) - minLength: 1, maxLength: 255 + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `class BetaManagedAgentsCommitCheckout` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :commit` +#### Returns - - `sha: String` +- `type BetaManagedAgentsStreamSessionThreadEvents = BetaManagedAgentsUserMessageEvent | BetaManagedAgentsUserInterruptEvent | BetaManagedAgentsUserToolConfirmationEvent | 41 more` - Full commit SHA to check out. + Server-sent event in a single thread's stream. - minLength: 7, maxLength: 64 + - `class BetaManagedAgentsUserMessageEvent` - - `mount_path: String` + A user message event in the session conversation. - Mount path in the container. Defaults to `/workspace/`. + - `type: :"user.message"` - - `class BetaManagedAgentsFileResourceConfig` + - `id: String` - A file mounted into each session's container. + Unique identifier for this event. - - `type: :file` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `file_id: String` + Array of content blocks comprising the user message. - ID of a previously uploaded file. + - `class BetaManagedAgentsTextBlock` - - `mount_path: String` + Regular text content. - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `type: :text` - - `class BetaManagedAgentsMemoryStoreResourceConfig` + - `text: String` - A memory store attached to each session created from this deployment. + The text content. - - `type: :memory_store` + minLength: 1 - - `memory_store_id: String` + - `class BetaManagedAgentsImageBlock` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + Image content specified directly as base64 data or as a reference via a URL. - - `access: :read_write | :read_only` + - `type: :image` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `:read_write` + The source of the image data. - - `:read_only` + - `class BetaManagedAgentsBase64ImageSource` - - `instructions: String` + Base64-encoded image data. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `type: :base64` - - `schedule: BetaManagedAgentsSchedule` + - `data: String` - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + Base64-encoded image data. - - `type: :cron` + minLength: 1 - - `expression: String` + - `media_type: String` - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - minLength: 1, maxLength: 256 + minLength: 1 - - `timezone: String` + - `class BetaManagedAgentsURLImageSource` - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + Image referenced by URL. - minLength: 1 + - `type: :url` - - `last_run_at: Time` + - `url: String` - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + URL of the image to fetch. - format: date-time + minLength: 1 - - `upcoming_runs_at: Array[Time]` + - `class BetaManagedAgentsFileImageSource` - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + Image referenced by file ID. - - `status: BetaManagedAgentsDeploymentStatus` + - `type: :file` - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + - `file_id: String` - - `:active` + ID of a previously uploaded file. - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + minLength: 1 - - `:paused` + - `class BetaManagedAgentsDocumentBlock` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `updated_at: Time` + - `type: :document` - Time the deployment was last updated. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - format: date-time + The source of the document data. - - `vault_ids: Array[String]` + - `class BetaManagedAgentsBase64DocumentSource` - Vault IDs supplying stored credentials for sessions created from this deployment. + Base64-encoded document data. - - `budget: BetaManagedAgentsBudgetLimit` + - `type: :base64` - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + - `data: String` - - `type: :limit` + Base64-encoded document data. - - `max_list_cost: BetaMonetaryAmount` + minLength: 1 - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `media_type: String` - - `amount: String` + MIME type of the document (e.g., "application/pdf"). - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + minLength: 1 - - `currency: BetaCurrency` + - `class BetaManagedAgentsPlainTextDocumentSource` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + Plain text document content. -#### Example + - `type: :text` -```ruby -require "anthropic" + - `data: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The plain text content. -page = anthropic.beta.deployments.list + minLength: 1 -puts(page) -``` + - `media_type: :"text/plain"` -##### Response (200) + MIME type of the text content. Must be "text/plain". -```json -{ - "data": [ - { - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + - `class BetaManagedAgentsURLDocumentSource` -### Get Deployment + Document referenced by URL. -`beta.deployments.retrieve(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` + - `type: :url` -**GET** `/v1/deployments/{deployment_id}` + - `url: String` -Get Deployment + URL of the document to fetch. -#### Parameters + minLength: 1 -- `deployment_id: String` (path parameter) + - `class BetaManagedAgentsFileDocumentSource` - Unique identifier of the deployment. + Document referenced by file ID. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :file` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `file_id: String` - - `String = String` + ID of a previously uploaded file. - - `:"message-batches-2024-09-24"` + minLength: 1 - - `:"prompt-caching-2024-07-31"` + - `context: String` - - `:"computer-use-2024-10-22"` + Additional context about the document for the model. - - `:"computer-use-2025-01-24"` + - `title: String` - - `:"pdfs-2024-09-25"` + The title of the document. - - `:"token-counting-2024-11-01"` + - `class BetaManagedAgentsRedactedBlock` - - `:"token-efficient-tools-2025-02-19"` + Placeholder for content withheld by Anthropic model policy. - - `:"output-128k-2025-02-19"` + - `type: :redacted` - - `:"files-api-2025-04-14"` + - `processed_at: Time` - - `:"mcp-client-2025-04-04"` + Timestamp when the agent finished processing this message. - - `:"mcp-client-2025-11-20"` + format: date-time - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsUserInterruptEvent` - - `:"interleaved-thinking-2025-05-14"` + An interrupt event that pauses agent execution and returns control to the user. - - `:"code-execution-2025-05-22"` + - `type: :"user.interrupt"` - - `:"extended-cache-ttl-2025-04-11"` + - `id: String` - - `:"context-1m-2025-08-07"` + Unique identifier for this event. - - `:"context-management-2025-06-27"` + - `processed_at: Time` - - `:"model-context-window-exceeded-2025-08-26"` + Timestamp when the interrupt was processed. - - `:"skills-2025-10-02"` + format: date-time - - `:"fast-mode-2026-02-01"` + - `session_thread_id: String` - - `:"output-300k-2026-03-24"` + If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread. - - `:"user-profiles-2026-03-24"` + - `class BetaManagedAgentsUserToolConfirmationEvent` - - `:"user-profiles-2026-08-18"` + A tool confirmation event that approves or denies a pending tool execution. - - `:"user-profiles-2026-09-04"` + - `type: :"user.tool_confirmation"` - - `:"advisor-tool-2026-03-01"` + - `id: String` - - `:"managed-agents-2026-04-01"` + Unique identifier for this event. - - `:"cache-diagnosis-2026-04-07"` + - `result: :allow | :deny` - - `:"dreaming-2026-04-21"` + The confirmation result: 'allow' or 'deny'. - - `:"thinking-token-count-2026-05-13"` + - `:allow` - - `:"server-side-fallback-2026-06-01"` + - `:deny` - - `:"server-side-fallback-2026-07-01"` + - `tool_use_id: String` - - `:"fallback-credit-2026-06-01"` + The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `:"fallback-credit-2026-07-01"` + - `deny_message: String` - - `:"agent-memory-2026-07-22"` + Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'. - - `:"mid-conversation-tool-changes-2026-07-01"` + maxLength: 10000 - - `:"compact-2026-01-12"` + - `processed_at: Time` - - `:"computer-use-2025-11-24"` + Timestamp when the confirmation was processed. - - `:"mcp-tunnels-2026-06-22"` + format: date-time - - `:"structured-outputs-2025-11-13"` + - `session_thread_id: String` - - `:"task-budgets-2026-03-13"` + Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsUserCustomToolResultEvent` - - `:"ce-user-management-2026-07-13"` + Event sent by the client providing the result of a custom tool execution. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :"user.custom_tool_result"` - - `:"thinking-binding-controls-2026-08-01"` + - `id: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Unique identifier for this event. - - `:"compact-2026-09-04"` + - `custom_tool_use_id: String` - - `:"inline-tools-2026-09-15"` + The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - - `:"mcp-client-2026-09-15"` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `:"ce-plugins-2026-09-01"` + The result content returned by the tool. - - `:"spend-limit-reads-2026-09-26"` + - `class BetaManagedAgentsTextBlock` - - `:"telemetry-destinations-2026-08-11"` + Regular text content. -- `workspace_id: String` (header parameter) + - `class BetaManagedAgentsImageBlock` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Image content specified directly as base64 data or as a reference via a URL. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsDocumentBlock` -#### Returns + Document content, either specified directly as base64 data, as text, or as a reference via a URL. -- `class BetaManagedAgentsDeployment` + - `class BetaManagedAgentsSearchResultBlock` - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. + A block containing a web search result. - - `type: :deployment` + - `type: :search_result` - - `id: String` + - `citations: BetaManagedAgentsSearchResultCitations` - Unique identifier for this deployment. + Citation settings for this search result. - - `agent: BetaManagedAgentsAgentReference` + - `enabled: bool` - Reference to the agent this deployment runs, resolved to a concrete version. + Whether citations are enabled for this search result. - - `type: :agent` + - `content: Array[BetaManagedAgentsSearchResultContent]` - - `id: String` + Array of text content blocks from the search result. - - `version: Integer` + - `type: :text` - format: int32 + - `text: String` - - `archived_at: Time` + The text content. - Time the deployment was archived. Null if not archived. + minLength: 1 - format: date-time + - `source: String` - - `created_at: Time` + The URL source of the search result. - Time the deployment was created. + minLength: 1 - format: date-time + - `title: String` - - `description: String` + The title of the search result. - Description of what the deployment does. + minLength: 1 - - `environment_id: String` + - `is_error: bool` - ID of the `environment` where sessions run. + Whether the tool execution resulted in an error. - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + - `processed_at: Time` - Events sent to each session immediately after creation. + Timestamp when this result was processed. - - `class BetaManagedAgentsDeploymentUserMessageEvent` + format: date-time - A user message sent to the session. + - `session_thread_id: String` - - `type: :"user.message"` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + - `class BetaManagedAgentsAgentCustomToolUseEvent` - Array of content blocks for the user message. + Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`. - - `class BetaManagedAgentsTextBlock` + - `type: :"agent.custom_tool_use"` - Regular text content. + - `id: String` - - `type: :text` + Unique identifier for this event. - - `text: String` + - `input: Hash[Symbol, untyped]` - The text content. + Input parameters for the tool call. - minLength: 1 + - `name: String` - - `class BetaManagedAgentsImageBlock` + Name of the custom tool being called. - Image content specified directly as base64 data or as a reference via a URL. + - `processed_at: Time` - - `type: :image` + Timestamp when this tool use was processed. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + format: date-time - The source of the image data. + - `session_thread_id: String` - - `class BetaManagedAgentsBase64ImageSource` + When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back. - Base64-encoded image data. + - `class BetaManagedAgentsAgentMessageEvent` - - `type: :base64` + An agent response event in the session conversation. - - `data: String` + - `type: :"agent.message"` - Base64-encoded image data. + - `id: String` - minLength: 1 + Unique identifier for this event. - - `media_type: String` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsRedactedBlock]` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Array of text blocks comprising the agent response. - minLength: 1 + - `class BetaManagedAgentsTextBlock` - - `class BetaManagedAgentsURLImageSource` + Regular text content. - Image referenced by URL. + - `class BetaManagedAgentsRedactedBlock` - - `type: :url` + Placeholder for content withheld by Anthropic model policy. - - `url: String` + - `processed_at: Time` - URL of the image to fetch. + Timestamp when this response was generated. - minLength: 1 + format: date-time - - `class BetaManagedAgentsFileImageSource` + - `class BetaManagedAgentsAgentThinkingEvent` - Image referenced by file ID. + Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier. - - `type: :file` + - `type: :"agent.thinking"` - - `file_id: String` + - `id: String` - ID of a previously uploaded file. + Unique identifier for this event. - minLength: 1 + - `processed_at: Time` - - `class BetaManagedAgentsDocumentBlock` + Timestamp when this thinking was produced. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + format: date-time - - `type: :document` + - `class BetaManagedAgentsAgentMCPToolUseEvent` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + Event emitted when the agent invokes a tool provided by an MCP server. - The source of the document data. + - `type: :"agent.mcp_tool_use"` - - `class BetaManagedAgentsBase64DocumentSource` + - `id: String` - Base64-encoded document data. + Unique identifier for this event. - - `type: :base64` + - `input: Hash[Symbol, untyped]` - - `data: String` + Input parameters for the tool call. - Base64-encoded document data. + - `mcp_server_name: String` - minLength: 1 + Name of the MCP server providing the tool. - - `media_type: String` + - `name: String` - MIME type of the document (e.g., "application/pdf"). + Name of the MCP tool being used. - minLength: 1 + - `processed_at: Time` - - `class BetaManagedAgentsPlainTextDocumentSource` + Timestamp when this event was processed. - Plain text document content. + format: date-time - - `type: :text` + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `data: String` + The evaluated permission policy for this tool invocation. - The plain text content. + - `:allow` - minLength: 1 + - `:ask` - - `media_type: :"text/plain"` + - `:deny` - MIME type of the text content. Must be "text/plain". + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - - `class BetaManagedAgentsURLDocumentSource` + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - Document referenced by URL. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAllow` - - `type: :url` + The resolved permission_policy was always_allow; accompanies evaluated_permission "allow". - - `url: String` + - `type: :always_allow` - URL of the document to fetch. + - `class BetaManagedAgentsAgentToolEvaluationAlwaysAsk` - minLength: 1 + The resolved permission_policy was always_ask; accompanies evaluated_permission "ask". - - `class BetaManagedAgentsFileDocumentSource` + - `type: :always_ask` - Document referenced by file ID. + - `class BetaManagedAgentsAgentToolEvaluationAuto` - - `type: :file` + The resolved permission_policy was auto: the server judged this invocation individually. - - `file_id: String` + - `type: :auto` - ID of a previously uploaded file. + - `evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission` - minLength: 1 + The server's judgement for this invocation. - - `context: String` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow` - Additional context about the document for the model. + The server judged the invocation safe to execute without client approval. - - `title: String` + - `type: :allow` - The title of the document. + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk` - - `class BetaManagedAgentsRedactedBlock` + The server reached no judgement; the invocation is held for client approval. - Placeholder for content withheld by Anthropic model policy. + - `type: :ask` - - `type: :redacted` + - `reason_code: String` - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set. - An outcome the agent should work toward. The agent begins work on receipt. + maxLength: 64 - - `type: :"user.define_outcome"` + - `class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny` - - `description: String` + The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended. - What the agent should produce. This is the task specification. + - `type: :deny` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `reason_code: String` - How to grade the outcome. Text or file reference. + The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set. - - `class BetaManagedAgentsFileRubric` + maxLength: 64 - Rubric referenced by a file uploaded via the Files API. + - `session_thread_id: String` - - `type: :file` + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back. - - `file_id: String` + - `class BetaManagedAgentsAgentMCPToolResultEvent` - ID of the rubric file. + Event representing the result of an MCP tool execution. - - `class BetaManagedAgentsTextRubric` + - `type: :"agent.mcp_tool_result"` - Rubric content provided inline as text. + - `id: String` - - `type: :text` + Unique identifier for this event. - - `content: String` + - `mcp_tool_use_id: String` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + The id of the `agent.mcp_tool_use` event this result corresponds to. - - `max_iterations: Integer` + - `processed_at: Time` - Eval→revision cycles before giving up. Default 3, max 20. + Timestamp when this event was processed. - format: int32 + format: date-time - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + The result content returned by the tool. - - `type: :"system.message"` + - `class BetaManagedAgentsTextBlock` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + Regular text content. - System content blocks to append. Text-only. + - `class BetaManagedAgentsImageBlock` - - `type: :text` + Image content specified directly as base64 data or as a reference via a URL. - - `text: String` + - `class BetaManagedAgentsDocumentBlock` - The text content. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - minLength: 1 + - `class BetaManagedAgentsSearchResultBlock` - - `metadata: Hash[Symbol, String]` + A block containing a web search result. - Arbitrary key-value metadata. Maximum 16 pairs. + - `is_error: bool` - - `name: String` + Whether the tool execution resulted in an error. - Human-readable name. + - `class BetaManagedAgentsAgentToolUseEvent` - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` + Event emitted when the agent invokes a built-in agent tool. - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. + - `type: :"agent.tool_use"` - - `class BetaManagedAgentsManualDeploymentPausedReason` + - `id: String` - The caller invoked the pause endpoint on the deployment. + Unique identifier for this event. - - `type: :manual` + - `input: Hash[Symbol, untyped]` - - `class BetaManagedAgentsErrorDeploymentPausedReason` + Input parameters for the tool call. - A scheduled fire recorded a failed run whose error auto-pauses the deployment. + - `name: String` - - `type: :error` + Name of the agent tool being used. - - `error: BetaManagedAgentsDeploymentPausedReasonError` + - `processed_at: Time` - The failed run's error. + Timestamp when this event was processed. - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` + format: date-time - The deployment's environment was archived. + - `evaluated_permission: BetaManagedAgentsAgentEvaluatedPermission` - - `type: :environment_archived_error` + The evaluated permission policy for this tool invocation. - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` + - `evaluation: BetaManagedAgentsAgentToolEvaluation` - The deployment's agent was archived. + Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask). - - `type: :agent_archived_error` + - `session_thread_id: String` - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back. - The deployment's environment no longer exists. + - `class BetaManagedAgentsAgentToolResultEvent` - - `type: :environment_not_found_error` + Event representing the result of an agent tool execution. - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + - `type: :"agent.tool_result"` - A vault referenced by the deployment no longer exists. + - `id: String` - - `type: :vault_not_found_error` + Unique identifier for this event. - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + - `processed_at: Time` - A file resource referenced by the deployment no longer exists. + Timestamp when this event was processed. - - `type: :file_not_found_error` + format: date-time - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + - `tool_use_id: String` - A referenced resource no longer exists and its kind was not reported. + The id of the `agent.tool_use` event this result corresponds to. - - `type: :session_resource_not_found_error` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + The result content returned by the tool. - The deployment's workspace was archived. + - `class BetaManagedAgentsTextBlock` - - `type: :workspace_archived_error` + Regular text content. - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + - `class BetaManagedAgentsImageBlock` - The deployment's organization is disabled. + Image content specified directly as base64 data or as a reference via a URL. - - `type: :organization_disabled_error` + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - A memory store referenced by the deployment is archived. + - `class BetaManagedAgentsSearchResultBlock` - - `type: :memory_store_archived_error` + A block containing a web search result. - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + - `is_error: bool` - A skill referenced by the deployment's agent no longer exists. + Whether the tool execution resulted in an error. - - `type: :skill_not_found_error` + - `class BetaManagedAgentsAgentThreadMessageReceivedEvent` - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + Delivery event written to the target thread's input stream when an agent-to-agent message arrives. - A vault referenced by the deployment is archived. + - `type: :"agent.thread_message_received"` - - `type: :vault_archived_error` + - `id: String` - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + Unique identifier for this event. - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `type: :unknown_error` + Message content blocks. - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + - `class BetaManagedAgentsTextBlock` - The deployment configures resources, but its environment is self-hosted and cannot mount them. + Regular text content. - - `type: :self_hosted_resources_unsupported_error` + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + Image content specified directly as base64 data or as a reference via a URL. - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `class BetaManagedAgentsDocumentBlock` - - `type: :mcp_egress_blocked_error` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + - `class BetaManagedAgentsRedactedBlock` - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + Placeholder for content withheld by Anthropic model policy. - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + - `from_session_thread_id: String` - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + Public `sthr_` ID of the thread that sent the message. - - `type: :github_repository` + - `processed_at: Time` - - `url: String` + Timestamp when the message was received. - Github URL of the repository + format: date-time - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `from_agent_name: String` - Branch or commit to check out. Defaults to the repository's default branch. + Name of the callable agent this message came from. Absent when received from the primary agent. - - `class BetaManagedAgentsBranchCheckout` + - `class BetaManagedAgentsAgentThreadMessageSentEvent` - - `type: :branch` + Observability event emitted to the sender's output stream when an agent-to-agent message is sent. - - `name: String` + - `type: :"agent.thread_message_sent"` - Branch name to check out. + - `id: String` - minLength: 1, maxLength: 255 + Unique identifier for this event. - - `class BetaManagedAgentsCommitCheckout` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `type: :commit` + Message content blocks. - - `sha: String` + - `class BetaManagedAgentsTextBlock` - Full commit SHA to check out. + Regular text content. - minLength: 7, maxLength: 64 + - `class BetaManagedAgentsImageBlock` - - `mount_path: String` + Image content specified directly as base64 data or as a reference via a URL. - Mount path in the container. Defaults to `/workspace/`. + - `class BetaManagedAgentsDocumentBlock` - - `class BetaManagedAgentsFileResourceConfig` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - A file mounted into each session's container. + - `class BetaManagedAgentsRedactedBlock` - - `type: :file` + Placeholder for content withheld by Anthropic model policy. - - `file_id: String` + - `processed_at: Time` - ID of a previously uploaded file. + Timestamp when the message was sent. - - `mount_path: String` + format: date-time - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `to_session_thread_id: String` - - `class BetaManagedAgentsMemoryStoreResourceConfig` + Public `sthr_` ID of the thread the message was sent to. - A memory store attached to each session created from this deployment. + - `to_agent_name: String` - - `type: :memory_store` + Name of the callable agent this message was sent to. Absent when sent to the primary agent. - - `memory_store_id: String` + - `class BetaManagedAgentsAgentThreadContextCompactedEvent` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + Indicates that context compaction (summarization) occurred during the session. - - `access: :read_write | :read_only` + - `type: :"agent.thread_context_compacted"` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `id: String` - - `:read_write` + Unique identifier for this event. - - `:read_only` + - `processed_at: Time` - - `instructions: String` + Timestamp when compaction was processed. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + format: date-time - - `schedule: BetaManagedAgentsSchedule` + - `class BetaManagedAgentsSessionErrorEvent` - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + An error event indicating a problem occurred during session execution. - - `type: :cron` + - `type: :"session.error"` - - `expression: String` + - `id: String` - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + Unique identifier for this event. - minLength: 1, maxLength: 256 + - `error: BetaManagedAgentsUnknownError | BetaManagedAgentsModelOverloadedError | BetaManagedAgentsModelRateLimitedError | 10 more` - - `timezone: String` + - `class BetaManagedAgentsUnknownError` - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone. - minLength: 1 + - `type: :unknown_error` - - `last_run_at: Time` + - `message: String` - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + Human-readable error description. - format: date-time + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `upcoming_runs_at: Array[Time]` + What the client should do next. - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + - `class BetaManagedAgentsRetryStatusRetrying` - - `status: BetaManagedAgentsDeploymentStatus` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + - `type: :retrying` - - `:active` + - `class BetaManagedAgentsRetryStatusExhausted` - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `:paused` + - `type: :exhausted` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + - `class BetaManagedAgentsRetryStatusTerminal` - - `updated_at: Time` + The session encountered a terminal error and will transition to `terminated` state. - Time the deployment was last updated. + - `type: :terminal` - format: date-time + - `class BetaManagedAgentsModelOverloadedError` - - `vault_ids: Array[String]` + The model is currently overloaded. Emitted after automatic retries are exhausted. - Vault IDs supplying stored credentials for sessions created from this deployment. + - `type: :model_overloaded_error` - - `budget: BetaManagedAgentsBudgetLimit` + - `message: String` - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + Human-readable error description. - - `type: :limit` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `max_list_cost: BetaMonetaryAmount` + What the client should do next. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `class BetaManagedAgentsRetryStatusRetrying` - - `amount: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `class BetaManagedAgentsRetryStatusExhausted` - - `currency: BetaCurrency` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `class BetaManagedAgentsRetryStatusTerminal` -#### Example + The session encountered a terminal error and will transition to `terminated` state. -```ruby -require "anthropic" + - `class BetaManagedAgentsModelRateLimitedError` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The model request was rate-limited. -beta_managed_agents_deployment = anthropic.beta.deployments.retrieve("depl_011CZkZcDH3vPqd7xnEfwTai") + - `type: :model_rate_limited_error` -puts(beta_managed_agents_deployment) -``` + - `message: String` -##### Response (200) + Human-readable error description. -```json -{ - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } -} -``` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` -### Update Deployment + What the client should do next. -`beta.deployments.update(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` + - `class BetaManagedAgentsRetryStatusRetrying` -**POST** `/v1/deployments/{deployment_id}` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. -Update Deployment + - `class BetaManagedAgentsRetryStatusExhausted` -#### Parameters + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. -- `deployment_id: String` (path parameter) + - `class BetaManagedAgentsRetryStatusTerminal` - Unique identifier of the deployment to update. + The session encountered a terminal error and will transition to `terminated` state. -- `agent: String | BetaManagedAgentsAgentParams` + - `class BetaManagedAgentsModelRequestFailedError` - Agent to deploy. Accepts the `agent` ID string, which re-pins to the latest version, or an `agent` object with both id and version specified. Omit to preserve. Cannot be cleared. + A model request failed for a reason other than overload or rate-limiting. - - `String = String` + - `type: :model_request_failed_error` - - `class BetaManagedAgentsAgentParams` + - `message: String` - Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version + Human-readable error description. - - `type: :agent` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `id: String` + What the client should do next. - The `agent` ID. + - `class BetaManagedAgentsRetryStatusRetrying` - minLength: 1, maxLength: 128 + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `version: Integer` + - `class BetaManagedAgentsRetryStatusExhausted` - The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - format: int32 + - `class BetaManagedAgentsRetryStatusTerminal` -- `budget: BetaManagedAgentsBudgetLimit` + The session encountered a terminal error and will transition to `terminated` state. - Spend ceiling for future sessions. Full replacement. Omit to preserve; send null to clear (sessions created afterwards are uncapped). The deployment agent's model must have a public list price, or the request is rejected; a multiagent roster is re-validated in full when each fire copies the cap, which fails closed the same way. + - `class BetaManagedAgentsMCPConnectionFailedError` - - `type: :limit` + Failed to connect to an MCP server. - - `max_list_cost: BetaMonetaryAmount` + - `type: :mcp_connection_failed_error` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `mcp_server_name: String` - - `amount: String` + Name of the MCP server that failed to connect. - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + - `message: String` - - `currency: BetaCurrency` + Human-readable error description. - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` -- `description: String` + What the client should do next. - Description. Omit to preserve; send empty string or null to clear. + - `class BetaManagedAgentsRetryStatusRetrying` - maxLength: 2048 + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. -- `environment_id: String` + - `class BetaManagedAgentsRetryStatusExhausted` - ID of the `environment` where sessions run. Omit to preserve. Cannot be cleared. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - maxLength: 128 + - `class BetaManagedAgentsRetryStatusTerminal` -- `initial_events: Array[BetaManagedAgentsDeploymentInitialEventParams]` + The session encountered a terminal error and will transition to `terminated` state. - Initial events. Full replacement. Omit to preserve. Cannot be cleared. At least 1, maximum 50. + - `class BetaManagedAgentsMCPAuthenticationFailedError` - - `class BetaManagedAgentsUserMessageEventParams` + Authentication to an MCP server failed. - Parameters for sending a user message to the session. + - `type: :mcp_authentication_failed_error` - - `type: :"user.message"` + - `mcp_server_name: String` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Name of the MCP server that failed authentication. - Array of content blocks for the user message. + - `message: String` - - `class BetaManagedAgentsTextBlock` + Human-readable error description. - Regular text content. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :text` + What the client should do next. - - `text: String` + - `class BetaManagedAgentsRetryStatusRetrying` - The text content. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - minLength: 1 + - `class BetaManagedAgentsRetryStatusExhausted` - - `class BetaManagedAgentsImageBlock` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Image content specified directly as base64 data or as a reference via a URL. + - `class BetaManagedAgentsRetryStatusTerminal` - - `type: :image` + The session encountered a terminal error and will transition to `terminated` state. - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + - `class BetaManagedAgentsBillingError` - The source of the image data. + The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state. - - `class BetaManagedAgentsBase64ImageSource` + - `type: :billing_error` - Base64-encoded image data. + - `message: String` - - `type: :base64` + Human-readable error description. - - `data: String` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Base64-encoded image data. + What the client should do next. - minLength: 1 + - `class BetaManagedAgentsRetryStatusRetrying` - - `media_type: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `class BetaManagedAgentsRetryStatusExhausted` - minLength: 1 + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `class BetaManagedAgentsURLImageSource` + - `class BetaManagedAgentsRetryStatusTerminal` - Image referenced by URL. + The session encountered a terminal error and will transition to `terminated` state. - - `type: :url` + - `class BetaManagedAgentsCredentialHostUnreachableError` - - `url: String` + An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit. - URL of the image to fetch. + - `type: :credential_host_unreachable_error` - minLength: 1 + - `credential_id: String` - - `class BetaManagedAgentsFileImageSource` + ID of the affected credential. - Image referenced by file ID. + - `message: String` - - `type: :file` + Human-readable error description. - - `file_id: String` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - ID of a previously uploaded file. + What the client should do next. - minLength: 1 + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsDocumentBlock` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `class BetaManagedAgentsRetryStatusExhausted` - - `type: :document` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + - `class BetaManagedAgentsRetryStatusTerminal` - The source of the document data. + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsBase64DocumentSource` + - `vault_id: String` - Base64-encoded document data. + ID of the vault containing the affected credential. - - `type: :base64` + - `class BetaManagedAgentsRepositoryAuthenticationError` - - `data: String` + The repository host rejected the credentials, or required credentials and received none. - Base64-encoded document data. + - `type: :repository_authentication_error` - minLength: 1 + - `message: String` - - `media_type: String` + Human-readable error description. - MIME type of the document (e.g., "application/pdf"). + - `repository_url: String` - minLength: 1 + URL of the repository that could not be cloned. Null when it could not be identified. - - `class BetaManagedAgentsPlainTextDocumentSource` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Plain text document content. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `type: :text` + - `class BetaManagedAgentsRetryStatusRetrying` - - `data: String` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - The plain text content. + - `class BetaManagedAgentsRetryStatusExhausted` - minLength: 1 + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `media_type: :"text/plain"` + - `class BetaManagedAgentsRetryStatusTerminal` - MIME type of the text content. Must be "text/plain". + The session encountered a terminal error and will transition to `terminated` state. - - `class BetaManagedAgentsURLDocumentSource` + - `class BetaManagedAgentsRepositoryForbiddenError` - Document referenced by URL. + The repository host refused access to the repository. - - `type: :url` + - `type: :repository_forbidden_error` - - `url: String` + - `message: String` - URL of the document to fetch. + Human-readable error description. - minLength: 1 + - `repository_url: String` - - `class BetaManagedAgentsFileDocumentSource` + URL of the repository that could not be cloned. Null when it could not be identified. - Document referenced by file ID. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - - `type: :file` + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `file_id: String` + - `class BetaManagedAgentsRetryStatusRetrying` - ID of a previously uploaded file. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - minLength: 1 + - `class BetaManagedAgentsRetryStatusExhausted` - - `context: String` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - Additional context about the document for the model. + - `class BetaManagedAgentsRetryStatusTerminal` - - `title: String` + The session encountered a terminal error and will transition to `terminated` state. - The title of the document. + - `class BetaManagedAgentsRepositoryNotFoundError` - - `class BetaManagedAgentsRedactedBlock` + The repository host reported the repository as not found. - Placeholder for content withheld by Anthropic model policy. + - `type: :repository_not_found_error` - - `type: :redacted` + - `message: String` - - `class BetaManagedAgentsUserDefineOutcomeEventParams` + Human-readable error description. - Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. + - `repository_url: String` - - `type: :"user.define_outcome"` + URL of the repository that could not be cloned. Null when it could not be identified. - - `description: String` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - What the agent should produce. This is the task specification. + What the client should do next. Always `retrying`: the session keeps running without the repository. - - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` + - `class BetaManagedAgentsRetryStatusRetrying` - How to grade the outcome. Text or file reference. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsFileRubricParams` + - `class BetaManagedAgentsRetryStatusExhausted` - Rubric referenced by a file uploaded via the Files API. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `type: :file` + - `class BetaManagedAgentsRetryStatusTerminal` - - `file_id: String` + The session encountered a terminal error and will transition to `terminated` state. - ID of the rubric file. + - `class BetaManagedAgentsRepositoryCheckoutError` - - `class BetaManagedAgentsTextRubricParams` + The requested branch or commit does not exist in the repository. - Rubric content provided inline as text. + - `type: :repository_checkout_error` - - `type: :text` + - `message: String` - - `content: String` + Human-readable error description. - Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + - `repository_url: String` - maxLength: 262144 + URL of the repository that could not be cloned. Null when it could not be identified. - - `max_iterations: Integer` + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - Eval→revision cycles before giving up. Default 3, max 20. + What the client should do next. Always `retrying`: the session keeps running without the repository. - format: int32 + - `class BetaManagedAgentsRetryStatusRetrying` - - `class BetaManagedAgentsSystemMessageEventParams` + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. + - `class BetaManagedAgentsRetryStatusExhausted` - - `type: :"system.message"` + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `class BetaManagedAgentsRetryStatusTerminal` - System content blocks to append. Text-only. + The session encountered a terminal error and will transition to `terminated` state. - - `type: :text` + - `class BetaManagedAgentsRepositoryCloneError` - - `text: String` + The repository could not be cloned. - The text content. + - `type: :repository_clone_error` - minLength: 1 + - `message: String` -- `metadata: Hash[Symbol, String]` + Human-readable error description. - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + - `repository_url: String` -- `name: String` + URL of the repository that could not be cloned. Null when it could not be identified. - Human-readable name. Must be non-empty. Omit to preserve. Cannot be cleared. + - `retry_status: BetaManagedAgentsRetryStatusRetrying | BetaManagedAgentsRetryStatusExhausted | BetaManagedAgentsRetryStatusTerminal` - maxLength: 256 + What the client should do next. Always `retrying`: the session keeps running without the repository. -- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` + - `class BetaManagedAgentsRetryStatusRetrying` - Session resources. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 500. + The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out. - - `class BetaManagedAgentsGitHubRepositoryResourceParams` + - `class BetaManagedAgentsRetryStatusExhausted` - Mount a GitHub repository into the session's container. + This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt. - - `type: :github_repository` + - `class BetaManagedAgentsRetryStatusTerminal` - - `url: String` + The session encountered a terminal error and will transition to `terminated` state. - Github URL of the repository + - `processed_at: Time` - minLength: 1, maxLength: 2048 + Timestamp when the error occurred. - - `authorization_token: String` + format: date-time - GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. + - `class BetaManagedAgentsSessionStatusRescheduledEvent` - minLength: 1, maxLength: 4096 + Indicates the session is recovering from an error state and is rescheduled for execution. - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + - `type: :"session.status_rescheduled"` - Branch or commit to check out. Defaults to the repository's default branch. + - `id: String` - - `class BetaManagedAgentsBranchCheckout` + Unique identifier for this event. - - `type: :branch` + - `processed_at: Time` - - `name: String` + Timestamp of status change. - Branch name to check out. + format: date-time - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsSessionStatusRunningEvent` - - `class BetaManagedAgentsCommitCheckout` + Indicates the session is actively running and the agent is working. - - `type: :commit` + - `type: :"session.status_running"` - - `sha: String` + - `id: String` - Full commit SHA to check out. + Unique identifier for this event. - minLength: 7, maxLength: 64 + - `processed_at: Time` - - `mount_path: String` + Timestamp of status change. - Mount path in the container. Defaults to `/workspace/`. + format: date-time - minLength: 1, maxLength: 4096 + - `class BetaManagedAgentsSessionStatusIdleEvent` - - `class BetaManagedAgentsFileResourceParams` + Indicates the agent has paused and is awaiting user input. - Mount a file uploaded via the Files API into the session. + - `type: :"session.status_idle"` - - `type: :file` + - `id: String` - - `file_id: String` + Unique identifier for this event. - ID of a previously uploaded file. + - `processed_at: Time` - minLength: 1, maxLength: 128 + Timestamp of status change. - - `mount_path: String` + format: date-time - Mount path in the container. Defaults to `/mnt/session/uploads/`. + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - minLength: 1, maxLength: 4096 + Structured information about why the session stopped. `null` when there is nothing more to report. - - `class BetaManagedAgentsMemoryStoreResourceParam` + - `type: :refusal` - Parameters for attaching a memory store to an agent session. + - `category: :cyber | :bio | :frontier_llm | 2 more` - - `type: :memory_store` + The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time. - - `memory_store_id: String` + - `:cyber` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `:bio` - - `access: :read_write | :read_only` + - `:frontier_llm` - Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. + - `:reasoning_extraction` - - `:read_write` + - `:general_harms` - - `:read_only` + - `explanation: String` - - `instructions: String` + Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it. - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - maxLength: 4096 + - `class BetaManagedAgentsSessionEndTurn` -- `schedule: BetaManagedAgentsScheduleParams` + The agent completed its turn naturally and is ready for the next user message. - Cron schedule. Full replacement. Omit to preserve; send null to clear (revert to manual-only). + - `type: :end_turn` - - `type: :cron` + - `class BetaManagedAgentsSessionRequiresAction` - - `expression: String` + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `type: :requires_action` - minLength: 1, maxLength: 256 + - `event_ids: Array[String]` - - `timezone: String` + The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder. - Required. IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). Validated against the IANA timezone database. + - `class BetaManagedAgentsSessionRetriesExhausted` - minLength: 1 + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. -- `vault_ids: Array[String]` + - `type: :retries_exhausted` - Vault IDs. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 50. + - `class BetaManagedAgentsSessionBudgetReached` -- `betas: Array[AnthropicBeta]` (header parameter) + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `type: :budget_reached` - - `String = String` + - `class BetaManagedAgentsSessionRefusal` - - `:"message-batches-2024-09-24"` + The turn ended because the model's response was refused, for example by a safety classifier. - - `:"prompt-caching-2024-07-31"` + - `type: :refusal` - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsSessionStatusTerminatedEvent` - - `:"computer-use-2025-01-24"` + Indicates the session has terminated, either due to an error or completion. - - `:"pdfs-2024-09-25"` + - `type: :"session.status_terminated"` - - `:"token-counting-2024-11-01"` + - `id: String` - - `:"token-efficient-tools-2025-02-19"` + Unique identifier for this event. - - `:"output-128k-2025-02-19"` + - `processed_at: Time` - - `:"files-api-2025-04-14"` + Timestamp of status change. - - `:"mcp-client-2025-04-04"` + format: date-time - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsSessionThreadCreatedEvent` - - `:"dev-full-thinking-2025-05-14"` + Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation. - - `:"interleaved-thinking-2025-05-14"` + - `type: :"session.thread_created"` - - `:"code-execution-2025-05-22"` + - `id: String` - - `:"extended-cache-ttl-2025-04-11"` + Unique identifier for this event. - - `:"context-1m-2025-08-07"` + - `agent_name: String` - - `:"context-management-2025-06-27"` + Name of the callable agent the thread runs. - - `:"model-context-window-exceeded-2025-08-26"` + - `processed_at: Time` - - `:"skills-2025-10-02"` + Timestamp when the thread was created. - - `:"fast-mode-2026-02-01"` + format: date-time - - `:"output-300k-2026-03-24"` + - `session_thread_id: String` - - `:"user-profiles-2026-03-24"` + Public `sthr_` ID of the newly created thread. - - `:"user-profiles-2026-08-18"` + - `workflow_run_id: String` - - `:"user-profiles-2026-09-04"` + Identifier of the workflow run that created the thread, or `null` for any other thread. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsSpanOutcomeEvaluationStartEvent` - - `:"managed-agents-2026-04-01"` + Emitted when an outcome evaluation cycle begins. - - `:"cache-diagnosis-2026-04-07"` + - `type: :"span.outcome_evaluation_start"` - - `:"dreaming-2026-04-21"` + - `id: String` - - `:"thinking-token-count-2026-05-13"` + Unique identifier for this event. - - `:"server-side-fallback-2026-06-01"` + - `iteration: Integer` - - `:"server-side-fallback-2026-07-01"` + 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc. - - `:"fallback-credit-2026-06-01"` + format: int32 - - `:"fallback-credit-2026-07-01"` + - `outcome_id: String` - - `:"agent-memory-2026-07-22"` + The `outc_` ID of the outcome being evaluated. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `processed_at: Time` - - `:"compact-2026-01-12"` + Timestamp when outcome evaluation started. - - `:"computer-use-2025-11-24"` + format: date-time - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsSpanOutcomeEvaluationEndEvent` - - `:"structured-outputs-2025-11-13"` + Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow. - - `:"task-budgets-2026-03-13"` + - `type: :"span.outcome_evaluation_end"` - - `:"thinking-display-updates-2026-08-18"` + - `id: String` - - `:"ce-user-management-2026-07-13"` + Unique identifier for this event. - - `:"mid-conversation-output-config-2026-07-01"` + - `explanation: String` - - `:"thinking-binding-controls-2026-08-01"` + Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `iteration: Integer` - - `:"compact-2026-09-04"` + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `:"inline-tools-2026-09-15"` + format: int32 - - `:"mcp-client-2026-09-15"` + - `outcome_evaluation_start_id: String` - - `:"ce-plugins-2026-09-01"` + The id of the corresponding `span.outcome_evaluation_start` event. - - `:"spend-limit-reads-2026-09-26"` + - `outcome_id: String` - - `:"telemetry-destinations-2026-08-11"` + The `outc_` ID of the outcome being evaluated. -- `workspace_id: String` (header parameter) + - `processed_at: Time` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Timestamp when outcome evaluation ended. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + format: date-time -#### Returns + - `result: String` -- `class BetaManagedAgentsDeployment` + Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress. - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. + - `usage: BetaManagedAgentsSpanModelUsage` - - `type: :deployment` + Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle. - - `id: String` + - `cache_creation_input_tokens: Integer` - Unique identifier for this deployment. + Tokens used to create prompt cache in this request. - - `agent: BetaManagedAgentsAgentReference` + format: int32 - Reference to the agent this deployment runs, resolved to a concrete version. + - `cache_read_input_tokens: Integer` - - `type: :agent` + Tokens read from prompt cache in this request. - - `id: String` + format: int32 - - `version: Integer` + - `input_tokens: Integer` - format: int32 + Input tokens consumed by this request. - - `archived_at: Time` + format: int32 - Time the deployment was archived. Null if not archived. + - `output_tokens: Integer` - format: date-time + Output tokens generated by this request. - - `created_at: Time` + format: int32 - Time the deployment was created. + - `speed: :standard | :fast` - format: date-time + Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active. - - `description: String` + - `:standard` - Description of what the deployment does. + - `:fast` - - `environment_id: String` + - `class BetaManagedAgentsSpanModelRequestStartEvent` - ID of the `environment` where sessions run. + Emitted when a model request is initiated by the agent. - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + - `type: :"span.model_request_start"` - Events sent to each session immediately after creation. + - `id: String` - - `class BetaManagedAgentsDeploymentUserMessageEvent` + Unique identifier for this event. - A user message sent to the session. + - `processed_at: Time` - - `type: :"user.message"` + Timestamp when the model request started. - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + format: date-time - Array of content blocks for the user message. + - `class BetaManagedAgentsSpanModelRequestEndEvent` - - `class BetaManagedAgentsTextBlock` + Emitted when a model request completes. - Regular text content. + - `type: :"span.model_request_end"` - - `type: :text` + - `id: String` - - `text: String` + Unique identifier for this event. - The text content. + - `is_error: bool` - minLength: 1 + Whether the model request resulted in an error. - - `class BetaManagedAgentsImageBlock` + - `model_request_start_id: String` - Image content specified directly as base64 data or as a reference via a URL. + The id of the corresponding `span.model_request_start` event. - - `type: :image` + - `model_usage: BetaManagedAgentsSpanModelUsage` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + Token usage for this model request. - The source of the image data. + - `processed_at: Time` - - `class BetaManagedAgentsBase64ImageSource` + Timestamp when the model request completed. - Base64-encoded image data. + format: date-time - - `type: :base64` + - `class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent` - - `data: String` + Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events. - Base64-encoded image data. + - `type: :"span.outcome_evaluation_ongoing"` - minLength: 1 + - `id: String` - - `media_type: String` + Unique identifier for this event. - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + - `iteration: Integer` - minLength: 1 + 0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`. - - `class BetaManagedAgentsURLImageSource` + format: int32 - Image referenced by URL. + - `outcome_id: String` - - `type: :url` + The `outc_` ID of the outcome being evaluated. - - `url: String` + - `processed_at: Time` - URL of the image to fetch. + Timestamp when this heartbeat was emitted. - minLength: 1 + format: date-time - - `class BetaManagedAgentsFileImageSource` + - `class BetaManagedAgentsUserDefineOutcomeEvent` - Image referenced by file ID. + Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. - - `type: :file` + - `type: :"user.define_outcome"` - - `file_id: String` + - `id: String` - ID of a previously uploaded file. + Unique identifier for this event. - minLength: 1 + - `description: String` - - `class BetaManagedAgentsDocumentBlock` + What the agent should produce. Copied from the input event. - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + - `max_iterations: Integer` - - `type: :document` + Evaluate-then-revise cycles before giving up. Default 3, max 20. - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + format: int32 - The source of the document data. + - `outcome_id: String` - - `class BetaManagedAgentsBase64DocumentSource` + Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. - Base64-encoded document data. + - `processed_at: Time` - - `type: :base64` + Timestamp when the outcome was accepted. - - `data: String` + format: date-time - Base64-encoded document data. + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - minLength: 1 + How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants. - - `media_type: String` + - `class BetaManagedAgentsFileRubric` - MIME type of the document (e.g., "application/pdf"). + Rubric referenced by a file uploaded via the Files API. - minLength: 1 + - `type: :file` - - `class BetaManagedAgentsPlainTextDocumentSource` + - `file_id: String` - Plain text document content. + ID of the rubric file. - - `type: :text` + - `class BetaManagedAgentsTextRubric` - - `data: String` + Rubric content provided inline as text. - The plain text content. + - `type: :text` - minLength: 1 + - `content: String` - - `media_type: :"text/plain"` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - MIME type of the text content. Must be "text/plain". + - `class BetaManagedAgentsSessionDeletedEvent` - - `class BetaManagedAgentsURLDocumentSource` + Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session. - Document referenced by URL. + - `type: :"session.deleted"` - - `type: :url` + - `id: String` - - `url: String` + Unique identifier for this event. - URL of the document to fetch. + - `processed_at: Time` - minLength: 1 + Timestamp when the session was deleted. - - `class BetaManagedAgentsFileDocumentSource` + format: date-time - Document referenced by file ID. + - `class BetaManagedAgentsSessionThreadStatusRunningEvent` - - `type: :file` + A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `file_id: String` + - `type: :"session.thread_status_running"` - ID of a previously uploaded file. + - `id: String` - minLength: 1 + Unique identifier for this event. - - `context: String` + - `agent_name: String` - Additional context about the document for the model. + Name of the agent the thread runs. - - `title: String` + - `processed_at: Time` - The title of the document. + Timestamp of the status transition. - - `class BetaManagedAgentsRedactedBlock` + format: date-time - Placeholder for content withheld by Anthropic model policy. + - `session_thread_id: String` - - `type: :redacted` + Public sthr_ ID of the thread that started running. - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + - `class BetaManagedAgentsSessionThreadStatusIdleEvent` - An outcome the agent should work toward. The agent begins work on receipt. + A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `type: :"user.define_outcome"` + - `type: :"session.thread_status_idle"` - - `description: String` + - `id: String` - What the agent should produce. This is the task specification. + Unique identifier for this event. - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `agent_name: String` - How to grade the outcome. Text or file reference. + Name of the agent the thread runs. - - `class BetaManagedAgentsFileRubric` + - `processed_at: Time` - Rubric referenced by a file uploaded via the Files API. + Timestamp of the status transition. - - `type: :file` + format: date-time - - `file_id: String` + - `session_thread_id: String` - ID of the rubric file. + Public sthr_ ID of the thread that went idle. - - `class BetaManagedAgentsTextRubric` + - `stop_details: BetaManagedAgentsSessionRefusalStopDetails` - Rubric content provided inline as text. + Structured information about why the thread stopped. `null` when there is nothing more to report. - - `type: :text` + - `stop_reason: BetaManagedAgentsSessionEndTurn | BetaManagedAgentsSessionRequiresAction | BetaManagedAgentsSessionRetriesExhausted | 2 more` - - `content: String` + - `class BetaManagedAgentsSessionEndTurn` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + The agent completed its turn naturally and is ready for the next user message. - - `max_iterations: Integer` + - `class BetaManagedAgentsSessionRequiresAction` - Eval→revision cycles before giving up. Default 3, max 20. + The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running. - format: int32 + - `class BetaManagedAgentsSessionRetriesExhausted` - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`. - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + - `class BetaManagedAgentsSessionBudgetReached` - - `type: :"system.message"` + The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget. - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `class BetaManagedAgentsSessionRefusal` - System content blocks to append. Text-only. + The turn ended because the model's response was refused, for example by a safety classifier. - - `type: :text` + - `class BetaManagedAgentsSessionThreadStatusTerminatedEvent` - - `text: String` + A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - The text content. + - `type: :"session.thread_status_terminated"` - minLength: 1 + - `id: String` - - `metadata: Hash[Symbol, String]` + Unique identifier for this event. - Arbitrary key-value metadata. Maximum 16 pairs. + - `agent_name: String` - - `name: String` + Name of the agent the thread runs. - Human-readable name. + - `processed_at: Time` - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` + Timestamp of the status transition. - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. + format: date-time - - `class BetaManagedAgentsManualDeploymentPausedReason` + - `session_thread_id: String` - The caller invoked the pause endpoint on the deployment. + Public sthr_ ID of the thread that terminated. - - `type: :manual` + - `class BetaManagedAgentsUserToolResultEvent` - - `class BetaManagedAgentsErrorDeploymentPausedReason` + Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server. - A scheduled fire recorded a failed run whose error auto-pauses the deployment. + - `type: :"user.tool_result"` - - `type: :error` + - `id: String` - - `error: BetaManagedAgentsDeploymentPausedReasonError` + Unique identifier for this event. - The failed run's error. + - `tool_use_id: String` - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` + The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=ruby#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field. - The deployment's environment was archived. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsSearchResultBlock]` - - `type: :environment_archived_error` + The result content returned by the tool. - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsTextBlock` - The deployment's agent was archived. + Regular text content. - - `type: :agent_archived_error` + - `class BetaManagedAgentsImageBlock` - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + Image content specified directly as base64 data or as a reference via a URL. - The deployment's environment no longer exists. + - `class BetaManagedAgentsDocumentBlock` - - `type: :environment_not_found_error` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + - `class BetaManagedAgentsSearchResultBlock` - A vault referenced by the deployment no longer exists. + A block containing a web search result. - - `type: :vault_not_found_error` + - `is_error: bool` - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + Whether the tool execution resulted in an error. - A file resource referenced by the deployment no longer exists. + - `processed_at: Time` - - `type: :file_not_found_error` + Timestamp when this result was processed. - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + format: date-time - A referenced resource no longer exists and its kind was not reported. + - `session_thread_id: String` - - `type: :session_resource_not_found_error` + Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread. - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsSessionThreadStatusRescheduledEvent` - The deployment's workspace was archived. + A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads. - - `type: :workspace_archived_error` + - `type: :"session.thread_status_rescheduled"` - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + - `id: String` - The deployment's organization is disabled. + Unique identifier for this event. - - `type: :organization_disabled_error` + - `agent_name: String` - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + Name of the agent the thread runs. - A memory store referenced by the deployment is archived. + - `processed_at: Time` - - `type: :memory_store_archived_error` + Timestamp of the status transition. - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + format: date-time - A skill referenced by the deployment's agent no longer exists. + - `session_thread_id: String` - - `type: :skill_not_found_error` + Public sthr_ ID of the thread that is retrying. - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsSessionUpdatedEvent` - A vault referenced by the deployment is archived. + Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn. - - `type: :vault_archived_error` + - `type: :"session.updated"` - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + - `id: String` - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + Unique identifier for this event. - - `type: :unknown_error` + - `processed_at: Time` - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + Timestamp when the update was applied. - The deployment configures resources, but its environment is self-hosted and cannot mount them. + format: date-time - - `type: :self_hosted_resources_unsupported_error` + - `agent: BetaManagedAgentsSessionAgent` - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff. - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `type: :agent` - - `type: :mcp_egress_blocked_error` + - `id: String` - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + - `description: String` - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + - `class BetaManagedAgentsAWSRoleExecutionIdentity` - - `type: :github_repository` + An AWS IAM role principal as returned in API responses. - - `url: String` + - `type: :aws_role` - Github URL of the repository + - `role_arn: String` - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + The IAM role's ARN. - Branch or commit to check out. Defaults to the repository's default branch. + - `class BetaManagedAgentsServiceAccountExecutionIdentity` - - `class BetaManagedAgentsBranchCheckout` + The Anthropic-managed service account as returned in API responses. - - `type: :branch` + - `type: :service_account` - - `name: String` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Branch name to check out. + - `type: :url` - minLength: 1, maxLength: 255 + - `name: String` - - `class BetaManagedAgentsCommitCheckout` + - `url: String` - - `type: :commit` + - `model: BetaManagedAgentsModelConfig` - - `sha: String` + Model identifier and configuration. - Full commit SHA to check out. + - `id: BetaManagedAgentsModel` - minLength: 7, maxLength: 64 + The model that will power your agent. - - `mount_path: String` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Mount path in the container. Defaults to `/workspace/`. + - `:"claude-haiku-5-5"` - - `class BetaManagedAgentsFileResourceConfig` + Fastest model for high-volume, real-time tasks - A file mounted into each session's container. + - `:"claude-sonnet-5-5"` - - `type: :file` + Efficient model for coding and agents - - `file_id: String` + - `:"claude-opus-5-5"` - ID of a previously uploaded file. + Powerful intelligence for coding, knowledge work, and long-running agents - - `mount_path: String` + - `:"claude-fable-5-1"` - Mount path in the container. Defaults to `/mnt/session/uploads/`. + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows - - `class BetaManagedAgentsMemoryStoreResourceConfig` + - `:"claude-sonnet-5"` - A memory store attached to each session created from this deployment. + Efficient model for coding and agents - - `type: :memory_store` + - `:"claude-fable-5"` - - `memory_store_id: String` + Next generation of intelligence for the hardest knowledge work and coding problems - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `:"claude-opus-5"` - - `access: :read_write | :read_only` + Powerful intelligence for long-running agents and coding - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `:"claude-opus-4-8"` - - `:read_write` + Powerful intelligence for long-running agents and coding - - `:read_only` + - `:"claude-opus-4-7"` - - `instructions: String` + Powerful intelligence for long-running agents and coding - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + - `:"claude-opus-4-6"` - - `schedule: BetaManagedAgentsSchedule` + Powerful intelligence for long-running agents and coding - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + - `:"claude-sonnet-4-6"` - - `type: :cron` + Best combination of speed and intelligence - - `expression: String` + - `:"claude-haiku-4-5"` - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `:"claude-haiku-4-5-20251001"` - minLength: 1, maxLength: 256 + - `:"claude-opus-4-5"` - - `timezone: String` + Powerful intelligence for long-running agents and coding - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + - `:"claude-opus-4-5-20251101"` - minLength: 1 + Powerful intelligence for long-running agents and coding - - `last_run_at: Time` + - `:"claude-sonnet-4-5"` - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - format: date-time + High-performance model for agents and coding - - `upcoming_runs_at: Array[Time]` + - `:"claude-sonnet-4-5-20250929"` - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. - - `status: BetaManagedAgentsDeploymentStatus` + High-performance model for agents and coding - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + - `String = String` - - `:active` + - `effort: BetaManagedAgentsEffortLow | BetaManagedAgentsEffortMedium | BetaManagedAgentsEffortHigh | 2 more` - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied. - - `:paused` + - `class BetaManagedAgentsEffortLow` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + Low effort. Favors latency over reasoning depth. - - `updated_at: Time` + - `type: :low` - Time the deployment was last updated. + - `class BetaManagedAgentsEffortMedium` - format: date-time + Medium effort. Balances latency and reasoning depth. - - `vault_ids: Array[String]` + - `type: :medium` - Vault IDs supplying stored credentials for sessions created from this deployment. + - `class BetaManagedAgentsEffortHigh` - - `budget: BetaManagedAgentsBudgetLimit` + High effort. Favors reasoning depth. - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + - `type: :high` - - `type: :limit` + - `class BetaManagedAgentsEffortXhigh` - - `max_list_cost: BetaMonetaryAmount` + Extra-high effort. Not all models accept this level. - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `type: :xhigh` - - `amount: String` + - `class BetaManagedAgentsEffortMax` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + Maximum effort. Favors reasoning depth over latency. - - `currency: BetaCurrency` + - `type: :max` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `inference_geo: String` -#### Example + Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo. -```ruby -require "anthropic" + - `speed: :standard | :fast` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time. -beta_managed_agents_deployment = anthropic.beta.deployments.update("depl_011CZkZcDH3vPqd7xnEfwTai") + - `:standard` -puts(beta_managed_agents_deployment) -``` + - `:fast` -##### Response (200) + - `multiagent: BetaManagedAgentsSessionMultiagent` -```json -{ - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } -} -``` + Resolved multiagent orchestration configuration. Null when the agent is single-threaded. -### Archive Deployment + - `class BetaManagedAgentsSessionMultiagentCoordinator` -`beta.deployments.archive(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` + Resolved coordinator topology with full agent definitions for each roster member. -**POST** `/v1/deployments/{deployment_id}/archive` + - `type: :coordinator` -Archive Deployment + - `agents: Array[BetaManagedAgentsSessionThreadAgent | BetaManagedAgentsAdvisor]` -#### Parameters + Full `agent` definitions the coordinator may spawn as session threads. -- `deployment_id: String` (path parameter) + - `class BetaManagedAgentsSessionThreadAgent` - Unique identifier of the deployment to archive. + Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :agent` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `id: String` - - `String = String` + - `description: String` - - `:"message-batches-2024-09-24"` + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `:"prompt-caching-2024-07-31"` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `:"computer-use-2024-10-22"` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `:"computer-use-2025-01-24"` + - `type: :url` - - `:"pdfs-2024-09-25"` + - `name: String` - - `:"token-counting-2024-11-01"` + - `url: String` - - `:"token-efficient-tools-2025-02-19"` + - `model: BetaManagedAgentsModelConfig` - - `:"output-128k-2025-02-19"` + Model identifier and configuration. - - `:"files-api-2025-04-14"` + - `name: String` - - `:"mcp-client-2025-04-04"` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsAnthropicSkill` - - `:"dev-full-thinking-2025-05-14"` + A resolved Anthropic-managed skill. - - `:"interleaved-thinking-2025-05-14"` + - `type: :anthropic` - - `:"code-execution-2025-05-22"` + - `skill_id: String` - - `:"extended-cache-ttl-2025-04-11"` + - `version: String` - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsCustomSkill` - - `:"context-management-2025-06-27"` + A resolved user-created custom skill. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :custom` - - `:"skills-2025-10-02"` + - `skill_id: String` - - `:"fast-mode-2026-02-01"` + - `version: String` - - `:"output-300k-2026-03-24"` + - `system_: String` - - `:"user-profiles-2026-03-24"` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsAgentToolset20260401` - - `:"user-profiles-2026-09-04"` + - `type: :agent_toolset_20260401` - - `:"advisor-tool-2026-03-01"` + - `configs: Array[BetaManagedAgentsAgentToolConfig]` - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsBashToolConfig` - - `:"cache-diagnosis-2026-04-07"` + Configuration for the bash tool. - - `:"dreaming-2026-04-21"` + - `type: :bash` - - `:"thinking-token-count-2026-05-13"` + - `enabled: bool` - - `:"server-side-fallback-2026-06-01"` + - `name: :bash` - - `:"server-side-fallback-2026-07-01"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"fallback-credit-2026-06-01"` + Permission policy for tool execution. - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"agent-memory-2026-07-22"` + Tool calls are automatically approved without user confirmation. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :always_allow` - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `:"computer-use-2025-11-24"` + Tool calls require user confirmation before execution. - - `:"mcp-tunnels-2026-06-22"` + - `type: :always_ask` - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsAutoPolicy` - - `:"task-budgets-2026-03-13"` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `:"thinking-display-updates-2026-08-18"` + - `type: :auto` - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsEditToolConfig` - - `:"mid-conversation-output-config-2026-07-01"` + Configuration for the edit tool. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :edit` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `enabled: bool` - - `:"compact-2026-09-04"` + - `name: :edit` - - `:"inline-tools-2026-09-15"` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `:"mcp-client-2026-09-15"` + Permission policy for tool execution. - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `:"spend-limit-reads-2026-09-26"` + Tool calls are automatically approved without user confirmation. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsAlwaysAskPolicy` -- `workspace_id: String` (header parameter) + Tool calls require user confirmation before execution. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsAutoPolicy` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. -#### Returns + - `class BetaManagedAgentsReadToolConfig` -- `class BetaManagedAgentsDeployment` + Configuration for the read tool. - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. + - `type: :read` - - `type: :deployment` + - `enabled: bool` - - `id: String` + - `name: :read` - Unique identifier for this deployment. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `agent: BetaManagedAgentsAgentReference` + Permission policy for tool execution. - Reference to the agent this deployment runs, resolved to a concrete version. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :agent` + Tool calls are automatically approved without user confirmation. - - `id: String` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `version: Integer` + Tool calls require user confirmation before execution. - format: int32 + - `class BetaManagedAgentsAutoPolicy` - - `archived_at: Time` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Time the deployment was archived. Null if not archived. + - `class BetaManagedAgentsWriteToolConfig` - format: date-time + Configuration for the write tool. - - `created_at: Time` + - `type: :write` - Time the deployment was created. + - `enabled: bool` - format: date-time + - `name: :write` - - `description: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - Description of what the deployment does. + Permission policy for tool execution. - - `environment_id: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - ID of the `environment` where sessions run. + Tool calls are automatically approved without user confirmation. - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + - `class BetaManagedAgentsAlwaysAskPolicy` - Events sent to each session immediately after creation. + Tool calls require user confirmation before execution. - - `class BetaManagedAgentsDeploymentUserMessageEvent` + - `class BetaManagedAgentsAutoPolicy` - A user message sent to the session. + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `type: :"user.message"` + - `class BetaManagedAgentsGlobToolConfig` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Configuration for the glob tool. - Array of content blocks for the user message. + - `type: :glob` - - `class BetaManagedAgentsTextBlock` + - `enabled: bool` - Regular text content. + - `name: :glob` - - `type: :text` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `text: String` + Permission policy for tool execution. - The text content. + - `class BetaManagedAgentsAlwaysAllowPolicy` - minLength: 1 + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsImageBlock` + - `class BetaManagedAgentsAlwaysAskPolicy` - Image content specified directly as base64 data or as a reference via a URL. + Tool calls require user confirmation before execution. - - `type: :image` + - `class BetaManagedAgentsAutoPolicy` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The source of the image data. + - `class BetaManagedAgentsGrepToolConfig` - - `class BetaManagedAgentsBase64ImageSource` + Configuration for the grep tool. - Base64-encoded image data. + - `type: :grep` - - `type: :base64` + - `enabled: bool` - - `data: String` + - `name: :grep` - Base64-encoded image data. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - minLength: 1 + Permission policy for tool execution. - - `media_type: String` + - `class BetaManagedAgentsAlwaysAllowPolicy` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Tool calls are automatically approved without user confirmation. - minLength: 1 + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsURLImageSource` + Tool calls require user confirmation before execution. - Image referenced by URL. + - `class BetaManagedAgentsAutoPolicy` - - `type: :url` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `url: String` + - `class BetaManagedAgentsWebFetchToolConfig` - URL of the image to fetch. + Configuration for the web_fetch tool. - minLength: 1 + - `type: :web_fetch` - - `class BetaManagedAgentsFileImageSource` + - `enabled: bool` - Image referenced by file ID. + - `name: :web_fetch` - - `type: :file` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `file_id: String` + Permission policy for tool execution. - ID of a previously uploaded file. + - `class BetaManagedAgentsAlwaysAllowPolicy` - minLength: 1 + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsDocumentBlock` + - `class BetaManagedAgentsAlwaysAskPolicy` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + Tool calls require user confirmation before execution. - - `type: :document` + - `class BetaManagedAgentsAutoPolicy` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - The source of the document data. + - `url_sources: BetaManagedAgentsWebFetchURLSources` - - `class BetaManagedAgentsBase64DocumentSource` + Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source. - Base64-encoded document data. + - `client_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - - `type: :base64` + Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results. - - `data: String` + - `class BetaManagedAgentsWebFetchURLSourceAll` - Base64-encoded document data. + Every URL from this source may be fetched. This is the default. - minLength: 1 + - `type: :all` - - `media_type: String` + - `class BetaManagedAgentsWebFetchURLSourceNone` - MIME type of the document (e.g., "application/pdf"). + This source contributes no URLs that may be fetched. - minLength: 1 + - `type: :none` - - `class BetaManagedAgentsPlainTextDocumentSource` + - `class BetaManagedAgentsWebFetchURLSourceOnly` - Plain text document content. + Only the named tools' results contribute URLs that may be fetched. - - `type: :text` + - `type: :only` - - `data: String` + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - The plain text content. + The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results. - minLength: 1 + - `type: :tool_reference` - - `media_type: :"text/plain"` + Must be "tool_reference". - MIME type of the text content. Must be "text/plain". + - `name: String` - - `class BetaManagedAgentsURLDocumentSource` + Name of the tool. Compared exactly, so upper and lower case letters are different. - Document referenced by URL. + minLength: 1, maxLength: 128 - - `type: :url` + - `class BetaManagedAgentsWebFetchURLSourceExcept` - - `url: String` + Every tool's results contribute URLs that may be fetched, except the named tools' results. - URL of the document to fetch. + - `type: :except` - minLength: 1 + - `tools: Array[BetaManagedAgentsWebFetchURLSourceToolReference]` - - `class BetaManagedAgentsFileDocumentSource` + The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results. - Document referenced by file ID. + - `type: :tool_reference` - - `type: :file` + Must be "tool_reference". - - `file_id: String` + - `name: String` - ID of a previously uploaded file. + Name of the tool. Compared exactly, so upper and lower case letters are different. - minLength: 1 + minLength: 1, maxLength: 128 - - `context: String` + - `server_tool_results: BetaManagedAgentsWebFetchURLSourceToolFilter` - Additional context about the document for the model. + Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both. - - `title: String` + - `user_input: BetaManagedAgentsWebFetchURLSourceUserInput` - The title of the document. + Whether URLs in the text of user messages may be fetched. Null when not set, which allows them. - - `class BetaManagedAgentsRedactedBlock` + - `class BetaManagedAgentsWebFetchURLSourceAll` - Placeholder for content withheld by Anthropic model policy. + Every URL from this source may be fetched. This is the default. - - `type: :redacted` + - `class BetaManagedAgentsWebFetchURLSourceNone` - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + This source contributes no URLs that may be fetched. - An outcome the agent should work toward. The agent begins work on receipt. + - `allowed_domains: Array[String]` - - `type: :"user.define_outcome"` + - `blocked_domains: Array[String]` - - `description: String` + - `max_content_tokens: Integer` - What the agent should produce. This is the task specification. + format: int32 - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + - `class BetaManagedAgentsWebSearchToolConfig` - How to grade the outcome. Text or file reference. + Configuration for the web_search tool. - - `class BetaManagedAgentsFileRubric` + - `type: :web_search` - Rubric referenced by a file uploaded via the Files API. + - `enabled: bool` - - `type: :file` + - `name: :web_search` - - `file_id: String` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - ID of the rubric file. + Permission policy for tool execution. - - `class BetaManagedAgentsTextRubric` + - `class BetaManagedAgentsAlwaysAllowPolicy` - Rubric content provided inline as text. + Tool calls are automatically approved without user confirmation. - - `type: :text` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `content: String` + Tool calls require user confirmation before execution. - Rubric content. Plain text or markdown — the grader treats it as freeform text. + - `class BetaManagedAgentsAutoPolicy` - - `max_iterations: Integer` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - Eval→revision cycles before giving up. Default 3, max 20. + - `allowed_domains: Array[String]` - format: int32 + - `blocked_domains: Array[String]` - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + - `user_location: BetaManagedAgentsUserLocation` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + Approximate user location for search result localization. - - `type: :"system.message"` + - `type: :approximate` - - `content: Array[BetaManagedAgentsSystemContentBlock]` + Location precision. Only "approximate" is supported. - System content blocks to append. Text-only. + - `city: String` - - `type: :text` + City name. - - `text: String` + minLength: 1, maxLength: 255 - The text content. + - `country: String` - minLength: 1 + Two-letter ISO 3166-1 country code, uppercase. - - `metadata: Hash[Symbol, String]` + - `region: String` - Arbitrary key-value metadata. Maximum 16 pairs. + Region or state name. - - `name: String` + minLength: 1, maxLength: 255 - Human-readable name. + - `timezone: String` - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` + IANA timezone identifier, e.g. "America/Los_Angeles". - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. + minLength: 1, maxLength: 255 - - `class BetaManagedAgentsManualDeploymentPausedReason` + - `default_config: BetaManagedAgentsAgentToolsetDefaultConfig` - The caller invoked the pause endpoint on the deployment. + Resolved default configuration for agent tools. - - `type: :manual` + - `enabled: bool` - - `class BetaManagedAgentsErrorDeploymentPausedReason` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - A scheduled fire recorded a failed run whose error auto-pauses the deployment. + Permission policy for tool execution. - - `type: :error` + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `error: BetaManagedAgentsDeploymentPausedReasonError` + Tool calls are automatically approved without user confirmation. - The failed run's error. + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` + Tool calls require user confirmation before execution. - The deployment's environment was archived. + - `class BetaManagedAgentsAutoPolicy` - - `type: :environment_archived_error` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` + - `class BetaManagedAgentsMCPToolset` - The deployment's agent was archived. + - `type: :mcp_toolset` - - `type: :agent_archived_error` + - `configs: Array[BetaManagedAgentsMCPToolConfig]` - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + - `enabled: bool` - The deployment's environment no longer exists. + - `name: String` - - `type: :environment_not_found_error` + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + Permission policy for tool execution. - A vault referenced by the deployment no longer exists. + - `class BetaManagedAgentsAlwaysAllowPolicy` - - `type: :vault_not_found_error` + Tool calls are automatically approved without user confirmation. - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + - `class BetaManagedAgentsAlwaysAskPolicy` - A file resource referenced by the deployment no longer exists. + Tool calls require user confirmation before execution. - - `type: :file_not_found_error` + - `class BetaManagedAgentsAutoPolicy` - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - A referenced resource no longer exists and its kind was not reported. + - `default_config: BetaManagedAgentsMCPToolsetDefaultConfig` - - `type: :session_resource_not_found_error` + Resolved default configuration for all tools from an MCP server. - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + - `enabled: bool` - The deployment's workspace was archived. + - `permission_policy: BetaManagedAgentsAlwaysAllowPolicy | BetaManagedAgentsAlwaysAskPolicy | BetaManagedAgentsAutoPolicy` - - `type: :workspace_archived_error` + Permission policy for tool execution. - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + - `class BetaManagedAgentsAlwaysAllowPolicy` - The deployment's organization is disabled. + Tool calls are automatically approved without user confirmation. - - `type: :organization_disabled_error` + - `class BetaManagedAgentsAlwaysAskPolicy` - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + Tool calls require user confirmation before execution. - A memory store referenced by the deployment is archived. + - `class BetaManagedAgentsAutoPolicy` - - `type: :memory_store_archived_error` + The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask. - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + - `mcp_server_name: String` - A skill referenced by the deployment's agent no longer exists. + - `class BetaManagedAgentsCustomTool` - - `type: :skill_not_found_error` + A custom tool as returned in API responses. - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + - `type: :custom` - A vault referenced by the deployment is archived. + - `description: String` - - `type: :vault_archived_error` + - `input_schema: BetaManagedAgentsCustomToolInputSchema` - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + JSON Schema for custom tool input parameters. - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + - `type: :object` - - `type: :unknown_error` + - `properties: Hash[Symbol, untyped]` - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + - `required: Array[String]` - The deployment configures resources, but its environment is self-hosted and cannot mount them. + - `name: String` - - `type: :self_hosted_resources_unsupported_error` + - `version: Integer` - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + format: int32 - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `class BetaManagedAgentsAdvisor` - - `type: :mcp_egress_blocked_error` + Platform advisor roster entry: a model the session's primary thread may consult mid-turn. - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + - `type: :advisor` - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + - `model: String` - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + The advisor model id. - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + - `class BetaManagedAgentsSessionMultiagent20261001` - - `type: :github_repository` + Resolved multiagent configuration with three members, as copied to the `session` at creation. - - `url: String` + - `type: :multiagent_20261001` - Github URL of the repository + - `advisor: BetaManagedAgentsMultiagentAdvisor` - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + Whether the session's primary thread can consult an advisor model. - Branch or commit to check out. Defaults to the repository's default branch. + - `class BetaManagedAgentsMultiagentAdvisorEnabled` - - `class BetaManagedAgentsBranchCheckout` + The session's primary thread can consult `model` mid-turn. - - `type: :branch` + - `type: :enabled` - - `name: String` + - `model: String` - Branch name to check out. + The advisor model id. - minLength: 1, maxLength: 255 + - `class BetaManagedAgentsMultiagentAdvisorDisabled` - - `class BetaManagedAgentsCommitCheckout` + The agent has no advisor. - - `type: :commit` + - `type: :disabled` - - `sha: String` + - `subagents: BetaManagedAgentsSessionMultiagentSubagents` - Full commit SHA to check out. + Whether the agent can spawn session threads. - minLength: 7, maxLength: 64 + - `class BetaManagedAgentsSessionMultiagentSubagentsEnabled` - - `mount_path: String` + The agent can spawn session threads. - Mount path in the container. Defaults to `/workspace/`. + - `type: :enabled` - - `class BetaManagedAgentsFileResourceConfig` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - A file mounted into each session's container. + Whether the agent can define inline agents, which are not saved, when it spawns session threads. - - `type: :file` + - `class BetaManagedAgentsMultiagentInlineAgentsEnabled` - - `file_id: String` + The agent can define inline agents. - ID of a previously uploaded file. + - `type: :enabled` - - `mount_path: String` + - `class BetaManagedAgentsMultiagentInlineAgentsDisabled` - Mount path in the container. Defaults to `/mnt/session/uploads/`. + The agent cannot define inline agents. - - `class BetaManagedAgentsMemoryStoreResourceConfig` + - `type: :disabled` - A memory store attached to each session created from this deployment. + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - - `type: :memory_store` + Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads. - - `memory_store_id: String` + - `type: :agent` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + - `id: String` - - `access: :read_write | :read_only` + - `description: String` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - - `:read_write` + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `:read_only` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - - `instructions: String` + - `model: BetaManagedAgentsModelConfig` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + Model identifier and configuration. - - `schedule: BetaManagedAgentsSchedule` + - `name: String` - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `type: :cron` + - `system_: String` - - `expression: String` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `version: Integer` - minLength: 1, maxLength: 256 + format: int32 - - `timezone: String` + - `class BetaManagedAgentsMultiagentSubagentsDisabled` - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + The agent cannot spawn session threads. - minLength: 1 + - `type: :disabled` - - `last_run_at: Time` + - `workflows: BetaManagedAgentsSessionMultiagentWorkflows` - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + Whether the agent can start workflow runs. - format: date-time + - `class BetaManagedAgentsSessionMultiagentWorkflowsEnabled` - - `upcoming_runs_at: Array[Time]` + The agent can start workflow runs. - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + - `type: :enabled` - - `status: BetaManagedAgentsDeploymentStatus` + - `inline_agents: BetaManagedAgentsMultiagentInlineAgents` - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + Whether a run's plan can define inline agents, which are not saved. - - `:active` + - `predefined_agents: Array[BetaManagedAgentsSessionThreadAgent]` - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use. - - `:paused` + - `type: :agent` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + - `id: String` - - `updated_at: Time` + - `description: String` - Time the deployment was last updated. + - `execution_identity: BetaManagedAgentsExecutionIdentity` - format: date-time + Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal. - - `vault_ids: Array[String]` + - `mcp_servers: Array[BetaManagedAgentsMCPServerURLDefinition]` - Vault IDs supplying stored credentials for sessions created from this deployment. + - `model: BetaManagedAgentsModelConfig` - - `budget: BetaManagedAgentsBudgetLimit` + Model identifier and configuration. - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + - `name: String` - - `type: :limit` + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` - - `max_list_cost: BetaMonetaryAmount` + - `system_: String` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` - - `amount: String` + - `version: Integer` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + format: int32 - - `currency: BetaCurrency` + - `class BetaManagedAgentsMultiagentWorkflowsDisabled` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + The agent cannot start workflow runs. -#### Example + - `type: :disabled` -```ruby -require "anthropic" + - `name: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `skills: Array[BetaManagedAgentsAnthropicSkill | BetaManagedAgentsCustomSkill]` -beta_managed_agents_deployment = anthropic.beta.deployments.archive("depl_011CZkZcDH3vPqd7xnEfwTai") + - `class BetaManagedAgentsAnthropicSkill` -puts(beta_managed_agents_deployment) -``` + A resolved Anthropic-managed skill. -##### Response (200) + - `class BetaManagedAgentsCustomSkill` -```json -{ - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } -} -``` + A resolved user-created custom skill. -### Run Deployment Now + - `system_: String` -`beta.deployments.run(deployment_id, **kwargs) -> BetaManagedAgentsDeploymentRun` + - `tools: Array[BetaManagedAgentsAgentToolset20260401 | BetaManagedAgentsMCPToolset | BetaManagedAgentsCustomTool]` -**POST** `/v1/deployments/{deployment_id}/run` + - `class BetaManagedAgentsAgentToolset20260401` -Run Deployment Now + - `class BetaManagedAgentsMCPToolset` -#### Parameters + - `class BetaManagedAgentsCustomTool` -- `deployment_id: String` (path parameter) + A custom tool as returned in API responses. - Unique identifier of the deployment to run. + - `version: Integer` -- `betas: Array[AnthropicBeta]` (header parameter) + format: int32 - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `budget: BetaManagedAgentsBudgetLimit` - - `String = String` + The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget. - - `:"message-batches-2024-09-24"` + - `type: :limit` - - `:"prompt-caching-2024-07-31"` + - `max_list_cost: BetaMonetaryAmount` - - `:"computer-use-2024-10-22"` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `:"computer-use-2025-01-24"` + - `amount: String` - - `:"pdfs-2024-09-25"` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `:"token-counting-2024-11-01"` + - `currency: BetaCurrency` - - `:"token-efficient-tools-2025-02-19"` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `:"output-128k-2025-02-19"` + - `metadata: Hash[Symbol, String]` - - `:"files-api-2025-04-14"` + The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty. - - `:"mcp-client-2025-04-04"` + - `title: String` - - `:"mcp-client-2025-11-20"` + The session's new title. Present only when the update changed it. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsStartEvent` - - `:"interleaved-thinking-2025-05-14"` + Opens a preview of a buffered event. Carries the previewed event's type and id only. Followed by zero or more event_delta events with the same event id, normally concluded by the buffered event carrying that id. If the producing model request ends without that event (an error or interrupt mid-stream), its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. - - `:"code-execution-2025-05-22"` + - `type: :event_start` - - `:"extended-cache-ttl-2025-04-11"` + - `event: BetaManagedAgentsStartEventPreview` - - `:"context-1m-2025-08-07"` + The previewed event's type and id. The event type determines which delta types the preview's event_delta events carry: agent.message events stream content_delta fragments; agent.thinking previews are start-only — no deltas follow, and the buffered agent.thinking with the same id concludes them. - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsAgentMessagePreview` - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :"agent.message"` - - `:"skills-2025-10-02"` + - `id: String` - - `:"fast-mode-2026-02-01"` + The id the buffered agent.message will carry if it is emitted. Matches the event_id on this preview's event_delta events. - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsAgentThinkingPreview` - - `:"user-profiles-2026-03-24"` + - `type: :"agent.thinking"` - - `:"user-profiles-2026-08-18"` + - `id: String` - - `:"user-profiles-2026-09-04"` + The id the buffered agent.thinking will carry if it is emitted. Start-only — no event_delta events follow. - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsDeltaEvent` - - `:"managed-agents-2026-04-01"` + An incremental update to an event that is still being streamed. Deltas are best-effort and may stop early; when the buffered event with id == event_id is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no buffered event — its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history. - - `:"cache-diagnosis-2026-04-07"` + - `type: :event_delta` - - `:"dreaming-2026-04-21"` + - `delta: BetaManagedAgentsDeltaContent` - - `:"thinking-token-count-2026-05-13"` + One fragment of the previewed event. The delta type is named for the previewed event's field it streams into: agent.message events stream content_delta fragments, each a partial element of the content array. - - `:"server-side-fallback-2026-06-01"` + - `type: :content_delta` - - `:"server-side-fallback-2026-07-01"` + - `content: BetaManagedAgentsTextBlock` - - `:"fallback-credit-2026-06-01"` + A partial element of the content array at index, typed like the element itself — the same shape the buffered agent.message carries in content. - - `:"fallback-credit-2026-07-01"` + - `index: Integer` - - `:"agent-memory-2026-07-22"` + Which entry in the previewed event's content array this fragment lands in. Insert content as that entry when the index is new; append to the existing entry otherwise. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `event_id: String` - - `:"compact-2026-01-12"` + The id of the event being previewed. Matches event.id on the corresponding event_start and the buffered event that reconciles the preview. - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsSystemMessageEvent` - - `:"mcp-tunnels-2026-06-22"` + A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn. - - `:"structured-outputs-2025-11-13"` + - `type: :"system.message"` - - `:"task-budgets-2026-03-13"` + - `id: String` - - `:"thinking-display-updates-2026-08-18"` + Unique identifier for this event. - - `:"ce-user-management-2026-07-13"` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `:"mid-conversation-output-config-2026-07-01"` + System content blocks. Text-only. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :text` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `text: String` - - `:"compact-2026-09-04"` + The text content. - - `:"inline-tools-2026-09-15"` + minLength: 1 - - `:"mcp-client-2026-09-15"` + - `processed_at: Time` - - `:"ce-plugins-2026-09-01"` + Timestamp when this system message was processed. - - `:"spend-limit-reads-2026-09-26"` + format: date-time - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsSessionUsageEvent` -- `workspace_id: String` (header parameter) + Periodic snapshot of the session's cumulative usage and tracked list cost. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :"session.usage"` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `id: String` -#### Returns + Unique identifier for this event. -- `class BetaManagedAgentsDeploymentRun` + - `processed_at: Time` - A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. + Timestamp when the snapshot was taken. - - `type: :deployment_run` + format: date-time - - `id: String` + - `usage: BetaManagedAgentsSessionUsageSnapshot` - Unique identifier for this run (`drun_...`). + The session's cumulative usage at the snapshot time. - - `agent: BetaManagedAgentsAgentReference` + - `active_seconds: Float` - Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. + Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on. - - `type: :agent` + format: double - - `id: String` + - `cache_creation: BetaManagedAgentsCacheCreationUsage` - - `version: Integer` + Tokens used to create prompt cache entries, broken down by cache TTL. - format: int32 + - `ephemeral_1h_input_tokens: Integer` - - `created_at: Time` + Tokens used to create 1-hour ephemeral cache entries. - Time this run record was persisted. + format: int32 - format: date-time + - `ephemeral_5m_input_tokens: Integer` - - `deployment_id: String` + Tokens used to create 5-minute ephemeral cache entries. - ID of the deployment that produced this run. + format: int32 - - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` + - `cache_read_input_tokens: Integer` - Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. + Total tokens read from prompt cache. - - `class BetaManagedAgentsEnvironmentArchivedRunError` + format: int32 - The deployment's environment was archived. + - `input_tokens: Integer` - - `type: :environment_archived_error` + Total input tokens consumed across all turns. - - `message: String` + format: int32 - Human-readable error description. + - `list_cost: BetaMonetaryAmount` - - `class BetaManagedAgentsAgentArchivedRunError` + Cumulative list cost of the session across all turns, priced at public list rates. - The deployment's agent was archived. + - `output_tokens: Integer` - - `type: :agent_archived_error` + Total output tokens generated across all turns. - - `message: String` + format: int32 - Human-readable error description. + - `server_tool_use: BetaManagedAgentsServerToolUsage` - - `class BetaManagedAgentsEnvironmentNotFoundRunError` + Cumulative server-executed tool usage across all turns. - The deployment's environment no longer exists. + - `web_fetch_requests: Integer` - - `type: :environment_not_found_error` + Number of server-executed web fetch requests. - - `message: String` + format: int32 - Human-readable error description. + - `web_search_requests: Integer` - - `class BetaManagedAgentsVaultNotFoundRunError` + Number of server-executed web search requests. - A vault referenced by the deployment no longer exists. + format: int32 - - `type: :vault_not_found_error` + - `budget: BetaManagedAgentsBudgetLimit` - - `message: String` + The session's configured budget at the snapshot time, or null when the session has no budget. - Human-readable error description. + - `class BetaManagedAgentsWorkflowRunCreatedEvent` - - `class BetaManagedAgentsVaultArchivedRunError` + A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events. - A vault referenced by the deployment is archived. + - `type: :"workflow_run.created"` - - `type: :vault_archived_error` + - `id: String` - - `message: String` + Unique identifier for this event. - Human-readable error description. + - `description: String` - - `class BetaManagedAgentsFileNotFoundRunError` + Description that the agent gave the run, passed on as written, or `null` if it gave none. - A file resource referenced by the deployment no longer exists. + - `name: String` - - `type: :file_not_found_error` + Name that the agent gave the run, passed on as written, or a name that the server assigned. - - `message: String` + - `phases: Array[BetaManagedAgentsWorkflowRunPhase]` - Human-readable error description. + The phases that the run's plan declares, in the plan's order. Can be empty. - - `class BetaManagedAgentsMemoryStoreArchivedRunError` + - `id: String` - A memory store referenced by the deployment is archived. + Unique identifier for the phase. - - `type: :memory_store_archived_error` + - `description: String` - - `message: String` + Description that the agent gave the phase, passed on as written, or `null` if it gave none. - Human-readable error description. + - `name: String` - - `class BetaManagedAgentsSkillNotFoundRunError` + Name that the agent gave the phase, passed on as written. - A skill referenced by the deployment's agent no longer exists. + - `processed_at: Time` - - `type: :skill_not_found_error` + Timestamp when this event was processed. - - `message: String` + format: date-time - Human-readable error description. + - `workflow_run_id: String` - - `class BetaManagedAgentsSessionResourceNotFoundRunError` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - A referenced resource no longer exists and its kind was not reported. + - `class BetaManagedAgentsWorkflowRunStatusEndedEvent` - - `type: :session_resource_not_found_error` + A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events. - - `message: String` + - `type: :"workflow_run.status_ended"` - Human-readable error description. + - `id: String` - - `class BetaManagedAgentsWorkspaceArchivedRunError` + Unique identifier for this event. - The deployment's workspace was archived. + - `processed_at: Time` - - `type: :workspace_archived_error` + Timestamp when this event was processed. - - `message: String` + format: date-time - Human-readable error description. + - `result: BetaManagedAgentsWorkflowRunResult` - - `class BetaManagedAgentsOrganizationDisabledRunError` + How the run ended. - The deployment's organization is disabled. + - `class BetaManagedAgentsWorkflowRunResultCompleted` - - `type: :organization_disabled_error` + The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded. - - `message: String` + - `type: :completed` - Human-readable error description. - - - `class BetaManagedAgentsSessionRateLimitedRunError` - - Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. - - - `type: :session_rate_limited_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsSessionCreationRejectedRunError` - - The session create request was rejected with a non-retryable validation error. + - `class BetaManagedAgentsWorkflowRunResultError` - - `type: :session_creation_rejected_error` + The run failed or reached its time limit. - - `message: String` + - `type: :error` - Human-readable error description. + - `error: BetaManagedAgentsWorkflowRunError` - - `class BetaManagedAgentsUnknownRunError` + Why the run did not finish. - An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. + - `class BetaManagedAgentsTimeoutWorkflowRunError` - - `type: :unknown_error` + The run reached its time limit. - - `message: String` + - `type: :timeout_error` - Human-readable error description. + - `message: String` - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` + Short explanation written by the server. It never contains content from the run or its agents. - The deployment configures resources, but its environment is self-hosted and cannot mount them. + - `class BetaManagedAgentsProgramWorkflowRunError` - - `type: :self_hosted_resources_unsupported_error` + The plan, a program that the agent wrote, failed, or the server refused it. - - `message: String` + - `type: :program_error` - Human-readable error description. + - `message: String` - - `class BetaManagedAgentsMCPEgressBlockedRunError` + Short explanation written by the server. It never contains content from the run or its agents. - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `class BetaManagedAgentsUnknownWorkflowRunError` - - `type: :mcp_egress_blocked_error` + A failure that has no type of its own. - - `message: String` + - `type: :unknown_error` - Human-readable error description. + - `message: String` - - `session_id: String` + Short explanation written by the server. It never contains content from the run or its agents. - Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. + - `class BetaManagedAgentsThreadLimitWorkflowRunError` - - `trigger_context: BetaManagedAgentsTriggerContext` + The run exceeded the limit on the number of threads that a run can create. - What triggered this run and trigger-specific metadata. + - `type: :thread_limit_error` - - `class BetaManagedAgentsScheduleTriggerContext` + - `message: String` - The run was fired by the deployment's cron schedule. + Short explanation written by the server. It never contains content from the run or its agents. - - `type: :schedule` + - `class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError` - - `scheduled_at: Time` + No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type. - The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. + - `type: :max_workflow_runs_error` - format: date-time + - `message: String` - - `class BetaManagedAgentsManualTriggerContext` + Short explanation written by the server. It never contains content from the run or its agents. - The run was started manually by creating a session directly against the deployment. + - `class BetaManagedAgentsWorkflowRunResultStopped` - - `type: :manual` + The agent stopped the run. -#### Example + - `type: :stopped` -```ruby -require "anthropic" + - `workflow_run_id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. -beta_managed_agents_deployment_run = anthropic.beta.deployments.run("depl_011CZkZcDH3vPqd7xnEfwTai") + - `class BetaManagedAgentsWorkflowRunPhaseStartedEvent` -puts(beta_managed_agents_deployment_run) -``` + A workflow run's plan entered a phase. -##### Response (200) + - `type: :"workflow_run.phase_started"` -```json -{ - "id": "id", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - }, - "created_at": "2019-12-27T18:11:19.117Z", - "deployment_id": "deployment_id", - "error": { - "message": "message", - "type": "environment_archived_error" - }, - "session_id": "session_id", - "trigger_context": { - "scheduled_at": "2019-12-27T18:11:19.117Z", - "type": "schedule" - }, - "type": "deployment_run" -} -``` + - `id: String` -### Pause Deployment + Unique identifier for this event. -`beta.deployments.pause(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` + - `processed_at: Time` -**POST** `/v1/deployments/{deployment_id}/pause` + Timestamp when this event was processed. -Pause Deployment + format: date-time -#### Parameters + - `workflow_run_id: String` -- `deployment_id: String` (path parameter) + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - Unique identifier of the deployment to pause. + - `workflow_run_phase_id: String` -- `betas: Array[AnthropicBeta]` (header parameter) + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `class BetaManagedAgentsWorkflowRunPhaseEndedEvent` - - `String = String` + A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left. - - `:"message-batches-2024-09-24"` + - `type: :"workflow_run.phase_ended"` - - `:"prompt-caching-2024-07-31"` + - `id: String` - - `:"computer-use-2024-10-22"` + Unique identifier for this event. - - `:"computer-use-2025-01-24"` + - `phase_started_id: String` - - `:"pdfs-2024-09-25"` + Identifier of the `workflow_run.phase_started` event that opened the phase. - - `:"token-counting-2024-11-01"` + - `processed_at: Time` - - `:"token-efficient-tools-2025-02-19"` + Timestamp when this event was processed. - - `:"output-128k-2025-02-19"` + format: date-time - - `:"files-api-2025-04-14"` + - `workflow_run_id: String` - - `:"mcp-client-2025-04-04"` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `:"mcp-client-2025-11-20"` + - `workflow_run_phase_id: String` - - `:"dev-full-thinking-2025-05-14"` + Identifier of the phase, as in `phases` on the run's `workflow_run.created` event. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsWorkflowRunStatusRunningEvent` - - `:"code-execution-2025-05-22"` + A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :"workflow_run.status_running"` - - `:"context-1m-2025-08-07"` + - `id: String` - - `:"context-management-2025-06-27"` + Unique identifier for this event. - - `:"model-context-window-exceeded-2025-08-26"` + - `processed_at: Time` - - `:"skills-2025-10-02"` + Timestamp when this event was processed. - - `:"fast-mode-2026-02-01"` + format: date-time - - `:"output-300k-2026-03-24"` + - `workflow_run_id: String` - - `:"user-profiles-2026-03-24"` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsWorkflowRunStatusIdleEvent` - - `:"user-profiles-2026-09-04"` + A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`. - - `:"advisor-tool-2026-03-01"` + - `type: :"workflow_run.status_idle"` - - `:"managed-agents-2026-04-01"` + - `id: String` - - `:"cache-diagnosis-2026-04-07"` + Unique identifier for this event. - - `:"dreaming-2026-04-21"` + - `processed_at: Time` - - `:"thinking-token-count-2026-05-13"` + Timestamp when this event was processed. - - `:"server-side-fallback-2026-06-01"` + format: date-time - - `:"server-side-fallback-2026-07-01"` + - `workflow_run_id: String` - - `:"fallback-credit-2026-06-01"` + Identifier of the run. The same value is on all of the run's `workflow_run.*` events. - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsWorkflowRunErrorEvent` - - `:"agent-memory-2026-07-22"` + A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :"workflow_run.error"` - - `:"compact-2026-01-12"` + - `id: String` - - `:"computer-use-2025-11-24"` + Unique identifier for this event. - - `:"mcp-tunnels-2026-06-22"` + - `error: BetaManagedAgentsWorkflowRunError` - - `:"structured-outputs-2025-11-13"` + Why the run did not finish, or was not created. - - `:"task-budgets-2026-03-13"` + - `processed_at: Time` - - `:"thinking-display-updates-2026-08-18"` + Timestamp when this event was processed. - - `:"ce-user-management-2026-07-13"` + format: date-time - - `:"mid-conversation-output-config-2026-07-01"` + - `workflow_run_id: String` - - `:"thinking-binding-controls-2026-08-01"` + Identifier of the run that met the error, or `null` when the error kept a run from being created. - - `:"mid-conversation-system-clear-at-2026-08-21"` +#### Example - - `:"compact-2026-09-04"` +```ruby +require "anthropic" - - `:"inline-tools-2026-09-15"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"mcp-client-2026-09-15"` +stream = anthropic.beta.sessions.threads.events.stream_events( + "sthr_011CZkZVWa6oJjw1rgXZpnBt", + session_id: "sesn_011CZkZAtmR3yMPDzynEDxu7" +) - - `:"ce-plugins-2026-09-01"` +stream.each do |event| + puts(event) +end +``` - - `:"spend-limit-reads-2026-09-26"` +##### Response (200) - - `:"telemetry-destinations-2026-08-11"` +```json +{ + "id": "sevt_011CZkZGPp1iBcp4kaQSihUm", + "content": [ + { + "text": "Where is my order #1234?", + "type": "text" + } + ], + "type": "user.message", + "processed_at": "2026-03-15T10:00:00Z" +} +``` -- `workspace_id: String` (header parameter) +## Beta › Deployments - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). +### Create Deployment - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. +`beta.deployments.create(**kwargs) -> BetaManagedAgentsDeployment` -#### Returns +**POST** `/v1/deployments` -- `class BetaManagedAgentsDeployment` +Create Deployment - A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. +#### Parameters - - `type: :deployment` +- `agent: String | BetaManagedAgentsAgentParams` - - `id: String` + Agent to deploy. Accepts the `agent` ID string, which pins the latest version, or an `agent` object with both id and version specified. The agent must exist and not be archived. - Unique identifier for this deployment. + - `String = String` - - `agent: BetaManagedAgentsAgentReference` + - `class BetaManagedAgentsAgentParams` - Reference to the agent this deployment runs, resolved to a concrete version. + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - `type: :agent` - `id: String` - - `version: Integer` - - format: int32 + The `agent` ID. - - `archived_at: Time` + minLength: 1, maxLength: 128 - Time the deployment was archived. Null if not archived. + - `version: Integer` - format: date-time + The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. - - `created_at: Time` + format: int32 - Time the deployment was created. +- `environment_id: String` - format: date-time + ID of the `environment` defining the container configuration for sessions created from this deployment. - - `description: String` + minLength: 1, maxLength: 128 - Description of what the deployment does. +- `initial_events: Array[BetaManagedAgentsDeploymentInitialEventParams]` - - `environment_id: String` + Events to send to each session immediately after creation. At least 1, maximum 50. - ID of the `environment` where sessions run. + - `class BetaManagedAgentsUserMessageEventParams` - - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` + Parameters for sending a user message to the session. - Events sent to each session immediately after creation. + - `type: :"user.message"` - - `class BetaManagedAgentsDeploymentUserMessageEvent` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - A user message sent to the session. + Array of content blocks for the user message. - - `type: :"user.message"` + - `class BetaManagedAgentsTextBlock` - - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` + Regular text content. - Array of content blocks for the user message. + - `type: :text` - - `class BetaManagedAgentsTextBlock` + - `text: String` - Regular text content. + The text content. - - `type: :text` + minLength: 1 - - `text: String` + - `class BetaManagedAgentsImageBlock` - The text content. + Image content specified directly as base64 data or as a reference via a URL. - minLength: 1 + - `type: :image` - - `class BetaManagedAgentsImageBlock` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - Image content specified directly as base64 data or as a reference via a URL. + The source of the image data. - - `type: :image` + - `class BetaManagedAgentsBase64ImageSource` - - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` + Base64-encoded image data. - The source of the image data. + - `type: :base64` - - `class BetaManagedAgentsBase64ImageSource` + - `data: String` Base64-encoded image data. - - `type: :base64` + minLength: 1 - - `data: String` + - `media_type: String` - Base64-encoded image data. + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - minLength: 1 + minLength: 1 - - `media_type: String` + - `class BetaManagedAgentsURLImageSource` - MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). + Image referenced by URL. - minLength: 1 + - `type: :url` - - `class BetaManagedAgentsURLImageSource` + - `url: String` - Image referenced by URL. + URL of the image to fetch. - - `type: :url` + minLength: 1 - - `url: String` + - `class BetaManagedAgentsFileImageSource` - URL of the image to fetch. + Image referenced by file ID. - minLength: 1 + - `type: :file` - - `class BetaManagedAgentsFileImageSource` + - `file_id: String` - Image referenced by file ID. + ID of a previously uploaded file. - - `type: :file` + minLength: 1 - - `file_id: String` + - `class BetaManagedAgentsDocumentBlock` - ID of a previously uploaded file. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - minLength: 1 + - `type: :document` - - `class BetaManagedAgentsDocumentBlock` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - Document content, either specified directly as base64 data, as text, or as a reference via a URL. + The source of the document data. - - `type: :document` + - `class BetaManagedAgentsBase64DocumentSource` - - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` + Base64-encoded document data. - The source of the document data. + - `type: :base64` - - `class BetaManagedAgentsBase64DocumentSource` + - `data: String` Base64-encoded document data. - - `type: :base64` + minLength: 1 - - `data: String` + - `media_type: String` - Base64-encoded document data. + MIME type of the document (e.g., "application/pdf"). - minLength: 1 + minLength: 1 - - `media_type: String` + - `class BetaManagedAgentsPlainTextDocumentSource` - MIME type of the document (e.g., "application/pdf"). + Plain text document content. - minLength: 1 + - `type: :text` - - `class BetaManagedAgentsPlainTextDocumentSource` + - `data: String` - Plain text document content. + The plain text content. - - `type: :text` + minLength: 1 - - `data: String` + - `media_type: :"text/plain"` - The plain text content. + MIME type of the text content. Must be "text/plain". - minLength: 1 + - `class BetaManagedAgentsURLDocumentSource` - - `media_type: :"text/plain"` + Document referenced by URL. - MIME type of the text content. Must be "text/plain". + - `type: :url` - - `class BetaManagedAgentsURLDocumentSource` + - `url: String` - Document referenced by URL. + URL of the document to fetch. - - `type: :url` + minLength: 1 - - `url: String` + - `class BetaManagedAgentsFileDocumentSource` - URL of the document to fetch. + Document referenced by file ID. - minLength: 1 + - `type: :file` - - `class BetaManagedAgentsFileDocumentSource` + - `file_id: String` - Document referenced by file ID. + ID of a previously uploaded file. - - `type: :file` + minLength: 1 - - `file_id: String` + - `context: String` - ID of a previously uploaded file. + Additional context about the document for the model. - minLength: 1 + - `title: String` - - `context: String` + The title of the document. - Additional context about the document for the model. + - `class BetaManagedAgentsRedactedBlock` - - `title: String` + Placeholder for content withheld by Anthropic model policy. - The title of the document. + - `type: :redacted` - - `class BetaManagedAgentsRedactedBlock` + - `class BetaManagedAgentsUserDefineOutcomeEventParams` - Placeholder for content withheld by Anthropic model policy. + Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. - - `type: :redacted` + - `type: :"user.define_outcome"` - - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` + - `description: String` - An outcome the agent should work toward. The agent begins work on receipt. + What the agent should produce. This is the task specification. - - `type: :"user.define_outcome"` + - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` - - `description: String` + How to grade the outcome. Text or file reference. - What the agent should produce. This is the task specification. + - `class BetaManagedAgentsFileRubricParams` - - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` + Rubric referenced by a file uploaded via the Files API. - How to grade the outcome. Text or file reference. + - `type: :file` - - `class BetaManagedAgentsFileRubric` + - `file_id: String` - Rubric referenced by a file uploaded via the Files API. + ID of the rubric file. - - `type: :file` + - `class BetaManagedAgentsTextRubricParams` - - `file_id: String` + Rubric content provided inline as text. - ID of the rubric file. + - `type: :text` - - `class BetaManagedAgentsTextRubric` + - `content: String` - Rubric content provided inline as text. + Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. - - `type: :text` + maxLength: 262144 - - `content: String` + - `max_iterations: Integer` - Rubric content. Plain text or markdown — the grader treats it as freeform text. + Eval→revision cycles before giving up. Default 3, max 20. - - `max_iterations: Integer` + format: int32 - Eval→revision cycles before giving up. Default 3, max 20. + - `class BetaManagedAgentsSystemMessageEventParams` - format: int32 + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. - - `class BetaManagedAgentsDeploymentSystemMessageEvent` + - `type: :"system.message"` - Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `type: :"system.message"` + System content blocks to append. Text-only. - - `content: Array[BetaManagedAgentsSystemContentBlock]` + - `type: :text` - System content blocks to append. Text-only. + - `text: String` - - `type: :text` + The text content. - - `text: String` + minLength: 1 - The text content. - - minLength: 1 - - - `metadata: Hash[Symbol, String]` - - Arbitrary key-value metadata. Maximum 16 pairs. - - - `name: String` - - Human-readable name. - - - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - - Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - - `class BetaManagedAgentsManualDeploymentPausedReason` - - The caller invoked the pause endpoint on the deployment. - - - `type: :manual` - - - `class BetaManagedAgentsErrorDeploymentPausedReason` - - A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - - `type: :error` - - - `error: BetaManagedAgentsDeploymentPausedReasonError` - - The failed run's error. - - - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - - The deployment's environment was archived. - - - `type: :environment_archived_error` - - - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - - The deployment's agent was archived. - - - `type: :agent_archived_error` - - - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` - - The deployment's environment no longer exists. - - - `type: :environment_not_found_error` - - - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` - - A vault referenced by the deployment no longer exists. - - - `type: :vault_not_found_error` - - - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` - - A file resource referenced by the deployment no longer exists. - - - `type: :file_not_found_error` - - - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` - - A referenced resource no longer exists and its kind was not reported. - - - `type: :session_resource_not_found_error` - - - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` - - The deployment's workspace was archived. - - - `type: :workspace_archived_error` - - - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` - - The deployment's organization is disabled. - - - `type: :organization_disabled_error` - - - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - - A memory store referenced by the deployment is archived. - - - `type: :memory_store_archived_error` - - - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - - A skill referenced by the deployment's agent no longer exists. - - - `type: :skill_not_found_error` - - - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - - A vault referenced by the deployment is archived. - - - `type: :vault_archived_error` - - - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` - - An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. - - - `type: :unknown_error` - - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` - - The deployment configures resources, but its environment is self-hosted and cannot mount them. - - - `type: :self_hosted_resources_unsupported_error` - - - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - - An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - - `type: :mcp_egress_blocked_error` - - - `resources: Array[BetaManagedAgentsSessionResourceConfig]` - - Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - - - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - - A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. - - - `type: :github_repository` - - - `url: String` - - Github URL of the repository - - - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - Branch or commit to check out. Defaults to the repository's default branch. - - - `class BetaManagedAgentsBranchCheckout` - - - `type: :branch` - - - `name: String` - - Branch name to check out. +- `name: String` - minLength: 1, maxLength: 255 + Human-readable name for the deployment. - - `class BetaManagedAgentsCommitCheckout` + minLength: 1, maxLength: 256 - - `type: :commit` +- `budget: BetaManagedAgentsBudgetLimit` - - `sha: String` + Enforced spend ceiling stamped onto each session created from this deployment, copied at session-creation time. Omit to leave sessions uncapped. The deployment agent's model must have a public list price, or the request is rejected; a multiagent roster is re-validated in full when each fire copies the cap, which fails closed the same way. - Full commit SHA to check out. + - `type: :limit` - minLength: 7, maxLength: 64 + - `max_list_cost: BetaMonetaryAmount` - - `mount_path: String` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - Mount path in the container. Defaults to `/workspace/`. + - `amount: String` - - `class BetaManagedAgentsFileResourceConfig` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - A file mounted into each session's container. + - `currency: BetaCurrency` - - `type: :file` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `file_id: String` +- `description: String` - ID of a previously uploaded file. + Description of what the deployment does. - - `mount_path: String` + maxLength: 2048 - Mount path in the container. Defaults to `/mnt/session/uploads/`. +- `metadata: Hash[Symbol, String]` - - `class BetaManagedAgentsMemoryStoreResourceConfig` + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - A memory store attached to each session created from this deployment. +- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` - - `type: :memory_store` + Resources (e.g. repositories, files) to mount into each session's container. Maximum 500. - - `memory_store_id: String` + - `class BetaManagedAgentsGitHubRepositoryResourceParams` - The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + Mount a GitHub repository into the session's container. - - `access: :read_write | :read_only` + - `type: :github_repository` - Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + - `url: String` - - `:read_write` + Github URL of the repository - - `:read_only` + minLength: 1, maxLength: 2048 - - `instructions: String` + - `authorization_token: String` - Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. - - `schedule: BetaManagedAgentsSchedule` + minLength: 1, maxLength: 4096 - Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `type: :cron` + Branch or commit to check out. Defaults to the repository's default branch. - - `expression: String` + - `class BetaManagedAgentsBranchCheckout` - 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + - `type: :branch` - minLength: 1, maxLength: 256 + - `name: String` - - `timezone: String` + Branch name to check out. - IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + minLength: 1, maxLength: 255 - minLength: 1 + - `class BetaManagedAgentsCommitCheckout` - - `last_run_at: Time` + - `type: :commit` - Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + - `sha: String` - format: date-time + Full commit SHA to check out. - - `upcoming_runs_at: Array[Time]` + minLength: 7, maxLength: 64 - Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + - `mount_path: String` - - `status: BetaManagedAgentsDeploymentStatus` + Mount path in the container. Defaults to `/workspace/`. - Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + minLength: 1, maxLength: 4096 - - `:active` + - `class BetaManagedAgentsFileResourceParams` - The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + Mount a file uploaded via the Files API into the session. - - `:paused` + - `type: :file` - The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. + - `file_id: String` - - `updated_at: Time` + ID of a previously uploaded file. - Time the deployment was last updated. + minLength: 1, maxLength: 128 - format: date-time + - `mount_path: String` - - `vault_ids: Array[String]` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - Vault IDs supplying stored credentials for sessions created from this deployment. + minLength: 1, maxLength: 4096 - - `budget: BetaManagedAgentsBudgetLimit` + - `class BetaManagedAgentsMemoryStoreResourceParam` - Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + Parameters for attaching a memory store to an agent session. - - `type: :limit` + - `type: :memory_store` - - `max_list_cost: BetaMonetaryAmount` + - `memory_store_id: String` - Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - - `amount: String` + - `access: :read_write | :read_only` - Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. - - `currency: BetaCurrency` + - `:read_write` - Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. + - `:read_only` -#### Example + - `instructions: String` -```ruby -require "anthropic" + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + maxLength: 4096 -beta_managed_agents_deployment = anthropic.beta.deployments.pause("depl_011CZkZcDH3vPqd7xnEfwTai") +- `schedule: BetaManagedAgentsScheduleParams` -puts(beta_managed_agents_deployment) -``` + Optional recurring cron schedule. When present, the deployment fires automatically. Both expression and timezone are required when schedule is set. -##### Response (200) + - `type: :cron` -```json -{ - "id": "depl_011CZkZcDH3vPqd7xnEfwTai", - "agent": { - "id": "agent_011CZkYpogX7uDKUyvBTophP", - "type": "agent", - "version": 1 - }, - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Compiles yesterday's orders into a report every weekday morning.", - "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", - "initial_events": [ - { - "content": [ - { - "text": "Compile yesterday's orders into report.md.", - "type": "text" - } - ], - "type": "user.message" - } - ], - "metadata": {}, - "name": "Daily order report", - "paused_reason": { - "type": "manual" - }, - "resources": [ - { - "type": "github_repository", - "url": "url", - "checkout": { - "name": "main", - "type": "branch" - }, - "mount_path": "mount_path" - } - ], - "schedule": { - "expression": "0 9 * * 1-5", - "timezone": "America/Los_Angeles", - "type": "cron", - "last_run_at": "2026-03-16T16:00:09Z", - "upcoming_runs_at": [ - "2026-03-17T16:00:00Z", - "2026-03-18T16:00:00Z" - ] - }, - "status": "active", - "type": "deployment", - "updated_at": "2026-03-15T10:00:00Z", - "vault_ids": [ - "vlt_011CZkZDLs7fYzm1hXNPeRjv" - ], - "budget": { - "max_list_cost": { - "amount": "2500", - "currency": "USD" - }, - "type": "limit" - } -} -``` + - `expression: String` -### Unpause Deployment + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). -`beta.deployments.unpause(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` + minLength: 1, maxLength: 256 -**POST** `/v1/deployments/{deployment_id}/unpause` + - `timezone: String` -Unpause Deployment + Required. IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). Validated against the IANA timezone database. -#### Parameters + minLength: 1 -- `deployment_id: String` (path parameter) +- `vault_ids: Array[String]` - Unique identifier of the deployment to unpause. + Vault IDs for stored credentials the agent can use during sessions created from this deployment. Maximum 50. - `betas: Array[AnthropicBeta]` (header parameter) @@ -68034,6 +67307,8 @@ Unpause Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68567,7 +67842,12 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_deployment = anthropic.beta.deployments.unpause("depl_011CZkZcDH3vPqd7xnEfwTai") +beta_managed_agents_deployment = anthropic.beta.deployments.create( + agent: "string", + environment_id: "x", + initial_events: [{content: [{text: "Where is my order #1234?", type: :text}], type: :"user.message"}], + name: "x" +) puts(beta_managed_agents_deployment) ``` @@ -68639,71 +67919,57 @@ puts(beta_managed_agents_deployment) } ``` -## Beta › Deployment Runs - -### List Deployment Runs +### List Deployments -`beta.deployment_runs.list(**kwargs) -> PageCursor` +`beta.deployments.list(**kwargs) -> PageCursor` -**GET** `/v1/deployment_runs` +**GET** `/v1/deployments` -List Deployment Runs +List Deployments #### Parameters -- `created_at_gt: Time` (query parameter) - - Return runs created strictly after this time (exclusive). +- `agent_id: String` (query parameter) - format: date-time + Filter by agent ID. - `created_at_gte: Time` (query parameter) - Return runs created at or after this time (inclusive). - - format: date-time - -- `created_at_lt: Time` (query parameter) - - Return runs created strictly before this time (exclusive). + Return deployments created at or after this time (inclusive). format: date-time - `created_at_lte: Time` (query parameter) - Return runs created at or before this time (inclusive). + Return deployments created at or before this time (inclusive). format: date-time -- `deployment_id: String` (query parameter) - - Filter to a specific deployment. Omit to list across all deployments in the workspace. Filtering by a non-existent `deployment_id` returns 200 with empty data. - -- `has_error: bool` (query parameter) +- `include_archived: bool` (query parameter) - Filter: true for runs with non-null `error`, false for runs with non-null `session_id`. Omit for all. + When true, includes archived deployments. Default: false (exclude archived). - `limit: Integer` (query parameter) - Maximum results per page. Default 20, maximum 1000. + Maximum results per page. Default 20, maximum 100. format: int32 - `page: String` (query parameter) - Opaque pagination cursor. Pass `next_page` from the previous response. Invalid or expired cursors return 400. + Opaque pagination cursor. -- `trigger_type: BetaManagedAgentsTriggerType` (query parameter) +- `status: BetaManagedAgentsDeploymentStatus` (query parameter) - Filter runs by what triggered them. Omit to return all runs. + Filter by status: `active` or `paused`. Omit for both. To include archived deployments, use `include_archived` instead; the two cannot be combined. - - `:schedule` + - `:active` - The run was fired by the deployment's cron schedule. + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - - `:manual` + - `:paused` - The run was started manually by creating a session directly against the deployment. + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - `betas: Array[AnthropicBeta]` (header parameter) @@ -68813,6 +68079,8 @@ List Deployment Runs - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68821,19 +68089,19 @@ List Deployment Runs #### Returns -- `class BetaManagedAgentsDeploymentRun` +- `class BetaManagedAgentsDeployment` - A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :deployment_run` + - `type: :deployment` - `id: String` - Unique identifier for this run (`drun_...`). + Unique identifier for this deployment. - `agent: BetaManagedAgentsAgentReference` - Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. + Reference to the agent this deployment runs, resolved to a concrete version. - `type: :agent` @@ -68843,599 +68111,501 @@ List Deployment Runs format: int32 - - `created_at: Time` + - `archived_at: Time` - Time this run record was persisted. + Time the deployment was archived. Null if not archived. format: date-time - - `deployment_id: String` + - `created_at: Time` - ID of the deployment that produced this run. + Time the deployment was created. - - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` + format: date-time - Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. + - `description: String` - - `class BetaManagedAgentsEnvironmentArchivedRunError` + Description of what the deployment does. - The deployment's environment was archived. + - `environment_id: String` - - `type: :environment_archived_error` + ID of the `environment` where sessions run. - - `message: String` + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - Human-readable error description. + Events sent to each session immediately after creation. - - `class BetaManagedAgentsAgentArchivedRunError` + - `class BetaManagedAgentsDeploymentUserMessageEvent` - The deployment's agent was archived. + A user message sent to the session. - - `type: :agent_archived_error` + - `type: :"user.message"` - - `message: String` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - Human-readable error description. + Array of content blocks for the user message. - - `class BetaManagedAgentsEnvironmentNotFoundRunError` + - `class BetaManagedAgentsTextBlock` - The deployment's environment no longer exists. + Regular text content. - - `type: :environment_not_found_error` + - `type: :text` - - `message: String` + - `text: String` - Human-readable error description. + The text content. - - `class BetaManagedAgentsVaultNotFoundRunError` + minLength: 1 - A vault referenced by the deployment no longer exists. + - `class BetaManagedAgentsImageBlock` - - `type: :vault_not_found_error` + Image content specified directly as base64 data or as a reference via a URL. - - `message: String` + - `type: :image` - Human-readable error description. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `class BetaManagedAgentsVaultArchivedRunError` + The source of the image data. - A vault referenced by the deployment is archived. + - `class BetaManagedAgentsBase64ImageSource` - - `type: :vault_archived_error` + Base64-encoded image data. - - `message: String` + - `type: :base64` - Human-readable error description. + - `data: String` - - `class BetaManagedAgentsFileNotFoundRunError` + Base64-encoded image data. - A file resource referenced by the deployment no longer exists. + minLength: 1 - - `type: :file_not_found_error` + - `media_type: String` - - `message: String` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - Human-readable error description. + minLength: 1 - - `class BetaManagedAgentsMemoryStoreArchivedRunError` + - `class BetaManagedAgentsURLImageSource` - A memory store referenced by the deployment is archived. + Image referenced by URL. - - `type: :memory_store_archived_error` + - `type: :url` - - `message: String` + - `url: String` - Human-readable error description. + URL of the image to fetch. - - `class BetaManagedAgentsSkillNotFoundRunError` + minLength: 1 - A skill referenced by the deployment's agent no longer exists. + - `class BetaManagedAgentsFileImageSource` - - `type: :skill_not_found_error` + Image referenced by file ID. - - `message: String` + - `type: :file` - Human-readable error description. + - `file_id: String` - - `class BetaManagedAgentsSessionResourceNotFoundRunError` + ID of a previously uploaded file. - A referenced resource no longer exists and its kind was not reported. + minLength: 1 - - `type: :session_resource_not_found_error` + - `class BetaManagedAgentsDocumentBlock` - - `message: String` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - Human-readable error description. + - `type: :document` - - `class BetaManagedAgentsWorkspaceArchivedRunError` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - The deployment's workspace was archived. + The source of the document data. - - `type: :workspace_archived_error` + - `class BetaManagedAgentsBase64DocumentSource` - - `message: String` + Base64-encoded document data. - Human-readable error description. + - `type: :base64` - - `class BetaManagedAgentsOrganizationDisabledRunError` + - `data: String` - The deployment's organization is disabled. + Base64-encoded document data. - - `type: :organization_disabled_error` + minLength: 1 - - `message: String` + - `media_type: String` - Human-readable error description. + MIME type of the document (e.g., "application/pdf"). - - `class BetaManagedAgentsSessionRateLimitedRunError` + minLength: 1 - Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. + - `class BetaManagedAgentsPlainTextDocumentSource` - - `type: :session_rate_limited_error` + Plain text document content. - - `message: String` + - `type: :text` - Human-readable error description. + - `data: String` - - `class BetaManagedAgentsSessionCreationRejectedRunError` + The plain text content. - The session create request was rejected with a non-retryable validation error. + minLength: 1 - - `type: :session_creation_rejected_error` + - `media_type: :"text/plain"` - - `message: String` + MIME type of the text content. Must be "text/plain". - Human-readable error description. + - `class BetaManagedAgentsURLDocumentSource` - - `class BetaManagedAgentsUnknownRunError` + Document referenced by URL. - An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. + - `type: :url` - - `type: :unknown_error` + - `url: String` - - `message: String` + URL of the document to fetch. - Human-readable error description. + minLength: 1 - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` + - `class BetaManagedAgentsFileDocumentSource` - The deployment configures resources, but its environment is self-hosted and cannot mount them. + Document referenced by file ID. - - `type: :self_hosted_resources_unsupported_error` + - `type: :file` - - `message: String` + - `file_id: String` - Human-readable error description. + ID of a previously uploaded file. - - `class BetaManagedAgentsMCPEgressBlockedRunError` + minLength: 1 - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + - `context: String` - - `type: :mcp_egress_blocked_error` + Additional context about the document for the model. - - `message: String` + - `title: String` - Human-readable error description. + The title of the document. - - `session_id: String` + - `class BetaManagedAgentsRedactedBlock` - Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. + Placeholder for content withheld by Anthropic model policy. - - `trigger_context: BetaManagedAgentsTriggerContext` + - `type: :redacted` - What triggered this run and trigger-specific metadata. + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - - `class BetaManagedAgentsScheduleTriggerContext` + An outcome the agent should work toward. The agent begins work on receipt. - The run was fired by the deployment's cron schedule. + - `type: :"user.define_outcome"` - - `type: :schedule` + - `description: String` - - `scheduled_at: Time` + What the agent should produce. This is the task specification. - The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - format: date-time + How to grade the outcome. Text or file reference. - - `class BetaManagedAgentsManualTriggerContext` + - `class BetaManagedAgentsFileRubric` - The run was started manually by creating a session directly against the deployment. + Rubric referenced by a file uploaded via the Files API. - - `type: :manual` + - `type: :file` -#### Example + - `file_id: String` -```ruby -require "anthropic" + ID of the rubric file. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsTextRubric` -page = anthropic.beta.deployment_runs.list + Rubric content provided inline as text. -puts(page) -``` + - `type: :text` -##### Response (200) + - `content: String` -```json -{ - "data": [ - { - "id": "id", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - }, - "created_at": "2019-12-27T18:11:19.117Z", - "deployment_id": "deployment_id", - "error": { - "message": "message", - "type": "environment_archived_error" - }, - "session_id": "session_id", - "trigger_context": { - "scheduled_at": "2019-12-27T18:11:19.117Z", - "type": "schedule" - }, - "type": "deployment_run" - } - ], - "next_page": "next_page" -} -``` + Rubric content. Plain text or markdown — the grader treats it as freeform text. -### Get Deployment Run + - `max_iterations: Integer` -`beta.deployment_runs.retrieve(deployment_run_id, **kwargs) -> BetaManagedAgentsDeploymentRun` + Eval→revision cycles before giving up. Default 3, max 20. -**GET** `/v1/deployment_runs/{deployment_run_id}` + format: int32 -Get Deployment Run + - `class BetaManagedAgentsDeploymentSystemMessageEvent` -#### Parameters + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. -- `deployment_run_id: String` (path parameter) + - `type: :"system.message"` - Unique identifier of the deployment run. + - `content: Array[BetaManagedAgentsSystemContentBlock]` -- `betas: Array[AnthropicBeta]` (header parameter) + System content blocks to append. Text-only. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `type: :text` - - `String = String` + - `text: String` - - `:"message-batches-2024-09-24"` + The text content. - - `:"prompt-caching-2024-07-31"` + minLength: 1 - - `:"computer-use-2024-10-22"` + - `metadata: Hash[Symbol, String]` - - `:"computer-use-2025-01-24"` + Arbitrary key-value metadata. Maximum 16 pairs. - - `:"pdfs-2024-09-25"` + - `name: String` - - `:"token-counting-2024-11-01"` + Human-readable name. - - `:"token-efficient-tools-2025-02-19"` + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - - `:"output-128k-2025-02-19"` + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - `:"files-api-2025-04-14"` + - `class BetaManagedAgentsManualDeploymentPausedReason` - - `:"mcp-client-2025-04-04"` + The caller invoked the pause endpoint on the deployment. - - `:"mcp-client-2025-11-20"` + - `type: :manual` - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsErrorDeploymentPausedReason` - - `:"interleaved-thinking-2025-05-14"` + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - `:"code-execution-2025-05-22"` + - `type: :error` - - `:"extended-cache-ttl-2025-04-11"` + - `error: BetaManagedAgentsDeploymentPausedReasonError` - - `:"context-1m-2025-08-07"` + The failed run's error. - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - - `:"model-context-window-exceeded-2025-08-26"` + The deployment's environment was archived. - - `:"skills-2025-10-02"` + - `type: :environment_archived_error` - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - - `:"output-300k-2026-03-24"` + The deployment's agent was archived. - - `:"user-profiles-2026-03-24"` + - `type: :agent_archived_error` - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` - - `:"user-profiles-2026-09-04"` + The deployment's environment no longer exists. - - `:"advisor-tool-2026-03-01"` + - `type: :environment_not_found_error` - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` - - `:"cache-diagnosis-2026-04-07"` + A vault referenced by the deployment no longer exists. - - `:"dreaming-2026-04-21"` + - `type: :vault_not_found_error` - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` - - `:"server-side-fallback-2026-06-01"` + A file resource referenced by the deployment no longer exists. - - `:"server-side-fallback-2026-07-01"` + - `type: :file_not_found_error` - - `:"fallback-credit-2026-06-01"` + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` - - `:"fallback-credit-2026-07-01"` + A referenced resource no longer exists and its kind was not reported. - - `:"agent-memory-2026-07-22"` + - `type: :session_resource_not_found_error` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` - - `:"compact-2026-01-12"` + The deployment's workspace was archived. - - `:"computer-use-2025-11-24"` + - `type: :workspace_archived_error` - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` - - `:"structured-outputs-2025-11-13"` + The deployment's organization is disabled. - - `:"task-budgets-2026-03-13"` + - `type: :organization_disabled_error` - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - - `:"ce-user-management-2026-07-13"` + A memory store referenced by the deployment is archived. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :memory_store_archived_error` - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - - `:"mid-conversation-system-clear-at-2026-08-21"` + A skill referenced by the deployment's agent no longer exists. - - `:"compact-2026-09-04"` + - `type: :skill_not_found_error` - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - - `:"mcp-client-2026-09-15"` + A vault referenced by the deployment is archived. - - `:"ce-plugins-2026-09-01"` + - `type: :vault_archived_error` - - `:"spend-limit-reads-2026-09-26"` + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` - - `:"telemetry-destinations-2026-08-11"` + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. -- `workspace_id: String` (header parameter) + - `type: :unknown_error` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + The deployment configures resources, but its environment is self-hosted and cannot mount them. -#### Returns + - `type: :self_hosted_resources_unsupported_error` -- `class BetaManagedAgentsDeploymentRun` + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - `type: :deployment_run` + - `type: :mcp_egress_blocked_error` - - `id: String` + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` - Unique identifier for this run (`drun_...`). + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - - `agent: BetaManagedAgentsAgentReference` + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. - - `type: :agent` + - `type: :github_repository` - - `id: String` + - `url: String` - - `version: Integer` + Github URL of the repository - format: int32 + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `created_at: Time` + Branch or commit to check out. Defaults to the repository's default branch. - Time this run record was persisted. + - `class BetaManagedAgentsBranchCheckout` - format: date-time + - `type: :branch` - - `deployment_id: String` + - `name: String` - ID of the deployment that produced this run. + Branch name to check out. - - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` + minLength: 1, maxLength: 255 - Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. + - `class BetaManagedAgentsCommitCheckout` - - `class BetaManagedAgentsEnvironmentArchivedRunError` + - `type: :commit` - The deployment's environment was archived. + - `sha: String` - - `type: :environment_archived_error` + Full commit SHA to check out. - - `message: String` + minLength: 7, maxLength: 64 - Human-readable error description. + - `mount_path: String` - - `class BetaManagedAgentsAgentArchivedRunError` + Mount path in the container. Defaults to `/workspace/`. - The deployment's agent was archived. + - `class BetaManagedAgentsFileResourceConfig` - - `type: :agent_archived_error` + A file mounted into each session's container. - - `message: String` + - `type: :file` - Human-readable error description. + - `file_id: String` - - `class BetaManagedAgentsEnvironmentNotFoundRunError` + ID of a previously uploaded file. - The deployment's environment no longer exists. + - `mount_path: String` - - `type: :environment_not_found_error` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - - `message: String` + - `class BetaManagedAgentsMemoryStoreResourceConfig` - Human-readable error description. + A memory store attached to each session created from this deployment. - - `class BetaManagedAgentsVaultNotFoundRunError` + - `type: :memory_store` - A vault referenced by the deployment no longer exists. + - `memory_store_id: String` - - `type: :vault_not_found_error` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - - `message: String` + - `access: :read_write | :read_only` - Human-readable error description. - - - `class BetaManagedAgentsVaultArchivedRunError` - - A vault referenced by the deployment is archived. - - - `type: :vault_archived_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsFileNotFoundRunError` - - A file resource referenced by the deployment no longer exists. - - - `type: :file_not_found_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsMemoryStoreArchivedRunError` - - A memory store referenced by the deployment is archived. - - - `type: :memory_store_archived_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsSkillNotFoundRunError` - - A skill referenced by the deployment's agent no longer exists. - - - `type: :skill_not_found_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsSessionResourceNotFoundRunError` - - A referenced resource no longer exists and its kind was not reported. - - - `type: :session_resource_not_found_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsWorkspaceArchivedRunError` - - The deployment's workspace was archived. - - - `type: :workspace_archived_error` - - - `message: String` - - Human-readable error description. - - - `class BetaManagedAgentsOrganizationDisabledRunError` - - The deployment's organization is disabled. - - - `type: :organization_disabled_error` - - - `message: String` - - Human-readable error description. + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - - `class BetaManagedAgentsSessionRateLimitedRunError` + - `:read_write` - Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. + - `:read_only` - - `type: :session_rate_limited_error` + - `instructions: String` - - `message: String` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - Human-readable error description. + - `schedule: BetaManagedAgentsSchedule` - - `class BetaManagedAgentsSessionCreationRejectedRunError` + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. - The session create request was rejected with a non-retryable validation error. + - `type: :cron` - - `type: :session_creation_rejected_error` + - `expression: String` - - `message: String` + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). - Human-readable error description. + minLength: 1, maxLength: 256 - - `class BetaManagedAgentsUnknownRunError` + - `timezone: String` - An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). - - `type: :unknown_error` + minLength: 1 - - `message: String` + - `last_run_at: Time` - Human-readable error description. + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. - - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` + format: date-time - The deployment configures resources, but its environment is self-hosted and cannot mount them. + - `upcoming_runs_at: Array[Time]` - - `type: :self_hosted_resources_unsupported_error` + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. - - `message: String` + - `status: BetaManagedAgentsDeploymentStatus` - Human-readable error description. + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. - - `class BetaManagedAgentsMCPEgressBlockedRunError` + - `:active` - An MCP server host used by the deployment's agent is blocked by the environment's network policy. + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - - `type: :mcp_egress_blocked_error` + - `:paused` - - `message: String` + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - Human-readable error description. + - `updated_at: Time` - - `session_id: String` + Time the deployment was last updated. - Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. + format: date-time - - `trigger_context: BetaManagedAgentsTriggerContext` + - `vault_ids: Array[String]` - What triggered this run and trigger-specific metadata. + Vault IDs supplying stored credentials for sessions created from this deployment. - - `class BetaManagedAgentsScheduleTriggerContext` + - `budget: BetaManagedAgentsBudgetLimit` - The run was fired by the deployment's cron schedule. + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. - - `type: :schedule` + - `type: :limit` - - `scheduled_at: Time` + - `max_list_cost: BetaMonetaryAmount` - The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - format: date-time + - `amount: String` - - `class BetaManagedAgentsManualTriggerContext` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - The run was started manually by creating a session directly against the deployment. + - `currency: BetaCurrency` - - `type: :manual` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. #### Example @@ -69444,57 +68614,96 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_deployment_run = anthropic.beta.deployment_runs.retrieve("deployment_run_id") +page = anthropic.beta.deployments.list -puts(beta_managed_agents_deployment_run) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "agent": { - "id": "agent_011CZkYqphY8vELVzwCUpqiQ", - "type": "agent", - "version": 1 - }, - "created_at": "2019-12-27T18:11:19.117Z", - "deployment_id": "deployment_id", - "error": { - "message": "message", - "type": "environment_archived_error" - }, - "session_id": "session_id", - "trigger_context": { - "scheduled_at": "2019-12-27T18:11:19.117Z", - "type": "schedule" - }, - "type": "deployment_run" + "data": [ + { + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ + { + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" + } + ], + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" + }, + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", + "updated_at": "2026-03-15T10:00:00Z", + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -## Beta › Vaults - -### Create a Vault +### Get Deployment -`beta.vaults.create(**kwargs) -> BetaManagedAgentsVault` +`beta.deployments.retrieve(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` -**POST** `/v1/vaults` +**GET** `/v1/deployments/{deployment_id}` -Create a Vault +Get Deployment #### Parameters -- `display_name: String` - - Human-readable name for the vault. 1-255 characters. - - minLength: 1, maxLength: 255 - -- `metadata: Hash[Symbol, String]` +- `deployment_id: String` (path parameter) - Arbitrary key-value metadata to attach to the vault. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + Unique identifier of the deployment. - `betas: Array[AnthropicBeta]` (header parameter) @@ -69604,6 +68813,8 @@ Create a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69612,851 +68823,1016 @@ Create a Vault #### Returns -- `class BetaManagedAgentsVault` +- `class BetaManagedAgentsDeployment` - A vault that stores credentials for use by agents during sessions. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :vault` + - `type: :deployment` - `id: String` - The unique ID of the vault (`vlt_...`). + Unique identifier for this deployment. + + - `agent: BetaManagedAgentsAgentReference` + + Reference to the agent this deployment runs, resolved to a concrete version. + + - `type: :agent` + + - `id: String` + + - `version: Integer` + + format: int32 - `archived_at: Time` - When the vault was archived. Null if not archived. + Time the deployment was archived. Null if not archived. format: date-time - `created_at: Time` - A timestamp in RFC 3339 format + Time the deployment was created. format: date-time - - `display_name: String` + - `description: String` - Human-readable name for the vault. + Description of what the deployment does. - - `metadata: Hash[Symbol, String]` + - `environment_id: String` - Arbitrary key-value metadata attached to the vault. + ID of the `environment` where sessions run. - - `updated_at: Time` + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - A timestamp in RFC 3339 format + Events sent to each session immediately after creation. - format: date-time + - `class BetaManagedAgentsDeploymentUserMessageEvent` -#### Example + A user message sent to the session. -```ruby -require "anthropic" + - `type: :"user.message"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` -beta_managed_agents_vault = anthropic.beta.vaults.create(display_name: "Example vault") + Array of content blocks for the user message. -puts(beta_managed_agents_vault) -``` + - `class BetaManagedAgentsTextBlock` -##### Response (200) + Regular text content. -```json -{ - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "display_name": "Example vault", - "metadata": { - "environment": "production" - }, - "type": "vault", - "updated_at": "2026-03-15T10:00:00Z" -} -``` + - `type: :text` -### List Vaults + - `text: String` -`beta.vaults.list(**kwargs) -> PageCursor` + The text content. -**GET** `/v1/vaults` + minLength: 1 -List Vaults + - `class BetaManagedAgentsImageBlock` -#### Parameters + Image content specified directly as base64 data or as a reference via a URL. -- `include_archived: bool` (query parameter) + - `type: :image` - Whether to include archived vaults in the results. Defaults to `false`. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` -- `limit: Integer` (query parameter) + The source of the image data. - Maximum number of vaults to return per page. Defaults to 20, maximum 100. + - `class BetaManagedAgentsBase64ImageSource` - format: int32 + Base64-encoded image data. -- `page: String` (query parameter) + - `type: :base64` - The `next_page` value from a previous [List Vaults](https://platform.claude.com/docs/en/api/beta/vaults/list?sdk_languages=ruby) response, to get the next page. Leave it out to get the first page. + - `data: String` -- `betas: Array[AnthropicBeta]` (header parameter) + Base64-encoded image data. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + minLength: 1 - - `String = String` + - `media_type: String` - - `:"message-batches-2024-09-24"` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `:"prompt-caching-2024-07-31"` + minLength: 1 - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsURLImageSource` - - `:"computer-use-2025-01-24"` + Image referenced by URL. - - `:"pdfs-2024-09-25"` + - `type: :url` - - `:"token-counting-2024-11-01"` + - `url: String` - - `:"token-efficient-tools-2025-02-19"` + URL of the image to fetch. - - `:"output-128k-2025-02-19"` + minLength: 1 - - `:"files-api-2025-04-14"` + - `class BetaManagedAgentsFileImageSource` - - `:"mcp-client-2025-04-04"` + Image referenced by file ID. - - `:"mcp-client-2025-11-20"` + - `type: :file` - - `:"dev-full-thinking-2025-05-14"` + - `file_id: String` - - `:"interleaved-thinking-2025-05-14"` + ID of a previously uploaded file. - - `:"code-execution-2025-05-22"` + minLength: 1 - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsDocumentBlock` - - `:"context-1m-2025-08-07"` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `:"context-management-2025-06-27"` + - `type: :document` - - `:"model-context-window-exceeded-2025-08-26"` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `:"skills-2025-10-02"` + The source of the document data. - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsBase64DocumentSource` - - `:"output-300k-2026-03-24"` + Base64-encoded document data. - - `:"user-profiles-2026-03-24"` + - `type: :base64` - - `:"user-profiles-2026-08-18"` + - `data: String` - - `:"user-profiles-2026-09-04"` + Base64-encoded document data. - - `:"advisor-tool-2026-03-01"` + minLength: 1 - - `:"managed-agents-2026-04-01"` + - `media_type: String` - - `:"cache-diagnosis-2026-04-07"` + MIME type of the document (e.g., "application/pdf"). - - `:"dreaming-2026-04-21"` + minLength: 1 - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsPlainTextDocumentSource` - - `:"server-side-fallback-2026-06-01"` + Plain text document content. - - `:"server-side-fallback-2026-07-01"` + - `type: :text` - - `:"fallback-credit-2026-06-01"` + - `data: String` - - `:"fallback-credit-2026-07-01"` + The plain text content. - - `:"agent-memory-2026-07-22"` + minLength: 1 - - `:"mid-conversation-tool-changes-2026-07-01"` + - `media_type: :"text/plain"` - - `:"compact-2026-01-12"` + MIME type of the text content. Must be "text/plain". - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsURLDocumentSource` - - `:"mcp-tunnels-2026-06-22"` + Document referenced by URL. - - `:"structured-outputs-2025-11-13"` + - `type: :url` - - `:"task-budgets-2026-03-13"` + - `url: String` - - `:"thinking-display-updates-2026-08-18"` + URL of the document to fetch. - - `:"ce-user-management-2026-07-13"` + minLength: 1 - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsFileDocumentSource` - - `:"thinking-binding-controls-2026-08-01"` + Document referenced by file ID. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :file` - - `:"compact-2026-09-04"` + - `file_id: String` - - `:"inline-tools-2026-09-15"` + ID of a previously uploaded file. - - `:"mcp-client-2026-09-15"` + minLength: 1 - - `:"ce-plugins-2026-09-01"` + - `context: String` - - `:"spend-limit-reads-2026-09-26"` + Additional context about the document for the model. - - `:"telemetry-destinations-2026-08-11"` + - `title: String` -- `workspace_id: String` (header parameter) + The title of the document. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsRedactedBlock` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Placeholder for content withheld by Anthropic model policy. -#### Returns + - `type: :redacted` -- `class BetaManagedAgentsVault` + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - A vault that stores credentials for use by agents during sessions. + An outcome the agent should work toward. The agent begins work on receipt. - - `type: :vault` + - `type: :"user.define_outcome"` - - `id: String` + - `description: String` - The unique ID of the vault (`vlt_...`). + What the agent should produce. This is the task specification. - - `archived_at: Time` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - When the vault was archived. Null if not archived. + How to grade the outcome. Text or file reference. - format: date-time + - `class BetaManagedAgentsFileRubric` - - `created_at: Time` + Rubric referenced by a file uploaded via the Files API. - A timestamp in RFC 3339 format + - `type: :file` - format: date-time + - `file_id: String` - - `display_name: String` + ID of the rubric file. - Human-readable name for the vault. + - `class BetaManagedAgentsTextRubric` - - `metadata: Hash[Symbol, String]` + Rubric content provided inline as text. - Arbitrary key-value metadata attached to the vault. + - `type: :text` - - `updated_at: Time` + - `content: String` - A timestamp in RFC 3339 format + Rubric content. Plain text or markdown — the grader treats it as freeform text. - format: date-time + - `max_iterations: Integer` -#### Example + Eval→revision cycles before giving up. Default 3, max 20. -```ruby -require "anthropic" + format: int32 -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsDeploymentSystemMessageEvent` -page = anthropic.beta.vaults.list + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. -puts(page) -``` + - `type: :"system.message"` -##### Response (200) + - `content: Array[BetaManagedAgentsSystemContentBlock]` -```json -{ - "data": [ - { - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "display_name": "Example vault", - "metadata": { - "environment": "production" - }, - "type": "vault", - "updated_at": "2026-03-15T10:00:00Z" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + System content blocks to append. Text-only. -### Retrieve a Vault + - `type: :text` -`beta.vaults.retrieve(vault_id, **kwargs) -> BetaManagedAgentsVault` + - `text: String` -**GET** `/v1/vaults/{vault_id}` + The text content. -Retrieve a Vault + minLength: 1 -#### Parameters + - `metadata: Hash[Symbol, String]` -- `vault_id: String` (path parameter) + Arbitrary key-value metadata. Maximum 16 pairs. - Unique identifier of the vault to retrieve. + - `name: String` -- `betas: Array[AnthropicBeta]` (header parameter) + Human-readable name. - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - - `String = String` + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - `:"message-batches-2024-09-24"` + - `class BetaManagedAgentsManualDeploymentPausedReason` - - `:"prompt-caching-2024-07-31"` + The caller invoked the pause endpoint on the deployment. - - `:"computer-use-2024-10-22"` + - `type: :manual` - - `:"computer-use-2025-01-24"` + - `class BetaManagedAgentsErrorDeploymentPausedReason` - - `:"pdfs-2024-09-25"` + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - `:"token-counting-2024-11-01"` + - `type: :error` - - `:"token-efficient-tools-2025-02-19"` + - `error: BetaManagedAgentsDeploymentPausedReasonError` - - `:"output-128k-2025-02-19"` + The failed run's error. - - `:"files-api-2025-04-14"` + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - - `:"mcp-client-2025-04-04"` + The deployment's environment was archived. - - `:"mcp-client-2025-11-20"` + - `type: :environment_archived_error` - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - - `:"interleaved-thinking-2025-05-14"` + The deployment's agent was archived. - - `:"code-execution-2025-05-22"` + - `type: :agent_archived_error` - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` - - `:"context-1m-2025-08-07"` + The deployment's environment no longer exists. - - `:"context-management-2025-06-27"` + - `type: :environment_not_found_error` - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` - - `:"skills-2025-10-02"` + A vault referenced by the deployment no longer exists. - - `:"fast-mode-2026-02-01"` + - `type: :vault_not_found_error` - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` - - `:"user-profiles-2026-03-24"` + A file resource referenced by the deployment no longer exists. - - `:"user-profiles-2026-08-18"` + - `type: :file_not_found_error` - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` - - `:"advisor-tool-2026-03-01"` + A referenced resource no longer exists and its kind was not reported. - - `:"managed-agents-2026-04-01"` + - `type: :session_resource_not_found_error` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` - - `:"dreaming-2026-04-21"` + The deployment's workspace was archived. - - `:"thinking-token-count-2026-05-13"` + - `type: :workspace_archived_error` - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` - - `:"server-side-fallback-2026-07-01"` + The deployment's organization is disabled. - - `:"fallback-credit-2026-06-01"` + - `type: :organization_disabled_error` - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - - `:"agent-memory-2026-07-22"` + A memory store referenced by the deployment is archived. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :memory_store_archived_error` - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - - `:"computer-use-2025-11-24"` + A skill referenced by the deployment's agent no longer exists. - - `:"mcp-tunnels-2026-06-22"` + - `type: :skill_not_found_error` - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - - `:"task-budgets-2026-03-13"` + A vault referenced by the deployment is archived. - - `:"thinking-display-updates-2026-08-18"` + - `type: :vault_archived_error` - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` - - `:"mid-conversation-output-config-2026-07-01"` + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :unknown_error` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` - - `:"compact-2026-09-04"` + The deployment configures resources, but its environment is self-hosted and cannot mount them. - - `:"inline-tools-2026-09-15"` + - `type: :self_hosted_resources_unsupported_error` - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - - `:"ce-plugins-2026-09-01"` + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - `:"spend-limit-reads-2026-09-26"` + - `type: :mcp_egress_blocked_error` - - `:"telemetry-destinations-2026-08-11"` + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` -- `workspace_id: String` (header parameter) + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. -#### Returns + - `type: :github_repository` -- `class BetaManagedAgentsVault` + - `url: String` - A vault that stores credentials for use by agents during sessions. + Github URL of the repository - - `type: :vault` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `id: String` + Branch or commit to check out. Defaults to the repository's default branch. - The unique ID of the vault (`vlt_...`). + - `class BetaManagedAgentsBranchCheckout` - - `archived_at: Time` + - `type: :branch` - When the vault was archived. Null if not archived. + - `name: String` - format: date-time + Branch name to check out. - - `created_at: Time` + minLength: 1, maxLength: 255 - A timestamp in RFC 3339 format + - `class BetaManagedAgentsCommitCheckout` - format: date-time + - `type: :commit` - - `display_name: String` + - `sha: String` - Human-readable name for the vault. + Full commit SHA to check out. - - `metadata: Hash[Symbol, String]` + minLength: 7, maxLength: 64 - Arbitrary key-value metadata attached to the vault. + - `mount_path: String` - - `updated_at: Time` + Mount path in the container. Defaults to `/workspace/`. - A timestamp in RFC 3339 format + - `class BetaManagedAgentsFileResourceConfig` - format: date-time + A file mounted into each session's container. -#### Example + - `type: :file` -```ruby -require "anthropic" + - `file_id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + ID of a previously uploaded file. -beta_managed_agents_vault = anthropic.beta.vaults.retrieve("vlt_011CZkZDLs7fYzm1hXNPeRjv") + - `mount_path: String` -puts(beta_managed_agents_vault) -``` + Mount path in the container. Defaults to `/mnt/session/uploads/`. -##### Response (200) + - `class BetaManagedAgentsMemoryStoreResourceConfig` -```json -{ - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "display_name": "Example vault", - "metadata": { - "environment": "production" - }, - "type": "vault", - "updated_at": "2026-03-15T10:00:00Z" -} -``` + A memory store attached to each session created from this deployment. -### Update a Vault + - `type: :memory_store` -`beta.vaults.update(vault_id, **kwargs) -> BetaManagedAgentsVault` + - `memory_store_id: String` -**POST** `/v1/vaults/{vault_id}` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. -Update a Vault + - `access: :read_write | :read_only` -#### Parameters + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. -- `vault_id: String` (path parameter) + - `:read_write` - Unique identifier of the vault to update. + - `:read_only` -- `display_name: String` + - `instructions: String` - Updated human-readable name for the vault. 1-255 characters. + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - minLength: 1, maxLength: 255 + - `schedule: BetaManagedAgentsSchedule` -- `metadata: Hash[Symbol, String]` + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omitted keys are preserved. + - `type: :cron` -- `betas: Array[AnthropicBeta]` (header parameter) + - `expression: String` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). - - `String = String` + minLength: 1, maxLength: 256 - - `:"message-batches-2024-09-24"` + - `timezone: String` - - `:"prompt-caching-2024-07-31"` + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). - - `:"computer-use-2024-10-22"` + minLength: 1 - - `:"computer-use-2025-01-24"` + - `last_run_at: Time` - - `:"pdfs-2024-09-25"` + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. - - `:"token-counting-2024-11-01"` + format: date-time - - `:"token-efficient-tools-2025-02-19"` + - `upcoming_runs_at: Array[Time]` - - `:"output-128k-2025-02-19"` + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. - - `:"files-api-2025-04-14"` + - `status: BetaManagedAgentsDeploymentStatus` - - `:"mcp-client-2025-04-04"` + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. - - `:"mcp-client-2025-11-20"` + - `:active` - - `:"dev-full-thinking-2025-05-14"` + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - - `:"interleaved-thinking-2025-05-14"` + - `:paused` - - `:"code-execution-2025-05-22"` + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - - `:"extended-cache-ttl-2025-04-11"` + - `updated_at: Time` - - `:"context-1m-2025-08-07"` + Time the deployment was last updated. - - `:"context-management-2025-06-27"` + format: date-time - - `:"model-context-window-exceeded-2025-08-26"` + - `vault_ids: Array[String]` - - `:"skills-2025-10-02"` + Vault IDs supplying stored credentials for sessions created from this deployment. - - `:"fast-mode-2026-02-01"` + - `budget: BetaManagedAgentsBudgetLimit` - - `:"output-300k-2026-03-24"` + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. - - `:"user-profiles-2026-03-24"` + - `type: :limit` - - `:"user-profiles-2026-08-18"` + - `max_list_cost: BetaMonetaryAmount` - - `:"user-profiles-2026-09-04"` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `:"advisor-tool-2026-03-01"` + - `amount: String` - - `:"managed-agents-2026-04-01"` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `:"cache-diagnosis-2026-04-07"` + - `currency: BetaCurrency` - - `:"dreaming-2026-04-21"` + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `:"thinking-token-count-2026-05-13"` +#### Example - - `:"server-side-fallback-2026-06-01"` +```ruby +require "anthropic" - - `:"server-side-fallback-2026-07-01"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"fallback-credit-2026-06-01"` +beta_managed_agents_deployment = anthropic.beta.deployments.retrieve("depl_011CZkZcDH3vPqd7xnEfwTai") - - `:"fallback-credit-2026-07-01"` +puts(beta_managed_agents_deployment) +``` - - `:"agent-memory-2026-07-22"` +##### Response (200) - - `:"mid-conversation-tool-changes-2026-07-01"` +```json +{ + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ + { + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" + } + ], + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" + }, + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", + "updated_at": "2026-03-15T10:00:00Z", + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } +} +``` - - `:"compact-2026-01-12"` +### Update Deployment - - `:"computer-use-2025-11-24"` +`beta.deployments.update(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` - - `:"mcp-tunnels-2026-06-22"` +**POST** `/v1/deployments/{deployment_id}` - - `:"structured-outputs-2025-11-13"` +Update Deployment - - `:"task-budgets-2026-03-13"` +#### Parameters - - `:"thinking-display-updates-2026-08-18"` +- `deployment_id: String` (path parameter) - - `:"ce-user-management-2026-07-13"` + Unique identifier of the deployment to update. - - `:"mid-conversation-output-config-2026-07-01"` +- `agent: String | BetaManagedAgentsAgentParams` - - `:"thinking-binding-controls-2026-08-01"` + Agent to deploy. Accepts the `agent` ID string, which re-pins to the latest version, or an `agent` object with both id and version specified. Omit to preserve. Cannot be cleared. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `String = String` - - `:"compact-2026-09-04"` + - `class BetaManagedAgentsAgentParams` - - `:"inline-tools-2026-09-15"` + Specification for an Agent. Provide a specific `version` or use the short-form `agent="agent_id"` for the most recent version - - `:"mcp-client-2026-09-15"` + - `type: :agent` - - `:"ce-plugins-2026-09-01"` + - `id: String` - - `:"spend-limit-reads-2026-09-26"` + The `agent` ID. - - `:"telemetry-destinations-2026-08-11"` + minLength: 1, maxLength: 128 -- `workspace_id: String` (header parameter) + - `version: Integer` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + The specific `agent` version to use. Omit to use the latest version. Must be at least 1 if specified. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + format: int32 -#### Returns +- `budget: BetaManagedAgentsBudgetLimit` -- `class BetaManagedAgentsVault` + Spend ceiling for future sessions. Full replacement. Omit to preserve; send null to clear (sessions created afterwards are uncapped). The deployment agent's model must have a public list price, or the request is rejected; a multiagent roster is re-validated in full when each fire copies the cap, which fails closed the same way. - A vault that stores credentials for use by agents during sessions. + - `type: :limit` - - `type: :vault` + - `max_list_cost: BetaMonetaryAmount` - - `id: String` + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - The unique ID of the vault (`vlt_...`). + - `amount: String` - - `archived_at: Time` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - When the vault was archived. Null if not archived. + - `currency: BetaCurrency` - format: date-time + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - - `created_at: Time` +- `description: String` - A timestamp in RFC 3339 format + Description. Omit to preserve; send empty string or null to clear. - format: date-time + maxLength: 2048 - - `display_name: String` +- `environment_id: String` - Human-readable name for the vault. + ID of the `environment` where sessions run. Omit to preserve. Cannot be cleared. - - `metadata: Hash[Symbol, String]` + maxLength: 128 - Arbitrary key-value metadata attached to the vault. +- `initial_events: Array[BetaManagedAgentsDeploymentInitialEventParams]` - - `updated_at: Time` + Initial events. Full replacement. Omit to preserve. Cannot be cleared. At least 1, maximum 50. - A timestamp in RFC 3339 format + - `class BetaManagedAgentsUserMessageEventParams` - format: date-time + Parameters for sending a user message to the session. -#### Example + - `type: :"user.message"` -```ruby -require "anthropic" + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Array of content blocks for the user message. -beta_managed_agents_vault = anthropic.beta.vaults.update("vlt_011CZkZDLs7fYzm1hXNPeRjv") + - `class BetaManagedAgentsTextBlock` -puts(beta_managed_agents_vault) -``` + Regular text content. -##### Response (200) + - `type: :text` -```json -{ - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "display_name": "Example vault", - "metadata": { - "environment": "production" - }, - "type": "vault", - "updated_at": "2026-03-15T10:00:00Z" -} -``` + - `text: String` -### Delete a Vault + The text content. -`beta.vaults.delete(vault_id, **kwargs) -> BetaManagedAgentsDeletedVault` + minLength: 1 -**DELETE** `/v1/vaults/{vault_id}` + - `class BetaManagedAgentsImageBlock` -Delete a Vault + Image content specified directly as base64 data or as a reference via a URL. -#### Parameters + - `type: :image` -- `vault_id: String` (path parameter) + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - Unique identifier of the vault to delete. + The source of the image data. -- `betas: Array[AnthropicBeta]` (header parameter) + - `class BetaManagedAgentsBase64ImageSource` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Base64-encoded image data. - - `String = String` + - `type: :base64` - - `:"message-batches-2024-09-24"` + - `data: String` - - `:"prompt-caching-2024-07-31"` + Base64-encoded image data. - - `:"computer-use-2024-10-22"` + minLength: 1 - - `:"computer-use-2025-01-24"` + - `media_type: String` - - `:"pdfs-2024-09-25"` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `:"token-counting-2024-11-01"` + minLength: 1 - - `:"token-efficient-tools-2025-02-19"` + - `class BetaManagedAgentsURLImageSource` - - `:"output-128k-2025-02-19"` + Image referenced by URL. - - `:"files-api-2025-04-14"` + - `type: :url` - - `:"mcp-client-2025-04-04"` + - `url: String` - - `:"mcp-client-2025-11-20"` + URL of the image to fetch. - - `:"dev-full-thinking-2025-05-14"` + minLength: 1 - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsFileImageSource` - - `:"code-execution-2025-05-22"` + Image referenced by file ID. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :file` - - `:"context-1m-2025-08-07"` + - `file_id: String` - - `:"context-management-2025-06-27"` + ID of a previously uploaded file. - - `:"model-context-window-exceeded-2025-08-26"` + minLength: 1 - - `:"skills-2025-10-02"` + - `class BetaManagedAgentsDocumentBlock` - - `:"fast-mode-2026-02-01"` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `:"output-300k-2026-03-24"` + - `type: :document` - - `:"user-profiles-2026-03-24"` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `:"user-profiles-2026-08-18"` + The source of the document data. - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsBase64DocumentSource` - - `:"advisor-tool-2026-03-01"` + Base64-encoded document data. - - `:"managed-agents-2026-04-01"` + - `type: :base64` - - `:"cache-diagnosis-2026-04-07"` + - `data: String` - - `:"dreaming-2026-04-21"` + Base64-encoded document data. - - `:"thinking-token-count-2026-05-13"` + minLength: 1 - - `:"server-side-fallback-2026-06-01"` + - `media_type: String` - - `:"server-side-fallback-2026-07-01"` + MIME type of the document (e.g., "application/pdf"). - - `:"fallback-credit-2026-06-01"` + minLength: 1 - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsPlainTextDocumentSource` - - `:"agent-memory-2026-07-22"` + Plain text document content. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :text` - - `:"compact-2026-01-12"` + - `data: String` - - `:"computer-use-2025-11-24"` + The plain text content. - - `:"mcp-tunnels-2026-06-22"` + minLength: 1 - - `:"structured-outputs-2025-11-13"` + - `media_type: :"text/plain"` - - `:"task-budgets-2026-03-13"` + MIME type of the text content. Must be "text/plain". - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsURLDocumentSource` - - `:"ce-user-management-2026-07-13"` + Document referenced by URL. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :url` - - `:"thinking-binding-controls-2026-08-01"` + - `url: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + URL of the document to fetch. - - `:"compact-2026-09-04"` + minLength: 1 - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsFileDocumentSource` - - `:"mcp-client-2026-09-15"` + Document referenced by file ID. - - `:"ce-plugins-2026-09-01"` + - `type: :file` - - `:"spend-limit-reads-2026-09-26"` + - `file_id: String` - - `:"telemetry-destinations-2026-08-11"` + ID of a previously uploaded file. -- `workspace_id: String` (header parameter) + minLength: 1 - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `context: String` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + Additional context about the document for the model. -#### Returns + - `title: String` -- `class BetaManagedAgentsDeletedVault` + The title of the document. - Confirmation of a deleted vault. + - `class BetaManagedAgentsRedactedBlock` - - `type: :vault_deleted` + Placeholder for content withheld by Anthropic model policy. - - `id: String` + - `type: :redacted` - The unique ID of the deleted vault (`vlt_...`). + - `class BetaManagedAgentsUserDefineOutcomeEventParams` -#### Example + Parameters for defining an outcome the agent should work toward. The agent begins work on receipt. -```ruby -require "anthropic" + - `type: :"user.define_outcome"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `description: String` -beta_managed_agents_deleted_vault = anthropic.beta.vaults.delete("vlt_011CZkZDLs7fYzm1hXNPeRjv") + What the agent should produce. This is the task specification. -puts(beta_managed_agents_deleted_vault) -``` + - `rubric: BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams` -##### Response (200) + How to grade the outcome. Text or file reference. -```json -{ - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "type": "vault_deleted" -} -``` + - `class BetaManagedAgentsFileRubricParams` -### Archive a Vault + Rubric referenced by a file uploaded via the Files API. -`beta.vaults.archive(vault_id, **kwargs) -> BetaManagedAgentsVault` + - `type: :file` -**POST** `/v1/vaults/{vault_id}/archive` + - `file_id: String` -Archive a Vault + ID of the rubric file. -#### Parameters + - `class BetaManagedAgentsTextRubricParams` -- `vault_id: String` (path parameter) + Rubric content provided inline as text. - Unique identifier of the vault to archive. + - `type: :text` + + - `content: String` + + Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters. + + maxLength: 262144 + + - `max_iterations: Integer` + + Eval→revision cycles before giving up. Default 3, max 20. + + format: int32 + + - `class BetaManagedAgentsSystemMessageEventParams` + + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the `user.message`, `user.tool_result`, or `user.custom_tool_result` it accompanies. Only supported on models that accept mid-conversation system messages. + + - `type: :"system.message"` + + - `content: Array[BetaManagedAgentsSystemContentBlock]` + + System content blocks to append. Text-only. + + - `type: :text` + + - `text: String` + + The text content. + + minLength: 1 + +- `metadata: Hash[Symbol, String]` + + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + +- `name: String` + + Human-readable name. Must be non-empty. Omit to preserve. Cannot be cleared. + + maxLength: 256 + +- `resources: Array[BetaManagedAgentsGitHubRepositoryResourceParams | BetaManagedAgentsFileResourceParams | BetaManagedAgentsMemoryStoreResourceParam]` + + Session resources. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 500. + + - `class BetaManagedAgentsGitHubRepositoryResourceParams` + + Mount a GitHub repository into the session's container. + + - `type: :github_repository` + + - `url: String` + + Github URL of the repository + + minLength: 1, maxLength: 2048 + + - `authorization_token: String` + + GitHub authorization token used to clone the repository. Required for private repositories; optional for public ones. + + minLength: 1, maxLength: 4096 + + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + + Branch or commit to check out. Defaults to the repository's default branch. + + - `class BetaManagedAgentsBranchCheckout` + + - `type: :branch` + + - `name: String` + + Branch name to check out. + + minLength: 1, maxLength: 255 + + - `class BetaManagedAgentsCommitCheckout` + + - `type: :commit` + + - `sha: String` + + Full commit SHA to check out. + + minLength: 7, maxLength: 64 + + - `mount_path: String` + + Mount path in the container. Defaults to `/workspace/`. + + minLength: 1, maxLength: 4096 + + - `class BetaManagedAgentsFileResourceParams` + + Mount a file uploaded via the Files API into the session. + + - `type: :file` + + - `file_id: String` + + ID of a previously uploaded file. + + minLength: 1, maxLength: 128 + + - `mount_path: String` + + Mount path in the container. Defaults to `/mnt/session/uploads/`. + + minLength: 1, maxLength: 4096 + + - `class BetaManagedAgentsMemoryStoreResourceParam` + + Parameters for attaching a memory store to an agent session. + + - `type: :memory_store` + + - `memory_store_id: String` + + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + + - `access: :read_write | :read_only` + + Access mode for the mounted store. Defaults to read_write. read_only mounts the store as a read-only filesystem. + + - `:read_write` + + - `:read_only` + + - `instructions: String` + + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + + maxLength: 4096 + +- `schedule: BetaManagedAgentsScheduleParams` + + Cron schedule. Full replacement. Omit to preserve; send null to clear (revert to manual-only). + + - `type: :cron` + + - `expression: String` + + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + + minLength: 1, maxLength: 256 + + - `timezone: String` + + Required. IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). Validated against the IANA timezone database. + + minLength: 1 + +- `vault_ids: Array[String]` + + Vault IDs. Full replacement. Omit to preserve; send empty array or null to clear. Maximum 50. - `betas: Array[AnthropicBeta]` (header parameter) @@ -70566,6 +69942,8 @@ Archive a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70574,531 +69952,523 @@ Archive a Vault #### Returns -- `class BetaManagedAgentsVault` +- `class BetaManagedAgentsDeployment` - A vault that stores credentials for use by agents during sessions. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :vault` + - `type: :deployment` - `id: String` - The unique ID of the vault (`vlt_...`). + Unique identifier for this deployment. + + - `agent: BetaManagedAgentsAgentReference` + + Reference to the agent this deployment runs, resolved to a concrete version. + + - `type: :agent` + + - `id: String` + + - `version: Integer` + + format: int32 - `archived_at: Time` - When the vault was archived. Null if not archived. + Time the deployment was archived. Null if not archived. format: date-time - `created_at: Time` - A timestamp in RFC 3339 format + Time the deployment was created. format: date-time - - `display_name: String` + - `description: String` - Human-readable name for the vault. + Description of what the deployment does. - - `metadata: Hash[Symbol, String]` + - `environment_id: String` - Arbitrary key-value metadata attached to the vault. + ID of the `environment` where sessions run. - - `updated_at: Time` + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - A timestamp in RFC 3339 format + Events sent to each session immediately after creation. - format: date-time + - `class BetaManagedAgentsDeploymentUserMessageEvent` -#### Example + A user message sent to the session. -```ruby -require "anthropic" + - `type: :"user.message"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` -beta_managed_agents_vault = anthropic.beta.vaults.archive("vlt_011CZkZDLs7fYzm1hXNPeRjv") + Array of content blocks for the user message. -puts(beta_managed_agents_vault) -``` + - `class BetaManagedAgentsTextBlock` -##### Response (200) + Regular text content. -```json -{ - "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "display_name": "Example vault", - "metadata": { - "environment": "production" - }, - "type": "vault", - "updated_at": "2026-03-15T10:00:00Z" -} -``` + - `type: :text` -## Beta › Vaults › Credentials + - `text: String` -### Create a Credential + The text content. -`beta.vaults.credentials.create(vault_id, **kwargs) -> BetaManagedAgentsCredential` + minLength: 1 -**POST** `/v1/vaults/{vault_id}/credentials` + - `class BetaManagedAgentsImageBlock` -Create a Credential + Image content specified directly as base64 data or as a reference via a URL. -#### Parameters + - `type: :image` -- `vault_id: String` (path parameter) + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - Identifier of the vault to create the credential in. + The source of the image data. -- `auth: BetaManagedAgentsMCPOAuthCreateParams | BetaManagedAgentsStaticBearerCreateParams | BetaManagedAgentsEnvironmentVariableCreateParams` + - `class BetaManagedAgentsBase64ImageSource` - Authentication configuration for the credential. + Base64-encoded image data. - - `class BetaManagedAgentsMCPOAuthCreateParams` + - `type: :base64` - Parameters for creating an MCP OAuth credential. + - `data: String` - - `type: :mcp_oauth` + Base64-encoded image data. - - `access_token: String` + minLength: 1 - The OAuth access token to send to the MCP server. + - `media_type: String` - minLength: 1, maxLength: 8192 + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `mcp_server_url: String` + minLength: 1 - URL of the MCP server this credential authenticates against. + - `class BetaManagedAgentsURLImageSource` - minLength: 1, maxLength: 2047 + Image referenced by URL. - - `expires_at: Time` + - `type: :url` - When `access_token` expires, in RFC 3339. + - `url: String` - Must be in the future. + URL of the image to fetch. - format: date-time + minLength: 1 - - `refresh: BetaManagedAgentsMCPOAuthRefreshParams` + - `class BetaManagedAgentsFileImageSource` - Refresh token configuration, if the credential supports token refresh. + Image referenced by file ID. - - `client_id: String` + - `type: :file` - The OAuth client ID to use when refreshing the access token. It can't be changed after the credential is created. + - `file_id: String` - minLength: 1, maxLength: 1024 + ID of a previously uploaded file. - - `refresh_token: String` + minLength: 1 - The OAuth refresh token that the API uses to get a new access token when the current one expires. + - `class BetaManagedAgentsDocumentBlock` - minLength: 1, maxLength: 8192 + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `token_endpoint: String` + - `type: :document` - Token endpoint URL used to refresh the access token. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - minLength: 1, maxLength: 2047 + The source of the document data. - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneParam | BetaManagedAgentsTokenEndpointAuthBasicParam | BetaManagedAgentsTokenEndpointAuthPostParam` + - `class BetaManagedAgentsBase64DocumentSource` - - `class BetaManagedAgentsTokenEndpointAuthNoneParam` + Base64-encoded document data. - Token endpoint requires no client authentication. + - `type: :base64` - - `type: :none` + - `data: String` - - `class BetaManagedAgentsTokenEndpointAuthBasicParam` + Base64-encoded document data. - Token endpoint uses HTTP Basic authentication with client credentials. + minLength: 1 - - `type: :client_secret_basic` + - `media_type: String` - - `client_secret: String` + MIME type of the document (e.g., "application/pdf"). - The OAuth client secret, sent to `token_endpoint` with HTTP Basic authentication. + minLength: 1 - minLength: 1, maxLength: 512 + - `class BetaManagedAgentsPlainTextDocumentSource` - - `class BetaManagedAgentsTokenEndpointAuthPostParam` + Plain text document content. - Token endpoint uses POST body authentication with client credentials. + - `type: :text` - - `type: :client_secret_post` + - `data: String` - - `client_secret: String` + The plain text content. - The OAuth client secret, sent to `token_endpoint` in the POST body. + minLength: 1 - minLength: 1, maxLength: 512 + - `media_type: :"text/plain"` - - `resource: String` + MIME type of the text content. Must be "text/plain". - OAuth resource indicator. + - `class BetaManagedAgentsURLDocumentSource` - minLength: 1, maxLength: 2047 + Document referenced by URL. - - `scope: String` + - `type: :url` - OAuth scope for the refresh request. + - `url: String` - minLength: 1, maxLength: 8192 + URL of the document to fetch. - - `class BetaManagedAgentsStaticBearerCreateParams` + minLength: 1 - Parameters for creating a static bearer token credential. + - `class BetaManagedAgentsFileDocumentSource` - - `type: :static_bearer` + Document referenced by file ID. - - `token: String` + - `type: :file` - The static bearer token to send to the MCP server, such as an API key or personal access token. + - `file_id: String` - minLength: 1, maxLength: 8192 + ID of a previously uploaded file. - - `mcp_server_url: String` + minLength: 1 - URL of the MCP server this credential authenticates against. + - `context: String` - minLength: 1, maxLength: 2047 + Additional context about the document for the model. - - `class BetaManagedAgentsEnvironmentVariableCreateParams` + - `title: String` - Parameters for creating an environment variable credential. + The title of the document. - - `type: :environment_variable` + - `class BetaManagedAgentsRedactedBlock` - - `networking: BetaManagedAgentsCredentialNetworkingParams` + Placeholder for content withheld by Anthropic model policy. - Outbound hosts the secret value is substituted on. + - `type: :redacted` - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingParams` + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - Substitute the secret on any host the session's Environment network policy permits egress to. The Environment's network policy is the only boundary on where the secret can reach. + An outcome the agent should work toward. The agent begins work on receipt. - - `type: :unrestricted` - - - `class BetaManagedAgentsLimitedCredentialNetworkingParams` - - Substitute the secret only on requests to the listed hosts. - - - `type: :limited` + - `type: :"user.define_outcome"` - - `allowed_hosts: Array[String]` + - `description: String` - The destination hosts of the outbound requests that the credential's secret is substituted into. + What the agent should produce. This is the task specification. - Each entry is a bare hostname (`api.example.com`), an IPv4 address (`192.0.2.1`), or a `*.` wildcard (`*.example.com`). URLs, ports, paths, and IPv6 addresses aren't accepted. The list can have up to 16 entries. + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - - `secret_name: String` + How to grade the outcome. Text or file reference. - Name of the environment variable. Immutable after create. + - `class BetaManagedAgentsFileRubric` - minLength: 1, maxLength: 255 + Rubric referenced by a file uploaded via the Files API. - - `secret_value: String` + - `type: :file` - The secret to substitute into the agent's outbound requests. It's write-only and never returned in responses. + - `file_id: String` - minLength: 1, maxLength: 4096 + ID of the rubric file. - - `injection_location: BetaManagedAgentsInjectionLocationParams` + - `class BetaManagedAgentsTextRubric` - Where in the outbound request the secret value may be substituted. + Rubric content provided inline as text. - - `body: bool` + - `type: :text` - Substitute when the placeholder appears in the request body. + - `content: String` - - `header: bool` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - Substitute when the placeholder appears in a request header value. + - `max_iterations: Integer` -- `display_name: String` + Eval→revision cycles before giving up. Default 3, max 20. - Human-readable name for the credential. Up to 255 characters. + format: int32 - maxLength: 255 + - `class BetaManagedAgentsDeploymentSystemMessageEvent` -- `metadata: Hash[Symbol, String]` + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. - Arbitrary key-value metadata to attach to the credential. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `type: :"system.message"` -- `betas: Array[AnthropicBeta]` (header parameter) + - `content: Array[BetaManagedAgentsSystemContentBlock]` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + System content blocks to append. Text-only. - - `String = String` + - `type: :text` - - `:"message-batches-2024-09-24"` + - `text: String` - - `:"prompt-caching-2024-07-31"` + The text content. - - `:"computer-use-2024-10-22"` + minLength: 1 - - `:"computer-use-2025-01-24"` + - `metadata: Hash[Symbol, String]` - - `:"pdfs-2024-09-25"` + Arbitrary key-value metadata. Maximum 16 pairs. - - `:"token-counting-2024-11-01"` + - `name: String` - - `:"token-efficient-tools-2025-02-19"` + Human-readable name. - - `:"output-128k-2025-02-19"` + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - - `:"files-api-2025-04-14"` + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsManualDeploymentPausedReason` - - `:"mcp-client-2025-11-20"` + The caller invoked the pause endpoint on the deployment. - - `:"dev-full-thinking-2025-05-14"` + - `type: :manual` - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsErrorDeploymentPausedReason` - - `:"code-execution-2025-05-22"` + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :error` - - `:"context-1m-2025-08-07"` + - `error: BetaManagedAgentsDeploymentPausedReasonError` - - `:"context-management-2025-06-27"` + The failed run's error. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - - `:"skills-2025-10-02"` + The deployment's environment was archived. - - `:"fast-mode-2026-02-01"` + - `type: :environment_archived_error` - - `:"output-300k-2026-03-24"` + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - - `:"user-profiles-2026-03-24"` + The deployment's agent was archived. - - `:"user-profiles-2026-08-18"` + - `type: :agent_archived_error` - - `:"user-profiles-2026-09-04"` + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` - - `:"advisor-tool-2026-03-01"` + The deployment's environment no longer exists. - - `:"managed-agents-2026-04-01"` + - `type: :environment_not_found_error` - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` - - `:"dreaming-2026-04-21"` + A vault referenced by the deployment no longer exists. - - `:"thinking-token-count-2026-05-13"` + - `type: :vault_not_found_error` - - `:"server-side-fallback-2026-06-01"` + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` - - `:"server-side-fallback-2026-07-01"` + A file resource referenced by the deployment no longer exists. - - `:"fallback-credit-2026-06-01"` + - `type: :file_not_found_error` - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` - - `:"agent-memory-2026-07-22"` + A referenced resource no longer exists and its kind was not reported. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :session_resource_not_found_error` - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` - - `:"computer-use-2025-11-24"` + The deployment's workspace was archived. - - `:"mcp-tunnels-2026-06-22"` + - `type: :workspace_archived_error` - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` - - `:"task-budgets-2026-03-13"` + The deployment's organization is disabled. - - `:"thinking-display-updates-2026-08-18"` + - `type: :organization_disabled_error` - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - - `:"mid-conversation-output-config-2026-07-01"` + A memory store referenced by the deployment is archived. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :memory_store_archived_error` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - - `:"compact-2026-09-04"` + A skill referenced by the deployment's agent no longer exists. - - `:"inline-tools-2026-09-15"` + - `type: :skill_not_found_error` - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - - `:"ce-plugins-2026-09-01"` + A vault referenced by the deployment is archived. - - `:"spend-limit-reads-2026-09-26"` + - `type: :vault_archived_error` - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` -- `workspace_id: String` (header parameter) + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :unknown_error` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` -#### Returns + The deployment configures resources, but its environment is self-hosted and cannot mount them. -- `class BetaManagedAgentsCredential` + - `type: :self_hosted_resources_unsupported_error` - A credential stored in a vault. Sensitive fields are never returned in responses. + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - - `type: :vault_credential` + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - `id: String` + - `type: :mcp_egress_blocked_error` - The unique ID of the credential (`vcrd_...`). + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` - - `archived_at: Time` + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - When the credential was archived. Null if not archived. + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - format: date-time + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. - - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` + - `type: :github_repository` - Authentication configuration for this credential. + - `url: String` - - `class BetaManagedAgentsMCPOAuthAuthResponse` + Github URL of the repository - OAuth credential details for an MCP server. + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `type: :mcp_oauth` + Branch or commit to check out. Defaults to the repository's default branch. - - `mcp_server_url: String` + - `class BetaManagedAgentsBranchCheckout` - URL of the MCP server this credential authenticates against. + - `type: :branch` - - `expires_at: Time` + - `name: String` - When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. + Branch name to check out. - format: date-time + minLength: 1, maxLength: 255 - - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` + - `class BetaManagedAgentsCommitCheckout` - Refresh token configuration, if the credential supports token refresh. + - `type: :commit` - - `client_id: String` + - `sha: String` - The OAuth client ID used when refreshing the access token. + Full commit SHA to check out. - - `token_endpoint: String` + minLength: 7, maxLength: 64 - Token endpoint URL used to refresh the access token. + - `mount_path: String` - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + Mount path in the container. Defaults to `/workspace/`. - - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + - `class BetaManagedAgentsFileResourceConfig` - Token endpoint requires no client authentication. + A file mounted into each session's container. - - `type: :none` + - `type: :file` - - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + - `file_id: String` - Token endpoint uses HTTP Basic authentication with client credentials. + ID of a previously uploaded file. - - `type: :client_secret_basic` + - `mount_path: String` - - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - Token endpoint uses POST body authentication with client credentials. + - `class BetaManagedAgentsMemoryStoreResourceConfig` - - `type: :client_secret_post` + A memory store attached to each session created from this deployment. - - `resource: String` + - `type: :memory_store` - OAuth resource indicator. + - `memory_store_id: String` - - `scope: String` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - OAuth scope for the refresh request. + - `access: :read_write | :read_only` - - `class BetaManagedAgentsStaticBearerAuthResponse` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - Static bearer token credential details for an MCP server. + - `:read_write` - - `type: :static_bearer` + - `:read_only` - - `mcp_server_url: String` + - `instructions: String` - URL of the MCP server this credential authenticates against. + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + - `schedule: BetaManagedAgentsSchedule` - Environment variable credential details. The secret value is never returned. + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. - - `type: :environment_variable` + - `type: :cron` - - `injection_location: BetaManagedAgentsInjectionLocationResponse` + - `expression: String` - Where in the outbound request the secret value is substituted. + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). - - `body: bool` + minLength: 1, maxLength: 256 - Whether the placeholder is substituted in the request body. + - `timezone: String` - - `header: bool` + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). - Whether the placeholder is substituted in request header values. + minLength: 1 - - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `last_run_at: Time` - Outbound hosts the secret value is substituted on. + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` + format: date-time - The secret is substituted on any host the session's Environment network policy permits egress to. + - `upcoming_runs_at: Array[Time]` - - `type: :unrestricted` + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. - - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `status: BetaManagedAgentsDeploymentStatus` - The secret is substituted only on requests to the listed hosts. + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. - - `type: :limited` + - `:active` - - `allowed_hosts: Array[String]` + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - The destination hosts of the outbound requests that the credential's secret is substituted into. + - `:paused` - An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - - `secret_name: String` + - `updated_at: Time` - Name of the environment variable. + Time the deployment was last updated. - - `created_at: Time` + format: date-time - A timestamp in RFC 3339 format + - `vault_ids: Array[String]` - format: date-time + Vault IDs supplying stored credentials for sessions created from this deployment. - - `metadata: Hash[Symbol, String]` + - `budget: BetaManagedAgentsBudgetLimit` - Arbitrary key-value metadata attached to the credential. + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. - - `updated_at: Time` + - `type: :limit` - A timestamp in RFC 3339 format + - `max_list_cost: BetaMonetaryAmount` - format: date-time + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `vault_id: String` + - `amount: String` - Identifier of the vault this credential belongs to. + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - - `display_name: String` + - `currency: BetaCurrency` - Human-readable name for the credential. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. #### Example @@ -71107,66 +70477,91 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_credential = anthropic.beta.vaults.credentials.create( - "vlt_011CZkZDLs7fYzm1hXNPeRjv", - auth: { - token: "bearer_exampletoken", - mcp_server_url: "https://example-server.modelcontextprotocol.io/sse", - type: :static_bearer - } -) +beta_managed_agents_deployment = anthropic.beta.deployments.update("depl_011CZkZcDH3vPqd7xnEfwTai") -puts(beta_managed_agents_credential) +puts(beta_managed_agents_deployment) ``` ##### Response (200) ```json { - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "archived_at": null, - "auth": { - "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", - "type": "static_bearer" + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 }, + "archived_at": null, "created_at": "2026-03-15T10:00:00Z", - "metadata": { - "environment": "production" + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ + { + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" + } + ], + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" }, - "type": "vault_credential", + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", "updated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "display_name": "Example credential" + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } } ``` -### List Credentials +### Archive Deployment -`beta.vaults.credentials.list(vault_id, **kwargs) -> PageCursor` +`beta.deployments.archive(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` -**GET** `/v1/vaults/{vault_id}/credentials` +**POST** `/v1/deployments/{deployment_id}/archive` -List Credentials +Archive Deployment #### Parameters -- `vault_id: String` (path parameter) - - Identifier of the vault to list credentials for. - -- `include_archived: bool` (query parameter) - - Whether to include archived credentials in the results. Defaults to `false`. - -- `limit: Integer` (query parameter) - - Maximum number of credentials to return per page. Defaults to 20, maximum 100. - - format: int32 - -- `page: String` (query parameter) +- `deployment_id: String` (path parameter) - The `next_page` value from a previous [List Credentials](https://platform.claude.com/docs/en/api/beta/vaults/credentials/list?sdk_languages=ruby) response, to get the next page. Leave it out to get the first page. + Unique identifier of the deployment to archive. - `betas: Array[AnthropicBeta]` (header parameter) @@ -71276,6 +70671,8 @@ List Credentials - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71284,679 +70681,616 @@ List Credentials #### Returns -- `class BetaManagedAgentsCredential` +- `class BetaManagedAgentsDeployment` - A credential stored in a vault. Sensitive fields are never returned in responses. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :vault_credential` + - `type: :deployment` - `id: String` - The unique ID of the credential (`vcrd_...`). + Unique identifier for this deployment. - - `archived_at: Time` + - `agent: BetaManagedAgentsAgentReference` - When the credential was archived. Null if not archived. + Reference to the agent this deployment runs, resolved to a concrete version. - format: date-time + - `type: :agent` - - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` + - `id: String` - Authentication configuration for this credential. + - `version: Integer` - - `class BetaManagedAgentsMCPOAuthAuthResponse` + format: int32 - OAuth credential details for an MCP server. + - `archived_at: Time` - - `type: :mcp_oauth` + Time the deployment was archived. Null if not archived. - - `mcp_server_url: String` + format: date-time - URL of the MCP server this credential authenticates against. + - `created_at: Time` - - `expires_at: Time` + Time the deployment was created. - When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. + format: date-time - format: date-time + - `description: String` - - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` + Description of what the deployment does. - Refresh token configuration, if the credential supports token refresh. + - `environment_id: String` - - `client_id: String` + ID of the `environment` where sessions run. - The OAuth client ID used when refreshing the access token. + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - - `token_endpoint: String` + Events sent to each session immediately after creation. - Token endpoint URL used to refresh the access token. + - `class BetaManagedAgentsDeploymentUserMessageEvent` - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + A user message sent to the session. - - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + - `type: :"user.message"` - Token endpoint requires no client authentication. + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `type: :none` + Array of content blocks for the user message. - - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + - `class BetaManagedAgentsTextBlock` - Token endpoint uses HTTP Basic authentication with client credentials. + Regular text content. - - `type: :client_secret_basic` + - `type: :text` - - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + - `text: String` - Token endpoint uses POST body authentication with client credentials. + The text content. - - `type: :client_secret_post` + minLength: 1 - - `resource: String` + - `class BetaManagedAgentsImageBlock` - OAuth resource indicator. + Image content specified directly as base64 data or as a reference via a URL. - - `scope: String` + - `type: :image` - OAuth scope for the refresh request. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `class BetaManagedAgentsStaticBearerAuthResponse` + The source of the image data. - Static bearer token credential details for an MCP server. + - `class BetaManagedAgentsBase64ImageSource` - - `type: :static_bearer` + Base64-encoded image data. - - `mcp_server_url: String` + - `type: :base64` - URL of the MCP server this credential authenticates against. + - `data: String` - - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + Base64-encoded image data. - Environment variable credential details. The secret value is never returned. + minLength: 1 - - `type: :environment_variable` + - `media_type: String` - - `injection_location: BetaManagedAgentsInjectionLocationResponse` - - Where in the outbound request the secret value is substituted. - - - `body: bool` - - Whether the placeholder is substituted in the request body. - - - `header: bool` - - Whether the placeholder is substituted in request header values. - - - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` - - Outbound hosts the secret value is substituted on. - - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` - - The secret is substituted on any host the session's Environment network policy permits egress to. - - - `type: :unrestricted` - - - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` - - The secret is substituted only on requests to the listed hosts. - - - `type: :limited` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `allowed_hosts: Array[String]` + minLength: 1 - The destination hosts of the outbound requests that the credential's secret is substituted into. + - `class BetaManagedAgentsURLImageSource` - An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + Image referenced by URL. - - `secret_name: String` + - `type: :url` - Name of the environment variable. + - `url: String` - - `created_at: Time` + URL of the image to fetch. - A timestamp in RFC 3339 format + minLength: 1 - format: date-time + - `class BetaManagedAgentsFileImageSource` - - `metadata: Hash[Symbol, String]` + Image referenced by file ID. - Arbitrary key-value metadata attached to the credential. + - `type: :file` - - `updated_at: Time` + - `file_id: String` - A timestamp in RFC 3339 format + ID of a previously uploaded file. - format: date-time + minLength: 1 - - `vault_id: String` + - `class BetaManagedAgentsDocumentBlock` - Identifier of the vault this credential belongs to. + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `display_name: String` + - `type: :document` - Human-readable name for the credential. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` -#### Example + The source of the document data. -```ruby -require "anthropic" + - `class BetaManagedAgentsBase64DocumentSource` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Base64-encoded document data. -page = anthropic.beta.vaults.credentials.list("vlt_011CZkZDLs7fYzm1hXNPeRjv") + - `type: :base64` -puts(page) -``` + - `data: String` -##### Response (200) + Base64-encoded document data. -```json -{ - "data": [ - { - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "archived_at": null, - "auth": { - "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", - "type": "static_bearer" - }, - "created_at": "2026-03-15T10:00:00Z", - "metadata": { - "environment": "production" - }, - "type": "vault_credential", - "updated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "display_name": "Example credential" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + minLength: 1 -### Retrieve a Credential + - `media_type: String` -`beta.vaults.credentials.retrieve(credential_id, **kwargs) -> BetaManagedAgentsCredential` + MIME type of the document (e.g., "application/pdf"). -**GET** `/v1/vaults/{vault_id}/credentials/{credential_id}` + minLength: 1 -Retrieve a Credential + - `class BetaManagedAgentsPlainTextDocumentSource` -#### Parameters + Plain text document content. -- `vault_id: String` (path parameter) + - `type: :text` - Identifier of the vault containing the credential. + - `data: String` -- `credential_id: String` (path parameter) + The plain text content. - Unique identifier of the credential to retrieve. + minLength: 1 -- `betas: Array[AnthropicBeta]` (header parameter) + - `media_type: :"text/plain"` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + MIME type of the text content. Must be "text/plain". - - `String = String` + - `class BetaManagedAgentsURLDocumentSource` - - `:"message-batches-2024-09-24"` + Document referenced by URL. - - `:"prompt-caching-2024-07-31"` + - `type: :url` - - `:"computer-use-2024-10-22"` + - `url: String` - - `:"computer-use-2025-01-24"` + URL of the document to fetch. - - `:"pdfs-2024-09-25"` + minLength: 1 - - `:"token-counting-2024-11-01"` + - `class BetaManagedAgentsFileDocumentSource` - - `:"token-efficient-tools-2025-02-19"` + Document referenced by file ID. - - `:"output-128k-2025-02-19"` + - `type: :file` - - `:"files-api-2025-04-14"` + - `file_id: String` - - `:"mcp-client-2025-04-04"` + ID of a previously uploaded file. - - `:"mcp-client-2025-11-20"` + minLength: 1 - - `:"dev-full-thinking-2025-05-14"` + - `context: String` - - `:"interleaved-thinking-2025-05-14"` + Additional context about the document for the model. - - `:"code-execution-2025-05-22"` + - `title: String` - - `:"extended-cache-ttl-2025-04-11"` + The title of the document. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsRedactedBlock` - - `:"context-management-2025-06-27"` + Placeholder for content withheld by Anthropic model policy. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :redacted` - - `:"skills-2025-10-02"` + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - - `:"fast-mode-2026-02-01"` + An outcome the agent should work toward. The agent begins work on receipt. - - `:"output-300k-2026-03-24"` + - `type: :"user.define_outcome"` - - `:"user-profiles-2026-03-24"` + - `description: String` - - `:"user-profiles-2026-08-18"` + What the agent should produce. This is the task specification. - - `:"user-profiles-2026-09-04"` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - - `:"advisor-tool-2026-03-01"` + How to grade the outcome. Text or file reference. - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsFileRubric` - - `:"cache-diagnosis-2026-04-07"` + Rubric referenced by a file uploaded via the Files API. - - `:"dreaming-2026-04-21"` + - `type: :file` - - `:"thinking-token-count-2026-05-13"` + - `file_id: String` - - `:"server-side-fallback-2026-06-01"` + ID of the rubric file. - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsTextRubric` - - `:"fallback-credit-2026-06-01"` + Rubric content provided inline as text. - - `:"fallback-credit-2026-07-01"` + - `type: :text` - - `:"agent-memory-2026-07-22"` + - `content: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - - `:"compact-2026-01-12"` + - `max_iterations: Integer` - - `:"computer-use-2025-11-24"` + Eval→revision cycles before giving up. Default 3, max 20. - - `:"mcp-tunnels-2026-06-22"` + format: int32 - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsDeploymentSystemMessageEvent` - - `:"task-budgets-2026-03-13"` + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. - - `:"thinking-display-updates-2026-08-18"` + - `type: :"system.message"` - - `:"ce-user-management-2026-07-13"` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `:"mid-conversation-output-config-2026-07-01"` + System content blocks to append. Text-only. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :text` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `text: String` - - `:"compact-2026-09-04"` + The text content. - - `:"inline-tools-2026-09-15"` + minLength: 1 - - `:"mcp-client-2026-09-15"` + - `metadata: Hash[Symbol, String]` - - `:"ce-plugins-2026-09-01"` + Arbitrary key-value metadata. Maximum 16 pairs. - - `:"spend-limit-reads-2026-09-26"` + - `name: String` - - `:"telemetry-destinations-2026-08-11"` + Human-readable name. -- `workspace_id: String` (header parameter) + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `class BetaManagedAgentsManualDeploymentPausedReason` -#### Returns + The caller invoked the pause endpoint on the deployment. -- `class BetaManagedAgentsCredential` + - `type: :manual` - A credential stored in a vault. Sensitive fields are never returned in responses. + - `class BetaManagedAgentsErrorDeploymentPausedReason` - - `type: :vault_credential` + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - `id: String` + - `type: :error` - The unique ID of the credential (`vcrd_...`). + - `error: BetaManagedAgentsDeploymentPausedReasonError` - - `archived_at: Time` + The failed run's error. - When the credential was archived. Null if not archived. + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - format: date-time + The deployment's environment was archived. - - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` + - `type: :environment_archived_error` - Authentication configuration for this credential. + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - - `class BetaManagedAgentsMCPOAuthAuthResponse` + The deployment's agent was archived. - OAuth credential details for an MCP server. + - `type: :agent_archived_error` - - `type: :mcp_oauth` + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` - - `mcp_server_url: String` + The deployment's environment no longer exists. - URL of the MCP server this credential authenticates against. + - `type: :environment_not_found_error` - - `expires_at: Time` + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` - When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. + A vault referenced by the deployment no longer exists. - format: date-time + - `type: :vault_not_found_error` - - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` - Refresh token configuration, if the credential supports token refresh. + A file resource referenced by the deployment no longer exists. - - `client_id: String` + - `type: :file_not_found_error` - The OAuth client ID used when refreshing the access token. + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` - - `token_endpoint: String` + A referenced resource no longer exists and its kind was not reported. - Token endpoint URL used to refresh the access token. + - `type: :session_resource_not_found_error` - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` - - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + The deployment's workspace was archived. - Token endpoint requires no client authentication. + - `type: :workspace_archived_error` - - `type: :none` + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` - - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + The deployment's organization is disabled. - Token endpoint uses HTTP Basic authentication with client credentials. + - `type: :organization_disabled_error` - - `type: :client_secret_basic` + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + A memory store referenced by the deployment is archived. - Token endpoint uses POST body authentication with client credentials. + - `type: :memory_store_archived_error` - - `type: :client_secret_post` + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - - `resource: String` + A skill referenced by the deployment's agent no longer exists. - OAuth resource indicator. + - `type: :skill_not_found_error` - - `scope: String` + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - OAuth scope for the refresh request. + A vault referenced by the deployment is archived. - - `class BetaManagedAgentsStaticBearerAuthResponse` + - `type: :vault_archived_error` - Static bearer token credential details for an MCP server. + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` - - `type: :static_bearer` + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. - - `mcp_server_url: String` + - `type: :unknown_error` - URL of the MCP server this credential authenticates against. + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` - - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + The deployment configures resources, but its environment is self-hosted and cannot mount them. - Environment variable credential details. The secret value is never returned. + - `type: :self_hosted_resources_unsupported_error` - - `type: :environment_variable` + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - - `injection_location: BetaManagedAgentsInjectionLocationResponse` + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - Where in the outbound request the secret value is substituted. + - `type: :mcp_egress_blocked_error` - - `body: bool` + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` - Whether the placeholder is substituted in the request body. + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - - `header: bool` + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - Whether the placeholder is substituted in request header values. + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. - - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `type: :github_repository` - Outbound hosts the secret value is substituted on. + - `url: String` - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` + Github URL of the repository - The secret is substituted on any host the session's Environment network policy permits egress to. + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `type: :unrestricted` + Branch or commit to check out. Defaults to the repository's default branch. - - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `class BetaManagedAgentsBranchCheckout` - The secret is substituted only on requests to the listed hosts. + - `type: :branch` - - `type: :limited` + - `name: String` - - `allowed_hosts: Array[String]` + Branch name to check out. - The destination hosts of the outbound requests that the credential's secret is substituted into. + minLength: 1, maxLength: 255 - An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + - `class BetaManagedAgentsCommitCheckout` - - `secret_name: String` + - `type: :commit` - Name of the environment variable. + - `sha: String` - - `created_at: Time` + Full commit SHA to check out. - A timestamp in RFC 3339 format + minLength: 7, maxLength: 64 - format: date-time + - `mount_path: String` - - `metadata: Hash[Symbol, String]` + Mount path in the container. Defaults to `/workspace/`. - Arbitrary key-value metadata attached to the credential. + - `class BetaManagedAgentsFileResourceConfig` - - `updated_at: Time` + A file mounted into each session's container. - A timestamp in RFC 3339 format + - `type: :file` - format: date-time + - `file_id: String` - - `vault_id: String` + ID of a previously uploaded file. - Identifier of the vault this credential belongs to. + - `mount_path: String` - - `display_name: String` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - Human-readable name for the credential. + - `class BetaManagedAgentsMemoryStoreResourceConfig` -#### Example + A memory store attached to each session created from this deployment. -```ruby -require "anthropic" + - `type: :memory_store` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `memory_store_id: String` -beta_managed_agents_credential = anthropic.beta.vaults.credentials.retrieve( - "vcrd_011CZkZEMt8gZan2iYPQfSkw", - vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" -) + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. -puts(beta_managed_agents_credential) -``` + - `access: :read_write | :read_only` -##### Response (200) + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. -```json -{ - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "archived_at": null, - "auth": { - "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", - "type": "static_bearer" - }, - "created_at": "2026-03-15T10:00:00Z", - "metadata": { - "environment": "production" - }, - "type": "vault_credential", - "updated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "display_name": "Example credential" -} -``` + - `:read_write` -### Update a Credential + - `:read_only` -`beta.vaults.credentials.update(credential_id, **kwargs) -> BetaManagedAgentsCredential` + - `instructions: String` -**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. -Update a Credential + - `schedule: BetaManagedAgentsSchedule` -#### Parameters + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. -- `vault_id: String` (path parameter) + - `type: :cron` - Identifier of the vault containing the credential. + - `expression: String` -- `credential_id: String` (path parameter) + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). - Unique identifier of the credential to update. + minLength: 1, maxLength: 256 -- `auth: BetaManagedAgentsMCPOAuthUpdateParams | BetaManagedAgentsStaticBearerUpdateParams | BetaManagedAgentsEnvironmentVariableUpdateParams` + - `timezone: String` - New authentication settings for the credential. The `type` must match the credential's current type, which can't be changed. + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). - - `class BetaManagedAgentsMCPOAuthUpdateParams` + minLength: 1 - Parameters for updating an MCP OAuth credential. The `mcp_server_url` is immutable. + - `last_run_at: Time` - - `type: :mcp_oauth` + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. - - `access_token: String` + format: date-time - The new OAuth access token to replace the stored one. + - `upcoming_runs_at: Array[Time]` - minLength: 1, maxLength: 8192 + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. - - `expires_at: Time` + - `status: BetaManagedAgentsDeploymentStatus` - When the credential's access token expires, in RFC 3339. Leave it out to keep the stored expiry. + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. - If you send a new `access_token`, send its `expires_at` too, or the new token keeps the old expiry. + - `:active` - Must be in the future. + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - format: date-time + - `:paused` - - `refresh: BetaManagedAgentsMCPOAuthRefreshUpdateParams` + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - Updated refresh token configuration. + - `updated_at: Time` - - `refresh_token: String` + Time the deployment was last updated. - The new OAuth refresh token to replace the stored one. + format: date-time - minLength: 1, maxLength: 8192 + - `vault_ids: Array[String]` - - `scope: String` + Vault IDs supplying stored credentials for sessions created from this deployment. - The new OAuth scope for refresh requests. Send an empty string to clear the stored scope. + - `budget: BetaManagedAgentsBudgetLimit` - maxLength: 8192 + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthBasicUpdateParam | BetaManagedAgentsTokenEndpointAuthPostUpdateParam` + - `type: :limit` - - `class BetaManagedAgentsTokenEndpointAuthBasicUpdateParam` + - `max_list_cost: BetaMonetaryAmount` - Updated HTTP Basic authentication parameters for the token endpoint. + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. - - `type: :client_secret_basic` + - `amount: String` - - `client_secret: String` + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. - A new OAuth client secret to replace the stored one. + - `currency: BetaCurrency` - The credential must already use `client_secret_basic` or `client_secret_post`. It keeps its current `token_endpoint_auth` type, even if the `type` sent with this secret is the other one. + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. - minLength: 1, maxLength: 512 +#### Example - - `class BetaManagedAgentsTokenEndpointAuthPostUpdateParam` +```ruby +require "anthropic" - Updated POST body authentication parameters for the token endpoint. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :client_secret_post` +beta_managed_agents_deployment = anthropic.beta.deployments.archive("depl_011CZkZcDH3vPqd7xnEfwTai") - - `client_secret: String` +puts(beta_managed_agents_deployment) +``` - A new OAuth client secret to replace the stored one. +##### Response (200) - The credential must already use `client_secret_basic` or `client_secret_post`. It keeps its current `token_endpoint_auth` type, even if the `type` sent with this secret is the other one. - - minLength: 1, maxLength: 512 - - - `class BetaManagedAgentsStaticBearerUpdateParams` - - Parameters for updating a static bearer token credential. The `mcp_server_url` is immutable. - - - `type: :static_bearer` - - - `token: String` - - The new static bearer token to replace the stored one. - - minLength: 1, maxLength: 8192 - - - `class BetaManagedAgentsEnvironmentVariableUpdateParams` - - Parameters for updating an environment variable credential. `secret_name` is immutable. - - - `type: :environment_variable` - - - `injection_location: BetaManagedAgentsInjectionLocationUpdateParams` - - Updated injection location. - - - `body: bool` - - Substitute when the placeholder appears in the request body. - - - `header: bool` - - Substitute when the placeholder appears in a request header value. - - - `networking: BetaManagedAgentsCredentialNetworkingParams` - - The new networking scope, which replaces the stored one as a whole. - - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingParams` - - Substitute the secret on any host the session's Environment network policy permits egress to. The Environment's network policy is the only boundary on where the secret can reach. - - - `type: :unrestricted` - - - `class BetaManagedAgentsLimitedCredentialNetworkingParams` - - Substitute the secret only on requests to the listed hosts. - - - `type: :limited` - - - `allowed_hosts: Array[String]` - - The destination hosts of the outbound requests that the credential's secret is substituted into. - - Each entry is a bare hostname (`api.example.com`), an IPv4 address (`192.0.2.1`), or a `*.` wildcard (`*.example.com`). URLs, ports, paths, and IPv6 addresses aren't accepted. The list can have up to 16 entries. - - - `secret_value: String` +```json +{ + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ + { + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" + } + ], + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" + }, + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", + "updated_at": "2026-03-15T10:00:00Z", + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } +} +``` - The new secret value to replace the stored one. +### Run Deployment Now - minLength: 1, maxLength: 4096 +`beta.deployments.run(deployment_id, **kwargs) -> BetaManagedAgentsDeploymentRun` -- `display_name: String` +**POST** `/v1/deployments/{deployment_id}/run` - Updated human-readable name for the credential. 1-255 characters. +Run Deployment Now - minLength: 1, maxLength: 255 +#### Parameters -- `metadata: Hash[Symbol, String]` +- `deployment_id: String` (path parameter) - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omitted keys are preserved. + Unique identifier of the deployment to run. - `betas: Array[AnthropicBeta]` (header parameter) @@ -72066,6 +71400,8 @@ Update a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72074,159 +71410,227 @@ Update a Credential #### Returns -- `class BetaManagedAgentsCredential` +- `class BetaManagedAgentsDeploymentRun` - A credential stored in a vault. Sensitive fields are never returned in responses. + A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. - - `type: :vault_credential` + - `type: :deployment_run` - `id: String` - The unique ID of the credential (`vcrd_...`). + Unique identifier for this run (`drun_...`). - - `archived_at: Time` + - `agent: BetaManagedAgentsAgentReference` - When the credential was archived. Null if not archived. + Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. + + - `type: :agent` + + - `id: String` + + - `version: Integer` + + format: int32 + + - `created_at: Time` + + Time this run record was persisted. format: date-time - - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` + - `deployment_id: String` - Authentication configuration for this credential. + ID of the deployment that produced this run. - - `class BetaManagedAgentsMCPOAuthAuthResponse` + - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` - OAuth credential details for an MCP server. + Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. - - `type: :mcp_oauth` + - `class BetaManagedAgentsEnvironmentArchivedRunError` - - `mcp_server_url: String` + The deployment's environment was archived. - URL of the MCP server this credential authenticates against. + - `type: :environment_archived_error` - - `expires_at: Time` + - `message: String` - When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. + Human-readable error description. - format: date-time + - `class BetaManagedAgentsAgentArchivedRunError` - - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` + The deployment's agent was archived. - Refresh token configuration, if the credential supports token refresh. + - `type: :agent_archived_error` - - `client_id: String` + - `message: String` - The OAuth client ID used when refreshing the access token. + Human-readable error description. - - `token_endpoint: String` + - `class BetaManagedAgentsEnvironmentNotFoundRunError` - Token endpoint URL used to refresh the access token. + The deployment's environment no longer exists. - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + - `type: :environment_not_found_error` - - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + - `message: String` - Token endpoint requires no client authentication. + Human-readable error description. - - `type: :none` + - `class BetaManagedAgentsVaultNotFoundRunError` - - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + A vault referenced by the deployment no longer exists. - Token endpoint uses HTTP Basic authentication with client credentials. + - `type: :vault_not_found_error` - - `type: :client_secret_basic` + - `message: String` - - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + Human-readable error description. - Token endpoint uses POST body authentication with client credentials. + - `class BetaManagedAgentsVaultArchivedRunError` - - `type: :client_secret_post` + A vault referenced by the deployment is archived. - - `resource: String` + - `type: :vault_archived_error` - OAuth resource indicator. + - `message: String` - - `scope: String` + Human-readable error description. - OAuth scope for the refresh request. + - `class BetaManagedAgentsFileNotFoundRunError` - - `class BetaManagedAgentsStaticBearerAuthResponse` + A file resource referenced by the deployment no longer exists. - Static bearer token credential details for an MCP server. + - `type: :file_not_found_error` - - `type: :static_bearer` + - `message: String` - - `mcp_server_url: String` + Human-readable error description. - URL of the MCP server this credential authenticates against. + - `class BetaManagedAgentsMemoryStoreArchivedRunError` - - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + A memory store referenced by the deployment is archived. - Environment variable credential details. The secret value is never returned. + - `type: :memory_store_archived_error` - - `type: :environment_variable` + - `message: String` - - `injection_location: BetaManagedAgentsInjectionLocationResponse` + Human-readable error description. - Where in the outbound request the secret value is substituted. + - `class BetaManagedAgentsSkillNotFoundRunError` - - `body: bool` + A skill referenced by the deployment's agent no longer exists. - Whether the placeholder is substituted in the request body. + - `type: :skill_not_found_error` - - `header: bool` + - `message: String` - Whether the placeholder is substituted in request header values. + Human-readable error description. - - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `class BetaManagedAgentsSessionResourceNotFoundRunError` - Outbound hosts the secret value is substituted on. + A referenced resource no longer exists and its kind was not reported. - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` + - `type: :session_resource_not_found_error` - The secret is substituted on any host the session's Environment network policy permits egress to. + - `message: String` - - `type: :unrestricted` + Human-readable error description. - - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `class BetaManagedAgentsWorkspaceArchivedRunError` - The secret is substituted only on requests to the listed hosts. + The deployment's workspace was archived. - - `type: :limited` + - `type: :workspace_archived_error` - - `allowed_hosts: Array[String]` + - `message: String` - The destination hosts of the outbound requests that the credential's secret is substituted into. + Human-readable error description. - An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + - `class BetaManagedAgentsOrganizationDisabledRunError` - - `secret_name: String` + The deployment's organization is disabled. - Name of the environment variable. + - `type: :organization_disabled_error` - - `created_at: Time` + - `message: String` - A timestamp in RFC 3339 format + Human-readable error description. - format: date-time + - `class BetaManagedAgentsSessionRateLimitedRunError` - - `metadata: Hash[Symbol, String]` + Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. - Arbitrary key-value metadata attached to the credential. + - `type: :session_rate_limited_error` - - `updated_at: Time` + - `message: String` - A timestamp in RFC 3339 format + Human-readable error description. - format: date-time + - `class BetaManagedAgentsSessionCreationRejectedRunError` - - `vault_id: String` + The session create request was rejected with a non-retryable validation error. - Identifier of the vault this credential belongs to. + - `type: :session_creation_rejected_error` - - `display_name: String` + - `message: String` - Human-readable name for the credential. + Human-readable error description. + + - `class BetaManagedAgentsUnknownRunError` + + An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. + + - `type: :unknown_error` + + - `message: String` + + Human-readable error description. + + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` + + The deployment configures resources, but its environment is self-hosted and cannot mount them. + + - `type: :self_hosted_resources_unsupported_error` + + - `message: String` + + Human-readable error description. + + - `class BetaManagedAgentsMCPEgressBlockedRunError` + + An MCP server host used by the deployment's agent is blocked by the environment's network policy. + + - `type: :mcp_egress_blocked_error` + + - `message: String` + + Human-readable error description. + + - `session_id: String` + + Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. + + - `trigger_context: BetaManagedAgentsTriggerContext` + + What triggered this run and trigger-specific metadata. + + - `class BetaManagedAgentsScheduleTriggerContext` + + The run was fired by the deployment's cron schedule. + + - `type: :schedule` + + - `scheduled_at: Time` + + The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. + + format: date-time + + - `class BetaManagedAgentsManualTriggerContext` + + The run was started manually by creating a session directly against the deployment. + + - `type: :manual` #### Example @@ -72235,52 +71639,49 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_credential = anthropic.beta.vaults.credentials.update( - "vcrd_011CZkZEMt8gZan2iYPQfSkw", - vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" -) +beta_managed_agents_deployment_run = anthropic.beta.deployments.run("depl_011CZkZcDH3vPqd7xnEfwTai") -puts(beta_managed_agents_credential) +puts(beta_managed_agents_deployment_run) ``` ##### Response (200) ```json { - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "archived_at": null, - "auth": { - "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", - "type": "static_bearer" + "id": "id", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 }, - "created_at": "2026-03-15T10:00:00Z", - "metadata": { - "environment": "production" + "created_at": "2019-12-27T18:11:19.117Z", + "deployment_id": "deployment_id", + "error": { + "message": "message", + "type": "environment_archived_error" }, - "type": "vault_credential", - "updated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "display_name": "Example credential" + "session_id": "session_id", + "trigger_context": { + "scheduled_at": "2019-12-27T18:11:19.117Z", + "type": "schedule" + }, + "type": "deployment_run" } ``` -### Delete a Credential +### Pause Deployment -`beta.vaults.credentials.delete(credential_id, **kwargs) -> BetaManagedAgentsDeletedCredential` +`beta.deployments.pause(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` -**DELETE** `/v1/vaults/{vault_id}/credentials/{credential_id}` +**POST** `/v1/deployments/{deployment_id}/pause` -Delete a Credential +Pause Deployment #### Parameters -- `vault_id: String` (path parameter) - - Identifier of the vault containing the credential. - -- `credential_id: String` (path parameter) +- `deployment_id: String` (path parameter) - Unique identifier of the credential to delete. + Unique identifier of the deployment to pause. - `betas: Array[AnthropicBeta]` (header parameter) @@ -72390,6 +71791,8 @@ Delete a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72398,327 +71801,523 @@ Delete a Credential #### Returns -- `class BetaManagedAgentsDeletedCredential` +- `class BetaManagedAgentsDeployment` - Confirmation of a deleted credential. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :vault_credential_deleted` + - `type: :deployment` - `id: String` - The unique ID of the deleted credential (`vcrd_...`). + Unique identifier for this deployment. -#### Example + - `agent: BetaManagedAgentsAgentReference` -```ruby -require "anthropic" + Reference to the agent this deployment runs, resolved to a concrete version. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :agent` -beta_managed_agents_deleted_credential = anthropic.beta.vaults.credentials.delete( - "vcrd_011CZkZEMt8gZan2iYPQfSkw", - vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" -) + - `id: String` -puts(beta_managed_agents_deleted_credential) -``` + - `version: Integer` -##### Response (200) + format: int32 -```json -{ - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "type": "vault_credential_deleted" -} -``` + - `archived_at: Time` -### Archive a Credential + Time the deployment was archived. Null if not archived. -`beta.vaults.credentials.archive(credential_id, **kwargs) -> BetaManagedAgentsCredential` + format: date-time -**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}/archive` + - `created_at: Time` -Archive a Credential + Time the deployment was created. -#### Parameters + format: date-time -- `vault_id: String` (path parameter) + - `description: String` - Identifier of the vault containing the credential. + Description of what the deployment does. -- `credential_id: String` (path parameter) + - `environment_id: String` - Unique identifier of the credential to archive. + ID of the `environment` where sessions run. -- `betas: Array[AnthropicBeta]` (header parameter) + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. + Events sent to each session immediately after creation. - - `String = String` + - `class BetaManagedAgentsDeploymentUserMessageEvent` - - `:"message-batches-2024-09-24"` + A user message sent to the session. - - `:"prompt-caching-2024-07-31"` + - `type: :"user.message"` - - `:"computer-use-2024-10-22"` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - - `:"computer-use-2025-01-24"` + Array of content blocks for the user message. - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsTextBlock` - - `:"token-counting-2024-11-01"` + Regular text content. - - `:"token-efficient-tools-2025-02-19"` + - `type: :text` - - `:"output-128k-2025-02-19"` + - `text: String` - - `:"files-api-2025-04-14"` + The text content. - - `:"mcp-client-2025-04-04"` + minLength: 1 - - `:"mcp-client-2025-11-20"` + - `class BetaManagedAgentsImageBlock` - - `:"dev-full-thinking-2025-05-14"` + Image content specified directly as base64 data or as a reference via a URL. - - `:"interleaved-thinking-2025-05-14"` + - `type: :image` - - `:"code-execution-2025-05-22"` + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `:"extended-cache-ttl-2025-04-11"` + The source of the image data. - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsBase64ImageSource` - - `:"context-management-2025-06-27"` + Base64-encoded image data. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :base64` - - `:"skills-2025-10-02"` + - `data: String` - - `:"fast-mode-2026-02-01"` + Base64-encoded image data. - - `:"output-300k-2026-03-24"` + minLength: 1 - - `:"user-profiles-2026-03-24"` + - `media_type: String` - - `:"user-profiles-2026-08-18"` + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `:"user-profiles-2026-09-04"` + minLength: 1 - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsURLImageSource` - - `:"managed-agents-2026-04-01"` + Image referenced by URL. - - `:"cache-diagnosis-2026-04-07"` + - `type: :url` - - `:"dreaming-2026-04-21"` + - `url: String` - - `:"thinking-token-count-2026-05-13"` + URL of the image to fetch. - - `:"server-side-fallback-2026-06-01"` + minLength: 1 - - `:"server-side-fallback-2026-07-01"` + - `class BetaManagedAgentsFileImageSource` - - `:"fallback-credit-2026-06-01"` + Image referenced by file ID. - - `:"fallback-credit-2026-07-01"` + - `type: :file` - - `:"agent-memory-2026-07-22"` + - `file_id: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + ID of a previously uploaded file. - - `:"compact-2026-01-12"` + minLength: 1 - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsDocumentBlock` - - `:"mcp-tunnels-2026-06-22"` + Document content, either specified directly as base64 data, as text, or as a reference via a URL. - - `:"structured-outputs-2025-11-13"` + - `type: :document` - - `:"task-budgets-2026-03-13"` + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - - `:"thinking-display-updates-2026-08-18"` + The source of the document data. - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsBase64DocumentSource` - - `:"mid-conversation-output-config-2026-07-01"` + Base64-encoded document data. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :base64` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `data: String` - - `:"compact-2026-09-04"` + Base64-encoded document data. - - `:"inline-tools-2026-09-15"` + minLength: 1 - - `:"mcp-client-2026-09-15"` + - `media_type: String` - - `:"ce-plugins-2026-09-01"` + MIME type of the document (e.g., "application/pdf"). - - `:"spend-limit-reads-2026-09-26"` + minLength: 1 - - `:"telemetry-destinations-2026-08-11"` + - `class BetaManagedAgentsPlainTextDocumentSource` -- `workspace_id: String` (header parameter) + Plain text document content. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `type: :text` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `data: String` -#### Returns + The plain text content. -- `class BetaManagedAgentsCredential` + minLength: 1 - A credential stored in a vault. Sensitive fields are never returned in responses. + - `media_type: :"text/plain"` - - `type: :vault_credential` + MIME type of the text content. Must be "text/plain". - - `id: String` + - `class BetaManagedAgentsURLDocumentSource` - The unique ID of the credential (`vcrd_...`). + Document referenced by URL. - - `archived_at: Time` + - `type: :url` - When the credential was archived. Null if not archived. + - `url: String` - format: date-time + URL of the document to fetch. - - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` + minLength: 1 - Authentication configuration for this credential. + - `class BetaManagedAgentsFileDocumentSource` - - `class BetaManagedAgentsMCPOAuthAuthResponse` + Document referenced by file ID. - OAuth credential details for an MCP server. + - `type: :file` - - `type: :mcp_oauth` + - `file_id: String` - - `mcp_server_url: String` + ID of a previously uploaded file. - URL of the MCP server this credential authenticates against. + minLength: 1 - - `expires_at: Time` + - `context: String` - When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. + Additional context about the document for the model. - format: date-time + - `title: String` - - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` + The title of the document. - Refresh token configuration, if the credential supports token refresh. + - `class BetaManagedAgentsRedactedBlock` - - `client_id: String` + Placeholder for content withheld by Anthropic model policy. - The OAuth client ID used when refreshing the access token. + - `type: :redacted` - - `token_endpoint: String` + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - Token endpoint URL used to refresh the access token. + An outcome the agent should work toward. The agent begins work on receipt. - - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + - `type: :"user.define_outcome"` - - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + - `description: String` - Token endpoint requires no client authentication. + What the agent should produce. This is the task specification. - - `type: :none` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + How to grade the outcome. Text or file reference. - Token endpoint uses HTTP Basic authentication with client credentials. + - `class BetaManagedAgentsFileRubric` - - `type: :client_secret_basic` + Rubric referenced by a file uploaded via the Files API. - - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + - `type: :file` - Token endpoint uses POST body authentication with client credentials. + - `file_id: String` - - `type: :client_secret_post` + ID of the rubric file. - - `resource: String` + - `class BetaManagedAgentsTextRubric` - OAuth resource indicator. + Rubric content provided inline as text. - - `scope: String` + - `type: :text` - OAuth scope for the refresh request. + - `content: String` - - `class BetaManagedAgentsStaticBearerAuthResponse` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - Static bearer token credential details for an MCP server. + - `max_iterations: Integer` - - `type: :static_bearer` + Eval→revision cycles before giving up. Default 3, max 20. - - `mcp_server_url: String` + format: int32 - URL of the MCP server this credential authenticates against. + - `class BetaManagedAgentsDeploymentSystemMessageEvent` - - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. - Environment variable credential details. The secret value is never returned. + - `type: :"system.message"` - - `type: :environment_variable` + - `content: Array[BetaManagedAgentsSystemContentBlock]` - - `injection_location: BetaManagedAgentsInjectionLocationResponse` + System content blocks to append. Text-only. - Where in the outbound request the secret value is substituted. + - `type: :text` - - `body: bool` + - `text: String` - Whether the placeholder is substituted in the request body. + The text content. - - `header: bool` + minLength: 1 - Whether the placeholder is substituted in request header values. + - `metadata: Hash[Symbol, String]` - - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` + Arbitrary key-value metadata. Maximum 16 pairs. - Outbound hosts the secret value is substituted on. + - `name: String` - - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` + Human-readable name. - The secret is substituted on any host the session's Environment network policy permits egress to. + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - - `type: :unrestricted` + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + - `class BetaManagedAgentsManualDeploymentPausedReason` - The secret is substituted only on requests to the listed hosts. + The caller invoked the pause endpoint on the deployment. - - `type: :limited` + - `type: :manual` - - `allowed_hosts: Array[String]` + - `class BetaManagedAgentsErrorDeploymentPausedReason` - The destination hosts of the outbound requests that the credential's secret is substituted into. + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + - `type: :error` - - `secret_name: String` + - `error: BetaManagedAgentsDeploymentPausedReasonError` - Name of the environment variable. + The failed run's error. - - `created_at: Time` + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - A timestamp in RFC 3339 format + The deployment's environment was archived. - format: date-time + - `type: :environment_archived_error` - - `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` - Arbitrary key-value metadata attached to the credential. + The deployment's agent was archived. + + - `type: :agent_archived_error` + + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` + + The deployment's environment no longer exists. + + - `type: :environment_not_found_error` + + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` + + A vault referenced by the deployment no longer exists. + + - `type: :vault_not_found_error` + + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` + + A file resource referenced by the deployment no longer exists. + + - `type: :file_not_found_error` + + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` + + A referenced resource no longer exists and its kind was not reported. + + - `type: :session_resource_not_found_error` + + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` + + The deployment's workspace was archived. + + - `type: :workspace_archived_error` + + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` + + The deployment's organization is disabled. + + - `type: :organization_disabled_error` + + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` + + A memory store referenced by the deployment is archived. + + - `type: :memory_store_archived_error` + + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` + + A skill referenced by the deployment's agent no longer exists. + + - `type: :skill_not_found_error` + + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` + + A vault referenced by the deployment is archived. + + - `type: :vault_archived_error` + + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` + + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. + + - `type: :unknown_error` + + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` + + The deployment configures resources, but its environment is self-hosted and cannot mount them. + + - `type: :self_hosted_resources_unsupported_error` + + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` + + An MCP server host used by the deployment's agent is blocked by the environment's network policy. + + - `type: :mcp_egress_blocked_error` + + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` + + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. + + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` + + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. + + - `type: :github_repository` + + - `url: String` + + Github URL of the repository + + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` + + Branch or commit to check out. Defaults to the repository's default branch. + + - `class BetaManagedAgentsBranchCheckout` + + - `type: :branch` + + - `name: String` + + Branch name to check out. + + minLength: 1, maxLength: 255 + + - `class BetaManagedAgentsCommitCheckout` + + - `type: :commit` + + - `sha: String` + + Full commit SHA to check out. + + minLength: 7, maxLength: 64 + + - `mount_path: String` + + Mount path in the container. Defaults to `/workspace/`. + + - `class BetaManagedAgentsFileResourceConfig` + + A file mounted into each session's container. + + - `type: :file` + + - `file_id: String` + + ID of a previously uploaded file. + + - `mount_path: String` + + Mount path in the container. Defaults to `/mnt/session/uploads/`. + + - `class BetaManagedAgentsMemoryStoreResourceConfig` + + A memory store attached to each session created from this deployment. + + - `type: :memory_store` + + - `memory_store_id: String` + + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. + + - `access: :read_write | :read_only` + + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. + + - `:read_write` + + - `:read_only` + + - `instructions: String` + + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. + + - `schedule: BetaManagedAgentsSchedule` + + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. + + - `type: :cron` + + - `expression: String` + + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). + + minLength: 1, maxLength: 256 + + - `timezone: String` + + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). + + minLength: 1 + + - `last_run_at: Time` + + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. + + format: date-time + + - `upcoming_runs_at: Array[Time]` + + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. + + - `status: BetaManagedAgentsDeploymentStatus` + + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. + + - `:active` + + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. + + - `:paused` + + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - `updated_at: Time` - A timestamp in RFC 3339 format + Time the deployment was last updated. format: date-time - - `vault_id: String` + - `vault_ids: Array[String]` - Identifier of the vault this credential belongs to. + Vault IDs supplying stored credentials for sessions created from this deployment. - - `display_name: String` + - `budget: BetaManagedAgentsBudgetLimit` - Human-readable name for the credential. + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + + - `type: :limit` + + - `max_list_cost: BetaMonetaryAmount` + + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + + - `amount: String` + + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + + - `currency: BetaCurrency` + + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. #### Example @@ -72727,52 +72326,91 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_credential = anthropic.beta.vaults.credentials.archive( - "vcrd_011CZkZEMt8gZan2iYPQfSkw", - vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" -) +beta_managed_agents_deployment = anthropic.beta.deployments.pause("depl_011CZkZcDH3vPqd7xnEfwTai") -puts(beta_managed_agents_credential) +puts(beta_managed_agents_deployment) ``` ##### Response (200) ```json { - "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "archived_at": null, - "auth": { - "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", - "type": "static_bearer" + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 }, + "archived_at": null, "created_at": "2026-03-15T10:00:00Z", - "metadata": { - "environment": "production" + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ + { + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" + } + ], + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" }, - "type": "vault_credential", + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", "updated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", - "display_name": "Example credential" + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } } ``` -### Validate an MCP OAuth Credential +### Unpause Deployment -`beta.vaults.credentials.mcp_oauth_validate(credential_id, **kwargs) -> BetaManagedAgentsCredentialValidation` +`beta.deployments.unpause(deployment_id, **kwargs) -> BetaManagedAgentsDeployment` -**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate` +**POST** `/v1/deployments/{deployment_id}/unpause` -Validate an MCP OAuth Credential +Unpause Deployment #### Parameters -- `vault_id: String` (path parameter) - - Identifier of the vault containing the credential. - -- `credential_id: String` (path parameter) +- `deployment_id: String` (path parameter) - Unique identifier of the credential to validate. + Unique identifier of the deployment to unpause. - `betas: Array[AnthropicBeta]` (header parameter) @@ -72882,6 +72520,8 @@ Validate an MCP OAuth Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72890,554 +72530,523 @@ Validate an MCP OAuth Credential #### Returns -- `class BetaManagedAgentsCredentialValidation` +- `class BetaManagedAgentsDeployment` - Result of live-probing a credential against its configured MCP server. + A deployment is a configured instance of an agent — it binds the agent to everything needed to run it autonomously: an environment, credentials, initial events, and an optional schedule. - - `type: :vault_credential_validation` + - `type: :deployment` - - `credential_id: String` + - `id: String` - Unique identifier of the credential that was validated. + Unique identifier for this deployment. - - `has_refresh_token: bool` + - `agent: BetaManagedAgentsAgentReference` - Whether the credential has a refresh token configured. + Reference to the agent this deployment runs, resolved to a concrete version. - - `mcp_probe: BetaManagedAgentsMCPProbe` + - `type: :agent` - Details of the MCP probe step that failed, or `null` if the probe succeeded or there was no access token to test. + - `id: String` - - `http_response: BetaManagedAgentsRefreshHTTPResponse` + - `version: Integer` - The HTTP error response from the MCP server, or `null` if the MCP server didn't return one for the failing step, for example after a timeout or a DNS or TLS failure. + format: int32 - - `body: String` + - `archived_at: Time` - Response body. May be truncated and has sensitive values scrubbed. + Time the deployment was archived. Null if not archived. - - `body_truncated: bool` + format: date-time - Whether `body` was truncated. + - `created_at: Time` - - `content_type: String` + Time the deployment was created. - Value of the `Content-Type` response header. + format: date-time - - `status_code: Integer` + - `description: String` - HTTP status code. + Description of what the deployment does. - format: int32 + - `environment_id: String` - - `method_: String` + ID of the `environment` where sessions run. - The MCP method that failed (for example `initialize` or `tools/list`). + - `initial_events: Array[BetaManagedAgentsDeploymentInitialEvent]` - - `refresh: BetaManagedAgentsRefreshObject` + Events sent to each session immediately after creation. - Details of the refresh-token exchange attempted on a 401. Null when no refresh was attempted. + - `class BetaManagedAgentsDeploymentUserMessageEvent` - - `http_response: BetaManagedAgentsRefreshHTTPResponse` + A user message sent to the session. - The captured HTTP error response from the token endpoint. Populated only when `status` is `failed`. + - `type: :"user.message"` - - `status: :succeeded | :failed | :connect_error | :no_refresh_token` + - `content: Array[BetaManagedAgentsTextBlock | BetaManagedAgentsImageBlock | BetaManagedAgentsDocumentBlock | BetaManagedAgentsRedactedBlock]` - Outcome of the refresh attempt. + Array of content blocks for the user message. - - `:succeeded` + - `class BetaManagedAgentsTextBlock` - The token endpoint returned a new access token. + Regular text content. - - `:failed` + - `type: :text` - The token endpoint returned an error response. See `http_response` for detail. + - `text: String` - - `:connect_error` + The text content. - The token endpoint could not be reached (DNS, TLS, or connection error). + minLength: 1 - - `:no_refresh_token` + - `class BetaManagedAgentsImageBlock` - No refresh token is stored for the credential, so no exchange was attempted. + Image content specified directly as base64 data or as a reference via a URL. - - `status: BetaManagedAgentsCredentialValidationStatus` + - `type: :image` - Overall verdict of the validation probe. + - `source: BetaManagedAgentsBase64ImageSource | BetaManagedAgentsURLImageSource | BetaManagedAgentsFileImageSource` - - `:valid` + The source of the image data. - The credential successfully authenticated against its MCP server. + - `class BetaManagedAgentsBase64ImageSource` - - `:invalid` + Base64-encoded image data. - The probe reached the MCP server and the server rejected the credential, or no access token is stored. A refresh, if one was tried, didn't recover it. Usually the end user needs to authorize again. + - `type: :base64` - - `:unknown` + - `data: String` - The probe couldn't tell whether the credential works, for example because of a network error or because a refresh succeeded but the new access token wasn't tested. Validate the credential again to find out. + Base64-encoded image data. - - `validated_at: Time` + minLength: 1 - When the validation probe was performed. + - `media_type: String` - format: date-time + MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp"). - - `vault_id: String` + minLength: 1 - Identifier of the vault containing the credential. + - `class BetaManagedAgentsURLImageSource` -#### Example + Image referenced by URL. -```ruby -require "anthropic" + - `type: :url` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `url: String` -beta_managed_agents_credential_validation = anthropic.beta.vaults.credentials.mcp_oauth_validate( - "vcrd_011CZkZEMt8gZan2iYPQfSkw", - vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" -) + URL of the image to fetch. -puts(beta_managed_agents_credential_validation) -``` + minLength: 1 -##### Response (200) + - `class BetaManagedAgentsFileImageSource` -```json -{ - "credential_id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", - "has_refresh_token": true, - "mcp_probe": { - "http_response": { - "body": "body", - "body_truncated": true, - "content_type": "content_type", - "status_code": 0 - }, - "method": "method" - }, - "refresh": { - "http_response": { - "body": "body", - "body_truncated": true, - "content_type": "content_type", - "status_code": 0 - }, - "status": "succeeded" - }, - "status": "valid", - "type": "vault_credential_validation", - "validated_at": "2026-03-15T10:00:00Z", - "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv" -} -``` + Image referenced by file ID. -## Beta › Memory Stores + - `type: :file` -### Create a memory store + - `file_id: String` -`beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` + ID of a previously uploaded file. -**POST** `/v1/memory_stores` + minLength: 1 -Create a memory store + - `class BetaManagedAgentsDocumentBlock` -#### Parameters + Document content, either specified directly as base64 data, as text, or as a reference via a URL. -- `name: String` + - `type: :document` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + - `source: BetaManagedAgentsBase64DocumentSource | BetaManagedAgentsPlainTextDocumentSource | BetaManagedAgentsURLDocumentSource | BetaManagedAgentsFileDocumentSource` - minLength: 1, maxLength: 255 + The source of the document data. -- `description: String` + - `class BetaManagedAgentsBase64DocumentSource` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Base64-encoded document data. - maxLength: 1024 + - `type: :base64` -- `metadata: Hash[Symbol, String]` + - `data: String` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Base64-encoded document data. -- `betas: Array[AnthropicBeta]` (header parameter) + minLength: 1 - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + - `media_type: String` - - `String = String` + MIME type of the document (e.g., "application/pdf"). - - `:"message-batches-2024-09-24"` + minLength: 1 - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsPlainTextDocumentSource` - - `:"computer-use-2024-10-22"` + Plain text document content. - - `:"computer-use-2025-01-24"` + - `type: :text` - - `:"pdfs-2024-09-25"` + - `data: String` - - `:"token-counting-2024-11-01"` + The plain text content. - - `:"token-efficient-tools-2025-02-19"` + minLength: 1 - - `:"output-128k-2025-02-19"` + - `media_type: :"text/plain"` - - `:"files-api-2025-04-14"` + MIME type of the text content. Must be "text/plain". - - `:"mcp-client-2025-04-04"` + - `class BetaManagedAgentsURLDocumentSource` - - `:"mcp-client-2025-11-20"` + Document referenced by URL. - - `:"dev-full-thinking-2025-05-14"` + - `type: :url` - - `:"interleaved-thinking-2025-05-14"` + - `url: String` - - `:"code-execution-2025-05-22"` + URL of the document to fetch. - - `:"extended-cache-ttl-2025-04-11"` + minLength: 1 - - `:"context-1m-2025-08-07"` + - `class BetaManagedAgentsFileDocumentSource` - - `:"context-management-2025-06-27"` + Document referenced by file ID. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :file` - - `:"skills-2025-10-02"` + - `file_id: String` - - `:"fast-mode-2026-02-01"` + ID of a previously uploaded file. - - `:"output-300k-2026-03-24"` + minLength: 1 - - `:"user-profiles-2026-03-24"` + - `context: String` - - `:"user-profiles-2026-08-18"` + Additional context about the document for the model. - - `:"user-profiles-2026-09-04"` + - `title: String` - - `:"advisor-tool-2026-03-01"` + The title of the document. - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsRedactedBlock` - - `:"cache-diagnosis-2026-04-07"` + Placeholder for content withheld by Anthropic model policy. - - `:"dreaming-2026-04-21"` + - `type: :redacted` - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsDeploymentUserDefineOutcomeEvent` - - `:"server-side-fallback-2026-06-01"` + An outcome the agent should work toward. The agent begins work on receipt. - - `:"server-side-fallback-2026-07-01"` + - `type: :"user.define_outcome"` - - `:"fallback-credit-2026-06-01"` + - `description: String` - - `:"fallback-credit-2026-07-01"` + What the agent should produce. This is the task specification. - - `:"agent-memory-2026-07-22"` + - `rubric: BetaManagedAgentsFileRubric | BetaManagedAgentsTextRubric` - - `:"mid-conversation-tool-changes-2026-07-01"` + How to grade the outcome. Text or file reference. - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsFileRubric` - - `:"computer-use-2025-11-24"` + Rubric referenced by a file uploaded via the Files API. - - `:"mcp-tunnels-2026-06-22"` + - `type: :file` - - `:"structured-outputs-2025-11-13"` + - `file_id: String` - - `:"task-budgets-2026-03-13"` + ID of the rubric file. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsTextRubric` - - `:"ce-user-management-2026-07-13"` + Rubric content provided inline as text. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :text` - - `:"thinking-binding-controls-2026-08-01"` + - `content: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Rubric content. Plain text or markdown — the grader treats it as freeform text. - - `:"compact-2026-09-04"` + - `max_iterations: Integer` - - `:"inline-tools-2026-09-15"` + Eval→revision cycles before giving up. Default 3, max 20. - - `:"mcp-client-2026-09-15"` + format: int32 - - `:"ce-plugins-2026-09-01"` + - `class BetaManagedAgentsDeploymentSystemMessageEvent` - - `:"spend-limit-reads-2026-09-26"` + Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a `role: "system"` turn rather than replacing the top-level system prompt. - - `:"telemetry-destinations-2026-08-11"` + - `type: :"system.message"` -- `workspace_id: String` (header parameter) + - `content: Array[BetaManagedAgentsSystemContentBlock]` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + System content blocks to append. Text-only. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `type: :text` -#### Returns + - `text: String` -- `class BetaManagedAgentsMemoryStore` + The text content. - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + minLength: 1 - - `type: :memory_store` + - `metadata: Hash[Symbol, String]` - - `id: String` + Arbitrary key-value metadata. Maximum 16 pairs. - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + - `name: String` - - `archived_at: Time` + Human-readable name. - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + - `paused_reason: BetaManagedAgentsDeploymentPausedReason` - format: date-time + Why the deployment is `paused`. Non-null exactly when `status` is `paused`; null otherwise. - - `created_at: Time` + - `class BetaManagedAgentsManualDeploymentPausedReason` - Timestamp when the store was created. + The caller invoked the pause endpoint on the deployment. - format: date-time + - `type: :manual` - - `description: String` + - `class BetaManagedAgentsErrorDeploymentPausedReason` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + A scheduled fire recorded a failed run whose error auto-pauses the deployment. - - `metadata: Hash[Symbol, String]` + - `type: :error` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + - `error: BetaManagedAgentsDeploymentPausedReasonError` - - `name: String` + The failed run's error. - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + - `class BetaManagedAgentsEnvironmentArchivedDeploymentPausedReasonError` - - `updated_at: Time` + The deployment's environment was archived. - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + - `type: :environment_archived_error` - format: date-time + - `class BetaManagedAgentsAgentArchivedDeploymentPausedReasonError` -#### Example + The deployment's agent was archived. -```ruby -require "anthropic" + - `type: :agent_archived_error` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaManagedAgentsEnvironmentNotFoundDeploymentPausedReasonError` -beta_managed_agents_memory_store = anthropic.beta.memory_stores.create(name: "x") + The deployment's environment no longer exists. -puts(beta_managed_agents_memory_store) -``` + - `type: :environment_not_found_error` -##### Response (200) + - `class BetaManagedAgentsVaultNotFoundDeploymentPausedReasonError` -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" - }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" -} -``` + A vault referenced by the deployment no longer exists. -### List memory stores + - `type: :vault_not_found_error` -`beta.memory_stores.list(**kwargs) -> PageCursor` + - `class BetaManagedAgentsFileNotFoundDeploymentPausedReasonError` -**GET** `/v1/memory_stores` + A file resource referenced by the deployment no longer exists. -List memory stores + - `type: :file_not_found_error` -#### Parameters + - `class BetaManagedAgentsSessionResourceNotFoundDeploymentPausedReasonError` -- `created_at_gte: Time` (query parameter) + A referenced resource no longer exists and its kind was not reported. - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + - `type: :session_resource_not_found_error` - format: date-time + - `class BetaManagedAgentsWorkspaceArchivedDeploymentPausedReasonError` -- `created_at_lte: Time` (query parameter) + The deployment's workspace was archived. - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + - `type: :workspace_archived_error` - format: date-time + - `class BetaManagedAgentsOrganizationDisabledDeploymentPausedReasonError` -- `include_archived: bool` (query parameter) + The deployment's organization is disabled. - When `true`, archived stores are included in the results. Defaults to `false` (archived stores are excluded). + - `type: :organization_disabled_error` -- `limit: Integer` (query parameter) + - `class BetaManagedAgentsMemoryStoreArchivedDeploymentPausedReasonError` - Maximum number of stores to return per page. Must be between 1 and 100. Defaults to 20 when omitted. + A memory store referenced by the deployment is archived. - format: int32 + - `type: :memory_store_archived_error` -- `page: String` (query parameter) + - `class BetaManagedAgentsSkillNotFoundDeploymentPausedReasonError` - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + A skill referenced by the deployment's agent no longer exists. -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :skill_not_found_error` - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + - `class BetaManagedAgentsVaultArchivedDeploymentPausedReasonError` - - `String = String` + A vault referenced by the deployment is archived. - - `:"message-batches-2024-09-24"` + - `type: :vault_archived_error` - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsUnknownDeploymentPausedReasonError` - - `:"computer-use-2024-10-22"` + An unrecognized error auto-paused the deployment. A fallback variant; matches a run whose `error.type` is `unknown_error`. - - `:"computer-use-2025-01-24"` + - `type: :unknown_error` - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedDeploymentPausedReasonError` - - `:"token-counting-2024-11-01"` + The deployment configures resources, but its environment is self-hosted and cannot mount them. - - `:"token-efficient-tools-2025-02-19"` + - `type: :self_hosted_resources_unsupported_error` - - `:"output-128k-2025-02-19"` + - `class BetaManagedAgentsMCPEgressBlockedDeploymentPausedReasonError` - - `:"files-api-2025-04-14"` + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - `:"mcp-client-2025-04-04"` + - `type: :mcp_egress_blocked_error` - - `:"mcp-client-2025-11-20"` + - `resources: Array[BetaManagedAgentsSessionResourceConfig]` - - `:"dev-full-thinking-2025-05-14"` + Resources attached to sessions created from this deployment. Echoes the input minus write-only credentials. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsGitHubRepositoryResourceConfig` - - `:"code-execution-2025-05-22"` + A GitHub repository mounted into each session's container. The authorization token is write-only and never returned. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :github_repository` - - `:"context-1m-2025-08-07"` + - `url: String` - - `:"context-management-2025-06-27"` + Github URL of the repository - - `:"model-context-window-exceeded-2025-08-26"` + - `checkout: BetaManagedAgentsBranchCheckout | BetaManagedAgentsCommitCheckout` - - `:"skills-2025-10-02"` + Branch or commit to check out. Defaults to the repository's default branch. - - `:"fast-mode-2026-02-01"` + - `class BetaManagedAgentsBranchCheckout` - - `:"output-300k-2026-03-24"` + - `type: :branch` - - `:"user-profiles-2026-03-24"` + - `name: String` - - `:"user-profiles-2026-08-18"` + Branch name to check out. - - `:"user-profiles-2026-09-04"` + minLength: 1, maxLength: 255 - - `:"advisor-tool-2026-03-01"` + - `class BetaManagedAgentsCommitCheckout` - - `:"managed-agents-2026-04-01"` + - `type: :commit` - - `:"cache-diagnosis-2026-04-07"` + - `sha: String` - - `:"dreaming-2026-04-21"` + Full commit SHA to check out. - - `:"thinking-token-count-2026-05-13"` + minLength: 7, maxLength: 64 - - `:"server-side-fallback-2026-06-01"` + - `mount_path: String` - - `:"server-side-fallback-2026-07-01"` + Mount path in the container. Defaults to `/workspace/`. - - `:"fallback-credit-2026-06-01"` + - `class BetaManagedAgentsFileResourceConfig` - - `:"fallback-credit-2026-07-01"` + A file mounted into each session's container. - - `:"agent-memory-2026-07-22"` + - `type: :file` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `file_id: String` - - `:"compact-2026-01-12"` + ID of a previously uploaded file. - - `:"computer-use-2025-11-24"` + - `mount_path: String` - - `:"mcp-tunnels-2026-06-22"` + Mount path in the container. Defaults to `/mnt/session/uploads/`. - - `:"structured-outputs-2025-11-13"` + - `class BetaManagedAgentsMemoryStoreResourceConfig` - - `:"task-budgets-2026-03-13"` + A memory store attached to each session created from this deployment. - - `:"thinking-display-updates-2026-08-18"` + - `type: :memory_store` - - `:"ce-user-management-2026-07-13"` + - `memory_store_id: String` - - `:"mid-conversation-output-config-2026-07-01"` + The memory store ID (memstore_...). Must belong to the caller's organization and workspace. - - `:"thinking-binding-controls-2026-08-01"` + - `access: :read_write | :read_only` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Access mode for the mounted store. Defaults to `read_write`. `read_only` mounts the store as a read-only filesystem. - - `:"compact-2026-09-04"` + - `:read_write` - - `:"inline-tools-2026-09-15"` + - `:read_only` - - `:"mcp-client-2026-09-15"` + - `instructions: String` - - `:"ce-plugins-2026-09-01"` + Per-attachment guidance for the agent on how to use this store. Rendered into the memory section of the system prompt. Max 4096 chars. - - `:"spend-limit-reads-2026-09-26"` + - `schedule: BetaManagedAgentsSchedule` - - `:"telemetry-destinations-2026-08-11"` + Recurring cron schedule. Presence enables scheduled execution; null means manual-only. Includes computed timestamps (next fire times, last run) on the cron variant. -- `workspace_id: String` (header parameter) + - `type: :cron` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `expression: String` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + 5-field POSIX cron expression: minute hour day-of-month month day-of-week (e.g., "0 9 * * 1-5" for weekdays at 9am). Day-of-week is 0-7 where 0 and 7 both mean Sunday. Extended cron syntax - seconds or year fields, and the special characters L, W, #, and ? - is not supported, nor are predefined shortcuts (@daily). -#### Returns + minLength: 1, maxLength: 256 -- `class BetaManagedAgentsMemoryStore` + - `timezone: String` - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + IANA timezone identifier (e.g., "America/Los_Angeles", "UTC"). - - `type: :memory_store` + minLength: 1 - - `id: String` + - `last_run_at: Time` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + Time the most recent scheduled run actually started. Null until one completes; preserved after the deployment is archived. Manual runs do not update this. - - `archived_at: Time` + format: date-time - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + - `upcoming_runs_at: Array[Time]` - format: date-time + Up to 5 timestamps of upcoming cron occurrences. Non-empty for active and paused deployments (reflects what the schedule would do if unpaused); empty once the deployment is archived (`archived_at` set). Each fire is offset by a small per-schedule jitter, so a run will actually start at or shortly after its listed time. - - `created_at: Time` + - `status: BetaManagedAgentsDeploymentStatus` - Timestamp when the store was created. + Computed status of the deployment: `active` or `paused`. Archived deployments report `active` with `archived_at` set. - format: date-time + - `:active` - - `description: String` + The deployment is active and can run sessions. Archived deployments also report this status; check `archived_at` to distinguish them. - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + - `:paused` - - `metadata: Hash[Symbol, String]` + The deployment is paused. Autonomous triggers are suppressed; manual runs are still permitted. - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + - `updated_at: Time` - - `name: String` + Time the deployment was last updated. - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + format: date-time - - `updated_at: Time` + - `vault_ids: Array[String]` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + Vault IDs supplying stored credentials for sessions created from this deployment. - format: date-time + - `budget: BetaManagedAgentsBudgetLimit` + + Spend ceiling stamped onto each session created from this deployment. Absent when no budget is set. + + - `type: :limit` + + - `max_list_cost: BetaMonetaryAmount` + + Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge. + + - `amount: String` + + Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied. + + - `currency: BetaCurrency` + + Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced. #### Example @@ -73446,48 +73055,147 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.memory_stores.list +beta_managed_agents_deployment = anthropic.beta.deployments.unpause("depl_011CZkZcDH3vPqd7xnEfwTai") -puts(page) +puts(beta_managed_agents_deployment) ``` ##### Response (200) ```json { - "data": [ + "id": "depl_011CZkZcDH3vPqd7xnEfwTai", + "agent": { + "id": "agent_011CZkYpogX7uDKUyvBTophP", + "type": "agent", + "version": 1 + }, + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "Compiles yesterday's orders into a report every weekday morning.", + "environment_id": "env_011CZkZ9X2dpNyB7HsEFoRfW", + "initial_events": [ { - "id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", - "archived_at": null, - "created_at": "2026-03-15T10:00:00Z", - "description": "Per-user preferences and project context.", - "metadata": {}, - "name": "User Preferences", - "type": "memory_store", - "updated_at": "2026-03-15T10:00:00Z" + "content": [ + { + "text": "Compile yesterday's orders into report.md.", + "type": "text" + } + ], + "type": "user.message" } ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" + "metadata": {}, + "name": "Daily order report", + "paused_reason": { + "type": "manual" + }, + "resources": [ + { + "type": "github_repository", + "url": "url", + "checkout": { + "name": "main", + "type": "branch" + }, + "mount_path": "mount_path" + } + ], + "schedule": { + "expression": "0 9 * * 1-5", + "timezone": "America/Los_Angeles", + "type": "cron", + "last_run_at": "2026-03-16T16:00:09Z", + "upcoming_runs_at": [ + "2026-03-17T16:00:00Z", + "2026-03-18T16:00:00Z" + ] + }, + "status": "active", + "type": "deployment", + "updated_at": "2026-03-15T10:00:00Z", + "vault_ids": [ + "vlt_011CZkZDLs7fYzm1hXNPeRjv" + ], + "budget": { + "max_list_cost": { + "amount": "2500", + "currency": "USD" + }, + "type": "limit" + } } ``` -### Retrieve a memory store +## Beta › Deployment Runs -`beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` +### List Deployment Runs -**GET** `/v1/memory_stores/{memory_store_id}` +`beta.deployment_runs.list(**kwargs) -> PageCursor` + +**GET** `/v1/deployment_runs` -Retrieve a memory store +List Deployment Runs #### Parameters -- `memory_store_id: String` (path parameter) +- `created_at_gt: Time` (query parameter) + + Return runs created strictly after this time (exclusive). + + format: date-time + +- `created_at_gte: Time` (query parameter) + + Return runs created at or after this time (inclusive). + + format: date-time + +- `created_at_lt: Time` (query parameter) + + Return runs created strictly before this time (exclusive). + + format: date-time + +- `created_at_lte: Time` (query parameter) + + Return runs created at or before this time (inclusive). + + format: date-time - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. +- `deployment_id: String` (query parameter) + + Filter to a specific deployment. Omit to list across all deployments in the workspace. Filtering by a non-existent `deployment_id` returns 200 with empty data. + +- `has_error: bool` (query parameter) + + Filter: true for runs with non-null `error`, false for runs with non-null `session_id`. Omit for all. + +- `limit: Integer` (query parameter) + + Maximum results per page. Default 20, maximum 1000. + + format: int32 + +- `page: String` (query parameter) + + Opaque pagination cursor. Pass `next_page` from the previous response. Invalid or expired cursors return 400. + +- `trigger_type: BetaManagedAgentsTriggerType` (query parameter) + + Filter runs by what triggered them. Omit to return all runs. + + - `:schedule` + + The run was fired by the deployment's cron schedule. + + - `:manual` + + The run was started manually by creating a session directly against the deployment. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -73593,6 +73301,8 @@ Retrieve a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73601,260 +73311,227 @@ Retrieve a memory store #### Returns -- `class BetaManagedAgentsMemoryStore` +- `class BetaManagedAgentsDeploymentRun` - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. - - `type: :memory_store` + - `type: :deployment_run` - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. - - - `archived_at: Time` - - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. - - format: date-time - - - `created_at: Time` - - Timestamp when the store was created. - - format: date-time + Unique identifier for this run (`drun_...`). - - `description: String` + - `agent: BetaManagedAgentsAgentReference` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. - - `metadata: Hash[Symbol, String]` + - `type: :agent` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + - `id: String` - - `name: String` + - `version: Integer` - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + format: int32 - - `updated_at: Time` + - `created_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + Time this run record was persisted. format: date-time -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_managed_agents_memory_store = anthropic.beta.memory_stores.retrieve("memory_store_id") + - `deployment_id: String` -puts(beta_managed_agents_memory_store) -``` + ID of the deployment that produced this run. -##### Response (200) + - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" - }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" -} -``` + Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. -### Update a memory store + - `class BetaManagedAgentsEnvironmentArchivedRunError` -`beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` + The deployment's environment was archived. -**POST** `/v1/memory_stores/{memory_store_id}` + - `type: :environment_archived_error` -Update a memory store + - `message: String` -#### Parameters + Human-readable error description. -- `memory_store_id: String` (path parameter) + - `class BetaManagedAgentsAgentArchivedRunError` - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The deployment's agent was archived. -- `description: String` + - `type: :agent_archived_error` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + - `message: String` - maxLength: 1024 + Human-readable error description. -- `metadata: Hash[Symbol, String]` + - `class BetaManagedAgentsEnvironmentNotFoundRunError` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + The deployment's environment no longer exists. -- `name: String` + - `type: :environment_not_found_error` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + - `message: String` - minLength: 1, maxLength: 255 + Human-readable error description. -- `betas: Array[AnthropicBeta]` (header parameter) + - `class BetaManagedAgentsVaultNotFoundRunError` - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + A vault referenced by the deployment no longer exists. - - `String = String` + - `type: :vault_not_found_error` - - `:"message-batches-2024-09-24"` + - `message: String` - - `:"prompt-caching-2024-07-31"` + Human-readable error description. - - `:"computer-use-2024-10-22"` + - `class BetaManagedAgentsVaultArchivedRunError` - - `:"computer-use-2025-01-24"` + A vault referenced by the deployment is archived. - - `:"pdfs-2024-09-25"` + - `type: :vault_archived_error` - - `:"token-counting-2024-11-01"` + - `message: String` - - `:"token-efficient-tools-2025-02-19"` + Human-readable error description. - - `:"output-128k-2025-02-19"` + - `class BetaManagedAgentsFileNotFoundRunError` - - `:"files-api-2025-04-14"` + A file resource referenced by the deployment no longer exists. - - `:"mcp-client-2025-04-04"` + - `type: :file_not_found_error` - - `:"mcp-client-2025-11-20"` + - `message: String` - - `:"dev-full-thinking-2025-05-14"` + Human-readable error description. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaManagedAgentsMemoryStoreArchivedRunError` - - `:"code-execution-2025-05-22"` + A memory store referenced by the deployment is archived. - - `:"extended-cache-ttl-2025-04-11"` + - `type: :memory_store_archived_error` - - `:"context-1m-2025-08-07"` + - `message: String` - - `:"context-management-2025-06-27"` + Human-readable error description. - - `:"model-context-window-exceeded-2025-08-26"` + - `class BetaManagedAgentsSkillNotFoundRunError` - - `:"skills-2025-10-02"` + A skill referenced by the deployment's agent no longer exists. - - `:"fast-mode-2026-02-01"` + - `type: :skill_not_found_error` - - `:"output-300k-2026-03-24"` + - `message: String` - - `:"user-profiles-2026-03-24"` + Human-readable error description. - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsSessionResourceNotFoundRunError` - - `:"user-profiles-2026-09-04"` + A referenced resource no longer exists and its kind was not reported. - - `:"advisor-tool-2026-03-01"` + - `type: :session_resource_not_found_error` - - `:"managed-agents-2026-04-01"` + - `message: String` - - `:"cache-diagnosis-2026-04-07"` + Human-readable error description. - - `:"dreaming-2026-04-21"` + - `class BetaManagedAgentsWorkspaceArchivedRunError` - - `:"thinking-token-count-2026-05-13"` + The deployment's workspace was archived. - - `:"server-side-fallback-2026-06-01"` + - `type: :workspace_archived_error` - - `:"server-side-fallback-2026-07-01"` + - `message: String` - - `:"fallback-credit-2026-06-01"` + Human-readable error description. - - `:"fallback-credit-2026-07-01"` + - `class BetaManagedAgentsOrganizationDisabledRunError` - - `:"agent-memory-2026-07-22"` + The deployment's organization is disabled. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :organization_disabled_error` - - `:"compact-2026-01-12"` + - `message: String` - - `:"computer-use-2025-11-24"` + Human-readable error description. - - `:"mcp-tunnels-2026-06-22"` + - `class BetaManagedAgentsSessionRateLimitedRunError` - - `:"structured-outputs-2025-11-13"` + Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. - - `:"task-budgets-2026-03-13"` + - `type: :session_rate_limited_error` - - `:"thinking-display-updates-2026-08-18"` + - `message: String` - - `:"ce-user-management-2026-07-13"` + Human-readable error description. - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsSessionCreationRejectedRunError` - - `:"thinking-binding-controls-2026-08-01"` + The session create request was rejected with a non-retryable validation error. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :session_creation_rejected_error` - - `:"compact-2026-09-04"` + - `message: String` - - `:"inline-tools-2026-09-15"` + Human-readable error description. - - `:"mcp-client-2026-09-15"` + - `class BetaManagedAgentsUnknownRunError` - - `:"ce-plugins-2026-09-01"` + An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. - - `:"spend-limit-reads-2026-09-26"` + - `type: :unknown_error` - - `:"telemetry-destinations-2026-08-11"` + - `message: String` -- `workspace_id: String` (header parameter) + Human-readable error description. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + The deployment configures resources, but its environment is self-hosted and cannot mount them. -#### Returns + - `type: :self_hosted_resources_unsupported_error` -- `class BetaManagedAgentsMemoryStore` + - `message: String` - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + Human-readable error description. - - `type: :memory_store` + - `class BetaManagedAgentsMCPEgressBlockedRunError` - - `id: String` + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + - `type: :mcp_egress_blocked_error` - - `archived_at: Time` + - `message: String` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + Human-readable error description. - format: date-time + - `session_id: String` - - `created_at: Time` + Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. - Timestamp when the store was created. + - `trigger_context: BetaManagedAgentsTriggerContext` - format: date-time + What triggered this run and trigger-specific metadata. - - `description: String` + - `class BetaManagedAgentsScheduleTriggerContext` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + The run was fired by the deployment's cron schedule. - - `metadata: Hash[Symbol, String]` + - `type: :schedule` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + - `scheduled_at: Time` - - `name: String` + The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + format: date-time - - `updated_at: Time` + - `class BetaManagedAgentsManualTriggerContext` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + The run was started manually by creating a session directly against the deployment. - format: date-time + - `type: :manual` #### Example @@ -73863,45 +73540,58 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory_store = anthropic.beta.memory_stores.update("memory_store_id") +page = anthropic.beta.deployment_runs.list -puts(beta_managed_agents_memory_store) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" - }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" + "data": [ + { + "id": "id", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + }, + "created_at": "2019-12-27T18:11:19.117Z", + "deployment_id": "deployment_id", + "error": { + "message": "message", + "type": "environment_archived_error" + }, + "session_id": "session_id", + "trigger_context": { + "scheduled_at": "2019-12-27T18:11:19.117Z", + "type": "schedule" + }, + "type": "deployment_run" + } + ], + "next_page": "next_page" } ``` -### Delete a memory store +### Get Deployment Run -`beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` +`beta.deployment_runs.retrieve(deployment_run_id, **kwargs) -> BetaManagedAgentsDeploymentRun` -**DELETE** `/v1/memory_stores/{memory_store_id}` +**GET** `/v1/deployment_runs/{deployment_run_id}` -Delete a memory store +Get Deployment Run #### Parameters -- `memory_store_id: String` (path parameter) +- `deployment_run_id: String` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + Unique identifier of the deployment run. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -74007,6 +73697,8 @@ Delete a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74015,206 +73707,227 @@ Delete a memory store #### Returns -- `class BetaManagedAgentsDeletedMemoryStore` +- `class BetaManagedAgentsDeploymentRun` - Confirmation that a `memory_store` was deleted. + A persistent, append-only record of a single deployment execution. Records session creation success or failure — no session lifecycle tracking. - - `type: :memory_store_deleted` + - `type: :deployment_run` - `id: String` - ID of the deleted memory store (a `memstore_...` identifier). The store and all its memories and versions are no longer retrievable. + Unique identifier for this run (`drun_...`). -#### Example + - `agent: BetaManagedAgentsAgentReference` -```ruby -require "anthropic" + Snapshot of the agent at fire time. Always fully resolved — deployments pin agent + version. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :agent` -beta_managed_agents_deleted_memory_store = anthropic.beta.memory_stores.delete("memory_store_id") + - `id: String` -puts(beta_managed_agents_deleted_memory_store) -``` + - `version: Integer` -##### Response (200) + format: int32 -```json -{ - "id": "id", - "type": "memory_store_deleted" -} -``` + - `created_at: Time` -### Archive a memory store + Time this run record was persisted. -`beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` + format: date-time -**POST** `/v1/memory_stores/{memory_store_id}/archive` + - `deployment_id: String` -Archive a memory store + ID of the deployment that produced this run. -#### Parameters + - `error: BetaManagedAgentsEnvironmentArchivedRunError | BetaManagedAgentsAgentArchivedRunError | BetaManagedAgentsEnvironmentNotFoundRunError | 13 more` -- `memory_store_id: String` (path parameter) + Populated on creation failure. Null on success. Exactly one of `session_id` or `error` is non-null. - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + - `class BetaManagedAgentsEnvironmentArchivedRunError` -- `betas: Array[AnthropicBeta]` (header parameter) + The deployment's environment was archived. - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + - `type: :environment_archived_error` - - `String = String` + - `message: String` - - `:"message-batches-2024-09-24"` + Human-readable error description. - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsAgentArchivedRunError` - - `:"computer-use-2024-10-22"` + The deployment's agent was archived. - - `:"computer-use-2025-01-24"` + - `type: :agent_archived_error` - - `:"pdfs-2024-09-25"` + - `message: String` - - `:"token-counting-2024-11-01"` + Human-readable error description. - - `:"token-efficient-tools-2025-02-19"` + - `class BetaManagedAgentsEnvironmentNotFoundRunError` - - `:"output-128k-2025-02-19"` + The deployment's environment no longer exists. - - `:"files-api-2025-04-14"` + - `type: :environment_not_found_error` - - `:"mcp-client-2025-04-04"` + - `message: String` - - `:"mcp-client-2025-11-20"` + Human-readable error description. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaManagedAgentsVaultNotFoundRunError` - - `:"interleaved-thinking-2025-05-14"` + A vault referenced by the deployment no longer exists. - - `:"code-execution-2025-05-22"` + - `type: :vault_not_found_error` - - `:"extended-cache-ttl-2025-04-11"` + - `message: String` - - `:"context-1m-2025-08-07"` + Human-readable error description. - - `:"context-management-2025-06-27"` + - `class BetaManagedAgentsVaultArchivedRunError` - - `:"model-context-window-exceeded-2025-08-26"` + A vault referenced by the deployment is archived. - - `:"skills-2025-10-02"` + - `type: :vault_archived_error` - - `:"fast-mode-2026-02-01"` + - `message: String` - - `:"output-300k-2026-03-24"` + Human-readable error description. - - `:"user-profiles-2026-03-24"` + - `class BetaManagedAgentsFileNotFoundRunError` - - `:"user-profiles-2026-08-18"` + A file resource referenced by the deployment no longer exists. - - `:"user-profiles-2026-09-04"` + - `type: :file_not_found_error` - - `:"advisor-tool-2026-03-01"` + - `message: String` - - `:"managed-agents-2026-04-01"` + Human-readable error description. - - `:"cache-diagnosis-2026-04-07"` + - `class BetaManagedAgentsMemoryStoreArchivedRunError` - - `:"dreaming-2026-04-21"` + A memory store referenced by the deployment is archived. - - `:"thinking-token-count-2026-05-13"` + - `type: :memory_store_archived_error` - - `:"server-side-fallback-2026-06-01"` + - `message: String` - - `:"server-side-fallback-2026-07-01"` + Human-readable error description. - - `:"fallback-credit-2026-06-01"` + - `class BetaManagedAgentsSkillNotFoundRunError` - - `:"fallback-credit-2026-07-01"` + A skill referenced by the deployment's agent no longer exists. - - `:"agent-memory-2026-07-22"` + - `type: :skill_not_found_error` - - `:"mid-conversation-tool-changes-2026-07-01"` + - `message: String` - - `:"compact-2026-01-12"` + Human-readable error description. - - `:"computer-use-2025-11-24"` + - `class BetaManagedAgentsSessionResourceNotFoundRunError` - - `:"mcp-tunnels-2026-06-22"` + A referenced resource no longer exists and its kind was not reported. - - `:"structured-outputs-2025-11-13"` + - `type: :session_resource_not_found_error` - - `:"task-budgets-2026-03-13"` + - `message: String` - - `:"thinking-display-updates-2026-08-18"` + Human-readable error description. - - `:"ce-user-management-2026-07-13"` + - `class BetaManagedAgentsWorkspaceArchivedRunError` - - `:"mid-conversation-output-config-2026-07-01"` + The deployment's workspace was archived. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :workspace_archived_error` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `message: String` - - `:"compact-2026-09-04"` + Human-readable error description. - - `:"inline-tools-2026-09-15"` + - `class BetaManagedAgentsOrganizationDisabledRunError` - - `:"mcp-client-2026-09-15"` + The deployment's organization is disabled. - - `:"ce-plugins-2026-09-01"` + - `type: :organization_disabled_error` - - `:"spend-limit-reads-2026-09-26"` + - `message: String` - - `:"telemetry-destinations-2026-08-11"` + Human-readable error description. -- `workspace_id: String` (header parameter) + - `class BetaManagedAgentsSessionRateLimitedRunError` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + Session creation was rejected due to rate limiting. The schedule keeps firing; subsequent runs may succeed. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `type: :session_rate_limited_error` -#### Returns + - `message: String` -- `class BetaManagedAgentsMemoryStore` + Human-readable error description. - A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. + - `class BetaManagedAgentsSessionCreationRejectedRunError` - - `type: :memory_store` + The session create request was rejected with a non-retryable validation error. - - `id: String` + - `type: :session_creation_rejected_error` + + - `message: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + Human-readable error description. - - `archived_at: Time` + - `class BetaManagedAgentsUnknownRunError` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + An unknown or unexpected error caused the run to fail. A fallback variant; clients that do not recognize a new error type can match on message alone. - format: date-time + - `type: :unknown_error` - - `created_at: Time` + - `message: String` - Timestamp when the store was created. + Human-readable error description. - format: date-time + - `class BetaManagedAgentsSelfHostedResourcesUnsupportedRunError` - - `description: String` + The deployment configures resources, but its environment is self-hosted and cannot mount them. - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + - `type: :self_hosted_resources_unsupported_error` - - `metadata: Hash[Symbol, String]` + - `message: String` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Human-readable error description. - - `name: String` + - `class BetaManagedAgentsMCPEgressBlockedRunError` - Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + An MCP server host used by the deployment's agent is blocked by the environment's network policy. - - `updated_at: Time` + - `type: :mcp_egress_blocked_error` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + - `message: String` - format: date-time + Human-readable error description. + + - `session_id: String` + + Populated on success. Null on creation failure. Exactly one of `session_id` or `error` is non-null. + + - `trigger_context: BetaManagedAgentsTriggerContext` + + What triggered this run and trigger-specific metadata. + + - `class BetaManagedAgentsScheduleTriggerContext` + + The run was fired by the deployment's cron schedule. + + - `type: :schedule` + + - `scheduled_at: Time` + + The UTC instant at which the cron expression matched in the configured timezone, before jitter is applied. At most one run is recorded per (`deployment_id`, `scheduled_at`) pair. + + format: date-time + + - `class BetaManagedAgentsManualTriggerContext` + + The run was started manually by creating a session directly against the deployment. + + - `type: :manual` #### Example @@ -74223,9 +73936,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory_store = anthropic.beta.memory_stores.archive("memory_store_id") +beta_managed_agents_deployment_run = anthropic.beta.deployment_runs.retrieve("deployment_run_id") -puts(beta_managed_agents_memory_store) +puts(beta_managed_agents_deployment_run) ``` ##### Response (200) @@ -74233,59 +73946,51 @@ puts(beta_managed_agents_memory_store) ```json { "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", + "agent": { + "id": "agent_011CZkYqphY8vELVzwCUpqiQ", + "type": "agent", + "version": 1 + }, "created_at": "2019-12-27T18:11:19.117Z", - "description": "description", - "metadata": { - "foo": "string" + "deployment_id": "deployment_id", + "error": { + "message": "message", + "type": "environment_archived_error" }, - "name": "name", - "type": "memory_store", - "updated_at": "2019-12-27T18:11:19.117Z" + "session_id": "session_id", + "trigger_context": { + "scheduled_at": "2019-12-27T18:11:19.117Z", + "type": "schedule" + }, + "type": "deployment_run" } ``` -## Beta › Memory Stores › Memories +## Beta › Vaults -### Create a memory +### Create a Vault -`beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` +`beta.vaults.create(**kwargs) -> BetaManagedAgentsVault` -**POST** `/v1/memory_stores/{memory_store_id}/memories` +**POST** `/v1/vaults` -Create a memory +Create a Vault #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store to create the memory in (`memstore_...`). - -- `content: String` - - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. - -- `path: String` - - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. - - minLength: 2, maxLength: 1024 - -- `view: BetaManagedAgentsMemoryView` (query parameter) - - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. +- `display_name: String` - - `:basic` + Human-readable name for the vault. 1-255 characters. - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. + minLength: 1, maxLength: 255 - - `:full` +- `metadata: Hash[Symbol, String]` - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. + Arbitrary key-value metadata to attach to the vault. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -74391,6 +74096,8 @@ Create a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74399,54 +74106,42 @@ Create a memory #### Returns -- `class BetaManagedAgentsMemory` +- `class BetaManagedAgentsVault` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A vault that stores credentials for use by agents during sessions. - - `type: :memory` + - `type: :vault` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. - - - `content_sha256: String` - - Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. + The unique ID of the vault (`vlt_...`). - - `content_size_bytes: Integer` + - `archived_at: Time` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + When the vault was archived. Null if not archived. - format: int32 + format: date-time - `created_at: Time` - When this memory was created, in RFC 3339 format. + A timestamp in RFC 3339 format format: date-time - - `memory_store_id: String` - - ID of the memory store this memory belongs to (a `memstore_...` value). - - - `memory_version_id: String` + - `display_name: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + Human-readable name for the vault. - - `path: String` + - `metadata: Hash[Symbol, String]` - Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. + Arbitrary key-value metadata attached to the vault. - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + A timestamp in RFC 3339 format format: date-time - - `content: String` - - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). - #### Example ```ruby @@ -74454,77 +74149,54 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory = anthropic.beta.memory_stores.memories.create("memory_store_id", content: "content", path: "xx") +beta_managed_agents_vault = anthropic.beta.vaults.create(display_name: "Example vault") -puts(beta_managed_agents_memory) +puts(beta_managed_agents_vault) ``` ##### Response (200) ```json { - "id": "id", - "content_sha256": "content_sha256", - "content_size_bytes": 0, - "created_at": "2019-12-27T18:11:19.117Z", - "memory_store_id": "memory_store_id", - "memory_version_id": "memory_version_id", - "path": "path", - "type": "memory", - "updated_at": "2019-12-27T18:11:19.117Z", - "content": "content" + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "display_name": "Example vault", + "metadata": { + "environment": "production" + }, + "type": "vault", + "updated_at": "2026-03-15T10:00:00Z" } ``` -### List memories +### List Vaults -`beta.memory_stores.memories.list(memory_store_id, **kwargs) -> PageCursor` +`beta.vaults.list(**kwargs) -> PageCursor` -**GET** `/v1/memory_stores/{memory_store_id}/memories` +**GET** `/v1/vaults` -List memories +List Vaults #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store to list memories from (`memstore_...`). - -- `depth: Integer` (query parameter) - - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. +- `include_archived: bool` (query parameter) - format: int32 + Whether to include archived vaults in the results. Defaults to `false`. - `limit: Integer` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + Maximum number of vaults to return per page. Defaults to 20, maximum 100. format: int32 - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. - -- `path_prefix: String` (query parameter) - - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. - -- `view: BetaManagedAgentsMemoryView` (query parameter) - - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. - - - `:basic` - - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - - - `:full` - - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. + The `next_page` value from a previous [List Vaults](https://platform.claude.com/docs/en/api/beta/vaults/list?sdk_languages=ruby) response, to get the next page. Leave it out to get the first page. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -74630,6 +74302,8 @@ List memories - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74638,67 +74312,41 @@ List memories #### Returns -- `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. - - - `class BetaManagedAgentsMemory` - - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. - - - `type: :memory` - - - `id: String` - - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. - - - `content_sha256: String` - - Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. - - - `content_size_bytes: Integer` - - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. - - format: int32 - - - `created_at: Time` - - When this memory was created, in RFC 3339 format. +- `class BetaManagedAgentsVault` - format: date-time + A vault that stores credentials for use by agents during sessions. - - `memory_store_id: String` + - `type: :vault` - ID of the memory store this memory belongs to (a `memstore_...` value). + - `id: String` - - `memory_version_id: String` + The unique ID of the vault (`vlt_...`). - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + - `archived_at: Time` - - `path: String` + When the vault was archived. Null if not archived. - Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. + format: date-time - - `updated_at: Time` + - `created_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + A timestamp in RFC 3339 format - format: date-time + format: date-time - - `content: String` + - `display_name: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + Human-readable name for the vault. - - `class BetaManagedAgentsMemoryPrefix` + - `metadata: Hash[Symbol, String]` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + Arbitrary key-value metadata attached to the vault. - - `type: :memory_prefix` + - `updated_at: Time` - - `path: String` + A timestamp in RFC 3339 format - The rolled-up path prefix, including a trailing `/` (e.g. `/projects/foo/`). Pass this value as `path_prefix` on a subsequent list call to drill into the directory. + format: date-time #### Example @@ -74707,7 +74355,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.memory_stores.memories.list("memory_store_id") +page = anthropic.beta.vaults.list puts(page) ``` @@ -74718,55 +74366,38 @@ puts(page) { "data": [ { - "id": "mem_011CZkZ9X2dpNyB6YbtxvB6e", - "content_sha256": "ba7936d94c84d948a2232088f78228f175df6a8353b2d5bc9228eee5794a0024", - "content_size_bytes": 28, + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "archived_at": null, "created_at": "2026-03-15T10:00:00Z", - "memory_store_id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", - "memory_version_id": "memver_011CZkZBJq5dWxk9fVLNcPht", - "path": "/preferences/formatting.md", - "type": "memory", - "updated_at": "2026-03-15T10:00:00Z", - "content": null + "display_name": "Example vault", + "metadata": { + "environment": "production" + }, + "type": "vault", + "updated_at": "2026-03-15T10:00:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -### Retrieve a memory +### Retrieve a Vault -`beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` +`beta.vaults.retrieve(vault_id, **kwargs) -> BetaManagedAgentsVault` -**GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**GET** `/v1/vaults/{vault_id}` -Retrieve a memory +Retrieve a Vault #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store that holds the memory (`memstore_...`). - -- `memory_id: String` (path parameter) - - The ID of the memory to retrieve (`mem_...`). - -- `view: BetaManagedAgentsMemoryView` (query parameter) - - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. - - - `:basic` - - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - - - `:full` +- `vault_id: String` (path parameter) - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. + Unique identifier of the vault to retrieve. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -74872,6 +74503,8 @@ Retrieve a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74880,54 +74513,42 @@ Retrieve a memory #### Returns -- `class BetaManagedAgentsMemory` +- `class BetaManagedAgentsVault` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A vault that stores credentials for use by agents during sessions. - - `type: :memory` + - `type: :vault` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. - - - `content_sha256: String` - - Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. + The unique ID of the vault (`vlt_...`). - - `content_size_bytes: Integer` + - `archived_at: Time` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + When the vault was archived. Null if not archived. - format: int32 + format: date-time - `created_at: Time` - When this memory was created, in RFC 3339 format. + A timestamp in RFC 3339 format format: date-time - - `memory_store_id: String` - - ID of the memory store this memory belongs to (a `memstore_...` value). - - - `memory_version_id: String` + - `display_name: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + Human-readable name for the vault. - - `path: String` + - `metadata: Hash[Symbol, String]` - Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. + Arbitrary key-value metadata attached to the vault. - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + A timestamp in RFC 3339 format format: date-time - - `content: String` - - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). - #### Example ```ruby @@ -74935,81 +74556,54 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory = anthropic.beta.memory_stores.memories.retrieve("memory_id", memory_store_id: "memory_store_id") +beta_managed_agents_vault = anthropic.beta.vaults.retrieve("vlt_011CZkZDLs7fYzm1hXNPeRjv") -puts(beta_managed_agents_memory) +puts(beta_managed_agents_vault) ``` ##### Response (200) ```json { - "id": "id", - "content_sha256": "content_sha256", - "content_size_bytes": 0, - "created_at": "2019-12-27T18:11:19.117Z", - "memory_store_id": "memory_store_id", - "memory_version_id": "memory_version_id", - "path": "path", - "type": "memory", - "updated_at": "2019-12-27T18:11:19.117Z", - "content": "content" + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "display_name": "Example vault", + "metadata": { + "environment": "production" + }, + "type": "vault", + "updated_at": "2026-03-15T10:00:00Z" } ``` -### Update a memory +### Update a Vault -`beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` +`beta.vaults.update(vault_id, **kwargs) -> BetaManagedAgentsVault` -**POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**POST** `/v1/vaults/{vault_id}` -Update a memory +Update a Vault #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store that holds the memory (`memstore_...`). - -- `memory_id: String` (path parameter) - - The ID of the memory to update (`mem_...`). - -- `view: BetaManagedAgentsMemoryView` (query parameter) - - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. - - - `:basic` - - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - - - `:full` - - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - -- `content: String` - - New UTF-8 text content for the memory. Maximum 100 kB (102,400 bytes). Omit to leave the content unchanged (e.g., for a rename-only update). - -- `path: String` - - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. +- `vault_id: String` (path parameter) - minLength: 2, maxLength: 1024 + Unique identifier of the vault to update. -- `precondition: BetaManagedAgentsPrecondition` +- `display_name: String` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + Updated human-readable name for the vault. 1-255 characters. - - `type: :content_sha256` + minLength: 1, maxLength: 255 - - `content_sha256: String` +- `metadata: Hash[Symbol, String]` - Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes. + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omitted keys are preserved. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -75115,6 +74709,8 @@ Update a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75123,54 +74719,42 @@ Update a memory #### Returns -- `class BetaManagedAgentsMemory` +- `class BetaManagedAgentsVault` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A vault that stores credentials for use by agents during sessions. - - `type: :memory` + - `type: :vault` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the vault (`vlt_...`). - - `content_sha256: String` + - `archived_at: Time` - Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. + When the vault was archived. Null if not archived. - - `content_size_bytes: Integer` - - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. - - format: int32 + format: date-time - `created_at: Time` - When this memory was created, in RFC 3339 format. + A timestamp in RFC 3339 format format: date-time - - `memory_store_id: String` - - ID of the memory store this memory belongs to (a `memstore_...` value). - - - `memory_version_id: String` + - `display_name: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + Human-readable name for the vault. - - `path: String` + - `metadata: Hash[Symbol, String]` - Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. + Arbitrary key-value metadata attached to the vault. - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + A timestamp in RFC 3339 format format: date-time - - `content: String` - - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). - #### Example ```ruby @@ -75178,55 +74762,44 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory = anthropic.beta.memory_stores.memories.update("memory_id", memory_store_id: "memory_store_id") +beta_managed_agents_vault = anthropic.beta.vaults.update("vlt_011CZkZDLs7fYzm1hXNPeRjv") -puts(beta_managed_agents_memory) +puts(beta_managed_agents_vault) ``` ##### Response (200) ```json { - "id": "id", - "content_sha256": "content_sha256", - "content_size_bytes": 0, - "created_at": "2019-12-27T18:11:19.117Z", - "memory_store_id": "memory_store_id", - "memory_version_id": "memory_version_id", - "path": "path", - "type": "memory", - "updated_at": "2019-12-27T18:11:19.117Z", - "content": "content" + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "display_name": "Example vault", + "metadata": { + "environment": "production" + }, + "type": "vault", + "updated_at": "2026-03-15T10:00:00Z" } ``` -### Delete a memory +### Delete a Vault -`beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` +`beta.vaults.delete(vault_id, **kwargs) -> BetaManagedAgentsDeletedVault` -**DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` +**DELETE** `/v1/vaults/{vault_id}` -Delete a memory +Delete a Vault #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store that holds the memory (`memstore_...`). - -- `memory_id: String` (path parameter) - - The ID of the memory to delete (`mem_...`). - -- `expected_content_sha256: String` (query parameter) - - Delete the memory only if its current `content_sha256` equals this value, given as 64 lowercase hexadecimal characters. Omit it to delete unconditionally. +- `vault_id: String` (path parameter) - If the hashes differ, the request fails with HTTP status 409 and nothing is deleted. + Unique identifier of the vault to delete. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -75332,6 +74905,8 @@ Delete a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75340,15 +74915,15 @@ Delete a memory #### Returns -- `class BetaManagedAgentsDeletedMemory` +- `class BetaManagedAgentsDeletedVault` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + Confirmation of a deleted vault. - - `type: :memory_deleted` + - `type: :vault_deleted` - `id: String` - ID of the deleted memory (a `mem_...` value). + The unique ID of the deleted vault (`vlt_...`). #### Example @@ -75357,107 +74932,37 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_deleted_memory = anthropic.beta.memory_stores.memories.delete("memory_id", memory_store_id: "memory_store_id") +beta_managed_agents_deleted_vault = anthropic.beta.vaults.delete("vlt_011CZkZDLs7fYzm1hXNPeRjv") -puts(beta_managed_agents_deleted_memory) +puts(beta_managed_agents_deleted_vault) ``` ##### Response (200) ```json { - "id": "id", - "type": "memory_deleted" + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "type": "vault_deleted" } ``` -## Beta › Memory Stores › Memory Versions - -### List memory versions +### Archive a Vault -`beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> PageCursor` +`beta.vaults.archive(vault_id, **kwargs) -> BetaManagedAgentsVault` -**GET** `/v1/memory_stores/{memory_store_id}/memory_versions` +**POST** `/v1/vaults/{vault_id}/archive` -List memory versions +Archive a Vault #### Parameters -- `memory_store_id: String` (path parameter) - - The ID of the memory store whose version history to list (`memstore_...`). - -- `api_key_id: String` (query parameter) - - Return only versions written with the API key that has this ID. - -- `created_at_gte: Time` (query parameter) - - Return versions created at or after this time (inclusive). - - format: date-time - -- `created_at_lte: Time` (query parameter) - - Return versions created at or before this time (inclusive). - - format: date-time - -- `limit: Integer` (query parameter) - - The maximum number of versions to return per page. Defaults to 20. - - format: int32 - -- `memory_id: String` (query parameter) - - Return only versions of the memory with this ID (`mem_...`). - - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. - -- `operation: BetaManagedAgentsMemoryVersionOperation` (query parameter) - - Return only versions that record this kind of change. - - - `:created` - - The memory was created. The first version in any memory's lineage. - - - `:modified` - - The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. - - - `:deleted` - - The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. - -- `page: String` (query parameter) - - The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - -- `service_account_id: String` (query parameter) - - Return only versions written by the service account with this ID (`svac_...`). - -- `session_id: String` (query parameter) - - Return only versions written by the session with this ID. - -- `view: BetaManagedAgentsMemoryView` (query parameter) - - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. - - - `:basic` - - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - - - `:full` +- `vault_id: String` (path parameter) - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. + Unique identifier of the vault to archive. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -75563,6 +75068,8 @@ List memory versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75571,202 +75078,265 @@ List memory versions #### Returns -- `class BetaManagedAgentsMemoryVersion` +- `class BetaManagedAgentsVault` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + A vault that stores credentials for use by agents during sessions. - - `type: :memory_version` + - `type: :vault` - `id: String` - Unique identifier for this version (a `memver_...` value). + The unique ID of the vault (`vlt_...`). + + - `archived_at: Time` + + When the vault was archived. Null if not archived. + + format: date-time - `created_at: Time` - When this version was written, in RFC 3339 format. + A timestamp in RFC 3339 format format: date-time - - `memory_id: String` + - `display_name: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + Human-readable name for the vault. - - `memory_store_id: String` + - `metadata: Hash[Symbol, String]` - ID of the memory store this version belongs to (a `memstore_...` value). + Arbitrary key-value metadata attached to the vault. - - `operation: BetaManagedAgentsMemoryVersionOperation` + - `updated_at: Time` - The kind of mutation this version records: `created`, `modified`, or `deleted`. + A timestamp in RFC 3339 format - - `:created` + format: date-time - The memory was created. The first version in any memory's lineage. +#### Example - - `:modified` +```ruby +require "anthropic" - The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:deleted` +beta_managed_agents_vault = anthropic.beta.vaults.archive("vlt_011CZkZDLs7fYzm1hXNPeRjv") - The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. +puts(beta_managed_agents_vault) +``` - - `content: String` +##### Response (200) - The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. +```json +{ + "id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "display_name": "Example vault", + "metadata": { + "environment": "production" + }, + "type": "vault", + "updated_at": "2026-03-15T10:00:00Z" +} +``` - - `content_sha256: String` +## Beta › Vaults › Credentials - Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. +### Create a Credential - - `content_size_bytes: Integer` +`beta.vaults.credentials.create(vault_id, **kwargs) -> BetaManagedAgentsCredential` - Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. +**POST** `/v1/vaults/{vault_id}/credentials` - format: int32 +Create a Credential - - `created_by: BetaManagedAgentsActor` +#### Parameters - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). +- `vault_id: String` (path parameter) - - `class BetaManagedAgentsSessionActor` + Identifier of the vault to create the credential in. - An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. +- `auth: BetaManagedAgentsMCPOAuthCreateParams | BetaManagedAgentsStaticBearerCreateParams | BetaManagedAgentsEnvironmentVariableCreateParams` - - `type: :session_actor` + Authentication configuration for the credential. - - `session_id: String` + - `class BetaManagedAgentsMCPOAuthCreateParams` - ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. + Parameters for creating an MCP OAuth credential. - minLength: 1 + - `type: :mcp_oauth` - - `class BetaManagedAgentsAPIActor` + - `access_token: String` - A direct caller of the public API, identified by the API key that authenticated the request. + The OAuth access token to send to the MCP server. - - `type: :api_actor` + minLength: 1, maxLength: 8192 - - `api_key_id: String` + - `mcp_server_url: String` - ID of the API key (an `apikey_...` value). This identifies the key, not the secret. + URL of the MCP server this credential authenticates against. - minLength: 1 + minLength: 1, maxLength: 2047 - - `class BetaManagedAgentsUserActor` + - `expires_at: Time` - A human user, for example acting through the Anthropic Console. + When `access_token` expires, in RFC 3339. - - `type: :user_actor` + Must be in the future. - - `user_id: String` + format: date-time - ID of the user (a `user_...` value). + - `refresh: BetaManagedAgentsMCPOAuthRefreshParams` - minLength: 1 + Refresh token configuration, if the credential supports token refresh. - - `class BetaManagedAgentsServiceAccountActor` + - `client_id: String` - A workload authenticated as a service account, for example via Workload Identity Federation. + The OAuth client ID to use when refreshing the access token. It can't be changed after the credential is created. - - `type: :service_account_actor` + minLength: 1, maxLength: 1024 - - `service_account_id: String` + - `refresh_token: String` - ID of the service account (a `svac_...` value). + The OAuth refresh token that the API uses to get a new access token when the current one expires. - minLength: 1 + minLength: 1, maxLength: 8192 - - `path: String` + - `token_endpoint: String` - The memory's path at the time of this write. `null` if and only if `redacted_at` is set. + Token endpoint URL used to refresh the access token. - - `redacted_at: Time` + minLength: 1, maxLength: 2047 - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneParam | BetaManagedAgentsTokenEndpointAuthBasicParam | BetaManagedAgentsTokenEndpointAuthPostParam` - format: date-time + - `class BetaManagedAgentsTokenEndpointAuthNoneParam` - - `redacted_by: BetaManagedAgentsActor` + Token endpoint requires no client authentication. - Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). + - `type: :none` -#### Example + - `class BetaManagedAgentsTokenEndpointAuthBasicParam` -```ruby -require "anthropic" + Token endpoint uses HTTP Basic authentication with client credentials. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :client_secret_basic` -page = anthropic.beta.memory_stores.memory_versions.list("memory_store_id") + - `client_secret: String` -puts(page) -``` + The OAuth client secret, sent to `token_endpoint` with HTTP Basic authentication. -##### Response (200) + minLength: 1, maxLength: 512 -```json -{ - "data": [ - { - "id": "memver_011CZkZBJq5dWxk9fVLNcPht", - "created_at": "2026-03-15T10:00:00Z", - "memory_id": "mem_011CZkZ9X2dpNyB6YbtxvB6e", - "memory_store_id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", - "operation": "created", - "type": "memory_version", - "content": null, - "content_sha256": "ba7936d94c84d948a2232088f78228f175df6a8353b2d5bc9228eee5794a0024", - "content_size_bytes": 28, - "created_by": { - "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", - "type": "session_actor" - }, - "path": "/preferences/formatting.md", - "redacted_at": null, - "redacted_by": { - "session_id": "x", - "type": "session_actor" - } - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` + - `class BetaManagedAgentsTokenEndpointAuthPostParam` -### Retrieve a memory version + Token endpoint uses POST body authentication with client credentials. -`beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` + - `type: :client_secret_post` -**GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` + - `client_secret: String` -Retrieve a memory version + The OAuth client secret, sent to `token_endpoint` in the POST body. -#### Parameters + minLength: 1, maxLength: 512 -- `memory_store_id: String` (path parameter) + - `resource: String` - The ID of the memory store that holds the version (`memstore_...`). + OAuth resource indicator. -- `memory_version_id: String` (path parameter) + minLength: 1, maxLength: 2047 - The ID of the memory version to retrieve (`memver_...`). + - `scope: String` -- `view: BetaManagedAgentsMemoryView` (query parameter) + OAuth scope for the refresh request. - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + minLength: 1, maxLength: 8192 - - `:basic` + - `class BetaManagedAgentsStaticBearerCreateParams` - Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. + Parameters for creating a static bearer token credential. - - `:full` + - `type: :static_bearer` - Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. + - `token: String` + + The static bearer token to send to the MCP server, such as an API key or personal access token. + + minLength: 1, maxLength: 8192 + + - `mcp_server_url: String` + + URL of the MCP server this credential authenticates against. + + minLength: 1, maxLength: 2047 + + - `class BetaManagedAgentsEnvironmentVariableCreateParams` + + Parameters for creating an environment variable credential. + + - `type: :environment_variable` + + - `networking: BetaManagedAgentsCredentialNetworkingParams` + + Outbound hosts the secret value is substituted on. + + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingParams` + + Substitute the secret on any host the session's Environment network policy permits egress to. The Environment's network policy is the only boundary on where the secret can reach. + + - `type: :unrestricted` + + - `class BetaManagedAgentsLimitedCredentialNetworkingParams` + + Substitute the secret only on requests to the listed hosts. + + - `type: :limited` + + - `allowed_hosts: Array[String]` + + The destination hosts of the outbound requests that the credential's secret is substituted into. + + Each entry is a bare hostname (`api.example.com`), an IPv4 address (`192.0.2.1`), or a `*.` wildcard (`*.example.com`). URLs, ports, paths, and IPv6 addresses aren't accepted. The list can have up to 16 entries. + + - `secret_name: String` + + Name of the environment variable. Immutable after create. + + minLength: 1, maxLength: 255 + + - `secret_value: String` + + The secret to substitute into the agent's outbound requests. It's write-only and never returned in responses. + + minLength: 1, maxLength: 4096 + + - `injection_location: BetaManagedAgentsInjectionLocationParams` + + Where in the outbound request the secret value may be substituted. + + - `body: bool` + + Substitute when the placeholder appears in the request body. + + - `header: bool` + + Substitute when the placeholder appears in a request header value. + +- `display_name: String` + + Human-readable name for the credential. Up to 255 characters. + + maxLength: 255 + +- `metadata: Hash[Symbol, String]` + + Arbitrary key-value metadata to attach to the credential. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -75872,6 +75442,8 @@ Retrieve a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75880,125 +75452,159 @@ Retrieve a memory version #### Returns -- `class BetaManagedAgentsMemoryVersion` +- `class BetaManagedAgentsCredential` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + A credential stored in a vault. Sensitive fields are never returned in responses. - - `type: :memory_version` + - `type: :vault_credential` - `id: String` - Unique identifier for this version (a `memver_...` value). + The unique ID of the credential (`vcrd_...`). - - `created_at: Time` + - `archived_at: Time` - When this version was written, in RFC 3339 format. + When the credential was archived. Null if not archived. format: date-time - - `memory_id: String` + - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + Authentication configuration for this credential. - - `memory_store_id: String` + - `class BetaManagedAgentsMCPOAuthAuthResponse` - ID of the memory store this version belongs to (a `memstore_...` value). + OAuth credential details for an MCP server. - - `operation: BetaManagedAgentsMemoryVersionOperation` + - `type: :mcp_oauth` - The kind of mutation this version records: `created`, `modified`, or `deleted`. + - `mcp_server_url: String` - - `:created` + URL of the MCP server this credential authenticates against. - The memory was created. The first version in any memory's lineage. + - `expires_at: Time` - - `:modified` + When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. - The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. + format: date-time - - `:deleted` + - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` - The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. + Refresh token configuration, if the credential supports token refresh. - - `content: String` + - `client_id: String` - The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. + The OAuth client ID used when refreshing the access token. - - `content_sha256: String` + - `token_endpoint: String` - Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. + Token endpoint URL used to refresh the access token. - - `content_size_bytes: Integer` + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` - Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. + - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` - format: int32 + Token endpoint requires no client authentication. - - `created_by: BetaManagedAgentsActor` + - `type: :none` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` - - `class BetaManagedAgentsSessionActor` + Token endpoint uses HTTP Basic authentication with client credentials. - An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. + - `type: :client_secret_basic` - - `type: :session_actor` + - `class BetaManagedAgentsTokenEndpointAuthPostResponse` - - `session_id: String` + Token endpoint uses POST body authentication with client credentials. - ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. + - `type: :client_secret_post` - minLength: 1 + - `resource: String` - - `class BetaManagedAgentsAPIActor` + OAuth resource indicator. - A direct caller of the public API, identified by the API key that authenticated the request. + - `scope: String` - - `type: :api_actor` + OAuth scope for the refresh request. - - `api_key_id: String` + - `class BetaManagedAgentsStaticBearerAuthResponse` - ID of the API key (an `apikey_...` value). This identifies the key, not the secret. + Static bearer token credential details for an MCP server. - minLength: 1 + - `type: :static_bearer` - - `class BetaManagedAgentsUserActor` + - `mcp_server_url: String` - A human user, for example acting through the Anthropic Console. + URL of the MCP server this credential authenticates against. - - `type: :user_actor` + - `class BetaManagedAgentsEnvironmentVariableAuthResponse` - - `user_id: String` + Environment variable credential details. The secret value is never returned. - ID of the user (a `user_...` value). + - `type: :environment_variable` - minLength: 1 + - `injection_location: BetaManagedAgentsInjectionLocationResponse` - - `class BetaManagedAgentsServiceAccountActor` + Where in the outbound request the secret value is substituted. - A workload authenticated as a service account, for example via Workload Identity Federation. + - `body: bool` - - `type: :service_account_actor` + Whether the placeholder is substituted in the request body. - - `service_account_id: String` + - `header: bool` - ID of the service account (a `svac_...` value). + Whether the placeholder is substituted in request header values. - minLength: 1 + - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` - - `path: String` + Outbound hosts the secret value is substituted on. - The memory's path at the time of this write. `null` if and only if `redacted_at` is set. + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` - - `redacted_at: Time` + The secret is substituted on any host the session's Environment network policy permits egress to. + + - `type: :unrestricted` + + - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + + The secret is substituted only on requests to the listed hosts. + + - `type: :limited` + + - `allowed_hosts: Array[String]` + + The destination hosts of the outbound requests that the credential's secret is substituted into. + + An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + + - `secret_name: String` + + Name of the environment variable. + + - `created_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + A timestamp in RFC 3339 format format: date-time - - `redacted_by: BetaManagedAgentsActor` + - `metadata: Hash[Symbol, String]` - Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). + Arbitrary key-value metadata attached to the credential. + + - `updated_at: Time` + + A timestamp in RFC 3339 format + + format: date-time + + - `vault_id: String` + + Identifier of the vault this credential belongs to. + + - `display_name: String` + + Human-readable name for the credential. #### Example @@ -76007,61 +75613,70 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory_version = anthropic.beta.memory_stores.memory_versions.retrieve( - "memory_version_id", - memory_store_id: "memory_store_id" +beta_managed_agents_credential = anthropic.beta.vaults.credentials.create( + "vlt_011CZkZDLs7fYzm1hXNPeRjv", + auth: { + token: "bearer_exampletoken", + mcp_server_url: "https://example-server.modelcontextprotocol.io/sse", + type: :static_bearer + } ) -puts(beta_managed_agents_memory_version) +puts(beta_managed_agents_credential) ``` ##### Response (200) ```json { - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "memory_id": "memory_id", - "memory_store_id": "memory_store_id", - "operation": "created", - "type": "memory_version", - "content": "content", - "content_sha256": "content_sha256", - "content_size_bytes": 0, - "created_by": { - "session_id": "x", - "type": "session_actor" + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "archived_at": null, + "auth": { + "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", + "type": "static_bearer" }, - "path": "path", - "redacted_at": "2019-12-27T18:11:19.117Z", - "redacted_by": { - "session_id": "x", - "type": "session_actor" - } + "created_at": "2026-03-15T10:00:00Z", + "metadata": { + "environment": "production" + }, + "type": "vault_credential", + "updated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "display_name": "Example credential" } ``` -### Redact a memory version +### List Credentials -`beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` +`beta.vaults.credentials.list(vault_id, **kwargs) -> PageCursor` -**POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` +**GET** `/v1/vaults/{vault_id}/credentials` -Redact a memory version +List Credentials #### Parameters -- `memory_store_id: String` (path parameter) +- `vault_id: String` (path parameter) - The ID of the memory store that holds the version (`memstore_...`). + Identifier of the vault to list credentials for. -- `memory_version_id: String` (path parameter) +- `include_archived: bool` (query parameter) - The ID of the memory version to redact (`memver_...`). + Whether to include archived credentials in the results. Defaults to `false`. + +- `limit: Integer` (query parameter) + + Maximum number of credentials to return per page. Defaults to 20, maximum 100. + + format: int32 + +- `page: String` (query parameter) + + The `next_page` value from a previous [List Credentials](https://platform.claude.com/docs/en/api/beta/vaults/credentials/list?sdk_languages=ruby) response, to get the next page. Leave it out to get the first page. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -76167,6 +75782,8 @@ Redact a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76175,125 +75792,159 @@ Redact a memory version #### Returns -- `class BetaManagedAgentsMemoryVersion` +- `class BetaManagedAgentsCredential` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + A credential stored in a vault. Sensitive fields are never returned in responses. - - `type: :memory_version` + - `type: :vault_credential` - `id: String` - Unique identifier for this version (a `memver_...` value). + The unique ID of the credential (`vcrd_...`). - - `created_at: Time` + - `archived_at: Time` - When this version was written, in RFC 3339 format. + When the credential was archived. Null if not archived. format: date-time - - `memory_id: String` + - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + Authentication configuration for this credential. - - `memory_store_id: String` + - `class BetaManagedAgentsMCPOAuthAuthResponse` - ID of the memory store this version belongs to (a `memstore_...` value). + OAuth credential details for an MCP server. - - `operation: BetaManagedAgentsMemoryVersionOperation` + - `type: :mcp_oauth` - The kind of mutation this version records: `created`, `modified`, or `deleted`. + - `mcp_server_url: String` - - `:created` + URL of the MCP server this credential authenticates against. - The memory was created. The first version in any memory's lineage. + - `expires_at: Time` - - `:modified` + When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. - The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. + format: date-time - - `:deleted` + - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` - The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. + Refresh token configuration, if the credential supports token refresh. - - `content: String` + - `client_id: String` - The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. + The OAuth client ID used when refreshing the access token. - - `content_sha256: String` + - `token_endpoint: String` - Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. + Token endpoint URL used to refresh the access token. - - `content_size_bytes: Integer` + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` - Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. + - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` - format: int32 + Token endpoint requires no client authentication. - - `created_by: BetaManagedAgentsActor` + - `type: :none` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` - - `class BetaManagedAgentsSessionActor` + Token endpoint uses HTTP Basic authentication with client credentials. - An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. + - `type: :client_secret_basic` - - `type: :session_actor` + - `class BetaManagedAgentsTokenEndpointAuthPostResponse` - - `session_id: String` + Token endpoint uses POST body authentication with client credentials. - ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. + - `type: :client_secret_post` - minLength: 1 + - `resource: String` - - `class BetaManagedAgentsAPIActor` + OAuth resource indicator. - A direct caller of the public API, identified by the API key that authenticated the request. + - `scope: String` - - `type: :api_actor` + OAuth scope for the refresh request. - - `api_key_id: String` + - `class BetaManagedAgentsStaticBearerAuthResponse` - ID of the API key (an `apikey_...` value). This identifies the key, not the secret. + Static bearer token credential details for an MCP server. - minLength: 1 + - `type: :static_bearer` - - `class BetaManagedAgentsUserActor` + - `mcp_server_url: String` - A human user, for example acting through the Anthropic Console. + URL of the MCP server this credential authenticates against. - - `type: :user_actor` + - `class BetaManagedAgentsEnvironmentVariableAuthResponse` - - `user_id: String` + Environment variable credential details. The secret value is never returned. - ID of the user (a `user_...` value). + - `type: :environment_variable` - minLength: 1 + - `injection_location: BetaManagedAgentsInjectionLocationResponse` - - `class BetaManagedAgentsServiceAccountActor` + Where in the outbound request the secret value is substituted. - A workload authenticated as a service account, for example via Workload Identity Federation. + - `body: bool` - - `type: :service_account_actor` + Whether the placeholder is substituted in the request body. - - `service_account_id: String` + - `header: bool` - ID of the service account (a `svac_...` value). + Whether the placeholder is substituted in request header values. - minLength: 1 + - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` - - `path: String` + Outbound hosts the secret value is substituted on. - The memory's path at the time of this write. `null` if and only if `redacted_at` is set. + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` - - `redacted_at: Time` + The secret is substituted on any host the session's Environment network policy permits egress to. + + - `type: :unrestricted` + + - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + + The secret is substituted only on requests to the listed hosts. + + - `type: :limited` + + - `allowed_hosts: Array[String]` + + The destination hosts of the outbound requests that the credential's secret is substituted into. + + An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + + - `secret_name: String` + + Name of the environment variable. + + - `created_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + A timestamp in RFC 3339 format format: date-time - - `redacted_by: BetaManagedAgentsActor` + - `metadata: Hash[Symbol, String]` - Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). + Arbitrary key-value metadata attached to the credential. + + - `updated_at: Time` + + A timestamp in RFC 3339 format + + format: date-time + + - `vault_id: String` + + Identifier of the vault this credential belongs to. + + - `display_name: String` + + Human-readable name for the credential. #### Example @@ -76302,67 +75953,58 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_managed_agents_memory_version = anthropic.beta.memory_stores.memory_versions.redact( - "memory_version_id", - memory_store_id: "memory_store_id" -) +page = anthropic.beta.vaults.credentials.list("vlt_011CZkZDLs7fYzm1hXNPeRjv") -puts(beta_managed_agents_memory_version) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "memory_id": "memory_id", - "memory_store_id": "memory_store_id", - "operation": "created", - "type": "memory_version", - "content": "content", - "content_sha256": "content_sha256", - "content_size_bytes": 0, - "created_by": { - "session_id": "x", - "type": "session_actor" - }, - "path": "path", - "redacted_at": "2019-12-27T18:11:19.117Z", - "redacted_by": { - "session_id": "x", - "type": "session_actor" - } + "data": [ + { + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "archived_at": null, + "auth": { + "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", + "type": "static_bearer" + }, + "created_at": "2026-03-15T10:00:00Z", + "metadata": { + "environment": "production" + }, + "type": "vault_credential", + "updated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "display_name": "Example credential" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -## Beta › Files - -### Upload File +### Retrieve a Credential -`beta.files.upload(**kwargs) -> BetaFileMetadata` +`beta.vaults.credentials.retrieve(credential_id, **kwargs) -> BetaManagedAgentsCredential` -**POST** `/v1/files` +**GET** `/v1/vaults/{vault_id}/credentials/{credential_id}` -Upload File +Retrieve a Credential #### Parameters -- `file: String` - - The file to upload. Only the final path component of the part's `filename` is kept; an absent or empty `filename` is replaced with `unnamed` plus the extension for the file's stored `mime_type`, when known. - - format: binary +- `vault_id: String` (path parameter) -- `expires_in_seconds: Integer` + Identifier of the vault containing the credential. - Seconds from upload until the file expires and its bytes become permanently unavailable. Must be between 3600 (one hour) and 7776000 (ninety days). +- `credential_id: String` (path parameter) - minimum: 3600, maximum: 7776000 + Unique identifier of the credential to retrieve. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -76468,6 +76110,8 @@ Upload File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76476,356 +76120,357 @@ Upload File #### Returns -- `class BetaFileMetadata` - - - `type: :file` +- `class BetaManagedAgentsCredential` - Object type. + A credential stored in a vault. Sensitive fields are never returned in responses. - For files, this is always `"file"`. + - `type: :vault_credential` - `id: String` - Unique object identifier. - - The format and length of IDs may change over time. + The unique ID of the credential (`vcrd_...`). - - `created_at: Time` + - `archived_at: Time` - RFC 3339 datetime string representing when the file was created. + When the credential was archived. Null if not archived. format: date-time - - `filename: String` + - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` - Original filename of the uploaded file. + Authentication configuration for this credential. - minLength: 1, maxLength: 500 + - `class BetaManagedAgentsMCPOAuthAuthResponse` - - `mime_type: String` + OAuth credential details for an MCP server. - MIME type of the file. + - `type: :mcp_oauth` - minLength: 1, maxLength: 255 + - `mcp_server_url: String` - - `size_bytes: Integer` + URL of the MCP server this credential authenticates against. - Size of the file in bytes. + - `expires_at: Time` - minimum: 0 + When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. - - `downloadable: bool` + format: date-time - Whether the file can be downloaded. + - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` - - `expires_at: Time` + Refresh token configuration, if the credential supports token refresh. - RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. + - `client_id: String` - format: date-time + The OAuth client ID used when refreshing the access token. - - `scope: BetaFileScope` + - `token_endpoint: String` - The scope of this file, indicating the context in which it was created (e.g., a session). + Token endpoint URL used to refresh the access token. - - `type: :session` + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` - The type of scope (e.g., `"session"`). + - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` - - `id: String` + Token endpoint requires no client authentication. - The ID of the scoping resource (e.g., the session ID). + - `type: :none` -#### Example + - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` -```ruby -require "anthropic" + Token endpoint uses HTTP Basic authentication with client credentials. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :client_secret_basic` -beta_file_metadata = anthropic.beta.files.upload(file: StringIO.new("Example data")) + - `class BetaManagedAgentsTokenEndpointAuthPostResponse` -puts(beta_file_metadata) -``` + Token endpoint uses POST body authentication with client credentials. -##### Response (200) + - `type: :client_secret_post` -```json -{ - "id": "file_011CNha8iCJcU1wXNR6q4V8w", - "created_at": "2025-04-15T18:37:24.100435Z", - "filename": "document.pdf", - "mime_type": "application/pdf", - "size_bytes": 102400, - "type": "file", - "downloadable": false, - "expires_at": "2025-05-15T18:37:24.100435Z", - "scope": { - "id": "id", - "type": "session" - } -} -``` + - `resource: String` -### List Files + OAuth resource indicator. -`beta.files.list(**kwargs) -> PageCursor` + - `scope: String` -**GET** `/v1/files` + OAuth scope for the refresh request. -List Files + - `class BetaManagedAgentsStaticBearerAuthResponse` -#### Parameters + Static bearer token credential details for an MCP server. -- `ids: Array[String]` (query parameter) + - `type: :static_bearer` - Restrict the result set to Files whose `id` is in this list. At most 100 entries (after de-duplication). Mutually exclusive with `page` and `limit`. When supplied, the response is always a single page (`next_page` is null). IDs that do not resolve to a visible File — including deleted Files — are silently omitted. + - `mcp_server_url: String` -- `limit: Integer` (query parameter) + URL of the MCP server this credential authenticates against. - Number of items to return per page. + - `class BetaManagedAgentsEnvironmentVariableAuthResponse` - Defaults to `20`. Ranges from `1` to `1000`. + Environment variable credential details. The secret value is never returned. - minimum: 1, maximum: 1000 + - `type: :environment_variable` -- `page: String` (query parameter) + - `injection_location: BetaManagedAgentsInjectionLocationResponse` - Opaque page cursor returned in a prior list response's `next_page`. Prefixed `page_`. + Where in the outbound request the secret value is substituted. -- `scope_id: String` (query parameter) + - `body: bool` - Filter by scope ID. Only returns files associated with the specified scope (e.g., a session ID). + Whether the placeholder is substituted in the request body. -- `betas: Array[AnthropicBeta]` (header parameter) + - `header: bool` - Optional header to specify the beta version(s) you want to use. + Whether the placeholder is substituted in request header values. - - `String = String` + - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` - - `:"message-batches-2024-09-24"` + Outbound hosts the secret value is substituted on. - - `:"prompt-caching-2024-07-31"` + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` - - `:"computer-use-2024-10-22"` + The secret is substituted on any host the session's Environment network policy permits egress to. - - `:"computer-use-2025-01-24"` + - `type: :unrestricted` - - `:"pdfs-2024-09-25"` + - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` - - `:"token-counting-2024-11-01"` + The secret is substituted only on requests to the listed hosts. - - `:"token-efficient-tools-2025-02-19"` + - `type: :limited` - - `:"output-128k-2025-02-19"` + - `allowed_hosts: Array[String]` - - `:"files-api-2025-04-14"` + The destination hosts of the outbound requests that the credential's secret is substituted into. - - `:"mcp-client-2025-04-04"` + An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. - - `:"mcp-client-2025-11-20"` + - `secret_name: String` - - `:"dev-full-thinking-2025-05-14"` + Name of the environment variable. - - `:"interleaved-thinking-2025-05-14"` + - `created_at: Time` - - `:"code-execution-2025-05-22"` + A timestamp in RFC 3339 format - - `:"extended-cache-ttl-2025-04-11"` + format: date-time - - `:"context-1m-2025-08-07"` + - `metadata: Hash[Symbol, String]` - - `:"context-management-2025-06-27"` + Arbitrary key-value metadata attached to the credential. - - `:"model-context-window-exceeded-2025-08-26"` + - `updated_at: Time` - - `:"skills-2025-10-02"` + A timestamp in RFC 3339 format - - `:"fast-mode-2026-02-01"` + format: date-time - - `:"output-300k-2026-03-24"` + - `vault_id: String` - - `:"user-profiles-2026-03-24"` + Identifier of the vault this credential belongs to. - - `:"user-profiles-2026-08-18"` + - `display_name: String` - - `:"user-profiles-2026-09-04"` + Human-readable name for the credential. - - `:"advisor-tool-2026-03-01"` +#### Example - - `:"managed-agents-2026-04-01"` +```ruby +require "anthropic" - - `:"cache-diagnosis-2026-04-07"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"dreaming-2026-04-21"` +beta_managed_agents_credential = anthropic.beta.vaults.credentials.retrieve( + "vcrd_011CZkZEMt8gZan2iYPQfSkw", + vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" +) - - `:"thinking-token-count-2026-05-13"` +puts(beta_managed_agents_credential) +``` - - `:"server-side-fallback-2026-06-01"` +##### Response (200) - - `:"server-side-fallback-2026-07-01"` +```json +{ + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "archived_at": null, + "auth": { + "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", + "type": "static_bearer" + }, + "created_at": "2026-03-15T10:00:00Z", + "metadata": { + "environment": "production" + }, + "type": "vault_credential", + "updated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "display_name": "Example credential" +} +``` - - `:"fallback-credit-2026-06-01"` +### Update a Credential - - `:"fallback-credit-2026-07-01"` +`beta.vaults.credentials.update(credential_id, **kwargs) -> BetaManagedAgentsCredential` - - `:"agent-memory-2026-07-22"` +**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}` - - `:"mid-conversation-tool-changes-2026-07-01"` +Update a Credential - - `:"compact-2026-01-12"` +#### Parameters - - `:"computer-use-2025-11-24"` +- `vault_id: String` (path parameter) - - `:"mcp-tunnels-2026-06-22"` + Identifier of the vault containing the credential. - - `:"structured-outputs-2025-11-13"` +- `credential_id: String` (path parameter) - - `:"task-budgets-2026-03-13"` + Unique identifier of the credential to update. - - `:"thinking-display-updates-2026-08-18"` +- `auth: BetaManagedAgentsMCPOAuthUpdateParams | BetaManagedAgentsStaticBearerUpdateParams | BetaManagedAgentsEnvironmentVariableUpdateParams` - - `:"ce-user-management-2026-07-13"` + New authentication settings for the credential. The `type` must match the credential's current type, which can't be changed. - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaManagedAgentsMCPOAuthUpdateParams` - - `:"thinking-binding-controls-2026-08-01"` + Parameters for updating an MCP OAuth credential. The `mcp_server_url` is immutable. - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `type: :mcp_oauth` - - `:"compact-2026-09-04"` + - `access_token: String` - - `:"inline-tools-2026-09-15"` + The new OAuth access token to replace the stored one. - - `:"mcp-client-2026-09-15"` + minLength: 1, maxLength: 8192 - - `:"ce-plugins-2026-09-01"` + - `expires_at: Time` - - `:"spend-limit-reads-2026-09-26"` + When the credential's access token expires, in RFC 3339. Leave it out to keep the stored expiry. - - `:"telemetry-destinations-2026-08-11"` + If you send a new `access_token`, send its `expires_at` too, or the new token keeps the old expiry. -- `workspace_id: String` (header parameter) + Must be in the future. - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + format: date-time - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `refresh: BetaManagedAgentsMCPOAuthRefreshUpdateParams` -#### Returns + Updated refresh token configuration. -- `class BetaFileMetadata` + - `refresh_token: String` - - `type: :file` + The new OAuth refresh token to replace the stored one. - Object type. + minLength: 1, maxLength: 8192 - For files, this is always `"file"`. + - `scope: String` - - `id: String` + The new OAuth scope for refresh requests. Send an empty string to clear the stored scope. - Unique object identifier. + maxLength: 8192 - The format and length of IDs may change over time. + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthBasicUpdateParam | BetaManagedAgentsTokenEndpointAuthPostUpdateParam` - - `created_at: Time` + - `class BetaManagedAgentsTokenEndpointAuthBasicUpdateParam` - RFC 3339 datetime string representing when the file was created. + Updated HTTP Basic authentication parameters for the token endpoint. - format: date-time + - `type: :client_secret_basic` - - `filename: String` + - `client_secret: String` - Original filename of the uploaded file. + A new OAuth client secret to replace the stored one. - minLength: 1, maxLength: 500 + The credential must already use `client_secret_basic` or `client_secret_post`. It keeps its current `token_endpoint_auth` type, even if the `type` sent with this secret is the other one. - - `mime_type: String` + minLength: 1, maxLength: 512 - MIME type of the file. + - `class BetaManagedAgentsTokenEndpointAuthPostUpdateParam` - minLength: 1, maxLength: 255 + Updated POST body authentication parameters for the token endpoint. - - `size_bytes: Integer` + - `type: :client_secret_post` - Size of the file in bytes. + - `client_secret: String` - minimum: 0 + A new OAuth client secret to replace the stored one. - - `downloadable: bool` + The credential must already use `client_secret_basic` or `client_secret_post`. It keeps its current `token_endpoint_auth` type, even if the `type` sent with this secret is the other one. - Whether the file can be downloaded. + minLength: 1, maxLength: 512 - - `expires_at: Time` + - `class BetaManagedAgentsStaticBearerUpdateParams` - RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. + Parameters for updating a static bearer token credential. The `mcp_server_url` is immutable. - format: date-time + - `type: :static_bearer` - - `scope: BetaFileScope` + - `token: String` - The scope of this file, indicating the context in which it was created (e.g., a session). + The new static bearer token to replace the stored one. - - `type: :session` + minLength: 1, maxLength: 8192 - The type of scope (e.g., `"session"`). + - `class BetaManagedAgentsEnvironmentVariableUpdateParams` - - `id: String` + Parameters for updating an environment variable credential. `secret_name` is immutable. - The ID of the scoping resource (e.g., the session ID). + - `type: :environment_variable` -#### Example + - `injection_location: BetaManagedAgentsInjectionLocationUpdateParams` -```ruby -require "anthropic" + Updated injection location. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `body: bool` -page = anthropic.beta.files.list + Substitute when the placeholder appears in the request body. -puts(page) -``` + - `header: bool` -##### Response (200) + Substitute when the placeholder appears in a request header value. -```json -{ - "data": [ - { - "id": "file_011CNha8iCJcU1wXNR6q4V8w", - "created_at": "2025-04-15T18:37:24.100435Z", - "filename": "document.pdf", - "mime_type": "application/pdf", - "size_bytes": 102400, - "type": "file", - "downloadable": false, - "expires_at": "2025-05-15T18:37:24.100435Z", - "scope": { - "id": "id", - "type": "session" - } - } - ], - "next_page": "next_page" -} -``` + - `networking: BetaManagedAgentsCredentialNetworkingParams` -### Download File + The new networking scope, which replaces the stored one as a whole. -`beta.files.download(file_id, **kwargs) -> StringIO` + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingParams` -**GET** `/v1/files/{file_id}/content` + Substitute the secret on any host the session's Environment network policy permits egress to. The Environment's network policy is the only boundary on where the secret can reach. -Download File + - `type: :unrestricted` -#### Parameters + - `class BetaManagedAgentsLimitedCredentialNetworkingParams` -- `file_id: String` (path parameter) + Substitute the secret only on requests to the listed hosts. - ID of the File. + - `type: :limited` + + - `allowed_hosts: Array[String]` + + The destination hosts of the outbound requests that the credential's secret is substituted into. + + Each entry is a bare hostname (`api.example.com`), an IPv4 address (`192.0.2.1`), or a `*.` wildcard (`*.example.com`). URLs, ports, paths, and IPv6 addresses aren't accepted. The list can have up to 16 entries. + + - `secret_value: String` + + The new secret value to replace the stored one. + + minLength: 1, maxLength: 4096 + +- `display_name: String` + + Updated human-readable name for the credential. 1-255 characters. + + minLength: 1, maxLength: 255 + +- `metadata: Hash[Symbol, String]` + + Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omitted keys are preserved. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -76931,6 +76576,8 @@ Download File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76939,209 +76586,159 @@ Download File #### Returns -- `StringIO` - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -response = anthropic.beta.files.download("file_id") - -puts(response) -``` - -### Get File Metadata - -`beta.files.retrieve_metadata(file_id, **kwargs) -> BetaFileMetadata` - -**GET** `/v1/files/{file_id}` - -Get File Metadata - -#### Parameters - -- `file_id: String` (path parameter) - - ID of the File. - -- `betas: Array[AnthropicBeta]` (header parameter) +- `class BetaManagedAgentsCredential` - Optional header to specify the beta version(s) you want to use. + A credential stored in a vault. Sensitive fields are never returned in responses. - - `String = String` + - `type: :vault_credential` - - `:"message-batches-2024-09-24"` + - `id: String` - - `:"prompt-caching-2024-07-31"` + The unique ID of the credential (`vcrd_...`). - - `:"computer-use-2024-10-22"` + - `archived_at: Time` - - `:"computer-use-2025-01-24"` + When the credential was archived. Null if not archived. - - `:"pdfs-2024-09-25"` + format: date-time - - `:"token-counting-2024-11-01"` + - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` - - `:"token-efficient-tools-2025-02-19"` + Authentication configuration for this credential. - - `:"output-128k-2025-02-19"` + - `class BetaManagedAgentsMCPOAuthAuthResponse` - - `:"files-api-2025-04-14"` + OAuth credential details for an MCP server. - - `:"mcp-client-2025-04-04"` + - `type: :mcp_oauth` - - `:"mcp-client-2025-11-20"` + - `mcp_server_url: String` - - `:"dev-full-thinking-2025-05-14"` + URL of the MCP server this credential authenticates against. - - `:"interleaved-thinking-2025-05-14"` + - `expires_at: Time` - - `:"code-execution-2025-05-22"` + When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. - - `:"extended-cache-ttl-2025-04-11"` + format: date-time - - `:"context-1m-2025-08-07"` + - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` - - `:"context-management-2025-06-27"` + Refresh token configuration, if the credential supports token refresh. - - `:"model-context-window-exceeded-2025-08-26"` + - `client_id: String` - - `:"skills-2025-10-02"` + The OAuth client ID used when refreshing the access token. - - `:"fast-mode-2026-02-01"` + - `token_endpoint: String` - - `:"output-300k-2026-03-24"` + Token endpoint URL used to refresh the access token. - - `:"user-profiles-2026-03-24"` + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` - - `:"user-profiles-2026-08-18"` + - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` - - `:"user-profiles-2026-09-04"` + Token endpoint requires no client authentication. - - `:"advisor-tool-2026-03-01"` + - `type: :none` - - `:"managed-agents-2026-04-01"` + - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` - - `:"cache-diagnosis-2026-04-07"` + Token endpoint uses HTTP Basic authentication with client credentials. - - `:"dreaming-2026-04-21"` + - `type: :client_secret_basic` - - `:"thinking-token-count-2026-05-13"` + - `class BetaManagedAgentsTokenEndpointAuthPostResponse` - - `:"server-side-fallback-2026-06-01"` + Token endpoint uses POST body authentication with client credentials. - - `:"server-side-fallback-2026-07-01"` + - `type: :client_secret_post` - - `:"fallback-credit-2026-06-01"` + - `resource: String` - - `:"fallback-credit-2026-07-01"` + OAuth resource indicator. - - `:"agent-memory-2026-07-22"` + - `scope: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + OAuth scope for the refresh request. - - `:"compact-2026-01-12"` + - `class BetaManagedAgentsStaticBearerAuthResponse` - - `:"computer-use-2025-11-24"` + Static bearer token credential details for an MCP server. - - `:"mcp-tunnels-2026-06-22"` + - `type: :static_bearer` - - `:"structured-outputs-2025-11-13"` + - `mcp_server_url: String` - - `:"task-budgets-2026-03-13"` + URL of the MCP server this credential authenticates against. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaManagedAgentsEnvironmentVariableAuthResponse` - - `:"ce-user-management-2026-07-13"` + Environment variable credential details. The secret value is never returned. - - `:"mid-conversation-output-config-2026-07-01"` + - `type: :environment_variable` - - `:"thinking-binding-controls-2026-08-01"` + - `injection_location: BetaManagedAgentsInjectionLocationResponse` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Where in the outbound request the secret value is substituted. - - `:"compact-2026-09-04"` + - `body: bool` - - `:"inline-tools-2026-09-15"` + Whether the placeholder is substituted in the request body. - - `:"mcp-client-2026-09-15"` + - `header: bool` - - `:"ce-plugins-2026-09-01"` + Whether the placeholder is substituted in request header values. - - `:"spend-limit-reads-2026-09-26"` + - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` - - `:"telemetry-destinations-2026-08-11"` + Outbound hosts the secret value is substituted on. -- `workspace_id: String` (header parameter) + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + The secret is substituted on any host the session's Environment network policy permits egress to. - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + - `type: :unrestricted` -#### Returns + - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` -- `class BetaFileMetadata` + The secret is substituted only on requests to the listed hosts. - - `type: :file` + - `type: :limited` - Object type. + - `allowed_hosts: Array[String]` - For files, this is always `"file"`. + The destination hosts of the outbound requests that the credential's secret is substituted into. - - `id: String` + An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. - Unique object identifier. + - `secret_name: String` - The format and length of IDs may change over time. + Name of the environment variable. - `created_at: Time` - RFC 3339 datetime string representing when the file was created. + A timestamp in RFC 3339 format format: date-time - - `filename: String` - - Original filename of the uploaded file. - - minLength: 1, maxLength: 500 - - - `mime_type: String` - - MIME type of the file. - - minLength: 1, maxLength: 255 - - - `size_bytes: Integer` - - Size of the file in bytes. - - minimum: 0 - - - `downloadable: bool` + - `metadata: Hash[Symbol, String]` - Whether the file can be downloaded. + Arbitrary key-value metadata attached to the credential. - - `expires_at: Time` + - `updated_at: Time` - RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. + A timestamp in RFC 3339 format format: date-time - - `scope: BetaFileScope` - - The scope of this file, indicating the context in which it was created (e.g., a session). - - - `type: :session` + - `vault_id: String` - The type of scope (e.g., `"session"`). + Identifier of the vault this credential belongs to. - - `id: String` + - `display_name: String` - The ID of the scoping resource (e.g., the session ID). + Human-readable name for the credential. #### Example @@ -77150,47 +76747,56 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_file_metadata = anthropic.beta.files.retrieve_metadata("file_id") +beta_managed_agents_credential = anthropic.beta.vaults.credentials.update( + "vcrd_011CZkZEMt8gZan2iYPQfSkw", + vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" +) -puts(beta_file_metadata) +puts(beta_managed_agents_credential) ``` ##### Response (200) ```json { - "id": "file_011CNha8iCJcU1wXNR6q4V8w", - "created_at": "2025-04-15T18:37:24.100435Z", - "filename": "document.pdf", - "mime_type": "application/pdf", - "size_bytes": 102400, - "type": "file", - "downloadable": false, - "expires_at": "2025-05-15T18:37:24.100435Z", - "scope": { - "id": "id", - "type": "session" - } + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "archived_at": null, + "auth": { + "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", + "type": "static_bearer" + }, + "created_at": "2026-03-15T10:00:00Z", + "metadata": { + "environment": "production" + }, + "type": "vault_credential", + "updated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "display_name": "Example credential" } ``` -### Delete File +### Delete a Credential -`beta.files.delete(file_id, **kwargs) -> BetaDeletedFile` +`beta.vaults.credentials.delete(credential_id, **kwargs) -> BetaManagedAgentsDeletedCredential` -**DELETE** `/v1/files/{file_id}` +**DELETE** `/v1/vaults/{vault_id}/credentials/{credential_id}` -Delete File +Delete a Credential #### Parameters -- `file_id: String` (path parameter) +- `vault_id: String` (path parameter) - ID of the File. + Identifier of the vault containing the credential. + +- `credential_id: String` (path parameter) + + Unique identifier of the credential to delete. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -77296,6 +76902,8 @@ Delete File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77304,17 +76912,15 @@ Delete File #### Returns -- `class BetaDeletedFile` - - - `type: :file_deleted` +- `class BetaManagedAgentsDeletedCredential` - Deleted object type. + Confirmation of a deleted credential. - For file deletion, this is always `"file_deleted"`. + - `type: :vault_credential_deleted` - `id: String` - ID of the deleted file. + The unique ID of the deleted credential (`vcrd_...`). #### Example @@ -77323,47 +76929,44 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_file = anthropic.beta.files.delete("file_id") +beta_managed_agents_deleted_credential = anthropic.beta.vaults.credentials.delete( + "vcrd_011CZkZEMt8gZan2iYPQfSkw", + vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" +) -puts(beta_deleted_file) +puts(beta_managed_agents_deleted_credential) ``` ##### Response (200) ```json { - "id": "file_011CNha8iCJcU1wXNR6q4V8w", - "type": "file_deleted" + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "type": "vault_credential_deleted" } ``` -## Beta › Skills - -### Create Skill +### Archive a Credential -`beta.skills.create(**kwargs) -> BetaSkill` +`beta.vaults.credentials.archive(credential_id, **kwargs) -> BetaManagedAgentsCredential` -**POST** `/v1/skills` +**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}/archive` -Create Skill +Archive a Credential #### Parameters -- `files: Array[String]` - - Files to upload for the skill. +- `vault_id: String` (path parameter) - All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. + Identifier of the vault containing the credential. -- `display_name: String` +- `credential_id: String` (path parameter) - Human-readable, single-line label for the Skill. Maximum 255 characters. - Always set: derived from the SKILL.md frontmatter `name` when omitted at - creation. Not unique. + Unique identifier of the credential to archive. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -77469,6 +77072,8 @@ Create Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77477,72 +77082,160 @@ Create Skill #### Returns -- `class BetaSkill` - - - `type: :skill` +- `class BetaManagedAgentsCredential` - Object type. + A credential stored in a vault. Sensitive fields are never returned in responses. - For Skills, this is always `"skill"`. + - `type: :vault_credential` - `id: String` - Unique identifier for the skill. - - The format and length of IDs may change over time. + The unique ID of the credential (`vcrd_...`). - - `created_at: Time` + - `archived_at: Time` - ISO 8601 timestamp of when the skill was created. + When the credential was archived. Null if not archived. format: date-time - - `display_name: String` + - `auth: BetaManagedAgentsMCPOAuthAuthResponse | BetaManagedAgentsStaticBearerAuthResponse | BetaManagedAgentsEnvironmentVariableAuthResponse` - Human-readable, single-line label for the Skill. Maximum 255 characters. - Always set: derived from the SKILL.md frontmatter `name` when omitted at - creation. Not unique. + Authentication configuration for this credential. - - `latest_version_id: String` + - `class BetaManagedAgentsMCPOAuthAuthResponse` - ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. + OAuth credential details for an MCP server. - - `source: BetaSkillSource` + - `type: :mcp_oauth` - Where the Skill comes from. + - `mcp_server_url: String` - Possible values: + URL of the MCP server this credential authenticates against. - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + - `expires_at: Time` - - `type: :custom | :anthropic | :anthropic_example | :plugin` + When the credential's access token expires, in RFC 3339. Absent if the expiry isn't known. - Where the Skill comes from. + format: date-time - Possible values: + - `refresh: BetaManagedAgentsMCPOAuthRefreshResponse` - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + Refresh token configuration, if the credential supports token refresh. - - `:custom` + - `client_id: String` - - `:anthropic` + The OAuth client ID used when refreshing the access token. - - `:anthropic_example` + - `token_endpoint: String` - - `:plugin` + Token endpoint URL used to refresh the access token. + + - `token_endpoint_auth: BetaManagedAgentsTokenEndpointAuthNoneResponse | BetaManagedAgentsTokenEndpointAuthBasicResponse | BetaManagedAgentsTokenEndpointAuthPostResponse` + + - `class BetaManagedAgentsTokenEndpointAuthNoneResponse` + + Token endpoint requires no client authentication. + + - `type: :none` + + - `class BetaManagedAgentsTokenEndpointAuthBasicResponse` + + Token endpoint uses HTTP Basic authentication with client credentials. + + - `type: :client_secret_basic` + + - `class BetaManagedAgentsTokenEndpointAuthPostResponse` + + Token endpoint uses POST body authentication with client credentials. + + - `type: :client_secret_post` + + - `resource: String` + + OAuth resource indicator. + + - `scope: String` + + OAuth scope for the refresh request. + + - `class BetaManagedAgentsStaticBearerAuthResponse` + + Static bearer token credential details for an MCP server. + + - `type: :static_bearer` + + - `mcp_server_url: String` + + URL of the MCP server this credential authenticates against. + + - `class BetaManagedAgentsEnvironmentVariableAuthResponse` + + Environment variable credential details. The secret value is never returned. + + - `type: :environment_variable` + + - `injection_location: BetaManagedAgentsInjectionLocationResponse` + + Where in the outbound request the secret value is substituted. + + - `body: bool` + + Whether the placeholder is substituted in the request body. + + - `header: bool` + + Whether the placeholder is substituted in request header values. + + - `networking: BetaManagedAgentsUnrestrictedCredentialNetworkingResponse | BetaManagedAgentsLimitedCredentialNetworkingResponse` + + Outbound hosts the secret value is substituted on. + + - `class BetaManagedAgentsUnrestrictedCredentialNetworkingResponse` + + The secret is substituted on any host the session's Environment network policy permits egress to. + + - `type: :unrestricted` + + - `class BetaManagedAgentsLimitedCredentialNetworkingResponse` + + The secret is substituted only on requests to the listed hosts. + + - `type: :limited` + + - `allowed_hosts: Array[String]` + + The destination hosts of the outbound requests that the credential's secret is substituted into. + + An entry matches the request host exactly. An entry such as `*.example.com` matches any subdomain of `example.com` but not `example.com` itself. + + - `secret_name: String` + + Name of the environment variable. + + - `created_at: Time` + + A timestamp in RFC 3339 format + + format: date-time + + - `metadata: Hash[Symbol, String]` + + Arbitrary key-value metadata attached to the credential. - `updated_at: Time` - ISO 8601 timestamp of when the skill was last updated. + A timestamp in RFC 3339 format format: date-time + - `vault_id: String` + + Identifier of the vault this credential belongs to. + + - `display_name: String` + + Human-readable name for the credential. + #### Example ```ruby @@ -77550,63 +77243,56 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_skill = anthropic.beta.skills.create(files: [StringIO.new("Example data")]) +beta_managed_agents_credential = anthropic.beta.vaults.credentials.archive( + "vcrd_011CZkZEMt8gZan2iYPQfSkw", + vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" +) -puts(beta_skill) +puts(beta_managed_agents_credential) ``` ##### Response (200) ```json { - "id": "skill_01JAbcdefghijklmnopqrstuvw", - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "display_name", - "latest_version_id": "latest_version_id", - "source": { - "type": "custom" + "id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "archived_at": null, + "auth": { + "mcp_server_url": "https://example-server.modelcontextprotocol.io/sse", + "type": "static_bearer" }, - "type": "skill", - "updated_at": "2024-10-30T23:58:27.427722Z" + "created_at": "2026-03-15T10:00:00Z", + "metadata": { + "environment": "production" + }, + "type": "vault_credential", + "updated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv", + "display_name": "Example credential" } ``` -### List Skills +### Validate an MCP OAuth Credential -`beta.skills.list(**kwargs) -> PageCursor` +`beta.vaults.credentials.mcp_oauth_validate(credential_id, **kwargs) -> BetaManagedAgentsCredentialValidation` -**GET** `/v1/skills` +**POST** `/v1/vaults/{vault_id}/credentials/{credential_id}/mcp_oauth_validate` -List Skills +Validate an MCP OAuth Credential #### Parameters -- `limit: Integer` (query parameter) - - Number of results to return per page. - - Ranges from `1` to `1000`. Defaults to `20`. - - minimum: 1, maximum: 1000 - -- `page: String` (query parameter) - - Pagination token for fetching a specific page of results. - - Pass the value from a previous response's `next_page` field to get the next page of results. - -- `source: String` (query parameter) +- `vault_id: String` (path parameter) - Filter skills by source. + Identifier of the vault containing the credential. - If provided, only skills from the specified source will be returned: +- `credential_id: String` (path parameter) - * `"custom"`: only return user-created skills - * `"anthropic"`: only return Anthropic-created skills + Unique identifier of the credential to validate. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header. - `String = String` @@ -77712,6 +77398,8 @@ List Skills - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77720,72 +77408,104 @@ List Skills #### Returns -- `class BetaSkill` +- `class BetaManagedAgentsCredentialValidation` - - `type: :skill` + Result of live-probing a credential against its configured MCP server. - Object type. + - `type: :vault_credential_validation` - For Skills, this is always `"skill"`. + - `credential_id: String` - - `id: String` + Unique identifier of the credential that was validated. - Unique identifier for the skill. + - `has_refresh_token: bool` - The format and length of IDs may change over time. + Whether the credential has a refresh token configured. - - `created_at: Time` + - `mcp_probe: BetaManagedAgentsMCPProbe` - ISO 8601 timestamp of when the skill was created. + Details of the MCP probe step that failed, or `null` if the probe succeeded or there was no access token to test. - format: date-time + - `http_response: BetaManagedAgentsRefreshHTTPResponse` - - `display_name: String` + The HTTP error response from the MCP server, or `null` if the MCP server didn't return one for the failing step, for example after a timeout or a DNS or TLS failure. - Human-readable, single-line label for the Skill. Maximum 255 characters. - Always set: derived from the SKILL.md frontmatter `name` when omitted at - creation. Not unique. + - `body: String` - - `latest_version_id: String` + Response body. May be truncated and has sensitive values scrubbed. - ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. + - `body_truncated: bool` - - `source: BetaSkillSource` + Whether `body` was truncated. - Where the Skill comes from. + - `content_type: String` - Possible values: + Value of the `Content-Type` response header. - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + - `status_code: Integer` - - `type: :custom | :anthropic | :anthropic_example | :plugin` + HTTP status code. - Where the Skill comes from. + format: int32 - Possible values: + - `method_: String` - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + The MCP method that failed (for example `initialize` or `tools/list`). - - `:custom` + - `refresh: BetaManagedAgentsRefreshObject` - - `:anthropic` + Details of the refresh-token exchange attempted on a 401. Null when no refresh was attempted. - - `:anthropic_example` + - `http_response: BetaManagedAgentsRefreshHTTPResponse` - - `:plugin` + The captured HTTP error response from the token endpoint. Populated only when `status` is `failed`. - - `updated_at: Time` + - `status: :succeeded | :failed | :connect_error | :no_refresh_token` - ISO 8601 timestamp of when the skill was last updated. + Outcome of the refresh attempt. + + - `:succeeded` + + The token endpoint returned a new access token. + + - `:failed` + + The token endpoint returned an error response. See `http_response` for detail. + + - `:connect_error` + + The token endpoint could not be reached (DNS, TLS, or connection error). + + - `:no_refresh_token` + + No refresh token is stored for the credential, so no exchange was attempted. + + - `status: BetaManagedAgentsCredentialValidationStatus` + + Overall verdict of the validation probe. + + - `:valid` + + The credential successfully authenticated against its MCP server. + + - `:invalid` + + The probe reached the MCP server and the server rejected the credential, or no access token is stored. A refresh, if one was tried, didn't recover it. Usually the end user needs to authorize again. + + - `:unknown` + + The probe couldn't tell whether the credential works, for example because of a network error or because a refresh succeeded but the new access token wasn't tested. Validate the credential again to find out. + + - `validated_at: Time` + + When the validation probe was performed. format: date-time + - `vault_id: String` + + Identifier of the vault containing the credential. + #### Example ```ruby @@ -77793,51 +77513,82 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.skills.list +beta_managed_agents_credential_validation = anthropic.beta.vaults.credentials.mcp_oauth_validate( + "vcrd_011CZkZEMt8gZan2iYPQfSkw", + vault_id: "vlt_011CZkZDLs7fYzm1hXNPeRjv" +) -puts(page) +puts(beta_managed_agents_credential_validation) ``` ##### Response (200) ```json { - "data": [ - { - "id": "skill_01JAbcdefghijklmnopqrstuvw", - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "display_name", - "latest_version_id": "latest_version_id", - "source": { - "type": "custom" - }, - "type": "skill", - "updated_at": "2024-10-30T23:58:27.427722Z" - } - ], - "next_page": "next_page" + "credential_id": "vcrd_011CZkZEMt8gZan2iYPQfSkw", + "has_refresh_token": true, + "mcp_probe": { + "http_response": { + "body": "body", + "body_truncated": true, + "content_type": "content_type", + "status_code": 0 + }, + "method": "method" + }, + "refresh": { + "http_response": { + "body": "body", + "body_truncated": true, + "content_type": "content_type", + "status_code": 0 + }, + "status": "succeeded" + }, + "status": "valid", + "type": "vault_credential_validation", + "validated_at": "2026-03-15T10:00:00Z", + "vault_id": "vlt_011CZkZDLs7fYzm1hXNPeRjv" } ``` -### Get Skill +## Beta › Memory Stores -`beta.skills.retrieve(skill_id, **kwargs) -> BetaSkill` +### Create a Memory Store -**GET** `/v1/skills/{skill_id}` +`beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` -Get Skill +**POST** `/v1/memory_stores` + +Create a Memory Store #### Parameters -- `skill_id: String` (path parameter) +- `name: String` - Unique identifier for the skill. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. - The format and length of IDs may change over time. + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#how-the-agent-accesses-memory) to learn more about how agents access memory stores. + + minLength: 1, maxLength: 255 + +- `description: String` + + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + + maxLength: 1024 + +- `metadata: Hash[Symbol, String]` + + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -77943,6 +77694,8 @@ Get Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77951,69 +77704,51 @@ Get Skill #### Returns -- `class BetaSkill` - - - `type: :skill` +- `class BetaManagedAgentsMemoryStore` - Object type. + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - For Skills, this is always `"skill"`. + - `type: :memory_store` - `id: String` - Unique identifier for the skill. - - The format and length of IDs may change over time. - - - `created_at: Time` - - ISO 8601 timestamp of when the skill was created. - - format: date-time - - - `display_name: String` + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - Human-readable, single-line label for the Skill. Maximum 255 characters. - Always set: derived from the SKILL.md frontmatter `name` when omitted at - creation. Not unique. + - `archived_at: Time` - - `latest_version_id: String` + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. - ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. - - `source: BetaSkillSource` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. - Where the Skill comes from. + format: date-time - Possible values: + - `created_at: Time` - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + When the memory store was created, in RFC 3339. - - `type: :custom | :anthropic | :anthropic_example | :plugin` + format: date-time - Where the Skill comes from. + - `description: String` - Possible values: + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - * `"custom"`: authored by the platform user; private to their workspace - * `"anthropic"`: published by Anthropic; shared and read-only - * `"anthropic_example"`: Anthropic-published sample Skill - * `"plugin"`: resolved from an installed plugin + - `metadata: Hash[Symbol, String]` - - `:custom` + Key-value pairs for your own use, such as the end user that the store belongs to. - - `:anthropic` + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - - `:anthropic_example` + - `name: String` - - `:plugin` + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - `updated_at: Time` - ISO 8601 timestamp of when the skill was last updated. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -78024,62 +77759,83 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_skill = anthropic.beta.skills.retrieve("skill_id") +beta_managed_agents_memory_store = anthropic.beta.memory_stores.create(name: "x") -puts(beta_skill) +puts(beta_managed_agents_memory_store) ``` ##### Response (200) ```json { - "id": "skill_01JAbcdefghijklmnopqrstuvw", - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "display_name", - "latest_version_id": "latest_version_id", - "source": { - "type": "custom" + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "metadata": { + "foo": "string" }, - "type": "skill", - "updated_at": "2024-10-30T23:58:27.427722Z" + "name": "name", + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" } ``` -### Delete Skill +### List Memory Stores -`beta.skills.delete(skill_id, **kwargs) -> BetaDeletedSkill` +`beta.memory_stores.list(**kwargs) -> PageCursor` -**DELETE** `/v1/skills/{skill_id}` +**GET** `/v1/memory_stores` -Delete Skill +List Memory Stores #### Parameters -- `skill_id: String` (path parameter) +- `created_at_gte: Time` (query parameter) - Unique identifier for the skill. + Return only memory stores created at or after this time (inclusive). - The format and length of IDs may change over time. + format: date-time -- `betas: Array[AnthropicBeta]` (header parameter) +- `created_at_lte: Time` (query parameter) - Optional header to specify the beta version(s) you want to use. + Return only memory stores created at or before this time (inclusive). - - `String = String` + format: date-time - - `:"message-batches-2024-09-24"` +- `include_archived: bool` (query parameter) - - `:"prompt-caching-2024-07-31"` + When `true`, archived stores are included in the results. Defaults to `false` (archived stores are excluded). - - `:"computer-use-2024-10-22"` +- `limit: Integer` (query parameter) - - `:"computer-use-2025-01-24"` + Maximum number of stores to return per page. Must be between 1 and 100. Defaults to 20 when omitted. - - `:"pdfs-2024-09-25"` + format: int32 - - `:"token-counting-2024-11-01"` +- `page: String` (query parameter) - - `:"token-efficient-tools-2025-02-19"` + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. + +- `betas: Array[AnthropicBeta]` (header parameter) + + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. + + - `String = String` + + - `:"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"` @@ -78169,6 +77925,8 @@ Delete Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78177,19 +77935,53 @@ Delete Skill #### Returns -- `class BetaDeletedSkill` - - - `type: :skill_deleted` +- `class BetaManagedAgentsMemoryStore` - Deleted object type. + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - For Skills, this is always `"skill_deleted"`. + - `type: :memory_store` - `id: String` - Unique identifier for the skill. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - The format and length of IDs may change over time. + - `archived_at: Time` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. + + format: date-time + + - `created_at: Time` + + When the memory store was created, in RFC 3339. + + format: date-time + + - `description: String` + + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + + - `metadata: Hash[Symbol, String]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. + + - `name: String` + + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. + + - `updated_at: Time` + + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time #### Example @@ -78198,47 +77990,48 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_skill = anthropic.beta.skills.delete("skill_id") +page = anthropic.beta.memory_stores.list -puts(beta_deleted_skill) +puts(page) ``` ##### Response (200) ```json { - "id": "skill_01JAbcdefghijklmnopqrstuvw", - "type": "skill_deleted" + "data": [ + { + "id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", + "archived_at": null, + "created_at": "2026-03-15T10:00:00Z", + "description": "Per-user preferences and project context.", + "metadata": {}, + "name": "User Preferences", + "type": "memory_store", + "updated_at": "2026-03-15T10:00:00Z" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -## Beta › Skills › Versions - -### Create Skill Version +### Retrieve a Memory Store -`beta.skills.versions.create(skill_id, **kwargs) -> BetaSkillVersion` +`beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` -**POST** `/v1/skills/{skill_id}/versions` +**GET** `/v1/memory_stores/{memory_store_id}` -Create Skill Version +Retrieve a Memory Store #### Parameters -- `skill_id: String` (path parameter) - - Unique identifier for the skill. - - The format and length of IDs may change over time. - -- `files: Array[String]` - - Files to upload for the skill. +- `memory_store_id: String` (path parameter) - All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -78344,6 +78137,8 @@ Create Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78352,43 +78147,53 @@ Create Skill Version #### Returns -- `class BetaSkillVersion` - - - `type: :skill_version` +- `class BetaManagedAgentsMemoryStore` - Object type. + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - For Skill Versions, this is always `"skill_version"`. + - `type: :memory_store` - `id: String` - Unique identifier for this Skill Version. The id addresses the version in - paths and pins it in references. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. + + - `archived_at: Time` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. + + format: date-time - `created_at: Time` - ISO 8601 timestamp of when the skill was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Description of the skill version. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - This is extracted from the SKILL.md file in the skill upload. + - `metadata: Hash[Symbol, String]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` - The Skill's immutable kebab-case slug, set at creation from the first - upload's SKILL.md frontmatter `name` (or its enclosing directory). Every - later upload must resolve to the same value. Also the top-level directory - of the Skill's mounted files and the base name of a downloaded archive. + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - - `skill_id: String` + - `updated_at: Time` - Unique identifier for the skill. + When the memory store was last changed, in RFC 3339. - The format and length of IDs may change over time. + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time #### Example @@ -78397,9 +78202,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_skill_version = anthropic.beta.skills.versions.create("skill_id", files: [StringIO.new("Example data")]) +beta_managed_agents_memory_store = anthropic.beta.memory_stores.retrieve("memory_store_id") -puts(beta_skill_version) +puts(beta_managed_agents_memory_store) ``` ##### Response (200) @@ -78407,45 +78212,57 @@ puts(beta_skill_version) ```json { "id": "id", - "created_at": "2024-10-30T23:58:27.427722Z", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", "description": "description", + "metadata": { + "foo": "string" + }, "name": "name", - "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", - "type": "skill_version" + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" } ``` -### List Skill Versions +### Update a Memory Store -`beta.skills.versions.list(skill_id, **kwargs) -> PageCursor` +`beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` -**GET** `/v1/skills/{skill_id}/versions` +**POST** `/v1/memory_stores/{memory_store_id}` -List Skill Versions +Update a Memory Store #### Parameters -- `skill_id: String` (path parameter) +- `memory_store_id: String` (path parameter) - Unique identifier for the skill. + The ID of the memory store to update (`memstore_...`). - The format and length of IDs may change over time. + The request fails with HTTP status 400 if the store is archived. -- `limit: Integer` (query parameter) +- `description: String` - Number of results to return per page. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. - Ranges from `1` to `1000`. Defaults to `20`. + maxLength: 1024 - minimum: 1, maximum: 1000 +- `metadata: Hash[Symbol, String]` -- `page: String` (query parameter) + Changes to apply to the memory store's metadata. Keys you leave out keep their values. - Optionally set to the `next_page` token from the previous response. + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. + +- `name: String` + + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. + + minLength: 1, maxLength: 255 - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -78551,6 +78368,8 @@ List Skill Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78559,43 +78378,53 @@ List Skill Versions #### Returns -- `class BetaSkillVersion` - - - `type: :skill_version` +- `class BetaManagedAgentsMemoryStore` - Object type. + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - For Skill Versions, this is always `"skill_version"`. + - `type: :memory_store` - `id: String` - Unique identifier for this Skill Version. The id addresses the version in - paths and pins it in references. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. + + - `archived_at: Time` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. + + format: date-time - `created_at: Time` - ISO 8601 timestamp of when the skill was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Description of the skill version. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - This is extracted from the SKILL.md file in the skill upload. + - `metadata: Hash[Symbol, String]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` - The Skill's immutable kebab-case slug, set at creation from the first - upload's SKILL.md frontmatter `name` (or its enclosing directory). Every - later upload must resolve to the same value. Also the top-level directory - of the Skill's mounted files and the base name of a downloaded archive. + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - - `skill_id: String` + - `updated_at: Time` - Unique identifier for the skill. + When the memory store was last changed, in RFC 3339. - The format and length of IDs may change over time. + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time #### Example @@ -78604,54 +78433,47 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.skills.versions.list("skill_id") +beta_managed_agents_memory_store = anthropic.beta.memory_stores.update("memory_store_id") -puts(page) +puts(beta_managed_agents_memory_store) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "created_at": "2024-10-30T23:58:27.427722Z", - "description": "description", - "name": "name", - "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", - "type": "skill_version" - } - ], - "next_page": "next_page" + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "metadata": { + "foo": "string" + }, + "name": "name", + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" } ``` -### Download Skill Version Content +### Delete a Memory Store -`beta.skills.versions.download(version, **kwargs) -> StringIO` +`beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` -**GET** `/v1/skills/{skill_id}/versions/{version}/content` +**DELETE** `/v1/memory_stores/{memory_store_id}` -Download a skill version's content as a zip archive. +Delete a Memory Store #### Parameters -- `skill_id: String` (path parameter) - - Unique identifier for the skill. - - The format and length of IDs may change over time. - -- `version: String` (path parameter) +- `memory_store_id: String` (path parameter) - Identifies the skill version by its version ID. + The ID of the memory store to delete (`memstore_...`). - Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -78757,6 +78579,8 @@ Download a skill version's content as a zip archive. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78765,7 +78589,15 @@ Download a skill version's content as a zip archive. #### Returns -- `StringIO` +- `class BetaManagedAgentsDeletedMemoryStore` + + Confirmation that a `memory_store` was deleted. + + - `type: :memory_store_deleted` + + - `id: String` + + ID of the deleted memory store (a `memstore_...` identifier). The store and all its memories and versions are no longer retrievable. #### Example @@ -78774,36 +78606,39 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -response = anthropic.beta.skills.versions.download("version", skill_id: "skill_id") +beta_managed_agents_deleted_memory_store = anthropic.beta.memory_stores.delete("memory_store_id") -puts(response) +puts(beta_managed_agents_deleted_memory_store) ``` -### Get Skill Version - -`beta.skills.versions.retrieve(version, **kwargs) -> BetaSkillVersion` +##### Response (200) -**GET** `/v1/skills/{skill_id}/versions/{version}` +```json +{ + "id": "id", + "type": "memory_store_deleted" +} +``` -Get Skill Version +### Archive a Memory Store -#### Parameters +`beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` -- `skill_id: String` (path parameter) +**POST** `/v1/memory_stores/{memory_store_id}/archive` - Unique identifier for the skill. +Archive a Memory Store - The format and length of IDs may change over time. +#### Parameters -- `version: String` (path parameter) +- `memory_store_id: String` (path parameter) - Identifies the skill version: a version ID, or the literal `latest` for the skill's most recent version. + The ID of the memory store to archive (`memstore_...`). - Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -78909,6 +78744,8 @@ Get Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78917,43 +78754,53 @@ Get Skill Version #### Returns -- `class BetaSkillVersion` - - - `type: :skill_version` +- `class BetaManagedAgentsMemoryStore` - Object type. + A `memory_store`: a named container for agent memories, scoped to a workspace. Attach a store to a session via `resources[]` to mount it as a directory the agent can read and write. - For Skill Versions, this is always `"skill_version"`. + - `type: :memory_store` - `id: String` - Unique identifier for this Skill Version. The id addresses the version in - paths and pins it in references. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. + + - `archived_at: Time` + + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. + + format: date-time - `created_at: Time` - ISO 8601 timestamp of when the skill was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Description of the skill version. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - This is extracted from the SKILL.md file in the skill upload. + - `metadata: Hash[Symbol, String]` + + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` - The Skill's immutable kebab-case slug, set at creation from the first - upload's SKILL.md frontmatter `name` (or its enclosing directory). Every - later upload must resolve to the same value. Also the top-level directory - of the Skill's mounted files and the base name of a downloaded archive. + Human-readable name for the store. 1–255 characters. The store's mount-path slug under `/mnt/memory/` is derived from this name. - - `skill_id: String` + - `updated_at: Time` - Unique identifier for the skill. + When the memory store was last changed, in RFC 3339. - The format and length of IDs may change over time. + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. + + format: date-time #### Example @@ -78962,9 +78809,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_skill_version = anthropic.beta.skills.versions.retrieve("version", skill_id: "skill_id") +beta_managed_agents_memory_store = anthropic.beta.memory_stores.archive("memory_store_id") -puts(beta_skill_version) +puts(beta_managed_agents_memory_store) ``` ##### Response (200) @@ -78972,39 +78819,65 @@ puts(beta_skill_version) ```json { "id": "id", - "created_at": "2024-10-30T23:58:27.427722Z", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", "description": "description", + "metadata": { + "foo": "string" + }, "name": "name", - "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", - "type": "skill_version" + "type": "memory_store", + "updated_at": "2019-12-27T18:11:19.117Z" } ``` -### Delete Skill Version +## Beta › Memory Stores › Memories -`beta.skills.versions.delete(version, **kwargs) -> BetaDeletedSkillVersion` +### Create a Memory -**DELETE** `/v1/skills/{skill_id}/versions/{version}` +`beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` -Delete Skill Version +**POST** `/v1/memory_stores/{memory_store_id}/memories` + +Create a Memory #### Parameters -- `skill_id: String` (path parameter) +- `memory_store_id: String` (path parameter) - Unique identifier for the skill. + The ID of the memory store to create the memory in (`memstore_...`). - The format and length of IDs may change over time. +- `content: String` -- `version: String` (path parameter) + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. - Identifies the skill version by its version ID. + The maximum size is 100 kB (102,400 bytes). - Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). +- `path: String` + + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. + + minLength: 2, maxLength: 1024 + +- `view: BetaManagedAgentsMemoryView` (query parameter) + + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. + + - `:basic` + + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. + + - `:full` + + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -79110,6 +78983,8 @@ Delete Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79118,149 +78993,154 @@ Delete Skill Version #### Returns -- `class BetaDeletedSkillVersion` - - - `type: :skill_version_deleted` +- `class BetaManagedAgentsMemory` - Deleted object type. + A text document at a path inside a memory store. - For Skill Versions, this is always `"skill_version_deleted"`. + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. - - `id: String` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - Unique identifier for this Skill Version. The id addresses the version in - paths and pins it in references. + - `type: :memory` -#### Example + - `id: String` -```ruby -require "anthropic" + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + To retrieve, update, or delete the memory, pass this ID. -beta_deleted_skill_version = anthropic.beta.skills.versions.delete("version", skill_id: "skill_id") + - `content_sha256: String` -puts(beta_deleted_skill_version) -``` + Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. -##### Response (200) + - `content_size_bytes: Integer` -```json -{ - "id": "id", - "type": "skill_version_deleted" -} -``` + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. -## Beta › User Profiles + format: int32 -### Create User Profile + - `created_at: Time` -`beta.user_profiles.create(**kwargs) -> BetaUserProfile` + When this memory was created, in RFC 3339 format. -**POST** `/v1/user_profiles` + format: date-time -Create User Profile + - `memory_store_id: String` -#### Parameters + ID of the memory store this memory belongs to (a `memstore_...` value). -- `access_type: :application | :passthrough` + - `memory_version_id: String` - How the platform uses the API for this entity. `application` (default): the profile represents an individual end-user of the platform's product. `passthrough`: the profile identifies a company the platform resells Claude access to. + The ID of the memory version that holds the memory's current content (`memver_...`). - - `:application` + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - - `:passthrough` + - `path: String` - The user profile represents a company that the platform resells Claude access to. + Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. -- `external_id: String` + - `updated_at: Time` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + When the memory was last changed, in RFC 3339. - minLength: 1, maxLength: 255 + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. -- `external_user_details: BetaUserProfileExternalUserDetailsParams` + format: date-time - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + - `content: String` - - `account_status: :active | :suspended | :blocked` + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + The maximum size is 100 kB (102,400 bytes). - - `:active` +#### Example - The platform has neither restricted nor barred the account of the entity that the user profile represents. +```ruby +require "anthropic" - - `:suspended` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The platform has restricted the account of the entity that the user profile represents and may restore it. +beta_managed_agents_memory = anthropic.beta.memory_stores.memories.create("memory_store_id", content: "content", path: "xx") - - `:blocked` +puts(beta_managed_agents_memory) +``` - The platform has barred the account of the entity that the user profile represents. +##### Response (200) - - `country: String` +```json +{ + "id": "id", + "content_sha256": "content_sha256", + "content_size_bytes": 0, + "created_at": "2019-12-27T18:11:19.117Z", + "memory_store_id": "memory_store_id", + "memory_version_id": "memory_version_id", + "path": "path", + "type": "memory", + "updated_at": "2019-12-27T18:11:19.117Z", + "content": "content" +} +``` - The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. +### List Memories - - `email_hash: String` +`beta.memory_stores.memories.list(memory_store_id, **kwargs) -> PageCursor` - A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. +**GET** `/v1/memory_stores/{memory_store_id}/memories` - minLength: 1, maxLength: 255 +List Memories - - `entity_type: :individual | :business | :non_profit | :government` +#### Parameters - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. +- `memory_store_id: String` (path parameter) - - `:individual` + The ID of the memory store to list memories from (`memstore_...`). - - `:business` +- `depth: Integer` (query parameter) - - `:non_profit` + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. - - `:government` + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. - - `name_hash: String` + format: int32 - A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. +- `limit: Integer` (query parameter) - minLength: 1, maxLength: 255 + The maximum number of items to return per page, from 1 to 100. Defaults to 20. - - `onboarded_at: Time` + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. - When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + format: int32 - format: date-time +- `page: String` (query parameter) - - `reference_id: String` + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. +- `path_prefix: String` (query parameter) - minLength: 1, maxLength: 255 + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. -- `external_user_onboarded_at: Time` + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. +- `view: BetaManagedAgentsMemoryView` (query parameter) - format: date-time + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. -- `metadata: Hash[Symbol, String]` + With `full`, a page holds at most 20 items. - Free-form key-value data to attach to this user profile. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. Values must be non-empty strings. + - `:basic` -- `name: String` + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a company the platform resells Claude access to (`access_type` `passthrough`), that company's name where known. Maximum 255 characters. + - `:full` - minLength: 1, maxLength: 255 + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -79366,6 +79246,8 @@ Create User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79374,129 +79256,83 @@ Create User Profile #### Returns -- `class BetaUserProfile` - - A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. - - A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. - - - `type: :user_profile` - - Object type. Always `user_profile`. - - - `id: String` - - Unique identifier for this user profile, prefixed `uprof_`. - - - `created_at: Time` - - When this user profile was created, in RFC 3339 format. - - format: date-time - - - `metadata: Hash[Symbol, String]` - - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - - - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` - - Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - - - `status: :active | :pending | :rejected` - - Status of the trust grant. - - - `:active` - - - `:pending` - - - `:rejected` - - - `updated_at: Time` - - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. - - format: date-time - - - `access_type: :application | :passthrough` - - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. +- `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - - `:application` + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + - `class BetaManagedAgentsMemory` - - `:passthrough` + A text document at a path inside a memory store. - The user profile represents a company that the platform resells Claude access to. + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. - - `external_id: String` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + - `type: :memory` - - `external_user_details: BetaUserProfileExternalUserDetails` + - `id: String` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. - - `account_status: :active | :suspended | :blocked` + To retrieve, update, or delete the memory, pass this ID. - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + - `content_sha256: String` - - `:active` + Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. - The platform has neither restricted nor barred the account of the entity that the user profile represents. + - `content_size_bytes: Integer` - - `:suspended` + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - The platform has restricted the account of the entity that the user profile represents and may restore it. + format: int32 - - `:blocked` + - `created_at: Time` - The platform has barred the account of the entity that the user profile represents. + When this memory was created, in RFC 3339 format. - - `country: String` + format: date-time - The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + - `memory_store_id: String` - - `email_hash: String` + ID of the memory store this memory belongs to (a `memstore_...` value). - The platform-computed hash of the entity's email address. `null` until the platform supplies one. + - `memory_version_id: String` - - `entity_type: :individual | :business | :non_profit | :government` + The ID of the memory version that holds the memory's current content (`memver_...`). - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. - - `:individual` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - - `:business` + - `path: String` - - `:non_profit` + Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. - - `:government` + - `updated_at: Time` - - `name_hash: String` + When the memory was last changed, in RFC 3339. - The platform-computed hash of the entity's name. `null` until the platform supplies one. + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - - `onboarded_at: Time` + format: date-time - When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + - `content: String` - format: date-time + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. - - `reference_id: String` + The maximum size is 100 kB (102,400 bytes). - The platform's own reference for the entity. `null` until the platform supplies one. + - `class BetaManagedAgentsMemoryPrefix` - - `external_user_onboarded_at: Time` + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - format: date-time + - `type: :memory_prefix` - - `name: String` + - `path: String` - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + The rolled-up path prefix, including a trailing `/` (e.g. `/projects/foo/`). Pass this value as `path_prefix` on a subsequent list call to drill into the directory. #### Example @@ -79505,90 +79341,68 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_user_profile = anthropic.beta.user_profiles.create +page = anthropic.beta.memory_stores.memories.list("memory_store_id") -puts(beta_user_profile) +puts(page) ``` ##### Response (200) ```json { - "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", - "created_at": "2026-03-15T10:00:00Z", - "metadata": {}, - "trust_grants": { - "cyber": { - "status": "active" + "data": [ + { + "id": "mem_011CZkZ9X2dpNyB6YbtxvB6e", + "content_sha256": "ba7936d94c84d948a2232088f78228f175df6a8353b2d5bc9228eee5794a0024", + "content_size_bytes": 28, + "created_at": "2026-03-15T10:00:00Z", + "memory_store_id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", + "memory_version_id": "memver_011CZkZBJq5dWxk9fVLNcPht", + "path": "/preferences/formatting.md", + "type": "memory", + "updated_at": "2026-03-15T10:00:00Z", + "content": null } - }, - "type": "user_profile", - "updated_at": "2026-03-15T10:00:00Z", - "access_type": "application", - "external_id": "user_12345", - "external_user_details": { - "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" - }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -### List User Profiles +### Retrieve a Memory -`beta.user_profiles.list(**kwargs) -> PageCursor` +`beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` -**GET** `/v1/user_profiles` +**GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -List User Profiles +Retrieve a Memory #### Parameters -- `limit: Integer` (query parameter) - - The maximum number of user profiles to return, from 1 to 100. Defaults to 20. - - format: int32 - -- `order: :asc | :desc` (query parameter) - - The sort direction, applied to the field that `order_by` selects. Defaults to `desc`. - - - `:asc` - - Oldest first when `order_by` is `created_at`, or names in ascending order when `order_by` is `name`. - - - `:desc` +- `memory_store_id: String` (path parameter) - Newest first when `order_by` is `created_at`, or names in descending order when `order_by` is `name`. This is the default. + The ID of the memory store that holds the memory (`memstore_...`). -- `order_by: :created_at | :name` (query parameter) +- `memory_id: String` (path parameter) - The field to sort user profiles by, in the direction that `order` sets. Defaults to `created_at`. + The ID of the memory to retrieve (`mem_...`). - - `:created_at` +- `view: BetaManagedAgentsMemoryView` (query parameter) - Sort by when each user profile was created. This is the default. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. - - `:name` + With `full`, list operations return at most 20 items per page. - Sort by `name`, ignoring the case of ASCII letters. Profiles without a name come last in either direction. + - `:basic` -- `page: String` (query parameter) + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - The cursor for the page to return, taken from `next_page` in a previous response. + - `:full` - Leave it out to get the first page. + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -79694,6 +79508,8 @@ List User Profiles - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79702,194 +79518,156 @@ List User Profiles #### Returns -- `class BetaUserProfile` +- `class BetaManagedAgentsMemory` - A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + A text document at a path inside a memory store. - A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. - - `type: :user_profile` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - Object type. Always `user_profile`. + - `type: :memory` - `id: String` - Unique identifier for this user profile, prefixed `uprof_`. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. - - `created_at: Time` + To retrieve, update, or delete the memory, pass this ID. - When this user profile was created, in RFC 3339 format. + - `content_sha256: String` - format: date-time + Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. - - `metadata: Hash[Symbol, String]` + - `content_size_bytes: Integer` - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` + format: int32 - Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. + - `created_at: Time` - - `status: :active | :pending | :rejected` + When this memory was created, in RFC 3339 format. - Status of the trust grant. + format: date-time - - `:active` + - `memory_store_id: String` - - `:pending` + ID of the memory store this memory belongs to (a `memstore_...` value). - - `:rejected` + - `memory_version_id: String` - - `updated_at: Time` + The ID of the memory version that holds the memory's current content (`memver_...`). - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. - format: date-time + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - - `access_type: :application | :passthrough` + - `path: String` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. - - `:application` + - `updated_at: Time` - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + When the memory was last changed, in RFC 3339. - - `:passthrough` + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. - The user profile represents a company that the platform resells Claude access to. + format: date-time - - `external_id: String` + - `content: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. - - `external_user_details: BetaUserProfileExternalUserDetails` + The maximum size is 100 kB (102,400 bytes). - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. +#### Example - - `account_status: :active | :suspended | :blocked` +```ruby +require "anthropic" - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:active` +beta_managed_agents_memory = anthropic.beta.memory_stores.memories.retrieve("memory_id", memory_store_id: "memory_store_id") - The platform has neither restricted nor barred the account of the entity that the user profile represents. +puts(beta_managed_agents_memory) +``` - - `:suspended` +##### Response (200) - The platform has restricted the account of the entity that the user profile represents and may restore it. +```json +{ + "id": "id", + "content_sha256": "content_sha256", + "content_size_bytes": 0, + "created_at": "2019-12-27T18:11:19.117Z", + "memory_store_id": "memory_store_id", + "memory_version_id": "memory_version_id", + "path": "path", + "type": "memory", + "updated_at": "2019-12-27T18:11:19.117Z", + "content": "content" +} +``` - - `:blocked` +### Update a Memory - The platform has barred the account of the entity that the user profile represents. +`beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` - - `country: String` +**POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` - The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. +Update a Memory - - `email_hash: String` +#### Parameters - The platform-computed hash of the entity's email address. `null` until the platform supplies one. +- `memory_store_id: String` (path parameter) - - `entity_type: :individual | :business | :non_profit | :government` + The ID of the memory store that holds the memory (`memstore_...`). - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. +- `memory_id: String` (path parameter) - - `:individual` + The ID of the memory to update (`mem_...`). - - `:business` +- `view: BetaManagedAgentsMemoryView` (query parameter) - - `:non_profit` + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. - - `:government` + With `full`, list operations return at most 20 items per page. - - `name_hash: String` + - `:basic` - The platform-computed hash of the entity's name. `null` until the platform supplies one. + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. - - `onboarded_at: Time` + - `:full` - When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - format: date-time +- `content: String` - - `reference_id: String` + New UTF-8 text content for the memory. Maximum 100 kB (102,400 bytes). Omit to leave the content unchanged (e.g., for a rename-only update). - The platform's own reference for the entity. `null` until the platform supplies one. +- `path: String` - - `external_user_onboarded_at: Time` + The new path of the memory, which renames it. Omit it to keep the current path. - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. - format: date-time + minLength: 2, maxLength: 1024 - - `name: String` +- `precondition: BetaManagedAgentsPrecondition` - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. -#### Example + If the condition fails, the request fails with HTTP status 409. -```ruby -require "anthropic" + - `type: :content_sha256` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `content_sha256: String` -page = anthropic.beta.user_profiles.list - -puts(page) -``` - -##### Response (200) - -```json -{ - "data": [ - { - "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", - "created_at": "2026-03-15T10:00:00Z", - "metadata": {}, - "trust_grants": { - "cyber": { - "status": "active" - } - }, - "type": "user_profile", - "updated_at": "2026-03-15T10:00:00Z", - "access_type": "application", - "external_id": "user_12345", - "external_user_details": { - "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" - }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" - } - ], - "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" -} -``` - -### Get User Profile - -`beta.user_profiles.retrieve(user_profile_id, **kwargs) -> BetaUserProfile` - -**GET** `/v1/user_profiles/{user_profile_id}` - -Get User Profile - -#### Parameters - -- `user_profile_id: String` (path parameter) - - The ID of the user profile to get (`uprof_...`). + Expected `content_sha256` of the stored memory (64 lowercase hexadecimal characters). Typically the `content_sha256` returned by a prior read or list call. Because the server applies no content normalization, clients can also compute this locally as the SHA-256 of the UTF-8 content bytes. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -79995,6 +79773,8 @@ Get User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80003,129 +79783,67 @@ Get User Profile #### Returns -- `class BetaUserProfile` +- `class BetaManagedAgentsMemory` - A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + A text document at a path inside a memory store. - A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. - - `type: :user_profile` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - Object type. Always `user_profile`. + - `type: :memory` - `id: String` - Unique identifier for this user profile, prefixed `uprof_`. - - - `created_at: Time` - - When this user profile was created, in RFC 3339 format. - - format: date-time - - - `metadata: Hash[Symbol, String]` - - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - - - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. - Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. + To retrieve, update, or delete the memory, pass this ID. - - `status: :active | :pending | :rejected` + - `content_sha256: String` - Status of the trust grant. + Lowercase hex SHA-256 digest of the UTF-8 `content` bytes (64 characters). The server applies no normalization, so clients can compute the same hash locally for staleness checks and as the value for a `content_sha256` precondition on update. Always populated, regardless of `view`. - - `:active` + - `content_size_bytes: Integer` - - `:pending` + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. - - `:rejected` + format: int32 - - `updated_at: Time` + - `created_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this memory was created, in RFC 3339 format. format: date-time - - `access_type: :application | :passthrough` - - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. - - - `:application` - - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. - - - `:passthrough` - - The user profile represents a company that the platform resells Claude access to. - - - `external_id: String` - - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. - - - `external_user_details: BetaUserProfileExternalUserDetails` - - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. - - - `account_status: :active | :suspended | :blocked` - - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. - - - `:active` - - The platform has neither restricted nor barred the account of the entity that the user profile represents. - - - `:suspended` - - The platform has restricted the account of the entity that the user profile represents and may restore it. - - - `:blocked` - - The platform has barred the account of the entity that the user profile represents. - - - `country: String` - - The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. - - - `email_hash: String` - - The platform-computed hash of the entity's email address. `null` until the platform supplies one. - - - `entity_type: :individual | :business | :non_profit | :government` - - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. - - - `:individual` - - - `:business` - - - `:non_profit` + - `memory_store_id: String` - - `:government` + ID of the memory store this memory belongs to (a `memstore_...` value). - - `name_hash: String` + - `memory_version_id: String` - The platform-computed hash of the entity's name. `null` until the platform supplies one. + The ID of the memory version that holds the memory's current content (`memver_...`). - - `onboarded_at: Time` + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. - When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - format: date-time + - `path: String` - - `reference_id: String` + Hierarchical path of the memory within the store, e.g. `/projects/foo/notes.md`. Always starts with `/`. Paths are case-sensitive and unique within a store. Maximum 1,024 bytes. - The platform's own reference for the entity. `null` until the platform supplies one. + - `updated_at: Time` - - `external_user_onboarded_at: Time` + When the memory was last changed, in RFC 3339. - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - - `name: String` + - `content: String` - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -80134,152 +79852,55 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_user_profile = anthropic.beta.user_profiles.retrieve("uprof_011CZkZCu8hGbp5mYRQgUmz9") +beta_managed_agents_memory = anthropic.beta.memory_stores.memories.update("memory_id", memory_store_id: "memory_store_id") -puts(beta_user_profile) +puts(beta_managed_agents_memory) ``` ##### Response (200) ```json { - "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", - "created_at": "2026-03-15T10:00:00Z", - "metadata": {}, - "trust_grants": { - "cyber": { - "status": "active" - } - }, - "type": "user_profile", - "updated_at": "2026-03-15T10:00:00Z", - "access_type": "application", - "external_id": "user_12345", - "external_user_details": { - "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" - }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "id": "id", + "content_sha256": "content_sha256", + "content_size_bytes": 0, + "created_at": "2019-12-27T18:11:19.117Z", + "memory_store_id": "memory_store_id", + "memory_version_id": "memory_version_id", + "path": "path", + "type": "memory", + "updated_at": "2019-12-27T18:11:19.117Z", + "content": "content" } ``` -### Update User Profile +### Delete a Memory -`beta.user_profiles.update(user_profile_id, **kwargs) -> BetaUserProfile` +`beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` -**POST** `/v1/user_profiles/{user_profile_id}` +**DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update User Profile +Delete a Memory #### Parameters -- `user_profile_id: String` (path parameter) - - The ID of the user profile to update (`uprof_...`). - -- `access_type: :application | :passthrough` - - If present, replaces the stored access type. Omit to leave unchanged. - - - `:application` - - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. - - - `:passthrough` - - The user profile represents a company that the platform resells Claude access to. - -- `external_id: String` - - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. - - minLength: 1, maxLength: 255 - -- `external_user_details: BetaUserProfileExternalUserDetailsParams` - - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. - - - `account_status: :active | :suspended | :blocked` - - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. - - - `:active` - - The platform has neither restricted nor barred the account of the entity that the user profile represents. - - - `:suspended` - - The platform has restricted the account of the entity that the user profile represents and may restore it. - - - `:blocked` - - The platform has barred the account of the entity that the user profile represents. - - - `country: String` - - The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. - - - `email_hash: String` - - A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. - - minLength: 1, maxLength: 255 - - - `entity_type: :individual | :business | :non_profit | :government` - - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. - - - `:individual` - - - `:business` - - - `:non_profit` - - - `:government` - - - `name_hash: String` - - A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. - - minLength: 1, maxLength: 255 - - - `onboarded_at: Time` - - When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. - - format: date-time - - - `reference_id: String` - - The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. - - minLength: 1, maxLength: 255 - -- `external_user_onboarded_at: Time` - - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. +- `memory_store_id: String` (path parameter) - format: date-time + The ID of the memory store that holds the memory (`memstore_...`). -- `metadata: Hash[Symbol, String]` +- `memory_id: String` (path parameter) - Key-value pairs to merge into the stored metadata. Keys provided overwrite existing values. To remove a key, set its value to an empty string. Keys not provided are left unchanged. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. + The ID of the memory to delete (`mem_...`). -- `name: String` +- `expected_content_sha256: String` (query parameter) - If present, replaces the stored name. Omit to leave unchanged. Maximum 255 characters. + Delete the memory only if its current `content_sha256` equals this value, given as 64 lowercase hexadecimal characters. Omit it to delete unconditionally. - minLength: 1, maxLength: 255 + If the hashes differ, the request fails with HTTP status 409 and nothing is deleted. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -80385,6 +80006,8 @@ Update User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80393,189 +80016,132 @@ Update User Profile #### Returns -- `class BetaUserProfile` +- `class BetaManagedAgentsDeletedMemory` - A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby) returns. - A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. - - `type: :user_profile` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about how long versions are kept. - Object type. Always `user_profile`. + - `type: :memory_deleted` - `id: String` - Unique identifier for this user profile, prefixed `uprof_`. - - - `created_at: Time` - - When this user profile was created, in RFC 3339 format. - - format: date-time - - - `metadata: Hash[Symbol, String]` - - Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - - - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` - - Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. - - - `status: :active | :pending | :rejected` - - Status of the trust grant. - - - `:active` - - - `:pending` - - - `:rejected` - - - `updated_at: Time` - - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. - - format: date-time - - - `access_type: :application | :passthrough` - - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. - - - `:application` + ID of the deleted memory (a `mem_...` value). - The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. +#### Example - - `:passthrough` +```ruby +require "anthropic" - The user profile represents a company that the platform resells Claude access to. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `external_id: String` +beta_managed_agents_deleted_memory = anthropic.beta.memory_stores.memories.delete("memory_id", memory_store_id: "memory_store_id") - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. +puts(beta_managed_agents_deleted_memory) +``` - - `external_user_details: BetaUserProfileExternalUserDetails` +##### Response (200) - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. +```json +{ + "id": "id", + "type": "memory_deleted" +} +``` - - `account_status: :active | :suspended | :blocked` +## Beta › Memory Stores › Memory Versions - The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. +### List Memory Versions - - `:active` +`beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> PageCursor` - The platform has neither restricted nor barred the account of the entity that the user profile represents. +**GET** `/v1/memory_stores/{memory_store_id}/memory_versions` - - `:suspended` +List Memory Versions - The platform has restricted the account of the entity that the user profile represents and may restore it. +#### Parameters - - `:blocked` +- `memory_store_id: String` (path parameter) - The platform has barred the account of the entity that the user profile represents. + The ID of the memory store whose version history to list (`memstore_...`). - - `country: String` +- `api_key_id: String` (query parameter) - The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + Return only versions written with the API key that has this ID. - - `email_hash: String` +- `created_at_gte: Time` (query parameter) - The platform-computed hash of the entity's email address. `null` until the platform supplies one. + Return versions created at or after this time (inclusive). - - `entity_type: :individual | :business | :non_profit | :government` + format: date-time - What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. +- `created_at_lte: Time` (query parameter) - - `:individual` + Return versions created at or before this time (inclusive). - - `:business` + format: date-time - - `:non_profit` +- `limit: Integer` (query parameter) - - `:government` + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. - - `name_hash: String` + With `view=full`, a page holds at most 20 versions. - The platform-computed hash of the entity's name. `null` until the platform supplies one. + format: int32 - - `onboarded_at: Time` +- `memory_id: String` (query parameter) - When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + Return only versions of the memory with this ID (`mem_...`). - format: date-time + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - - `reference_id: String` +- `operation: BetaManagedAgentsMemoryVersionOperation` (query parameter) - The platform's own reference for the entity. `null` until the platform supplies one. + Return only versions that record this kind of change. - - `external_user_onboarded_at: Time` + - `:created` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + The memory was created. The first version in any memory's lineage. - format: date-time + - `:modified` - - `name: String` + The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. + - `:deleted` -#### Example + The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. -```ruby -require "anthropic" +- `page: String` (query parameter) -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. -beta_user_profile = anthropic.beta.user_profiles.update("uprof_011CZkZCu8hGbp5mYRQgUmz9") +- `service_account_id: String` (query parameter) -puts(beta_user_profile) -``` + Return only versions written by the service account with this ID (`svac_...`). -##### Response (200) +- `session_id: String` (query parameter) -```json -{ - "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", - "created_at": "2026-03-15T10:00:00Z", - "metadata": {}, - "trust_grants": { - "cyber": { - "status": "active" - } - }, - "type": "user_profile", - "updated_at": "2026-03-15T10:00:00Z", - "access_type": "application", - "external_id": "user_12345", - "external_user_details": { - "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" - }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" -} -``` + Return only versions written by the session with this ID. -### Create Enrollment URL +- `view: BetaManagedAgentsMemoryView` (query parameter) -`beta.user_profiles.create_enrollment_url(user_profile_id, **kwargs) -> BetaUserProfileEnrollmentURL` + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. -**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` + With `full`, list operations return at most 20 items per page. -Create Enrollment URL + - `:basic` -#### Parameters + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. -- `user_profile_id: String` (path parameter) + - `:full` - The ID of the user profile to create an enrollment URL for (`uprof_...`). + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -80681,6 +80247,8 @@ Create Enrollment URL - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80689,167 +80257,220 @@ Create Enrollment URL #### Returns -- `class BetaUserProfileEnrollmentURL` +- `class BetaManagedAgentsMemoryVersion` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + One entry in a memory's history, recording a single change and who made it. - - `type: :enrollment_url` + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. - Object type. Always `enrollment_url`. + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. - - `expires_at: Time` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - When this enrollment URL expires, in RFC 3339 format. + - `type: :memory_version` - format: date-time + - `id: String` - - `url: String` + Unique identifier for this version (a `memver_...` value). - Enrollment URL to send to the end user. Valid until `expires_at`. + - `created_at: Time` -#### Example + When this version was written, in RFC 3339 format. -```ruby -require "anthropic" + format: date-time -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `memory_id: String` -beta_user_profile_enrollment_url = anthropic.beta.user_profiles.create_enrollment_url("uprof_011CZkZCu8hGbp5mYRQgUmz9") + The ID of the memory that this version belongs to (`mem_...`). -puts(beta_user_profile_enrollment_url) -``` + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. -##### Response (200) + - `memory_store_id: String` -```json -{ - "expires_at": "2026-03-15T10:15:00Z", - "type": "enrollment_url", - "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" -} -``` + ID of the memory store this version belongs to (a `memstore_...` value). -## Beta › Dreams + - `operation: BetaManagedAgentsMemoryVersionOperation` -### Create a Dream + The kind of mutation this version records: `created`, `modified`, or `deleted`. -`beta.dreams.create(**kwargs) -> BetaDream` + - `:created` -**POST** `/v1/dreams` + The memory was created. The first version in any memory's lineage. -Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. + - `:modified` -By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. + The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#create-a-dream) to learn more about creating dreams. + - `:deleted` -#### Parameters + The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. -- `inputs: Array[BetaDreamInput]` + - `content: String` - The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. + The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. - - `class BetaDreamMemoryStoreInput` + - `content_sha256: String` - The memory store that a dream reads, given as an entry in `inputs`. + Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `content_size_bytes: Integer` - - `type: :memory_store` + Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - - `memory_store_id: String` + format: int32 - The ID of the memory store for the dream to read (`memstore_...`). + - `created_by: BetaManagedAgentsActor` - The memory store must be in the same workspace as the dream and must not be archived. + Who made this change to the memory, or `null` if the author wasn't recorded. - minLength: 1 + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. - - `class BetaDreamSessionsInput` + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - The sessions that a dream reads, given as an entry in `inputs`. + - `class BetaManagedAgentsSessionActor` - - `type: :sessions` + An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. - - `session_ids: Array[String]` + - `type: :session_actor` - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + - `session_id: String` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. + minLength: 1 -- `model: String | BetaDreamModelConfigParam` + - `class BetaManagedAgentsAPIActor` - The model that runs a dream, given as a model ID or as an object with `id` and `speed`. + A direct caller of the public API, identified by the API key that authenticated the request. - In the object form, `speed` can only be `standard`. + - `type: :api_actor` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists the supported models. + - `api_key_id: String` - - `String = String` + ID of the API key (an `apikey_...` value). This identifies the key, not the secret. - - `class BetaDreamModelConfigParam` + minLength: 1 - The object form of `model` in a request to create a dream. + - `class BetaManagedAgentsUserActor` - - `id: String` + A human user, for example acting through the Anthropic Console. - The ID of the model to run the dream with. + - `type: :user_actor` - The ID can be 1 to 256 characters long. + - `user_id: String` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists the supported models. + ID of the user (a `user_...` value). - minLength: 1, maxLength: 256 + minLength: 1 - - `speed: :standard | :fast` + - `class BetaManagedAgentsServiceAccountActor` - How fast the model generates output for the dream. Defaults to `standard`. + A workload authenticated as a service account, for example via Workload Identity Federation. - Dreams accept only `standard`. + - `type: :service_account_actor` - - `:standard` + - `service_account_id: String` - - `:fast` + ID of the service account (a `svac_...` value). -- `instructions: String` + minLength: 1 - Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. + - `path: String` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#steer-with-instructions) for what kinds of instructions work well. + The memory's path at the time of this write. `null` if and only if `redacted_at` is set. - minLength: 1, maxLength: 4096 + - `redacted_at: Time` -- `output_behavior: BetaOutputBehavior` + When the version was redacted, in RFC 3339, or `null` if it hasn't been. - Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. - - `class BetaOutputBehaviorCreateNew` + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + format: date-time - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + - `redacted_by: BetaManagedAgentsActor` - - `type: :create_new` + Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). - - `class BetaOutputBehaviorUpdateExisting` +#### Example - Write the result into the input memory store instead of a new memory store. +```ruby +require "anthropic" - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :update_existing` +page = anthropic.beta.memory_stores.memory_versions.list("memory_store_id") - - `memory_store_id: String` +puts(page) +``` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. +##### Response (200) - minLength: 1 +```json +{ + "data": [ + { + "id": "memver_011CZkZBJq5dWxk9fVLNcPht", + "created_at": "2026-03-15T10:00:00Z", + "memory_id": "mem_011CZkZ9X2dpNyB6YbtxvB6e", + "memory_store_id": "memstore_01Wf3kQ8tZxB2mVr7HcJ4aNd", + "operation": "created", + "type": "memory_version", + "content": null, + "content_sha256": "ba7936d94c84d948a2232088f78228f175df6a8353b2d5bc9228eee5794a0024", + "content_size_bytes": 28, + "created_by": { + "session_id": "sesn_011CZkZAtmR3yMPDzynEDxu7", + "type": "session_actor" + }, + "path": "/preferences/formatting.md", + "redacted_at": null, + "redacted_by": { + "session_id": "x", + "type": "session_actor" + } + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` + +### Retrieve a Memory Version + +`beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` + +**GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` + +Retrieve a Memory Version + +#### Parameters + +- `memory_store_id: String` (path parameter) + + The ID of the memory store that holds the version (`memstore_...`). + +- `memory_version_id: String` (path parameter) + + The ID of the memory version to retrieve (`memver_...`). + +- `view: BetaManagedAgentsMemoryView` (query parameter) + + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. + + - `:basic` + + Return the object with `content` set to `null`. The `content_size_bytes` and `content_sha256` fields remain populated, so sync clients can diff without fetching content. + + - `:full` + + Return the object with `content` populated. On list endpoints, `view=full` caps `limit` at 20. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -80955,6 +80576,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80963,227 +80586,141 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `class BetaDream` +- `class BetaManagedAgentsMemoryVersion` - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + One entry in a memory's history, recording a single change and who made it. - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - - `type: :dream` + - `type: :memory_version` - `id: String` - The unique ID of the dream (`drm_...`). - - - `archived_at: Time` - - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. - - format: date-time + Unique identifier for this version (a `memver_...` value). - `created_at: Time` - When the dream was created, in RFC 3339. - - Lists of dreams are sorted by this time, newest first. - - format: date-time - - - `ended_at: Time` - - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. + When this version was written, in RFC 3339 format. format: date-time - - `error: BetaDreamError` - - Why the dream failed, or `null` if `status` isn't `failed`. - - - `type: String` - - A code for why the dream failed, such as `timeout` or `internal_error`. - - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - - - `message: String` - - A human-readable explanation of why the dream failed. - - - `inputs: Array[BetaDreamInput]` - - The sources that the dream reads, from the request that created it. - - - `class BetaDreamMemoryStoreInput` - - The memory store that a dream reads, given as an entry in `inputs`. - - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - - `type: :memory_store` - - - `memory_store_id: String` - - The ID of the memory store for the dream to read (`memstore_...`). - - The memory store must be in the same workspace as the dream and must not be archived. - - minLength: 1 - - - `class BetaDreamSessionsInput` - - The sessions that a dream reads, given as an entry in `inputs`. - - - `type: :sessions` + - `memory_id: String` - - `session_ids: Array[String]` + The ID of the memory that this version belongs to (`mem_...`). - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + - `memory_store_id: String` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. + ID of the memory store this version belongs to (a `memstore_...` value). - - `instructions: String` + - `operation: BetaManagedAgentsMemoryVersionOperation` - The guidance given when the dream was created, or `null` if none was given. + The kind of mutation this version records: `created`, `modified`, or `deleted`. - - `model: BetaDreamModelConfig` + - `:created` - The model that runs a dream, from the request that created it. + The memory was created. The first version in any memory's lineage. - The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. + - `:modified` - - `id: String` + The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. - The ID of the model that runs the dream, as given in the request that created it. + - `:deleted` - minLength: 1, maxLength: 256 + The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. - - `speed: :standard | :fast` + - `content: String` - How fast the model generates output for the dream. Always `standard`. + The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. - - `:standard` + - `content_sha256: String` - - `:fast` + Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - - `output_behavior: BetaOutputBehavior` + - `content_size_bytes: Integer` - Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - - `class BetaOutputBehaviorCreateNew` + format: int32 - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `created_by: BetaManagedAgentsActor` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + Who made this change to the memory, or `null` if the author wasn't recorded. - - `type: :create_new` + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. - - `class BetaOutputBehaviorUpdateExisting` + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - Write the result into the input memory store instead of a new memory store. + - `class BetaManagedAgentsSessionActor` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. - - `type: :update_existing` + - `type: :session_actor` - - `memory_store_id: String` + - `session_id: String` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. minLength: 1 - - `outputs: Array[BetaDreamOutput]` - - The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. - - The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. - - - `type: :memory_store` - - - `memory_store_id: String` - - The ID of the memory store that the dream writes its result to (`memstore_...`). - - With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. - - - `session_id: String` - - The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. - - Stream that session's events to follow what the dream reads and writes. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. - - - `status: BetaDreamStatus` - - Where a dream is in its lifecycle. - - `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. - - - `:pending` - - The dream is waiting to start and hasn't read its inputs yet. + - `class BetaManagedAgentsAPIActor` - `outputs` is empty and every `usage` count is zero. + A direct caller of the public API, identified by the API key that authenticated the request. - - `:running` + - `type: :api_actor` - The dream is reading its inputs and writing its result. + - `api_key_id: String` - `usage` updates while the dream has this status. + ID of the API key (an `apikey_...` value). This identifies the key, not the secret. - - `:completed` + minLength: 1 - The dream finished and its output memory store holds the complete result. + - `class BetaManagedAgentsUserActor` - - `:failed` + A human user, for example acting through the Anthropic Console. - The dream stopped with an error, which `error` describes. + - `type: :user_actor` - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + - `user_id: String` - - `:canceled` + ID of the user (a `user_...` value). - A cancel request stopped the dream before it reached `completed` or `failed`. + minLength: 1 - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + - `class BetaManagedAgentsServiceAccountActor` - - `usage: BetaDreamUsage` + A workload authenticated as a service account, for example via Workload Identity Federation. - The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + - `type: :service_account_actor` - - `cache_creation_input_tokens: Integer` + - `service_account_id: String` - The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + ID of the service account (a `svac_...` value). - format: int32 + minLength: 1 - - `cache_read_input_tokens: Integer` + - `path: String` - The dream's input tokens that were read from the prompt cache. + The memory's path at the time of this write. `null` if and only if `redacted_at` is set. - format: int32 + - `redacted_at: Time` - - `input_tokens: Integer` + When the version was redacted, in RFC 3339, or `null` if it hasn't been. - The dream's input tokens that weren't read from or written to the prompt cache. + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. - format: int32 + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. - - `output_tokens: Integer` + format: date-time - The tokens that the model generated for the dream. + - `redacted_by: BetaManagedAgentsActor` - format: int32 + Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). #### Example @@ -81192,9 +80729,12 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_dream = anthropic.beta.dreams.create(inputs: [{memory_store_id: "x", type: :memory_store}], model: "string") +beta_managed_agents_memory_version = anthropic.beta.memory_stores.memory_versions.retrieve( + "memory_version_id", + memory_store_id: "memory_store_id" +) -puts(beta_dream) +puts(beta_managed_agents_memory_version) ``` ##### Response (200) @@ -81202,124 +80742,48 @@ puts(beta_dream) ```json { "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", "created_at": "2019-12-27T18:11:19.117Z", - "ended_at": "2019-12-27T18:11:19.117Z", - "error": { - "message": "message", - "type": "type" - }, - "inputs": [ - { - "memory_store_id": "x", - "type": "memory_store" - } - ], - "instructions": "instructions", - "model": { - "id": "x", - "speed": "standard" - }, - "output_behavior": { - "type": "create_new" + "memory_id": "memory_id", + "memory_store_id": "memory_store_id", + "operation": "created", + "type": "memory_version", + "content": "content", + "content_sha256": "content_sha256", + "content_size_bytes": 0, + "created_by": { + "session_id": "x", + "type": "session_actor" }, - "outputs": [ - { - "memory_store_id": "memory_store_id", - "type": "memory_store" - } - ], - "session_id": "session_id", - "status": "pending", - "type": "dream", - "usage": { - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "output_tokens": 0 + "path": "path", + "redacted_at": "2019-12-27T18:11:19.117Z", + "redacted_by": { + "session_id": "x", + "type": "session_actor" } } ``` -### List Dreams - -`beta.dreams.list(**kwargs) -> PageCursor` - -**GET** `/v1/dreams` +### Redact a Memory Version -List the dreams in the workspace, newest first. +`beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` -Archived dreams are left out unless `include_archived` is `true`. +**POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#list-dreams) for how to page through dreams. +Redact a Memory Version #### Parameters -- `created_at_gt: Time` (query parameter) - - Return only dreams created after this time (exclusive), in RFC 3339. - - format: date-time - -- `created_at_lt: Time` (query parameter) - - Return only dreams created before this time (exclusive), in RFC 3339. - - format: date-time - -- `include_archived: bool` (query parameter) - - Whether to include archived dreams. Defaults to `false`. - -- `limit: Integer` (query parameter) - - The maximum number of dreams to return, from 1 to 100. Defaults to 20. - - format: int32 - -- `page: String` (query parameter) - - The cursor for the page to return, taken from `next_page` in a previous response. - - Leave it out to get the first page. - -- `statuses: Array[BetaDreamStatus]` (query parameter) - - Return only dreams that have one of these statuses. - - Repeat the parameter to give more than one status. Leave it out to return dreams of every status. - - - `:pending` - - The dream is waiting to start and hasn't read its inputs yet. - - `outputs` is empty and every `usage` count is zero. - - - `:running` - - The dream is reading its inputs and writing its result. - - `usage` updates while the dream has this status. - - - `:completed` - - The dream finished and its output memory store holds the complete result. - - - `:failed` - - The dream stopped with an error, which `error` describes. - - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. +- `memory_store_id: String` (path parameter) - - `:canceled` + The ID of the memory store that holds the version (`memstore_...`). - A cancel request stopped the dream before it reached `completed` or `failed`. +- `memory_version_id: String` (path parameter) - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + The ID of the memory version to redact (`memver_...`). - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + This endpoint is in beta: requests must send `agent-memory-2026-07-22` or `managed-agents-2026-04-01` in this header. - `String = String` @@ -81425,6 +80889,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81433,227 +80899,141 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `class BetaDream` +- `class BetaManagedAgentsMemoryVersion` - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + One entry in a memory's history, recording a single change and who made it. - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - - `type: :dream` + - `type: :memory_version` - `id: String` - The unique ID of the dream (`drm_...`). + Unique identifier for this version (a `memver_...` value). - - `archived_at: Time` + - `created_at: Time` - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. + When this version was written, in RFC 3339 format. format: date-time - - `created_at: Time` + - `memory_id: String` - When the dream was created, in RFC 3339. + The ID of the memory that this version belongs to (`mem_...`). - Lists of dreams are sorted by this time, newest first. + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - format: date-time + - `memory_store_id: String` - - `ended_at: Time` + ID of the memory store this version belongs to (a `memstore_...` value). - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. + - `operation: BetaManagedAgentsMemoryVersionOperation` - format: date-time + The kind of mutation this version records: `created`, `modified`, or `deleted`. - - `error: BetaDreamError` + - `:created` - Why the dream failed, or `null` if `status` isn't `failed`. + The memory was created. The first version in any memory's lineage. - - `type: String` + - `:modified` - A code for why the dream failed, such as `timeout` or `internal_error`. + The memory's `content`, `path`, or both were changed via update. Writes the agent makes through the filesystem mount also appear as `modified`. - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. + - `:deleted` - - `message: String` + The memory was deleted. The `content`, `content_size_bytes`, and `content_sha256` fields are `null` on this version. The preceding version, while it is retained, records the deleted content's size and hash. - A human-readable explanation of why the dream failed. + - `content: String` - - `inputs: Array[BetaDreamInput]` + The memory's UTF-8 text content as of this version. `null` when `view=basic`, when `operation` is `deleted`, or when `redacted_at` is set. - The sources that the dream reads, from the request that created it. + - `content_sha256: String` - - `class BetaDreamMemoryStoreInput` - - The memory store that a dream reads, given as an entry in `inputs`. - - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - - `type: :memory_store` - - - `memory_store_id: String` - - The ID of the memory store for the dream to read (`memstore_...`). - - The memory store must be in the same workspace as the dream and must not be archived. - - minLength: 1 - - - `class BetaDreamSessionsInput` - - The sessions that a dream reads, given as an entry in `inputs`. - - - `type: :sessions` - - - `session_ids: Array[String]` - - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). - - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. - - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. - - - `instructions: String` - - The guidance given when the dream was created, or `null` if none was given. - - - `model: BetaDreamModelConfig` - - The model that runs a dream, from the request that created it. - - The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. - - - `id: String` - - The ID of the model that runs the dream, as given in the request that created it. - - minLength: 1, maxLength: 256 - - - `speed: :standard | :fast` - - How fast the model generates output for the dream. Always `standard`. - - - `:standard` - - - `:fast` + Lowercase hex SHA-256 digest of `content` as of this version (64 characters). `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - - `output_behavior: BetaOutputBehavior` + - `content_size_bytes: Integer` - Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + Size of `content` in bytes as of this version. `null` when `redacted_at` is set or `operation` is `deleted`. Populated regardless of `view` otherwise. - - `class BetaOutputBehaviorCreateNew` + format: int32 - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `created_by: BetaManagedAgentsActor` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + Who made this change to the memory, or `null` if the author wasn't recorded. - - `type: :create_new` + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. - - `class BetaOutputBehaviorUpdateExisting` + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - Write the result into the input memory store instead of a new memory store. + - `class BetaManagedAgentsSessionActor` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + An agent acting during a session, for example through the session's mounted filesystem. It names the session itself, not the user or API key that started the session. - - `type: :update_existing` + - `type: :session_actor` - - `memory_store_id: String` + - `session_id: String` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + ID of the session (a `sesn_...` value). Look up the session via [Retrieve a session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) for further provenance. minLength: 1 - - `outputs: Array[BetaDreamOutput]` - - The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. - - The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. - - - `type: :memory_store` - - - `memory_store_id: String` - - The ID of the memory store that the dream writes its result to (`memstore_...`). - - With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. - - - `session_id: String` - - The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. - - Stream that session's events to follow what the dream reads and writes. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. - - - `status: BetaDreamStatus` - - Where a dream is in its lifecycle. - - `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. - - - `:pending` - - The dream is waiting to start and hasn't read its inputs yet. + - `class BetaManagedAgentsAPIActor` - `outputs` is empty and every `usage` count is zero. + A direct caller of the public API, identified by the API key that authenticated the request. - - `:running` + - `type: :api_actor` - The dream is reading its inputs and writing its result. + - `api_key_id: String` - `usage` updates while the dream has this status. + ID of the API key (an `apikey_...` value). This identifies the key, not the secret. - - `:completed` + minLength: 1 - The dream finished and its output memory store holds the complete result. + - `class BetaManagedAgentsUserActor` - - `:failed` + A human user, for example acting through the Anthropic Console. - The dream stopped with an error, which `error` describes. + - `type: :user_actor` - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + - `user_id: String` - - `:canceled` + ID of the user (a `user_...` value). - A cancel request stopped the dream before it reached `completed` or `failed`. + minLength: 1 - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + - `class BetaManagedAgentsServiceAccountActor` - - `usage: BetaDreamUsage` + A workload authenticated as a service account, for example via Workload Identity Federation. - The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + - `type: :service_account_actor` - - `cache_creation_input_tokens: Integer` + - `service_account_id: String` - The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + ID of the service account (a `svac_...` value). - format: int32 + minLength: 1 - - `cache_read_input_tokens: Integer` + - `path: String` - The dream's input tokens that were read from the prompt cache. + The memory's path at the time of this write. `null` if and only if `redacted_at` is set. - format: int32 + - `redacted_at: Time` - - `input_tokens: Integer` + When the version was redacted, in RFC 3339, or `null` if it hasn't been. - The dream's input tokens that weren't read from or written to the prompt cache. + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. - format: int32 + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. - - `output_tokens: Integer` + format: date-time - The tokens that the model generated for the dream. + - `redacted_by: BetaManagedAgentsActor` - format: int32 + Who redacted this version, or `null` if it has not been redacted. In practice always an `api_actor`, `user_actor`, or `service_account_actor` (agents do not have a redact capability). #### Example @@ -81662,81 +81042,67 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.dreams.list +beta_managed_agents_memory_version = anthropic.beta.memory_stores.memory_versions.redact( + "memory_version_id", + memory_store_id: "memory_store_id" +) -puts(page) +puts(beta_managed_agents_memory_version) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "ended_at": "2019-12-27T18:11:19.117Z", - "error": { - "message": "message", - "type": "type" - }, - "inputs": [ - { - "memory_store_id": "x", - "type": "memory_store" - } - ], - "instructions": "instructions", - "model": { - "id": "x", - "speed": "standard" - }, - "output_behavior": { - "type": "create_new" - }, - "outputs": [ - { - "memory_store_id": "memory_store_id", - "type": "memory_store" - } - ], - "session_id": "session_id", - "status": "pending", - "type": "dream", - "usage": { - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "output_tokens": 0 - } - } - ], - "next_page": "next_page" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "memory_id": "memory_id", + "memory_store_id": "memory_store_id", + "operation": "created", + "type": "memory_version", + "content": "content", + "content_sha256": "content_sha256", + "content_size_bytes": 0, + "created_by": { + "session_id": "x", + "type": "session_actor" + }, + "path": "path", + "redacted_at": "2019-12-27T18:11:19.117Z", + "redacted_by": { + "session_id": "x", + "type": "session_actor" + } } ``` -### Get a Dream - -`beta.dreams.retrieve(dream_id, **kwargs) -> BetaDream` +## Beta › Files -**GET** `/v1/dreams/{dream_id}` +### Upload File -Get a dream by ID to check its status, output memory store, and token usage. +`beta.files.upload(**kwargs) -> BetaFileMetadata` -Archived dreams are returned too. +**POST** `/v1/files` -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#track-progress) for how to poll a dream and what each status means. +Upload File #### Parameters -- `dream_id: String` (path parameter) +- `file: String` - The ID of the dream to get (`drm_...`). + The file to upload. Only the final path component of the part's `filename` is kept; an absent or empty `filename` is replaced with `unnamed` plus the extension for the file's stored `mime_type`, when known. + + format: binary + +- `expires_in_seconds: Integer` + + Seconds from upload until the file expires and its bytes become permanently unavailable. Must be between 3600 (one hour) and 7776000 (ninety days). + + minimum: 3600, maximum: 7776000 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -81842,6 +81208,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81850,305 +81218,358 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `class BetaDream` - - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. +- `class BetaFileMetadata` - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + - `type: :file` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + Object type. - - `type: :dream` + For files, this is always `"file"`. - `id: String` - The unique ID of the dream (`drm_...`). + Unique object identifier. - - `archived_at: Time` + The format and length of IDs may change over time. - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. + - `created_at: Time` + + RFC 3339 datetime string representing when the file was created. format: date-time - - `created_at: Time` + - `filename: String` - When the dream was created, in RFC 3339. + Original filename of the uploaded file. - Lists of dreams are sorted by this time, newest first. + minLength: 1, maxLength: 500 - format: date-time + - `mime_type: String` - - `ended_at: Time` + MIME type of the file. - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. + minLength: 1, maxLength: 255 - format: date-time + - `size_bytes: Integer` - - `error: BetaDreamError` + Size of the file in bytes. - Why the dream failed, or `null` if `status` isn't `failed`. + minimum: 0 - - `type: String` + - `downloadable: bool` - A code for why the dream failed, such as `timeout` or `internal_error`. + Whether the file can be downloaded. - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. + - `expires_at: Time` - - `message: String` + RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. - A human-readable explanation of why the dream failed. + format: date-time - - `inputs: Array[BetaDreamInput]` + - `scope: BetaFileScope` - The sources that the dream reads, from the request that created it. + The scope of this file, indicating the context in which it was created (e.g., a session). - - `class BetaDreamMemoryStoreInput` + - `type: :session` - The memory store that a dream reads, given as an entry in `inputs`. + The type of scope (e.g., `"session"`). - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `id: String` - - `type: :memory_store` + The ID of the scoping resource (e.g., the session ID). - - `memory_store_id: String` +#### Example - The ID of the memory store for the dream to read (`memstore_...`). +```ruby +require "anthropic" - The memory store must be in the same workspace as the dream and must not be archived. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - minLength: 1 +beta_file_metadata = anthropic.beta.files.upload(file: StringIO.new("Example data")) - - `class BetaDreamSessionsInput` +puts(beta_file_metadata) +``` - The sessions that a dream reads, given as an entry in `inputs`. +##### Response (200) - - `type: :sessions` +```json +{ + "id": "file_011CNha8iCJcU1wXNR6q4V8w", + "created_at": "2025-04-15T18:37:24.100435Z", + "filename": "document.pdf", + "mime_type": "application/pdf", + "size_bytes": 102400, + "type": "file", + "downloadable": false, + "expires_at": "2025-05-15T18:37:24.100435Z", + "scope": { + "id": "id", + "type": "session" + } +} +``` - - `session_ids: Array[String]` +### List Files - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). +`beta.files.list(**kwargs) -> PageCursor` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. +**GET** `/v1/files` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. +List Files - - `instructions: String` +#### Parameters - The guidance given when the dream was created, or `null` if none was given. +- `ids: Array[String]` (query parameter) - - `model: BetaDreamModelConfig` + Restrict the result set to Files whose `id` is in this list. At most 100 entries (after de-duplication). Mutually exclusive with `page` and `limit`. When supplied, the response is always a single page (`next_page` is null). IDs that do not resolve to a visible File — including deleted Files — are silently omitted. - The model that runs a dream, from the request that created it. +- `limit: Integer` (query parameter) - The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. + Number of items to return per page. - - `id: String` + Defaults to `20`. Ranges from `1` to `1000`. - The ID of the model that runs the dream, as given in the request that created it. + minimum: 1, maximum: 1000 - minLength: 1, maxLength: 256 +- `page: String` (query parameter) - - `speed: :standard | :fast` + Opaque page cursor returned in a prior list response's `next_page`. Prefixed `page_`. - How fast the model generates output for the dream. Always `standard`. +- `scope_id: String` (query parameter) - - `:standard` + Filter by scope ID. Only returns files associated with the specified scope (e.g., a session ID). - - `:fast` +- `betas: Array[AnthropicBeta]` (header parameter) - - `output_behavior: BetaOutputBehavior` + Optional header to specify the beta version(s) you want to use. - Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + - `String = String` - - `class BetaOutputBehaviorCreateNew` + - `:"message-batches-2024-09-24"` - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `:"prompt-caching-2024-07-31"` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + - `:"computer-use-2024-10-22"` - - `type: :create_new` + - `:"computer-use-2025-01-24"` - - `class BetaOutputBehaviorUpdateExisting` + - `:"pdfs-2024-09-25"` - Write the result into the input memory store instead of a new memory store. + - `:"token-counting-2024-11-01"` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + - `:"token-efficient-tools-2025-02-19"` - - `type: :update_existing` + - `:"output-128k-2025-02-19"` - - `memory_store_id: String` + - `:"files-api-2025-04-14"` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + - `:"mcp-client-2025-04-04"` - minLength: 1 + - `:"mcp-client-2025-11-20"` - - `outputs: Array[BetaDreamOutput]` + - `:"dev-full-thinking-2025-05-14"` - The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. + - `:"interleaved-thinking-2025-05-14"` - The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. + - `:"code-execution-2025-05-22"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :memory_store` + - `:"context-1m-2025-08-07"` - - `memory_store_id: String` + - `:"context-management-2025-06-27"` - The ID of the memory store that the dream writes its result to (`memstore_...`). + - `:"model-context-window-exceeded-2025-08-26"` - With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. + - `:"skills-2025-10-02"` - - `session_id: String` + - `:"fast-mode-2026-02-01"` - The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. + - `:"output-300k-2026-03-24"` - Stream that session's events to follow what the dream reads and writes. + - `:"user-profiles-2026-03-24"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. + - `:"user-profiles-2026-08-18"` - - `status: BetaDreamStatus` + - `:"user-profiles-2026-09-04"` - Where a dream is in its lifecycle. + - `:"advisor-tool-2026-03-01"` - `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. + - `:"managed-agents-2026-04-01"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. + - `:"cache-diagnosis-2026-04-07"` - - `:pending` + - `:"dreaming-2026-04-21"` - The dream is waiting to start and hasn't read its inputs yet. + - `:"thinking-token-count-2026-05-13"` - `outputs` is empty and every `usage` count is zero. + - `:"server-side-fallback-2026-06-01"` - - `:running` + - `:"server-side-fallback-2026-07-01"` - The dream is reading its inputs and writing its result. + - `:"fallback-credit-2026-06-01"` - `usage` updates while the dream has this status. + - `:"fallback-credit-2026-07-01"` - - `:completed` + - `:"agent-memory-2026-07-22"` - The dream finished and its output memory store holds the complete result. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:failed` + - `:"compact-2026-01-12"` - The dream stopped with an error, which `error` describes. + - `:"computer-use-2025-11-24"` - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + - `:"mcp-tunnels-2026-06-22"` - - `:canceled` + - `:"structured-outputs-2025-11-13"` - A cancel request stopped the dream before it reached `completed` or `failed`. + - `:"task-budgets-2026-03-13"` - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + - `:"thinking-display-updates-2026-08-18"` - - `usage: BetaDreamUsage` + - `:"ce-user-management-2026-07-13"` - The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + - `:"mid-conversation-output-config-2026-07-01"` - - `cache_creation_input_tokens: Integer` + - `:"thinking-binding-controls-2026-08-01"` - The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + - `:"mid-conversation-system-clear-at-2026-08-21"` - format: int32 + - `:"compact-2026-09-04"` - - `cache_read_input_tokens: Integer` + - `:"inline-tools-2026-09-15"` - The dream's input tokens that were read from the prompt cache. + - `:"mcp-client-2026-09-15"` - format: int32 + - `:"ce-plugins-2026-09-01"` - - `input_tokens: Integer` + - `:"spend-limit-reads-2026-09-26"` - The dream's input tokens that weren't read from or written to the prompt cache. + - `:"telemetry-destinations-2026-08-11"` - format: int32 + - `:"webhooks-2026-10-07"` - - `output_tokens: Integer` +- `workspace_id: String` (header parameter) - The tokens that the model generated for the dream. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - format: int32 + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. -#### Example +#### Returns -```ruby -require "anthropic" +- `class BetaFileMetadata` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :file` -beta_dream = anthropic.beta.dreams.retrieve("dream_id") + Object type. -puts(beta_dream) -``` + For files, this is always `"file"`. -##### Response (200) + - `id: String` -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "ended_at": "2019-12-27T18:11:19.117Z", - "error": { - "message": "message", - "type": "type" - }, - "inputs": [ - { - "memory_store_id": "x", - "type": "memory_store" - } - ], - "instructions": "instructions", - "model": { - "id": "x", - "speed": "standard" - }, - "output_behavior": { - "type": "create_new" - }, - "outputs": [ + Unique object identifier. + + The format and length of IDs may change over time. + + - `created_at: Time` + + RFC 3339 datetime string representing when the file was created. + + format: date-time + + - `filename: String` + + Original filename of the uploaded file. + + minLength: 1, maxLength: 500 + + - `mime_type: String` + + MIME type of the file. + + minLength: 1, maxLength: 255 + + - `size_bytes: Integer` + + Size of the file in bytes. + + minimum: 0 + + - `downloadable: bool` + + Whether the file can be downloaded. + + - `expires_at: Time` + + RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. + + format: date-time + + - `scope: BetaFileScope` + + The scope of this file, indicating the context in which it was created (e.g., a session). + + - `type: :session` + + The type of scope (e.g., `"session"`). + + - `id: String` + + The ID of the scoping resource (e.g., the session ID). + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.files.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ { - "memory_store_id": "memory_store_id", - "type": "memory_store" + "id": "file_011CNha8iCJcU1wXNR6q4V8w", + "created_at": "2025-04-15T18:37:24.100435Z", + "filename": "document.pdf", + "mime_type": "application/pdf", + "size_bytes": 102400, + "type": "file", + "downloadable": false, + "expires_at": "2025-05-15T18:37:24.100435Z", + "scope": { + "id": "id", + "type": "session" + } } ], - "session_id": "session_id", - "status": "pending", - "type": "dream", - "usage": { - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "output_tokens": 0 - } + "next_page": "next_page" } ``` -### Cancel a Dream - -`beta.dreams.cancel(dream_id, **kwargs) -> BetaDream` - -**POST** `/v1/dreams/{dream_id}/cancel` +### Download File -Stop a `pending` or `running` dream. +`beta.files.download(file_id, **kwargs) -> StringIO` -The response shows `status` as `canceled`, unless the dream reached `completed` or `failed` first. `usage` can keep changing after the response. Canceling a `canceled` dream returns it unchanged. Canceling a `completed` or `failed` dream returns a 400 error. +**GET** `/v1/files/{file_id}/content` -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#cancel-a-dream) to learn more about canceling dreams. +Download File #### Parameters -- `dream_id: String` (path parameter) +- `file_id: String` (path parameter) - The ID of the dream to cancel (`drm_...`). + ID of the File. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -82254,6 +81675,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82262,227 +81685,211 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `class BetaDream` - - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. - - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. - - - `type: :dream` - - - `id: String` - - The unique ID of the dream (`drm_...`). - - - `archived_at: Time` - - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. +- `StringIO` - format: date-time +#### Example - - `created_at: Time` +```ruby +require "anthropic" - When the dream was created, in RFC 3339. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Lists of dreams are sorted by this time, newest first. +response = anthropic.beta.files.download("file_id") - format: date-time +puts(response) +``` - - `ended_at: Time` +### Get File Metadata - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. +`beta.files.retrieve_metadata(file_id, **kwargs) -> BetaFileMetadata` - format: date-time +**GET** `/v1/files/{file_id}` - - `error: BetaDreamError` +Get File Metadata - Why the dream failed, or `null` if `status` isn't `failed`. +#### Parameters - - `type: String` +- `file_id: String` (path parameter) - A code for why the dream failed, such as `timeout` or `internal_error`. + ID of the File. - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. +- `betas: Array[AnthropicBeta]` (header parameter) - - `message: String` + Optional header to specify the beta version(s) you want to use. - A human-readable explanation of why the dream failed. + - `String = String` - - `inputs: Array[BetaDreamInput]` + - `:"message-batches-2024-09-24"` - The sources that the dream reads, from the request that created it. + - `:"prompt-caching-2024-07-31"` - - `class BetaDreamMemoryStoreInput` + - `:"computer-use-2024-10-22"` - The memory store that a dream reads, given as an entry in `inputs`. + - `:"computer-use-2025-01-24"` - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `:"pdfs-2024-09-25"` - - `type: :memory_store` + - `:"token-counting-2024-11-01"` - - `memory_store_id: String` + - `:"token-efficient-tools-2025-02-19"` - The ID of the memory store for the dream to read (`memstore_...`). + - `:"output-128k-2025-02-19"` - The memory store must be in the same workspace as the dream and must not be archived. + - `:"files-api-2025-04-14"` - minLength: 1 + - `:"mcp-client-2025-04-04"` - - `class BetaDreamSessionsInput` + - `:"mcp-client-2025-11-20"` - The sessions that a dream reads, given as an entry in `inputs`. + - `:"dev-full-thinking-2025-05-14"` - - `type: :sessions` + - `:"interleaved-thinking-2025-05-14"` - - `session_ids: Array[String]` + - `:"code-execution-2025-05-22"` - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + - `:"extended-cache-ttl-2025-04-11"` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + - `:"context-1m-2025-08-07"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. + - `:"context-management-2025-06-27"` - - `instructions: String` + - `:"model-context-window-exceeded-2025-08-26"` - The guidance given when the dream was created, or `null` if none was given. + - `:"skills-2025-10-02"` - - `model: BetaDreamModelConfig` + - `:"fast-mode-2026-02-01"` - The model that runs a dream, from the request that created it. + - `:"output-300k-2026-03-24"` - The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. + - `:"user-profiles-2026-03-24"` - - `id: String` + - `:"user-profiles-2026-08-18"` - The ID of the model that runs the dream, as given in the request that created it. + - `:"user-profiles-2026-09-04"` - minLength: 1, maxLength: 256 + - `:"advisor-tool-2026-03-01"` - - `speed: :standard | :fast` + - `:"managed-agents-2026-04-01"` - How fast the model generates output for the dream. Always `standard`. + - `:"cache-diagnosis-2026-04-07"` - - `:standard` + - `:"dreaming-2026-04-21"` - - `:fast` + - `:"thinking-token-count-2026-05-13"` - - `output_behavior: BetaOutputBehavior` + - `:"server-side-fallback-2026-06-01"` - Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + - `:"server-side-fallback-2026-07-01"` - - `class BetaOutputBehaviorCreateNew` + - `:"fallback-credit-2026-06-01"` - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `:"fallback-credit-2026-07-01"` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + - `:"agent-memory-2026-07-22"` - - `type: :create_new` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaOutputBehaviorUpdateExisting` + - `:"compact-2026-01-12"` - Write the result into the input memory store instead of a new memory store. + - `:"computer-use-2025-11-24"` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + - `:"mcp-tunnels-2026-06-22"` - - `type: :update_existing` + - `:"structured-outputs-2025-11-13"` - - `memory_store_id: String` + - `:"task-budgets-2026-03-13"` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + - `:"thinking-display-updates-2026-08-18"` - minLength: 1 + - `:"ce-user-management-2026-07-13"` - - `outputs: Array[BetaDreamOutput]` + - `:"mid-conversation-output-config-2026-07-01"` - The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. + - `:"thinking-binding-controls-2026-08-01"` - The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. + - `:"mid-conversation-system-clear-at-2026-08-21"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. + - `:"compact-2026-09-04"` - - `type: :memory_store` + - `:"inline-tools-2026-09-15"` - - `memory_store_id: String` + - `:"mcp-client-2026-09-15"` - The ID of the memory store that the dream writes its result to (`memstore_...`). + - `:"ce-plugins-2026-09-01"` - With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. + - `:"spend-limit-reads-2026-09-26"` - - `session_id: String` + - `:"telemetry-destinations-2026-08-11"` - The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. + - `:"webhooks-2026-10-07"` - Stream that session's events to follow what the dream reads and writes. +- `workspace_id: String` (header parameter) - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `status: BetaDreamStatus` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Where a dream is in its lifecycle. +#### Returns - `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. +- `class BetaFileMetadata` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. + - `type: :file` - - `:pending` + Object type. - The dream is waiting to start and hasn't read its inputs yet. + For files, this is always `"file"`. - `outputs` is empty and every `usage` count is zero. + - `id: String` - - `:running` + Unique object identifier. - The dream is reading its inputs and writing its result. + The format and length of IDs may change over time. - `usage` updates while the dream has this status. + - `created_at: Time` - - `:completed` + RFC 3339 datetime string representing when the file was created. - The dream finished and its output memory store holds the complete result. + format: date-time - - `:failed` + - `filename: String` - The dream stopped with an error, which `error` describes. + Original filename of the uploaded file. - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + minLength: 1, maxLength: 500 - - `:canceled` + - `mime_type: String` - A cancel request stopped the dream before it reached `completed` or `failed`. + MIME type of the file. - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + minLength: 1, maxLength: 255 - - `usage: BetaDreamUsage` + - `size_bytes: Integer` - The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + Size of the file in bytes. - - `cache_creation_input_tokens: Integer` + minimum: 0 - The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + - `downloadable: bool` - format: int32 + Whether the file can be downloaded. - - `cache_read_input_tokens: Integer` + - `expires_at: Time` - The dream's input tokens that were read from the prompt cache. + RFC 3339 datetime string representing when the file will expire and become unavailable for download. Null if the file does not expire. For files uploaded with `expires_in_seconds`, this is the upload time plus that value. - format: int32 + format: date-time - - `input_tokens: Integer` + - `scope: BetaFileScope` - The dream's input tokens that weren't read from or written to the prompt cache. + The scope of this file, indicating the context in which it was created (e.g., a session). - format: int32 + - `type: :session` - - `output_tokens: Integer` + The type of scope (e.g., `"session"`). - The tokens that the model generated for the dream. + - `id: String` - format: int32 + The ID of the scoping resource (e.g., the session ID). #### Example @@ -82491,76 +81898,47 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_dream = anthropic.beta.dreams.cancel("dream_id") +beta_file_metadata = anthropic.beta.files.retrieve_metadata("file_id") -puts(beta_dream) +puts(beta_file_metadata) ``` ##### Response (200) ```json { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "ended_at": "2019-12-27T18:11:19.117Z", - "error": { - "message": "message", - "type": "type" - }, - "inputs": [ - { - "memory_store_id": "x", - "type": "memory_store" - } - ], - "instructions": "instructions", - "model": { - "id": "x", - "speed": "standard" - }, - "output_behavior": { - "type": "create_new" - }, - "outputs": [ - { - "memory_store_id": "memory_store_id", - "type": "memory_store" - } - ], - "session_id": "session_id", - "status": "pending", - "type": "dream", - "usage": { - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "output_tokens": 0 + "id": "file_011CNha8iCJcU1wXNR6q4V8w", + "created_at": "2025-04-15T18:37:24.100435Z", + "filename": "document.pdf", + "mime_type": "application/pdf", + "size_bytes": 102400, + "type": "file", + "downloadable": false, + "expires_at": "2025-05-15T18:37:24.100435Z", + "scope": { + "id": "id", + "type": "session" } } ``` -### Archive a Dream - -`beta.dreams.archive(dream_id, **kwargs) -> BetaDream` - -**POST** `/v1/dreams/{dream_id}/archive` +### Delete File -Hide a `completed`, `failed`, or `canceled` dream from the default list of dreams. +`beta.files.delete(file_id, **kwargs) -> BetaDeletedFile` -Archiving a `pending` or `running` dream returns a 400 error, so cancel it first. Archiving an archived dream returns it unchanged. An archived dream can still be fetched by ID. Archiving can't be undone. +**DELETE** `/v1/files/{file_id}` -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#archive-a-dream) to learn more about archiving dreams. +Delete File #### Parameters -- `dream_id: String` (path parameter) +- `file_id: String` (path parameter) - The ID of the dream to archive (`drm_...`). + ID of the File. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -82666,6 +82044,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82674,227 +82054,246 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `class BetaDream` - - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. +- `class BetaDeletedFile` - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + - `type: :file_deleted` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + Deleted object type. - - `type: :dream` + For file deletion, this is always `"file_deleted"`. - `id: String` - The unique ID of the dream (`drm_...`). + ID of the deleted file. - - `archived_at: Time` +#### Example - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `created_at: Time` +beta_deleted_file = anthropic.beta.files.delete("file_id") - When the dream was created, in RFC 3339. +puts(beta_deleted_file) +``` - Lists of dreams are sorted by this time, newest first. +##### Response (200) - format: date-time +```json +{ + "id": "file_011CNha8iCJcU1wXNR6q4V8w", + "type": "file_deleted" +} +``` - - `ended_at: Time` +## Beta › Skills - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. +### Create Skill - format: date-time +`beta.skills.create(**kwargs) -> BetaSkill` - - `error: BetaDreamError` +**POST** `/v1/skills` - Why the dream failed, or `null` if `status` isn't `failed`. +Create Skill - - `type: String` +#### Parameters - A code for why the dream failed, such as `timeout` or `internal_error`. +- `files: Array[String]` - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. + Files to upload for the skill. - - `message: String` + All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. - A human-readable explanation of why the dream failed. +- `display_name: String` - - `inputs: Array[BetaDreamInput]` + Human-readable, single-line label for the Skill. Maximum 255 characters. + Always set: derived from the SKILL.md frontmatter `name` when omitted at + creation. Not unique. - The sources that the dream reads, from the request that created it. +- `betas: Array[AnthropicBeta]` (header parameter) - - `class BetaDreamMemoryStoreInput` + Optional header to specify the beta version(s) you want to use. - The memory store that a dream reads, given as an entry in `inputs`. + - `String = String` - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `:"message-batches-2024-09-24"` - - `type: :memory_store` + - `:"prompt-caching-2024-07-31"` - - `memory_store_id: String` + - `:"computer-use-2024-10-22"` - The ID of the memory store for the dream to read (`memstore_...`). + - `:"computer-use-2025-01-24"` - The memory store must be in the same workspace as the dream and must not be archived. + - `:"pdfs-2024-09-25"` - minLength: 1 + - `:"token-counting-2024-11-01"` - - `class BetaDreamSessionsInput` + - `:"token-efficient-tools-2025-02-19"` - The sessions that a dream reads, given as an entry in `inputs`. + - `:"output-128k-2025-02-19"` - - `type: :sessions` + - `:"files-api-2025-04-14"` - - `session_ids: Array[String]` + - `:"mcp-client-2025-04-04"` - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + - `:"mcp-client-2025-11-20"` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + - `:"dev-full-thinking-2025-05-14"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. + - `:"interleaved-thinking-2025-05-14"` - - `instructions: String` + - `:"code-execution-2025-05-22"` - The guidance given when the dream was created, or `null` if none was given. + - `:"extended-cache-ttl-2025-04-11"` - - `model: BetaDreamModelConfig` + - `:"context-1m-2025-08-07"` - The model that runs a dream, from the request that created it. + - `:"context-management-2025-06-27"` - The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. + - `:"model-context-window-exceeded-2025-08-26"` - - `id: String` + - `:"skills-2025-10-02"` - The ID of the model that runs the dream, as given in the request that created it. + - `:"fast-mode-2026-02-01"` - minLength: 1, maxLength: 256 + - `:"output-300k-2026-03-24"` - - `speed: :standard | :fast` + - `:"user-profiles-2026-03-24"` - How fast the model generates output for the dream. Always `standard`. + - `:"user-profiles-2026-08-18"` - - `:standard` + - `:"user-profiles-2026-09-04"` - - `:fast` + - `:"advisor-tool-2026-03-01"` - - `output_behavior: BetaOutputBehavior` + - `:"managed-agents-2026-04-01"` - Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaOutputBehaviorCreateNew` + - `:"dreaming-2026-04-21"` - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `:"thinking-token-count-2026-05-13"` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + - `:"server-side-fallback-2026-06-01"` - - `type: :create_new` + - `:"server-side-fallback-2026-07-01"` - - `class BetaOutputBehaviorUpdateExisting` + - `:"fallback-credit-2026-06-01"` - Write the result into the input memory store instead of a new memory store. + - `:"fallback-credit-2026-07-01"` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + - `:"agent-memory-2026-07-22"` - - `type: :update_existing` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `memory_store_id: String` + - `:"compact-2026-01-12"` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + - `:"computer-use-2025-11-24"` - minLength: 1 + - `:"mcp-tunnels-2026-06-22"` - - `outputs: Array[BetaDreamOutput]` + - `:"structured-outputs-2025-11-13"` - The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. + - `:"task-budgets-2026-03-13"` - The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. + - `:"thinking-display-updates-2026-08-18"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. + - `:"ce-user-management-2026-07-13"` - - `type: :memory_store` + - `:"mid-conversation-output-config-2026-07-01"` - - `memory_store_id: String` + - `:"thinking-binding-controls-2026-08-01"` - The ID of the memory store that the dream writes its result to (`memstore_...`). + - `:"mid-conversation-system-clear-at-2026-08-21"` - With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. + - `:"compact-2026-09-04"` - - `session_id: String` + - `:"inline-tools-2026-09-15"` - The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. + - `:"mcp-client-2026-09-15"` - Stream that session's events to follow what the dream reads and writes. + - `:"ce-plugins-2026-09-01"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. + - `:"spend-limit-reads-2026-09-26"` - - `status: BetaDreamStatus` + - `:"telemetry-destinations-2026-08-11"` - Where a dream is in its lifecycle. + - `:"webhooks-2026-10-07"` - `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. +- `workspace_id: String` (header parameter) - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `:pending` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - The dream is waiting to start and hasn't read its inputs yet. +#### Returns - `outputs` is empty and every `usage` count is zero. +- `class BetaSkill` - - `:running` + - `type: :skill` - The dream is reading its inputs and writing its result. + Object type. - `usage` updates while the dream has this status. + For Skills, this is always `"skill"`. - - `:completed` + - `id: String` - The dream finished and its output memory store holds the complete result. + Unique identifier for the skill. - - `:failed` + The format and length of IDs may change over time. - The dream stopped with an error, which `error` describes. + - `created_at: Time` - If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + ISO 8601 timestamp of when the skill was created. - - `:canceled` + format: date-time - A cancel request stopped the dream before it reached `completed` or `failed`. + - `display_name: String` - If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + Human-readable, single-line label for the Skill. Maximum 255 characters. + Always set: derived from the SKILL.md frontmatter `name` when omitted at + creation. Not unique. - - `usage: BetaDreamUsage` + - `latest_version_id: String` - The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. - - `cache_creation_input_tokens: Integer` + - `source: BetaSkillSource` - The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + Where the Skill comes from. - format: int32 + Possible values: - - `cache_read_input_tokens: Integer` + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin - The dream's input tokens that were read from the prompt cache. + - `type: :custom | :anthropic | :anthropic_example | :plugin` - format: int32 + Where the Skill comes from. - - `input_tokens: Integer` + Possible values: - The dream's input tokens that weren't read from or written to the prompt cache. + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin - format: int32 + - `:custom` - - `output_tokens: Integer` + - `:anthropic` - The tokens that the model generated for the dream. + - `:anthropic_example` - format: int32 + - `:plugin` + + - `updated_at: Time` + + ISO 8601 timestamp of when the skill was last updated. + + format: date-time #### Example @@ -82903,78 +82302,63 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_dream = anthropic.beta.dreams.archive("dream_id") +beta_skill = anthropic.beta.skills.create(files: [StringIO.new("Example data")]) -puts(beta_dream) +puts(beta_skill) ``` ##### Response (200) ```json { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "ended_at": "2019-12-27T18:11:19.117Z", - "error": { - "message": "message", - "type": "type" - }, - "inputs": [ - { - "memory_store_id": "x", - "type": "memory_store" - } - ], - "instructions": "instructions", - "model": { - "id": "x", - "speed": "standard" - }, - "output_behavior": { - "type": "create_new" + "id": "skill_01JAbcdefghijklmnopqrstuvw", + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "display_name", + "latest_version_id": "latest_version_id", + "source": { + "type": "custom" }, - "outputs": [ - { - "memory_store_id": "memory_store_id", - "type": "memory_store" - } - ], - "session_id": "session_id", - "status": "pending", - "type": "dream", - "usage": { - "cache_creation_input_tokens": 0, - "cache_read_input_tokens": 0, - "input_tokens": 0, - "output_tokens": 0 - } + "type": "skill", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -## Beta › Tunnels +### List Skills -### Create Tunnel +`beta.skills.list(**kwargs) -> PageCursor` -`beta.tunnels.create(**kwargs) -> BetaTunnel` +**GET** `/v1/skills` -**POST** `/v1/tunnels` +List Skills -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +#### Parameters -Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; it is not idempotent. The new tunnel rejects MCP traffic until at least one CA certificate is added. +- `limit: Integer` (query parameter) -#### Parameters + Number of results to return per page. -- `display_name: String` + Ranges from `1` to `1000`. Defaults to `20`. - Optional human-readable name for the tunnel (1-255 characters). + minimum: 1, maximum: 1000 - minLength: 1, maxLength: 255 +- `page: String` (query parameter) + + Pagination token for fetching a specific page of results. + + Pass the value from a previous response's `next_page` field to get the next page of results. + +- `source: String` (query parameter) + + Filter skills by source. + + If provided, only skills from the specified source will be returned: + + * `"custom"`: only return user-created skills + * `"anthropic"`: only return Anthropic-created skills - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -83080,6 +82464,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83088,35 +82474,71 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; #### Returns -- `class BetaTunnel` - - An MCP tunnel. +- `class BetaSkill` - - `type: :tunnel` + - `type: :skill` - - `id: String` + Object type. - Unique identifier for the tunnel, prefixed with `tnl_`. + For Skills, this is always `"skill"`. - - `archived_at: Time` + - `id: String` - RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. + Unique identifier for the skill. - format: date-time + The format and length of IDs may change over time. - `created_at: Time` - RFC 3339 datetime string indicating when the tunnel was created. + ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: String` - Human-readable name for the tunnel (1-255 characters). Null if unset. + Human-readable, single-line label for the Skill. Maximum 255 characters. + Always set: derived from the SKILL.md frontmatter `name` when omitted at + creation. Not unique. - - `domain: String` + - `latest_version_id: String` - Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. + ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. + + - `source: BetaSkillSource` + + Where the Skill comes from. + + Possible values: + + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin + + - `type: :custom | :anthropic | :anthropic_example | :plugin` + + Where the Skill comes from. + + Possible values: + + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin + + - `:custom` + + - `:anthropic` + + - `:anthropic_example` + + - `:plugin` + + - `updated_at: Time` + + ISO 8601 timestamp of when the skill was last updated. + + format: date-time #### Example @@ -83125,43 +82547,51 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel = anthropic.beta.tunnels.create +page = anthropic.beta.skills.list -puts(beta_tunnel) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "display_name": "display_name", - "domain": "domain", - "type": "tunnel" + "data": [ + { + "id": "skill_01JAbcdefghijklmnopqrstuvw", + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "display_name", + "latest_version_id": "latest_version_id", + "source": { + "type": "custom" + }, + "type": "skill", + "updated_at": "2024-10-30T23:58:27.427722Z" + } + ], + "next_page": "next_page" } ``` -### Get Tunnel - -`beta.tunnels.retrieve(tunnel_id, **kwargs) -> BetaTunnel` +### Get Skill -**GET** `/v1/tunnels/{tunnel_id}` +`beta.skills.retrieve(skill_id, **kwargs) -> BetaSkill` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**GET** `/v1/skills/{skill_id}` -Fetches a tunnel by ID. +Get Skill #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. + + The format and length of IDs may change over time. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -83267,6 +82697,8 @@ Fetches a tunnel by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83275,35 +82707,71 @@ Fetches a tunnel by ID. #### Returns -- `class BetaTunnel` - - An MCP tunnel. +- `class BetaSkill` - - `type: :tunnel` + - `type: :skill` - - `id: String` + Object type. - Unique identifier for the tunnel, prefixed with `tnl_`. + For Skills, this is always `"skill"`. - - `archived_at: Time` + - `id: String` - RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. + Unique identifier for the skill. - format: date-time + The format and length of IDs may change over time. - `created_at: Time` - RFC 3339 datetime string indicating when the tunnel was created. + ISO 8601 timestamp of when the skill was created. format: date-time - `display_name: String` - Human-readable name for the tunnel (1-255 characters). Null if unset. + Human-readable, single-line label for the Skill. Maximum 255 characters. + Always set: derived from the SKILL.md frontmatter `name` when omitted at + creation. Not unique. - - `domain: String` + - `latest_version_id: String` - Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. + ID of the newest Skill Version — what `latest` references resolve to. Always set: a Skill holds at least one version. + + - `source: BetaSkillSource` + + Where the Skill comes from. + + Possible values: + + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin + + - `type: :custom | :anthropic | :anthropic_example | :plugin` + + Where the Skill comes from. + + Possible values: + + * `"custom"`: authored by the platform user; private to their workspace + * `"anthropic"`: published by Anthropic; shared and read-only + * `"anthropic_example"`: Anthropic-published sample Skill + * `"plugin"`: resolved from an installed plugin + + - `:custom` + + - `:anthropic` + + - `:anthropic_example` + + - `:plugin` + + - `updated_at: Time` + + ISO 8601 timestamp of when the skill was last updated. + + format: date-time #### Example @@ -83312,53 +82780,46 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel = anthropic.beta.tunnels.retrieve("tunnel_id") +beta_skill = anthropic.beta.skills.retrieve("skill_id") -puts(beta_tunnel) +puts(beta_skill) ``` ##### Response (200) ```json { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", + "id": "skill_01JAbcdefghijklmnopqrstuvw", + "created_at": "2024-10-30T23:58:27.427722Z", "display_name": "display_name", - "domain": "domain", - "type": "tunnel" + "latest_version_id": "latest_version_id", + "source": { + "type": "custom" + }, + "type": "skill", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -### List Tunnels - -`beta.tunnels.list(**kwargs) -> PageCursor` +### Delete Skill -**GET** `/v1/tunnels` +`beta.skills.delete(skill_id, **kwargs) -> BetaDeletedSkill` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**DELETE** `/v1/skills/{skill_id}` -Lists tunnels. Results are ordered by creation time, newest first; archived tunnels are excluded unless include_archived is set. +Delete Skill #### Parameters -- `include_archived: bool` (query parameter) - - Whether to include archived tunnels in the results. Defaults to false. - -- `limit: Integer` (query parameter) - - Maximum number of tunnels to return per page. Defaults to 20, maximum 1000. - - format: int32 +- `skill_id: String` (path parameter) -- `page: String` (query parameter) + Unique identifier for the skill. - Opaque pagination cursor from a previous `list_tunnels` response. + The format and length of IDs may change over time. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -83464,6 +82925,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83472,35 +82935,19 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn #### Returns -- `class BetaTunnel` - - An MCP tunnel. - - - `type: :tunnel` - - - `id: String` - - Unique identifier for the tunnel, prefixed with `tnl_`. - - - `archived_at: Time` - - RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. - - format: date-time - - - `created_at: Time` +- `class BetaDeletedSkill` - RFC 3339 datetime string indicating when the tunnel was created. + - `type: :skill_deleted` - format: date-time + Deleted object type. - - `display_name: String` + For Skills, this is always `"skill_deleted"`. - Human-readable name for the tunnel (1-255 characters). Null if unset. + - `id: String` - - `domain: String` + Unique identifier for the skill. - Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. + The format and length of IDs may change over time. #### Example @@ -83509,50 +82956,49 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.tunnels.list +beta_deleted_skill = anthropic.beta.skills.delete("skill_id") -puts(page) +puts(beta_deleted_skill) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "display_name": "display_name", - "domain": "domain", - "type": "tunnel" - } - ], - "next_page": "next_page" + "id": "skill_01JAbcdefghijklmnopqrstuvw", + "type": "skill_deleted" } ``` -### Archive Tunnel +## Beta › Skills › Versions -`beta.tunnels.archive(tunnel_id, **kwargs) -> BetaTunnel` +### Create Skill Version -**POST** `/v1/tunnels/{tunnel_id}/archive` +`beta.skills.versions.create(skill_id, **kwargs) -> BetaSkillVersion` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**POST** `/v1/skills/{skill_id}/versions` -Archives a tunnel. Archival is irreversible: every non-archived certificate on the tunnel is archived in the same operation, the hostname is retired and never re-allocated, and the tunnel token is invalidated. Retrying against an already-archived tunnel returns the existing record unchanged. +Create Skill Version #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. -- `betas: Array[AnthropicBeta]` (header parameter) + The format and length of IDs may change over time. - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. +- `files: Array[String]` - - `String = String` + Files to upload for the skill. + + All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` - `:"message-batches-2024-09-24"` @@ -83656,6 +83102,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83664,35 +83112,43 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t #### Returns -- `class BetaTunnel` +- `class BetaSkillVersion` - An MCP tunnel. + - `type: :skill_version` - - `type: :tunnel` + Object type. + + For Skill Versions, this is always `"skill_version"`. - `id: String` - Unique identifier for the tunnel, prefixed with `tnl_`. + Unique identifier for this Skill Version. The id addresses the version in + paths and pins it in references. - - `archived_at: Time` + - `created_at: Time` - RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. + ISO 8601 timestamp of when the skill was created. format: date-time - - `created_at: Time` + - `description: String` - RFC 3339 datetime string indicating when the tunnel was created. + Description of the skill version. - format: date-time + This is extracted from the SKILL.md file in the skill upload. - - `display_name: String` + - `name: String` - Human-readable name for the tunnel (1-255 characters). Null if unset. + The Skill's immutable kebab-case slug, set at creation from the first + upload's SKILL.md frontmatter `name` (or its enclosing directory). Every + later upload must resolve to the same value. Also the top-level directory + of the Skill's mounted files and the base name of a downloaded archive. - - `domain: String` + - `skill_id: String` - Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. + Unique identifier for the skill. + + The format and length of IDs may change over time. #### Example @@ -83701,9 +83157,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel = anthropic.beta.tunnels.archive("tunnel_id") +beta_skill_version = anthropic.beta.skills.versions.create("skill_id", files: [StringIO.new("Example data")]) -puts(beta_tunnel) +puts(beta_skill_version) ``` ##### Response (200) @@ -83711,33 +83167,45 @@ puts(beta_tunnel) ```json { "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "display_name": "display_name", - "domain": "domain", - "type": "tunnel" + "created_at": "2024-10-30T23:58:27.427722Z", + "description": "description", + "name": "name", + "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", + "type": "skill_version" } ``` -### Reveal Tunnel Token - -`beta.tunnels.reveal_token(tunnel_id, **kwargs) -> BetaTunnelToken` +### List Skill Versions -**POST** `/v1/tunnels/{tunnel_id}/reveal_token` +`beta.skills.versions.list(skill_id, **kwargs) -> PageCursor` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**GET** `/v1/skills/{skill_id}/versions` -Reveals a tunnel's connector token. The value is fetched live on each call; Anthropic does not store it. Repeated calls return the same value until the token is rotated. Exposed as POST so the token does not appear in intermediary access logs. +List Skill Versions #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. + + The format and length of IDs may change over time. + +- `limit: Integer` (query parameter) + + Number of results to return per page. + + Ranges from `1` to `1000`. Defaults to `20`. + + minimum: 1, maximum: 1000 + +- `page: String` (query parameter) + + Optionally set to the `next_page` token from the previous response. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -83843,6 +83311,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83851,19 +83321,43 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth #### Returns -- `class BetaTunnelToken` +- `class BetaSkillVersion` - A tunnel's connector token. + - `type: :skill_version` - - `type: :tunnel_token` + Object type. + + For Skill Versions, this is always `"skill_version"`. - `id: String` - Stable identifier for the current token value. Changes when the token is rotated. + Unique identifier for this Skill Version. The id addresses the version in + paths and pins it in references. - - `tunnel_token: String` + - `created_at: Time` - The connector token used to run the tunnel. Treat as a credential. + ISO 8601 timestamp of when the skill was created. + + format: date-time + + - `description: String` + + Description of the skill version. + + This is extracted from the SKILL.md file in the skill upload. + + - `name: String` + + The Skill's immutable kebab-case slug, set at creation from the first + upload's SKILL.md frontmatter `name` (or its enclosing directory). Every + later upload must resolve to the same value. Also the top-level directory + of the Skill's mounted files and the base name of a downloaded archive. + + - `skill_id: String` + + Unique identifier for the skill. + + The format and length of IDs may change over time. #### Example @@ -83872,46 +83366,54 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel_token = anthropic.beta.tunnels.reveal_token("tunnel_id") +page = anthropic.beta.skills.versions.list("skill_id") -puts(beta_tunnel_token) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "tunnel_token": "tunnel_token", - "type": "tunnel_token" + "data": [ + { + "id": "id", + "created_at": "2024-10-30T23:58:27.427722Z", + "description": "description", + "name": "name", + "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", + "type": "skill_version" + } + ], + "next_page": "next_page" } ``` -### Rotate Tunnel Token - -`beta.tunnels.rotate_token(tunnel_id, **kwargs) -> BetaTunnelToken` +### Download Skill Version Content -**POST** `/v1/tunnels/{tunnel_id}/rotate_token` +`beta.skills.versions.download(version, **kwargs) -> StringIO` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**GET** `/v1/skills/{skill_id}/versions/{version}/content` -Rotates a tunnel's connector token. Rotation invalidates the current token for new connections and returns a fresh value; established connections are not severed. A connector restarted after rotation must use the new value. +Download a skill version's content as a zip archive. #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. -- `reason: String` + The format and length of IDs may change over time. - Optional free-text reason for the rotation, recorded for audit. +- `version: String` (path parameter) - maxLength: 1024 + Identifies the skill version by its version ID. + + Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -84017,6 +83519,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84025,19 +83529,7 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n #### Returns -- `class BetaTunnelToken` - - A tunnel's connector token. - - - `type: :tunnel_token` - - - `id: String` - - Stable identifier for the current token value. Changes when the token is rotated. - - - `tunnel_token: String` - - The connector token used to run the tunnel. Treat as a credential. +- `StringIO` #### Example @@ -84046,48 +83538,36 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel_token = anthropic.beta.tunnels.rotate_token("tunnel_id") - -puts(beta_tunnel_token) -``` - -##### Response (200) +response = anthropic.beta.skills.versions.download("version", skill_id: "skill_id") -```json -{ - "id": "id", - "tunnel_token": "tunnel_token", - "type": "tunnel_token" -} +puts(response) ``` -## Beta › Tunnels › Certificates - -### Create Tunnel Certificate - -`beta.tunnels.certificates.create(tunnel_id, **kwargs) -> BetaTunnelCertificate` +### Get Skill Version -**POST** `/v1/tunnels/{tunnel_id}/certificates` +`beta.skills.versions.retrieve(version, **kwargs) -> BetaSkillVersion` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**GET** `/v1/skills/{skill_id}/versions/{version}` -Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's server certificate against this CA when it terminates the inner TLS session. A tunnel holds at most two non-archived certificates. +Get Skill Version #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. -- `ca_certificate_pem: String` + The format and length of IDs may change over time. - PEM-encoded X.509 CA certificate. Must contain exactly one certificate and no private-key material. Maximum 8KB. +- `version: String` (path parameter) - maxLength: 8192 + Identifies the skill version: a version ID, or the literal `latest` for the skill's most recent version. + + Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -84193,6 +83673,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84201,41 +83683,43 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's #### Returns -- `class BetaTunnelCertificate` - - A CA certificate attached to a tunnel. - - - `type: :tunnel_certificate` +- `class BetaSkillVersion` - - `id: String` + - `type: :skill_version` - Unique identifier for the certificate, prefixed with `tcrt_`. + Object type. - - `archived_at: Time` + For Skill Versions, this is always `"skill_version"`. - RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. + - `id: String` - format: date-time + Unique identifier for this Skill Version. The id addresses the version in + paths and pins it in references. - `created_at: Time` - RFC 3339 datetime string indicating when the certificate was registered. + ISO 8601 timestamp of when the skill was created. format: date-time - - `expires_at: Time` + - `description: String` - RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. + Description of the skill version. - format: date-time + This is extracted from the SKILL.md file in the skill upload. - - `fingerprint: String` + - `name: String` - Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + The Skill's immutable kebab-case slug, set at creation from the first + upload's SKILL.md frontmatter `name` (or its enclosing directory). Every + later upload must resolve to the same value. Also the top-level directory + of the Skill's mounted files and the base name of a downloaded archive. - - `tunnel_id: String` + - `skill_id: String` - ID of the tunnel the certificate is registered against. + Unique identifier for the skill. + + The format and length of IDs may change over time. #### Example @@ -84244,9 +83728,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_tunnel_certificate = anthropic.beta.tunnels.certificates.create("tunnel_id", ca_certificate_pem: "ca_certificate_pem") +beta_skill_version = anthropic.beta.skills.versions.retrieve("version", skill_id: "skill_id") -puts(beta_tunnel_certificate) +puts(beta_skill_version) ``` ##### Response (200) @@ -84254,38 +83738,39 @@ puts(beta_tunnel_certificate) ```json { "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "expires_at": "2019-12-27T18:11:19.117Z", - "fingerprint": "fingerprint", - "tunnel_id": "tunnel_id", - "type": "tunnel_certificate" + "created_at": "2024-10-30T23:58:27.427722Z", + "description": "description", + "name": "name", + "skill_id": "skill_01JAbcdefghijklmnopqrstuvw", + "type": "skill_version" } ``` -### Get Tunnel Certificate - -`beta.tunnels.certificates.retrieve(certificate_id, **kwargs) -> BetaTunnelCertificate` +### Delete Skill Version -**GET** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}` +`beta.skills.versions.delete(version, **kwargs) -> BetaDeletedSkillVersion` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**DELETE** `/v1/skills/{skill_id}/versions/{version}` -Fetches a tunnel certificate by ID. +Delete Skill Version #### Parameters -- `tunnel_id: String` (path parameter) +- `skill_id: String` (path parameter) - ID of the tunnel (`tnl_...`). + Unique identifier for the skill. -- `certificate_id: String` (path parameter) + The format and length of IDs may change over time. - ID of the certificate (`tcrt_...`). +- `version: String` (path parameter) + + Identifies the skill version by its version ID. + + Requests carrying the `skills-2025-10-02` beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129"). - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -84391,6 +83876,8 @@ Fetches a tunnel certificate by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84399,101 +83886,149 @@ Fetches a tunnel certificate by ID. #### Returns -- `class BetaTunnelCertificate` +- `class BetaDeletedSkillVersion` - A CA certificate attached to a tunnel. + - `type: :skill_version_deleted` - - `type: :tunnel_certificate` + Deleted object type. + + For Skill Versions, this is always `"skill_version_deleted"`. - `id: String` - Unique identifier for the certificate, prefixed with `tcrt_`. + Unique identifier for this Skill Version. The id addresses the version in + paths and pins it in references. - - `archived_at: Time` +#### Example - RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `created_at: Time` +beta_deleted_skill_version = anthropic.beta.skills.versions.delete("version", skill_id: "skill_id") - RFC 3339 datetime string indicating when the certificate was registered. +puts(beta_deleted_skill_version) +``` - format: date-time +##### Response (200) - - `expires_at: Time` +```json +{ + "id": "id", + "type": "skill_version_deleted" +} +``` - RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. +## Beta › User Profiles - format: date-time +### Create User Profile - - `fingerprint: String` +`beta.user_profiles.create(**kwargs) -> BetaUserProfile` - Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. +**POST** `/v1/user_profiles` - - `tunnel_id: String` +Create User Profile - ID of the tunnel the certificate is registered against. +#### Parameters -#### Example +- `access_type: :application | :passthrough` -```ruby -require "anthropic" + How the platform uses the API for this entity. `application` (default): the profile represents an individual end-user of the platform's product. `passthrough`: the profile identifies a company the platform resells Claude access to. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:application` -beta_tunnel_certificate = anthropic.beta.tunnels.certificates.retrieve("certificate_id", tunnel_id: "tunnel_id") + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. -puts(beta_tunnel_certificate) -``` + - `:passthrough` -##### Response (200) + The user profile represents a company that the platform resells Claude access to. -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "expires_at": "2019-12-27T18:11:19.117Z", - "fingerprint": "fingerprint", - "tunnel_id": "tunnel_id", - "type": "tunnel_certificate" -} -``` +- `external_id: String` -### List Tunnel Certificates + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. -`beta.tunnels.certificates.list(tunnel_id, **kwargs) -> PageCursor` + minLength: 1, maxLength: 255 -**GET** `/v1/tunnels/{tunnel_id}/certificates` +- `external_user_details: BetaUserProfileExternalUserDetailsParams` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. -Lists the certificates registered on a tunnel. Archived certificates are excluded unless include_archived is set. + - `account_status: :active | :suspended | :blocked` -#### Parameters + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. -- `tunnel_id: String` (path parameter) + - `:active` - ID of the tunnel (`tnl_...`). + The platform has neither restricted nor barred the account of the entity that the user profile represents. -- `include_archived: bool` (query parameter) + - `:suspended` - Whether to include archived certificates in the results. Defaults to false. + The platform has restricted the account of the entity that the user profile represents and may restore it. -- `limit: Integer` (query parameter) + - `:blocked` - Maximum number of certificates to return per page. Defaults to 20, maximum 1000. + The platform has barred the account of the entity that the user profile represents. - format: int32 + - `country: String` -- `page: String` (query parameter) + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. - Opaque pagination cursor from a previous `list_tunnel_certificates` response. + - `email_hash: String` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: :individual | :business | :non_profit | :government` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `:individual` + + - `:business` + + - `:non_profit` + + - `:government` + + - `name_hash: String` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: Time` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: String` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +- `external_user_onboarded_at: Time` + + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. + + format: date-time + +- `metadata: Hash[Symbol, String]` + + Free-form key-value data to attach to this user profile. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. Values must be non-empty strings. + +- `name: String` + + Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a company the platform resells Claude access to (`access_type` `passthrough`), that company's name where known. Maximum 255 characters. + + minLength: 1, maxLength: 255 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -84599,6 +84134,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84607,41 +84144,129 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude #### Returns -- `class BetaTunnelCertificate` +- `class BetaUserProfile` - A CA certificate attached to a tunnel. + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. - - `type: :tunnel_certificate` + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: :user_profile` + + Object type. Always `user_profile`. - `id: String` - Unique identifier for the certificate, prefixed with `tcrt_`. + Unique identifier for this user profile, prefixed `uprof_`. - - `archived_at: Time` + - `created_at: Time` - RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. + When this user profile was created, in RFC 3339 format. format: date-time - - `created_at: Time` + - `metadata: Hash[Symbol, String]` - RFC 3339 datetime string indicating when the certificate was registered. + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - format: date-time + - `name: String` - - `expires_at: Time` + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. - RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` + + Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. + + - `status: :active | :pending | :rejected` + + Status of the trust grant. + + - `:active` + + - `:pending` + + - `:rejected` + + - `updated_at: Time` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - - `fingerprint: String` + - `access_type: :application | :passthrough` - Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - - `tunnel_id: String` + - `:application` - ID of the tunnel the certificate is registered against. + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `:passthrough` + + The user profile represents a company that the platform resells Claude access to. + + - `external_id: String` + + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. + + - `external_user_details: BetaUserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: :active | :suspended | :blocked` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `:active` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `:suspended` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `:blocked` + + The platform has barred the account of the entity that the user profile represents. + + - `country: String` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: String` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: :individual | :business | :non_profit | :government` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `:individual` + + - `:business` + + - `:non_profit` + + - `:government` + + - `name_hash: String` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: Time` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: String` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `external_user_onboarded_at: Time` + + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. + + format: date-time #### Example @@ -84650,53 +84275,90 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.tunnels.certificates.list("tunnel_id") +beta_user_profile = anthropic.beta.user_profiles.create -puts(page) +puts(beta_user_profile) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "expires_at": "2019-12-27T18:11:19.117Z", - "fingerprint": "fingerprint", - "tunnel_id": "tunnel_id", - "type": "tunnel_certificate" + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "created_at": "2026-03-15T10:00:00Z", + "metadata": {}, + "name": "Example User", + "trust_grants": { + "cyber": { + "status": "active" } - ], - "next_page": "next_page" + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z", + "access_type": "application", + "external_id": "user_12345", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` -### Archive Tunnel Certificate - -`beta.tunnels.certificates.archive(certificate_id, **kwargs) -> BetaTunnelCertificate` +### List User Profiles -**POST** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}/archive` +`beta.user_profiles.list(**kwargs) -> PageCursor` -The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. +**GET** `/v1/user_profiles` -Archives a tunnel certificate, removing it from the set Anthropic trusts for the tunnel. The certificate record is retained. Archiving the last non-archived certificate is permitted; the tunnel rejects MCP traffic until a new certificate is added. +List User Profiles #### Parameters -- `tunnel_id: String` (path parameter) +- `limit: Integer` (query parameter) - ID of the tunnel (`tnl_...`). + The maximum number of user profiles to return, from 1 to 100. Defaults to 20. -- `certificate_id: String` (path parameter) + format: int32 - ID of the certificate to archive (`tcrt_...`). +- `order: :asc | :desc` (query parameter) + + The sort direction, applied to the field that `order_by` selects. Defaults to `desc`. + + - `:asc` + + Oldest first when `order_by` is `created_at`, or names in ascending order when `order_by` is `name`. + + - `:desc` + + Newest first when `order_by` is `created_at`, or names in descending order when `order_by` is `name`. This is the default. + +- `order_by: :created_at | :name` (query parameter) + + The field to sort user profiles by, in the direction that `order` sets. Defaults to `created_at`. + + - `:created_at` + + Sort by when each user profile was created. This is the default. + + - `:name` + + Sort by `name`, ignoring the case of ASCII letters. Profiles without a name come last in either direction. + +- `page: String` (query parameter) + + The cursor for the page to return, taken from `next_page` in a previous response. + + Leave it out to get the first page. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -84802,6 +84464,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84810,97 +84474,129 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the #### Returns -- `class BetaTunnelCertificate` +- `class BetaUserProfile` - A CA certificate attached to a tunnel. + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. - - `type: :tunnel_certificate` + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: :user_profile` + + Object type. Always `user_profile`. - `id: String` - Unique identifier for the certificate, prefixed with `tcrt_`. + Unique identifier for this user profile, prefixed `uprof_`. - - `archived_at: Time` + - `created_at: Time` - RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. + When this user profile was created, in RFC 3339 format. format: date-time - - `created_at: Time` + - `metadata: Hash[Symbol, String]` - RFC 3339 datetime string indicating when the certificate was registered. + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - format: date-time + - `name: String` - - `expires_at: Time` + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. - RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` + + Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. + + - `status: :active | :pending | :rejected` + + Status of the trust grant. + + - `:active` + + - `:pending` + + - `:rejected` + + - `updated_at: Time` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - - `fingerprint: String` + - `access_type: :application | :passthrough` - Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - - `tunnel_id: String` + - `:application` - ID of the tunnel the certificate is registered against. + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. -#### Example + - `:passthrough` -```ruby -require "anthropic" + The user profile represents a company that the platform resells Claude access to. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `external_id: String` -beta_tunnel_certificate = anthropic.beta.tunnels.certificates.archive("certificate_id", tunnel_id: "tunnel_id") + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. -puts(beta_tunnel_certificate) -``` + - `external_user_details: BetaUserProfileExternalUserDetails` -##### Response (200) + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. -```json -{ - "id": "id", - "archived_at": "2019-12-27T18:11:19.117Z", - "created_at": "2019-12-27T18:11:19.117Z", - "expires_at": "2019-12-27T18:11:19.117Z", - "fingerprint": "fingerprint", - "tunnel_id": "tunnel_id", - "type": "tunnel_certificate" -} -``` + - `account_status: :active | :suspended | :blocked` -## Beta › Organization + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. -### Get Current Organization + - `:active` -`beta.organization.retrieve() -> BetaOrganization` + The platform has neither restricted nor barred the account of the entity that the user profile represents. -**GET** `/v1/organizations/me` + - `:suspended` -Retrieve information about the organization associated with the authenticated API key. + The platform has restricted the account of the entity that the user profile represents and may restore it. -#### Returns + - `:blocked` -- `class BetaOrganization` + The platform has barred the account of the entity that the user profile represents. - - `type: :organization` + - `country: String` - Object type. + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. - For Organizations, this is always `"organization"`. + - `email_hash: String` - - `id: String` + The platform-computed hash of the entity's email address. `null` until the platform supplies one. - ID of the Organization. + - `entity_type: :individual | :business | :non_profit | :government` - format: uuid + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. - - `name: String` + - `:individual` - Name of the Organization. + - `:business` + + - `:non_profit` + + - `:government` + + - `name_hash: String` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: Time` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: String` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `external_user_onboarded_at: Time` + + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. + + format: date-time #### Example @@ -84909,748 +84605,691 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_organization = anthropic.beta.organization.retrieve +page = anthropic.beta.user_profiles.list -puts(beta_organization) +puts(page) ``` ##### Response (200) ```json { - "id": "12345678-1234-5678-1234-567812345678", - "name": "Organization Name", - "type": "organization" + "data": [ + { + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "created_at": "2026-03-15T10:00:00Z", + "metadata": {}, + "name": "Example User", + "trust_grants": { + "cyber": { + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z", + "access_type": "application", + "external_id": "user_12345", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "external_user_onboarded_at": "2024-11-02T08:15:00Z" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" } ``` -## Beta › Organization › API Keys - -### List API Keys +### Get User Profile -`beta.organization.api_keys.list(**kwargs) -> Page` +`beta.user_profiles.retrieve(user_profile_id, **kwargs) -> BetaUserProfile` -**GET** `/v1/organizations/api_keys` +**GET** `/v1/user_profiles/{user_profile_id}` -List API Keys +Get User Profile #### Parameters -- `after_id: String` (query parameter) +- `user_profile_id: String` (path parameter) - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + The ID of the user profile to get (`uprof_...`). -- `before_id: String` (query parameter) +- `betas: Array[AnthropicBeta]` (header parameter) - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + Optional header to specify the beta version(s) you want to use. -- `created_by_user_id: String` (query parameter) + - `String = String` - Filter by the ID of the User who created the object. + - `:"message-batches-2024-09-24"` -- `limit: Integer` (query parameter) + - `:"prompt-caching-2024-07-31"` - Number of items to return per page. + - `:"computer-use-2024-10-22"` - Defaults to `20`. Ranges from `1` to `1000`. + - `:"computer-use-2025-01-24"` - minimum: 1, maximum: 1000 + - `:"pdfs-2024-09-25"` -- `status: :active | :archived | :expired | :inactive` (query parameter) + - `:"token-counting-2024-11-01"` - Filter by API key status. + - `:"token-efficient-tools-2025-02-19"` - - `:active` + - `:"output-128k-2025-02-19"` - - `:archived` + - `:"files-api-2025-04-14"` - - `:expired` + - `:"mcp-client-2025-04-04"` - - `:inactive` + - `:"mcp-client-2025-11-20"` -- `workspace_id: String` (query parameter) + - `:"dev-full-thinking-2025-05-14"` - Filter by Workspace ID. + - `:"interleaved-thinking-2025-05-14"` -#### Returns + - `:"code-execution-2025-05-22"` -- `class BetaAPIKey` + - `:"extended-cache-ttl-2025-04-11"` - - `type: :api_key` + - `:"context-1m-2025-08-07"` - Object type. + - `:"context-management-2025-06-27"` - For API Keys, this is always `"api_key"`. + - `:"model-context-window-exceeded-2025-08-26"` - - `id: String` + - `:"skills-2025-10-02"` - ID of the API key. + - `:"fast-mode-2026-02-01"` - - `created_at: Time` + - `:"output-300k-2026-03-24"` - RFC 3339 datetime string indicating when the API Key was created. + - `:"user-profiles-2026-03-24"` - format: date-time + - `:"user-profiles-2026-08-18"` - - `created_by: BetaAPIKeyCreatedBy` + - `:"user-profiles-2026-09-04"` - The ID and type of the actor that created the API key, or `null` when the - creator is not recorded (legacy, workload-identity-federated, or - system-created keys). + - `:"advisor-tool-2026-03-01"` - - `type: :service_account | :user` + - `:"managed-agents-2026-04-01"` - Type of the actor that created the object. + - `:"cache-diagnosis-2026-04-07"` - - `:service_account` + - `:"dreaming-2026-04-21"` - - `:user` + - `:"thinking-token-count-2026-05-13"` - - `id: String` + - `:"server-side-fallback-2026-06-01"` - ID of the actor that created the object. + - `:"server-side-fallback-2026-07-01"` - - `expires_at: Time` + - `:"fallback-credit-2026-06-01"` - RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. + - `:"fallback-credit-2026-07-01"` - format: date-time + - `:"agent-memory-2026-07-22"` - - `name: String` + - `:"mid-conversation-tool-changes-2026-07-01"` - Name of the API key. + - `:"compact-2026-01-12"` - - `partial_key_hint: String` + - `:"computer-use-2025-11-24"` - Partially redacted hint for the API key. + - `:"mcp-tunnels-2026-06-22"` - - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` + - `:"structured-outputs-2025-11-13"` - The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. + - `:"task-budgets-2026-03-13"` - - `class BetaAPIKeyUserActor` + - `:"thinking-display-updates-2026-08-18"` - - `type: :user_actor` + - `:"ce-user-management-2026-07-13"` - Principal type. Always `"user_actor"` for a User. + - `:"mid-conversation-output-config-2026-07-01"` - - `user_id: String` + - `:"thinking-binding-controls-2026-08-01"` - ID of the User the API key acts as. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaAPIKeyServiceAccountActor` + - `:"compact-2026-09-04"` - - `type: :service_account_actor` + - `:"inline-tools-2026-09-15"` - Principal type. Always `"service_account_actor"` for a Service Account. + - `:"mcp-client-2026-09-15"` - - `service_account_id: String` + - `:"ce-plugins-2026-09-01"` - ID of the Service Account the API key acts as. + - `:"spend-limit-reads-2026-09-26"` - - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` + - `:"telemetry-destinations-2026-08-11"` - Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. + - `:"webhooks-2026-10-07"` - - `class BetaAPIKeyOrganizationScope` +- `workspace_id: String` (header parameter) - - `type: :organization` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaAPIKeyWorkspaceScope` +#### Returns - - `type: :workspace` +- `class BetaUserProfile` - Scope type. Always `"workspace"`: the API key belongs to one Workspace. + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. - - `workspace_id: String` + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. - ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. + - `type: :user_profile` - - `status: :active | :archived | :expired | :inactive` + Object type. Always `user_profile`. - Status of the API key. + - `id: String` - - `:active` + Unique identifier for this user profile, prefixed `uprof_`. - - `:archived` + - `created_at: Time` - - `:expired` + When this user profile was created, in RFC 3339 format. - - `:inactive` + format: date-time - - `workspace_id: String` + - `metadata: Hash[Symbol, String]` - **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. + - `name: String` -#### Example + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. -```ruby -require "anthropic" + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. -page = anthropic.beta.organization.api_keys.list + - `status: :active | :pending | :rejected` -puts(page) -``` + Status of the trust grant. -##### Response (200) + - `:active` -```json -{ - "data": [ - { - "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by": { - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "type": "user" - }, - "expires_at": "2024-10-30T23:58:27.427722Z", - "name": "Developer Key", - "partial_key_hint": "sk-ant-api03-R2D...igAA", - "principal": { - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "scope": { - "type": "workspace", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" - }, - "status": "active", - "type": "api_key", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" -} -``` + - `:pending` -### Retrieve API Key (Admin API) + - `:rejected` -`beta.organization.api_keys.retrieve(api_key_id) -> BetaAPIKey` + - `updated_at: Time` -**GET** `/v1/organizations/api_keys/{api_key_id}` + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. -Retrieve information about a single API key in your organization, looked up by its ID. This Admin API endpoint requires an Admin API key, is intended for programmatic key management, and never returns the key's secret value. To view or create your own API keys, go to [API keys](https://platform.claude.com/settings/keys) in the Claude Console. + format: date-time -#### Parameters + - `access_type: :application | :passthrough` -- `api_key_id: String` (path parameter) + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - ID of the API key. + - `:application` -#### Returns + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. -- `class BetaAPIKey` + - `:passthrough` - - `type: :api_key` + The user profile represents a company that the platform resells Claude access to. - Object type. + - `external_id: String` - For API Keys, this is always `"api_key"`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - - `id: String` + - `external_user_details: BetaUserProfileExternalUserDetails` - ID of the API key. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - - `created_at: Time` + - `account_status: :active | :suspended | :blocked` - RFC 3339 datetime string indicating when the API Key was created. + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. - format: date-time + - `:active` - - `created_by: BetaAPIKeyCreatedBy` + The platform has neither restricted nor barred the account of the entity that the user profile represents. - The ID and type of the actor that created the API key, or `null` when the - creator is not recorded (legacy, workload-identity-federated, or - system-created keys). + - `:suspended` - - `type: :service_account | :user` + The platform has restricted the account of the entity that the user profile represents and may restore it. - Type of the actor that created the object. + - `:blocked` - - `:service_account` + The platform has barred the account of the entity that the user profile represents. - - `:user` + - `country: String` - - `id: String` + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. - ID of the actor that created the object. + - `email_hash: String` - - `expires_at: Time` + The platform-computed hash of the entity's email address. `null` until the platform supplies one. - RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. + - `entity_type: :individual | :business | :non_profit | :government` - format: date-time + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. - - `name: String` + - `:individual` - Name of the API key. + - `:business` - - `partial_key_hint: String` + - `:non_profit` - Partially redacted hint for the API key. + - `:government` - - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` + - `name_hash: String` - The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. + The platform-computed hash of the entity's name. `null` until the platform supplies one. - - `class BetaAPIKeyUserActor` + - `onboarded_at: Time` - - `type: :user_actor` + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. - Principal type. Always `"user_actor"` for a User. + format: date-time - - `user_id: String` + - `reference_id: String` - ID of the User the API key acts as. + The platform's own reference for the entity. `null` until the platform supplies one. - - `class BetaAPIKeyServiceAccountActor` + - `external_user_onboarded_at: Time` - - `type: :service_account_actor` + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. - Principal type. Always `"service_account_actor"` for a Service Account. + format: date-time - - `service_account_id: String` +#### Example - ID of the Service Account the API key acts as. +```ruby +require "anthropic" - - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. +beta_user_profile = anthropic.beta.user_profiles.retrieve("uprof_011CZkZCu8hGbp5mYRQgUmz9") - - `class BetaAPIKeyOrganizationScope` +puts(beta_user_profile) +``` - - `type: :organization` +##### Response (200) - Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "created_at": "2026-03-15T10:00:00Z", + "metadata": {}, + "name": "Example User", + "trust_grants": { + "cyber": { + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z", + "access_type": "application", + "external_id": "user_12345", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` - - `class BetaAPIKeyWorkspaceScope` +### Update User Profile - - `type: :workspace` +`beta.user_profiles.update(user_profile_id, **kwargs) -> BetaUserProfile` - Scope type. Always `"workspace"`: the API key belongs to one Workspace. +**POST** `/v1/user_profiles/{user_profile_id}` - - `workspace_id: String` +Update User Profile - ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. +#### Parameters - - `status: :active | :archived | :expired | :inactive` +- `user_profile_id: String` (path parameter) - Status of the API key. + The ID of the user profile to update (`uprof_...`). - - `:active` +- `access_type: :application | :passthrough` - - `:archived` + If present, replaces the stored access type. Omit to leave unchanged. - - `:expired` + - `:application` - - `:inactive` + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. - - `workspace_id: String` + - `:passthrough` - **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. + The user profile represents a company that the platform resells Claude access to. - Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. +- `external_id: String` -#### Example + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. -```ruby -require "anthropic" + minLength: 1, maxLength: 255 -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") +- `external_user_details: BetaUserProfileExternalUserDetailsParams` -beta_api_key = anthropic.beta.organization.api_keys.retrieve("api_key_id") + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. -puts(beta_api_key) -``` + - `account_status: :active | :suspended | :blocked` -##### Response (200) + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. -```json -{ - "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by": { - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "type": "user" - }, - "expires_at": "2024-10-30T23:58:27.427722Z", - "name": "Developer Key", - "partial_key_hint": "sk-ant-api03-R2D...igAA", - "principal": { - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "scope": { - "type": "workspace", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" - }, - "status": "active", - "type": "api_key", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" -} -``` + - `:active` -### Update API Key + The platform has neither restricted nor barred the account of the entity that the user profile represents. -`beta.organization.api_keys.update(api_key_id, **kwargs) -> BetaAPIKey` + - `:suspended` -**POST** `/v1/organizations/api_keys/{api_key_id}` + The platform has restricted the account of the entity that the user profile represents and may restore it. -Update API Key + - `:blocked` -#### Parameters + The platform has barred the account of the entity that the user profile represents. -- `api_key_id: String` (path parameter) + - `country: String` - ID of the API key. + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. -- `name: String` + - `email_hash: String` - Name of the API key. + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. - minLength: 1, maxLength: 500 + minLength: 1, maxLength: 255 -- `status: :active | :archived | :inactive` + - `entity_type: :individual | :business | :non_profit | :government` - Status of the API key. + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. - - `:active` + - `:individual` - - `:archived` + - `:business` - - `:inactive` + - `:non_profit` -#### Returns + - `:government` -- `class BetaAPIKey` + - `name_hash: String` - - `type: :api_key` + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. - Object type. + minLength: 1, maxLength: 255 - For API Keys, this is always `"api_key"`. + - `onboarded_at: Time` - - `id: String` + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. - ID of the API key. + format: date-time - - `created_at: Time` + - `reference_id: String` - RFC 3339 datetime string indicating when the API Key was created. + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. - format: date-time + minLength: 1, maxLength: 255 - - `created_by: BetaAPIKeyCreatedBy` +- `external_user_onboarded_at: Time` - The ID and type of the actor that created the API key, or `null` when the - creator is not recorded (legacy, workload-identity-federated, or - system-created keys). + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. - - `type: :service_account | :user` + format: date-time - Type of the actor that created the object. +- `metadata: Hash[Symbol, String]` - - `:service_account` + Key-value pairs to merge into the stored metadata. Keys provided overwrite existing values. To remove a key, set its value to an empty string. Keys not provided are left unchanged. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. - - `:user` +- `name: String` - - `id: String` + If present, replaces the stored name. Omit to leave unchanged. Maximum 255 characters. - ID of the actor that created the object. + minLength: 1, maxLength: 255 - - `expires_at: Time` +- `betas: Array[AnthropicBeta]` (header parameter) - RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. + Optional header to specify the beta version(s) you want to use. - format: date-time + - `String = String` - - `name: String` + - `:"message-batches-2024-09-24"` - Name of the API key. + - `:"prompt-caching-2024-07-31"` - - `partial_key_hint: String` + - `:"computer-use-2024-10-22"` - Partially redacted hint for the API key. + - `:"computer-use-2025-01-24"` - - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` + - `:"pdfs-2024-09-25"` - The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. + - `:"token-counting-2024-11-01"` - - `class BetaAPIKeyUserActor` + - `:"token-efficient-tools-2025-02-19"` - - `type: :user_actor` + - `:"output-128k-2025-02-19"` - Principal type. Always `"user_actor"` for a User. + - `:"files-api-2025-04-14"` - - `user_id: String` + - `:"mcp-client-2025-04-04"` - ID of the User the API key acts as. + - `:"mcp-client-2025-11-20"` - - `class BetaAPIKeyServiceAccountActor` + - `:"dev-full-thinking-2025-05-14"` - - `type: :service_account_actor` + - `:"interleaved-thinking-2025-05-14"` - Principal type. Always `"service_account_actor"` for a Service Account. + - `:"code-execution-2025-05-22"` - - `service_account_id: String` + - `:"extended-cache-ttl-2025-04-11"` - ID of the Service Account the API key acts as. + - `:"context-1m-2025-08-07"` - - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` + - `:"context-management-2025-06-27"` - Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. + - `:"model-context-window-exceeded-2025-08-26"` - - `class BetaAPIKeyOrganizationScope` + - `:"skills-2025-10-02"` - - `type: :organization` + - `:"fast-mode-2026-02-01"` - Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. + - `:"output-300k-2026-03-24"` - - `class BetaAPIKeyWorkspaceScope` + - `:"user-profiles-2026-03-24"` - - `type: :workspace` + - `:"user-profiles-2026-08-18"` - Scope type. Always `"workspace"`: the API key belongs to one Workspace. + - `:"user-profiles-2026-09-04"` - - `workspace_id: String` + - `:"advisor-tool-2026-03-01"` - ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. + - `:"managed-agents-2026-04-01"` - - `status: :active | :archived | :expired | :inactive` + - `:"cache-diagnosis-2026-04-07"` - Status of the API key. + - `:"dreaming-2026-04-21"` - - `:active` + - `:"thinking-token-count-2026-05-13"` - - `:archived` + - `:"server-side-fallback-2026-06-01"` - - `:expired` + - `:"server-side-fallback-2026-07-01"` - - `:inactive` + - `:"fallback-credit-2026-06-01"` - - `workspace_id: String` + - `:"fallback-credit-2026-07-01"` - **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. + - `:"agent-memory-2026-07-22"` - Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. + - `:"mid-conversation-tool-changes-2026-07-01"` -#### Example + - `:"compact-2026-01-12"` -```ruby -require "anthropic" + - `:"computer-use-2025-11-24"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_api_key = anthropic.beta.organization.api_keys.update("api_key_id") - -puts(beta_api_key) -``` - -##### Response (200) - -```json -{ - "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by": { - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "type": "user" - }, - "expires_at": "2024-10-30T23:58:27.427722Z", - "name": "Developer Key", - "partial_key_hint": "sk-ant-api03-R2D...igAA", - "principal": { - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "scope": { - "type": "workspace", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" - }, - "status": "active", - "type": "api_key", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" -} -``` - -## Beta › Organization › External Keys - -### Create External Key - -`beta.organization.external_keys.create(**kwargs) -> BetaExternalKey` - -**POST** `/v1/organizations/external_keys` - -Create an external key config owned by the caller's organization. + - `:"mcp-tunnels-2026-06-22"` -#### Parameters + - `:"structured-outputs-2025-11-13"` -- `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfigParam` + - `:"task-budgets-2026-03-13"` - KMS provider identity and auth coordinates. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaAWSExternalKeyConfig` + - `:"ce-user-management-2026-07-13"` - - `type: :aws` + - `:"mid-conversation-output-config-2026-07-01"` - - `kms_arn: String` + - `:"thinking-binding-controls-2026-08-01"` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + - `:"mid-conversation-system-clear-at-2026-08-21"` - maxLength: 2048 + - `:"compact-2026-09-04"` - - `region: String` + - `:"inline-tools-2026-09-15"` - AWS region. Derived from `kms_arn` if omitted. + - `:"mcp-client-2026-09-15"` - - `role_arn: String` + - `:"ce-plugins-2026-09-01"` - **Deprecated** + - `:"spend-limit-reads-2026-09-26"` - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + - `:"telemetry-destinations-2026-08-11"` - - `class BetaGCPExternalKeyConfig` + - `:"webhooks-2026-10-07"` - - `type: :gcp` +- `workspace_id: String` (header parameter) - - `key_name: String` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Full resource name of the Cloud KMS key. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `class BetaAzureExternalKeyConfigParam` +#### Returns - Azure Key Vault provider configuration. +- `class BetaUserProfile` - - `type: :azure` + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. - - `key_name: String` + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. - Name of the key within the vault. + - `type: :user_profile` - - `tenant_id: String` + Object type. Always `user_profile`. - Azure AD tenant ID. + - `id: String` - - `vault_uri: String` + Unique identifier for this user profile, prefixed `uprof_`. - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + - `created_at: Time` - - `client_id: String` + When this user profile was created, in RFC 3339 format. - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + format: date-time -- `display_name: String` + - `metadata: Hash[Symbol, String]` - Human-friendly display name. + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. - minLength: 1, maxLength: 255 + - `name: String` -- `geo: :us` + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. - Data residency geo. Only `us` is supported. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` -#### Returns + Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. -- `class BetaExternalKey` + - `status: :active | :pending | :rejected` - CMEK external key config belonging to the caller's organization. + Status of the trust grant. - Configs are organization-scoped. Workspaces attach to a config; once any - workspace references it, the provider fields become effectively immutable - (existing encrypted data needs the config for decrypt). + - `:active` - - `type: :external_key` + - `:pending` - - `id: String` + - `:rejected` - Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. + - `updated_at: Time` - - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. - Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. + format: date-time - - `class BetaExternalKeyAttachedAttachment` + - `access_type: :application | :passthrough` - - `type: :attached` + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - - `class BetaExternalKeyUnattachedAttachment` + - `:application` - - `type: :unattached` + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. - - `created_at: Time` + - `:passthrough` - format: date-time + The user profile represents a company that the platform resells Claude access to. - - `display_name: String` + - `external_id: String` - Human-friendly display name. Null if none was set. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - - `geo: String` + - `external_user_details: BetaUserProfileExternalUserDetails` - Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` + - `account_status: :active | :suspended | :blocked` - KMS provider identity and auth coordinates. + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. - - `class BetaAWSExternalKeyConfig` + - `:active` - - `type: :aws` + The platform has neither restricted nor barred the account of the entity that the user profile represents. - - `kms_arn: String` + - `:suspended` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + The platform has restricted the account of the entity that the user profile represents and may restore it. - maxLength: 2048 + - `:blocked` - - `region: String` + The platform has barred the account of the entity that the user profile represents. - AWS region. Derived from `kms_arn` if omitted. + - `country: String` - - `role_arn: String` + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. - **Deprecated** + - `email_hash: String` - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + The platform-computed hash of the entity's email address. `null` until the platform supplies one. - - `class BetaGCPExternalKeyConfig` + - `entity_type: :individual | :business | :non_profit | :government` - - `type: :gcp` + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. - - `key_name: String` + - `:individual` - Full resource name of the Cloud KMS key. + - `:business` - - `class BetaAzureExternalKeyConfig` + - `:non_profit` - - `type: :azure` + - `:government` - - `key_name: String` + - `name_hash: String` - Name of the key within the vault. + The platform-computed hash of the entity's name. `null` until the platform supplies one. - - `tenant_id: String` + - `onboarded_at: Time` - Azure AD tenant ID. + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. - - `vault_uri: String` + format: date-time - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + - `reference_id: String` - - `client_id: String` + The platform's own reference for the entity. `null` until the platform supplies one. - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + - `external_user_onboarded_at: Time` - - `updated_at: Time` + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time @@ -85661,153 +85300,182 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_external_key = anthropic.beta.organization.external_keys.create( - provider_config: {kms_arn: "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", type: :aws} -) +beta_user_profile = anthropic.beta.user_profiles.update("uprof_011CZkZCu8hGbp5mYRQgUmz9") -puts(beta_external_key) +puts(beta_user_profile) ``` ##### Response (200) ```json { - "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "attachment": { - "type": "attached" + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "created_at": "2026-03-15T10:00:00Z", + "metadata": {}, + "name": "Example User", + "trust_grants": { + "cyber": { + "status": "active" + } }, - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "prod-us-key", - "geo": "us", - "provider_config": { - "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", - "type": "aws", - "region": "us-east-1", - "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z", + "access_type": "application", + "external_id": "user_12345", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "type": "external_key", - "updated_at": "2024-10-30T23:58:27.427722Z" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` -### List External Keys - -`beta.organization.external_keys.list(**kwargs) -> PageCursor` +### Delete User Profile -**GET** `/v1/organizations/external_keys` +`beta.user_profiles.delete(user_profile_id, **kwargs) -> BetaDeletedUserProfile` -List external key configs in the caller's organization. +**DELETE** `/v1/user_profiles/{user_profile_id}` -Results are ordered by creation time (newest first). Use the -`next_page` cursor from the response to fetch subsequent pages. +Delete User Profile #### Parameters -- `limit: Integer` (query parameter) +- `user_profile_id: String` (path parameter) - Number of results per page. + The ID of the user profile to delete (`uprof_...`). - minimum: 1, maximum: 100 +- `betas: Array[AnthropicBeta]` (header parameter) -- `page: String` (query parameter) + Optional header to specify the beta version(s) you want to use. - Opaque cursor from a previous response's `next_page`. + - `String = String` -#### Returns + - `:"message-batches-2024-09-24"` -- `class BetaExternalKey` + - `:"prompt-caching-2024-07-31"` - CMEK external key config belonging to the caller's organization. + - `:"computer-use-2024-10-22"` - Configs are organization-scoped. Workspaces attach to a config; once any - workspace references it, the provider fields become effectively immutable - (existing encrypted data needs the config for decrypt). + - `:"computer-use-2025-01-24"` - - `type: :external_key` + - `:"pdfs-2024-09-25"` - - `id: String` + - `:"token-counting-2024-11-01"` - Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. + - `:"token-efficient-tools-2025-02-19"` - - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` + - `:"output-128k-2025-02-19"` - Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. + - `:"files-api-2025-04-14"` - - `class BetaExternalKeyAttachedAttachment` + - `:"mcp-client-2025-04-04"` - - `type: :attached` + - `:"mcp-client-2025-11-20"` - - `class BetaExternalKeyUnattachedAttachment` + - `:"dev-full-thinking-2025-05-14"` - - `type: :unattached` + - `:"interleaved-thinking-2025-05-14"` - - `created_at: Time` + - `:"code-execution-2025-05-22"` - format: date-time + - `:"extended-cache-ttl-2025-04-11"` - - `display_name: String` + - `:"context-1m-2025-08-07"` - Human-friendly display name. Null if none was set. + - `:"context-management-2025-06-27"` - - `geo: String` + - `:"model-context-window-exceeded-2025-08-26"` - Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. + - `:"skills-2025-10-02"` - - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` + - `:"fast-mode-2026-02-01"` - KMS provider identity and auth coordinates. + - `:"output-300k-2026-03-24"` - - `class BetaAWSExternalKeyConfig` + - `:"user-profiles-2026-03-24"` - - `type: :aws` + - `:"user-profiles-2026-08-18"` - - `kms_arn: String` + - `:"user-profiles-2026-09-04"` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + - `:"advisor-tool-2026-03-01"` - maxLength: 2048 + - `:"managed-agents-2026-04-01"` - - `region: String` + - `:"cache-diagnosis-2026-04-07"` - AWS region. Derived from `kms_arn` if omitted. + - `:"dreaming-2026-04-21"` - - `role_arn: String` + - `:"thinking-token-count-2026-05-13"` - **Deprecated** + - `:"server-side-fallback-2026-06-01"` - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + - `:"server-side-fallback-2026-07-01"` - - `class BetaGCPExternalKeyConfig` + - `:"fallback-credit-2026-06-01"` - - `type: :gcp` + - `:"fallback-credit-2026-07-01"` - - `key_name: String` + - `:"agent-memory-2026-07-22"` - Full resource name of the Cloud KMS key. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaAzureExternalKeyConfig` + - `:"compact-2026-01-12"` - - `type: :azure` + - `:"computer-use-2025-11-24"` - - `key_name: String` + - `:"mcp-tunnels-2026-06-22"` - Name of the key within the vault. + - `:"structured-outputs-2025-11-13"` - - `tenant_id: String` + - `:"task-budgets-2026-03-13"` - Azure AD tenant ID. + - `:"thinking-display-updates-2026-08-18"` - - `vault_uri: String` + - `:"ce-user-management-2026-07-13"` - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + - `:"mid-conversation-output-config-2026-07-01"` - - `client_id: String` + - `:"thinking-binding-controls-2026-08-01"` - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `updated_at: Time` + - `:"compact-2026-09-04"` - format: date-time + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaDeletedUserProfile` + + - `type: :user_profile_deleted` + + Object type. Always `user_profile_deleted`. + + - `id: String` + + Identifier of the deleted user profile, prefixed `uprof_`. #### Example @@ -85816,425 +85484,349 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.external_keys.list +beta_deleted_user_profile = anthropic.beta.user_profiles.delete("uprof_011CZkZCu8hGbp5mYRQgUmz9") -puts(page) +puts(beta_deleted_user_profile) ``` ##### Response (200) ```json { - "data": [ - { - "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "attachment": { - "type": "attached" - }, - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "prod-us-key", - "geo": "us", - "provider_config": { - "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", - "type": "aws", - "region": "us-east-1", - "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" - }, - "type": "external_key", - "updated_at": "2024-10-30T23:58:27.427722Z" - } - ], - "next_page": "next_page" + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` -### Get External Key +### Create Enrollment URL -`beta.organization.external_keys.retrieve(external_key_id) -> BetaExternalKey` +`beta.user_profiles.create_enrollment_url(user_profile_id, **kwargs) -> BetaUserProfileEnrollmentURL` -**GET** `/v1/organizations/external_keys/{external_key_id}` +**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` -Retrieve a single external key config in the caller's organization by ID. +Create Enrollment URL #### Parameters -- `external_key_id: String` (path parameter) +- `user_profile_id: String` (path parameter) - ID of the External Key. + The ID of the user profile to create an enrollment URL for (`uprof_...`). - maxLength: 2048 +- `betas: Array[AnthropicBeta]` (header parameter) -#### Returns + Optional header to specify the beta version(s) you want to use. -- `class BetaExternalKey` + - `String = String` - CMEK external key config belonging to the caller's organization. + - `:"message-batches-2024-09-24"` - Configs are organization-scoped. Workspaces attach to a config; once any - workspace references it, the provider fields become effectively immutable - (existing encrypted data needs the config for decrypt). + - `:"prompt-caching-2024-07-31"` - - `type: :external_key` + - `:"computer-use-2024-10-22"` - - `id: String` + - `:"computer-use-2025-01-24"` - Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. + - `:"pdfs-2024-09-25"` - - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` + - `:"token-counting-2024-11-01"` - Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. + - `:"token-efficient-tools-2025-02-19"` - - `class BetaExternalKeyAttachedAttachment` + - `:"output-128k-2025-02-19"` - - `type: :attached` + - `:"files-api-2025-04-14"` - - `class BetaExternalKeyUnattachedAttachment` + - `:"mcp-client-2025-04-04"` - - `type: :unattached` + - `:"mcp-client-2025-11-20"` - - `created_at: Time` + - `:"dev-full-thinking-2025-05-14"` - format: date-time + - `:"interleaved-thinking-2025-05-14"` - - `display_name: String` + - `:"code-execution-2025-05-22"` - Human-friendly display name. Null if none was set. + - `:"extended-cache-ttl-2025-04-11"` - - `geo: String` + - `:"context-1m-2025-08-07"` - Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. + - `:"context-management-2025-06-27"` - - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` + - `:"model-context-window-exceeded-2025-08-26"` - KMS provider identity and auth coordinates. + - `:"skills-2025-10-02"` - - `class BetaAWSExternalKeyConfig` + - `:"fast-mode-2026-02-01"` - - `type: :aws` + - `:"output-300k-2026-03-24"` - - `kms_arn: String` + - `:"user-profiles-2026-03-24"` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + - `:"user-profiles-2026-08-18"` - maxLength: 2048 + - `:"user-profiles-2026-09-04"` - - `region: String` + - `:"advisor-tool-2026-03-01"` - AWS region. Derived from `kms_arn` if omitted. + - `:"managed-agents-2026-04-01"` - - `role_arn: String` + - `:"cache-diagnosis-2026-04-07"` - **Deprecated** + - `:"dreaming-2026-04-21"` - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + - `:"thinking-token-count-2026-05-13"` - - `class BetaGCPExternalKeyConfig` + - `:"server-side-fallback-2026-06-01"` - - `type: :gcp` + - `:"server-side-fallback-2026-07-01"` - - `key_name: String` + - `:"fallback-credit-2026-06-01"` - Full resource name of the Cloud KMS key. + - `:"fallback-credit-2026-07-01"` - - `class BetaAzureExternalKeyConfig` + - `:"agent-memory-2026-07-22"` - - `type: :azure` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `key_name: String` + - `:"compact-2026-01-12"` - Name of the key within the vault. + - `:"computer-use-2025-11-24"` - - `tenant_id: String` + - `:"mcp-tunnels-2026-06-22"` - Azure AD tenant ID. + - `:"structured-outputs-2025-11-13"` - - `vault_uri: String` + - `:"task-budgets-2026-03-13"` - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + - `:"thinking-display-updates-2026-08-18"` - - `client_id: String` + - `:"ce-user-management-2026-07-13"` - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + - `:"mid-conversation-output-config-2026-07-01"` - - `updated_at: Time` + - `:"thinking-binding-controls-2026-08-01"` - format: date-time + - `:"mid-conversation-system-clear-at-2026-08-21"` -#### Example + - `:"compact-2026-09-04"` -```ruby -require "anthropic" + - `:"inline-tools-2026-09-15"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"mcp-client-2026-09-15"` -beta_external_key = anthropic.beta.organization.external_keys.retrieve("external_key_id") + - `:"ce-plugins-2026-09-01"` -puts(beta_external_key) -``` + - `:"spend-limit-reads-2026-09-26"` -##### Response (200) + - `:"telemetry-destinations-2026-08-11"` -```json -{ - "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "attachment": { - "type": "attached" - }, - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "prod-us-key", - "geo": "us", - "provider_config": { - "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", - "type": "aws", - "region": "us-east-1", - "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" - }, - "type": "external_key", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` - -### Update External Key - -`beta.organization.external_keys.update(external_key_id, **kwargs) -> BetaExternalKey` - -**POST** `/v1/organizations/external_keys/{external_key_id}` - -Partially update an external key config. Omitted fields are left unchanged. - -`display_name` is always editable. `geo` and `provider_config` cannot -be changed once any workspace references this config, because previously -encrypted data requires the original key identity to decrypt. - -#### Parameters + - `:"webhooks-2026-10-07"` -- `external_key_id: String` (path parameter) - - ID of the External Key. - - maxLength: 2048 - -- `display_name: String` - - Human-friendly display name. +- `workspace_id: String` (header parameter) - minLength: 1, maxLength: 255 + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). -- `geo: :us` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Data residency geo. Only `us` is supported. +#### Returns -- `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfigParam` +- `class BetaUserProfileEnrollmentURL` - KMS provider identity and auth coordinates. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - - `class BetaAWSExternalKeyConfig` + - `type: :enrollment_url` - - `type: :aws` + Object type. Always `enrollment_url`. - - `kms_arn: String` + - `expires_at: Time` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + When this enrollment URL expires, in RFC 3339 format. - maxLength: 2048 + format: date-time - - `region: String` + - `url: String` - AWS region. Derived from `kms_arn` if omitted. + Enrollment URL to send to the end user. Valid until `expires_at`. - - `role_arn: String` +#### Example - **Deprecated** +```ruby +require "anthropic" - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `class BetaGCPExternalKeyConfig` +beta_user_profile_enrollment_url = anthropic.beta.user_profiles.create_enrollment_url("uprof_011CZkZCu8hGbp5mYRQgUmz9") - - `type: :gcp` +puts(beta_user_profile_enrollment_url) +``` - - `key_name: String` +##### Response (200) - Full resource name of the Cloud KMS key. +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "enrollment_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` - - `class BetaAzureExternalKeyConfigParam` +## Beta › User Profiles › Action URLs - Azure Key Vault provider configuration. +### Create Action URL - - `type: :azure` +`beta.user_profiles.action_urls.create(user_profile_id, **kwargs) -> BetaUserProfileActionURL` - - `key_name: String` +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` - Name of the key within the vault. +Create Action URL - - `tenant_id: String` +#### Parameters - Azure AD tenant ID. +- `user_profile_id: String` (path parameter) - - `vault_uri: String` + The ID of the user profile the action is for (`uprof_...`). - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. +- `action: BetaUserProfileEnrollEndUserAction` - - `client_id: String` + The action that the person who opens the URL takes. - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + - `type: :enroll_end_user` -#### Returns +- `betas: Array[AnthropicBeta]` (header parameter) -- `class BetaExternalKey` + Optional header to specify the beta version(s) you want to use. - CMEK external key config belonging to the caller's organization. + - `String = String` - Configs are organization-scoped. Workspaces attach to a config; once any - workspace references it, the provider fields become effectively immutable - (existing encrypted data needs the config for decrypt). + - `:"message-batches-2024-09-24"` - - `type: :external_key` + - `:"prompt-caching-2024-07-31"` - - `id: String` + - `:"computer-use-2024-10-22"` - Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. + - `:"computer-use-2025-01-24"` - - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` + - `:"pdfs-2024-09-25"` - Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. + - `:"token-counting-2024-11-01"` - - `class BetaExternalKeyAttachedAttachment` + - `:"token-efficient-tools-2025-02-19"` - - `type: :attached` + - `:"output-128k-2025-02-19"` - - `class BetaExternalKeyUnattachedAttachment` + - `:"files-api-2025-04-14"` - - `type: :unattached` + - `:"mcp-client-2025-04-04"` - - `created_at: Time` + - `:"mcp-client-2025-11-20"` - format: date-time + - `:"dev-full-thinking-2025-05-14"` - - `display_name: String` + - `:"interleaved-thinking-2025-05-14"` - Human-friendly display name. Null if none was set. + - `:"code-execution-2025-05-22"` - - `geo: String` + - `:"extended-cache-ttl-2025-04-11"` - Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. + - `:"context-1m-2025-08-07"` - - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` + - `:"context-management-2025-06-27"` - KMS provider identity and auth coordinates. + - `:"model-context-window-exceeded-2025-08-26"` - - `class BetaAWSExternalKeyConfig` + - `:"skills-2025-10-02"` - - `type: :aws` + - `:"fast-mode-2026-02-01"` - - `kms_arn: String` + - `:"output-300k-2026-03-24"` - Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. + - `:"user-profiles-2026-03-24"` - maxLength: 2048 + - `:"user-profiles-2026-08-18"` - - `region: String` + - `:"user-profiles-2026-09-04"` - AWS region. Derived from `kms_arn` if omitted. + - `:"advisor-tool-2026-03-01"` - - `role_arn: String` + - `:"managed-agents-2026-04-01"` - **Deprecated** + - `:"cache-diagnosis-2026-04-07"` - IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + - `:"dreaming-2026-04-21"` - - `class BetaGCPExternalKeyConfig` + - `:"thinking-token-count-2026-05-13"` - - `type: :gcp` + - `:"server-side-fallback-2026-06-01"` - - `key_name: String` + - `:"server-side-fallback-2026-07-01"` - Full resource name of the Cloud KMS key. + - `:"fallback-credit-2026-06-01"` - - `class BetaAzureExternalKeyConfig` + - `:"fallback-credit-2026-07-01"` - - `type: :azure` + - `:"agent-memory-2026-07-22"` - - `key_name: String` + - `:"mid-conversation-tool-changes-2026-07-01"` - Name of the key within the vault. + - `:"compact-2026-01-12"` - - `tenant_id: String` + - `:"computer-use-2025-11-24"` - Azure AD tenant ID. + - `:"mcp-tunnels-2026-06-22"` - - `vault_uri: String` + - `:"structured-outputs-2025-11-13"` - Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + - `:"task-budgets-2026-03-13"` - - `client_id: String` + - `:"thinking-display-updates-2026-08-18"` - Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + - `:"ce-user-management-2026-07-13"` - - `updated_at: Time` + - `:"mid-conversation-output-config-2026-07-01"` - format: date-time + - `:"thinking-binding-controls-2026-08-01"` -#### Example + - `:"mid-conversation-system-clear-at-2026-08-21"` -```ruby -require "anthropic" + - `:"compact-2026-09-04"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"inline-tools-2026-09-15"` -beta_external_key = anthropic.beta.organization.external_keys.update("external_key_id") + - `:"mcp-client-2026-09-15"` -puts(beta_external_key) -``` + - `:"ce-plugins-2026-09-01"` -##### Response (200) + - `:"spend-limit-reads-2026-09-26"` -```json -{ - "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "attachment": { - "type": "attached" - }, - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "prod-us-key", - "geo": "us", - "provider_config": { - "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", - "type": "aws", - "region": "us-east-1", - "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" - }, - "type": "external_key", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` + - `:"telemetry-destinations-2026-08-11"` -### Delete External Key + - `:"webhooks-2026-10-07"` -`beta.organization.external_keys.delete(external_key_id) -> ExternalKeyDeleteResponse` +- `workspace_id: String` (header parameter) -**DELETE** `/v1/organizations/external_keys/{external_key_id}` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). -Delete an external key config. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. -The request is rejected if any workspace still references this config. +#### Returns -#### Parameters +- `class BetaUserProfileActionURL` -- `external_key_id: String` (path parameter) + A URL to give to the person who takes the requested action. - ID of the External Key. + - `type: :user_profile_action_url` - maxLength: 2048 + Object type. Always `user_profile_action_url`. -#### Returns + - `expires_at: Time` -- `class ExternalKeyDeleteResponse` + When the URL stops working, in RFC 3339 format. - - `type: :external_key_deleted` + format: date-time - - `id: String` + - `url: String` - ID of the deleted External Key. + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. #### Example @@ -86243,185 +85835,145 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -external_key = anthropic.beta.organization.external_keys.delete("external_key_id") +beta_user_profile_action_url = anthropic.beta.user_profiles.action_urls.create( + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + action: {type: :enroll_end_user} +) -puts(external_key) +puts(beta_user_profile_action_url) ``` ##### Response (200) ```json { - "id": "ekey_01AbCdEfGhIjKlMnOpQrStUv", - "type": "external_key_deleted" + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" } ``` -### Validate External Key +## Beta › Dreams -`beta.organization.external_keys.validate(external_key_id) -> ExternalKeyValidateResponse` +### Create a Dream -**POST** `/v1/organizations/external_keys/{external_key_id}/validate` +`beta.dreams.create(**kwargs) -> BetaDream` -Validate an external key config against the customer's KMS. +**POST** `/v1/dreams` -Anthropic performs an encrypt/decrypt roundtrip against the configured -KMS key and waits up to 30 seconds for the result. The response status is -`success` if the roundtrip succeeded, or `failure` with an error -message if it failed or timed out. +Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. -#### Parameters +By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. -- `external_key_id: String` (path parameter) +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#create-a-dream) to learn more about creating dreams. - ID of the External Key. +#### Parameters - maxLength: 2048 +- `inputs: Array[BetaDreamInput]` -#### Returns + The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. -- `class ExternalKeyValidateResponse` + - `class BetaDreamMemoryStoreInput` - Result of a validation roundtrip against the customer's KMS. + The memory store that a dream reads, given as an entry in `inputs`. - HTTP 200 for both outcomes — the operation completed; `status` says - whether the key works. + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `type: :external_key_validation` + - `type: :memory_store` - - `error: String` + - `memory_store_id: String` - Error message when status is `failure`. Null otherwise. + The ID of the memory store for the dream to read (`memstore_...`). - - `status: :failure | :success` + The memory store must be in the same workspace as the dream and must not be archived. - `success` — encrypt/decrypt roundtrip succeeded. `failure` — the roundtrip failed or timed out; see `error`. + minLength: 1 - - `:failure` + - `class BetaDreamSessionsInput` - - `:success` + The sessions that a dream reads, given as an entry in `inputs`. -#### Example + - `type: :sessions` -```ruby -require "anthropic" + - `session_ids: Array[String]` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). -response = anthropic.beta.organization.external_keys.validate("external_key_id") + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. -puts(response) -``` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. -##### Response (200) +- `model: String | BetaDreamModelConfigParam` -```json -{ - "error": "error", - "status": "failure", - "type": "external_key_validation" -} -``` + The model that runs a dream, given as a model ID or as an object with `id` and `speed`. -## Beta › Organization › Federation › Issuers + In the object form, `speed` can only be `standard`. -### Create Federation Issuer + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists the supported models. -`beta.organization.federation.issuers.create(**kwargs) -> BetaFederationIssuer` + - `String = String` -**POST** `/v1/organizations/federation_issuers` + - `class BetaDreamModelConfigParam` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + The object form of `model` in a request to create a dream. -Register an OIDC issuer that Anthropic will trust for workload identity -federation in your organization. + - `id: String` -The `jwks` field controls how the issuer's signing keys are obtained and -takes one of three shapes selected by `type`: `discovery` (resolve keys -through OIDC discovery), `explicit_url` (fetch keys from a fixed JWKS -URL), or `inline` (provide a static key set). When `jwks.type` is -`discovery` and no `discovery_base` is set, the issuer URL must be -publicly reachable over HTTPS so Anthropic can fetch the discovery -document; for `explicit_url` and `inline` modes the issuer URL is only -matched as the JWT's `iss` claim and is not fetched. + The ID of the model to run the dream with. -#### Parameters + The ID can be 1 to 256 characters long. -- `issuer_url: String` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists the supported models. - The `iss` claim value to match against. + minLength: 1, maxLength: 256 - minLength: 1 + - `speed: :standard | :fast` -- `name: String` + How fast the model generates output for the dream. Defaults to `standard`. - Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. + Dreams accept only `standard`. - minLength: 1, maxLength: 255 + - `:standard` -- `check_jti: bool` + - `:fast` - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Defaults to true. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. +- `instructions: String` -- `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. - How signing keys are obtained. Defaults to OIDC discovery. + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#steer-with-instructions) for what kinds of instructions work well. - - `class BetaJWKSDiscovery` + minLength: 1, maxLength: 4096 - JWKS via the issuer's OIDC discovery document. +- `output_behavior: BetaOutputBehavior` - - `type: :discovery` + Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. - - `ca_cert_pem: String` + - `class BetaOutputBehaviorCreateNew` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. - maxLength: 8192 + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. - - `discovery_base: String` + - `type: :create_new` - Set when the discovery URL differs from `issuer_url`. + - `class BetaOutputBehaviorUpdateExisting` - - `class BetaJWKSExplicitURL` + Write the result into the input memory store instead of a new memory store. - JWKS fetched from a fixed endpoint. + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. - - `type: :explicit_url` + - `type: :update_existing` - - `url: String` + - `memory_store_id: String` - JWKS endpoint. + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. minLength: 1 - - `ca_cert_pem: String` - - Optional custom CA (PEM) for TLS verification of the JWKS fetch. - - maxLength: 8192 - - - `class BetaJWKSInline` - - JWKS supplied directly; no network fetch. - - - `type: :inline` - - - `keys: Array[Hash[Symbol, untyped]]` - - Inline JWK objects. - - minItems: 1 - -- `max_jwt_lifetime_seconds: Integer` - - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Defaults to 3600 (1h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. - - minimum: 1, maximum: 176400 - - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. - `String = String` @@ -86527,142 +86079,237 @@ matched as the JWT's `iss` claim and is not fetched. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationIssuer` +- `class BetaDream` - Registered external OIDC identity provider. + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - Records an external IdP the organization trusts for the RFC 7523 - jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - `type: :federation_issuer` + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + + - `type: :dream` - `id: String` - Tagged ID of the federation issuer. + The unique ID of the dream (`drm_...`). - `archived_at: Time` - If set, all rules referencing this issuer reject token exchange. + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + When the dream was created, in RFC 3339. - - `check_jti: bool` + Lists of dreams are sorted by this time, newest first. - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + format: date-time - - `created_at: Time` + - `ended_at: Time` - When this issuer was created. + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. format: date-time - - `created_by_actor_id: String` + - `error: BetaDreamError` - Tagged ID (`user_`/`svac_`) of the actor that created this issuer. + Why the dream failed, or `null` if `status` isn't `failed`. - - `issuer_url: String` + - `type: String` - The `iss` claim value. Incoming JWTs must match exactly. + A code for why the dream failed, such as `timeout` or `internal_error`. - - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - How signing keys are obtained for signature verification. + - `message: String` - - `class BetaJWKSDiscovery` + A human-readable explanation of why the dream failed. - JWKS via the issuer's OIDC discovery document. + - `inputs: Array[BetaDreamInput]` - - `type: :discovery` + The sources that the dream reads, from the request that created it. - - `ca_cert_pem: String` + - `class BetaDreamMemoryStoreInput` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that a dream reads, given as an entry in `inputs`. - maxLength: 8192 + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `discovery_base: String` + - `type: :memory_store` - Set when the discovery URL differs from `issuer_url`. + - `memory_store_id: String` - - `class BetaJWKSExplicitURL` + The ID of the memory store for the dream to read (`memstore_...`). - JWKS fetched from a fixed endpoint. + The memory store must be in the same workspace as the dream and must not be archived. - - `type: :explicit_url` + minLength: 1 - - `url: String` + - `class BetaDreamSessionsInput` - JWKS endpoint. + The sessions that a dream reads, given as an entry in `inputs`. - minLength: 1 + - `type: :sessions` - - `ca_cert_pem: String` + - `session_ids: Array[String]` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). - maxLength: 8192 + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. - - `class BetaJWKSInline` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. - JWKS supplied directly; no network fetch. + - `instructions: String` - - `type: :inline` + The guidance given when the dream was created, or `null` if none was given. - - `keys: Array[Hash[Symbol, untyped]]` + - `model: BetaDreamModelConfig` - Inline JWK objects. + The model that runs a dream, from the request that created it. - minItems: 1 + The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. - - `jwks_polling_disabled_at: Time` + - `id: String` - If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + The ID of the model that runs the dream, as given in the request that created it. - format: date-time + minLength: 1, maxLength: 256 - - `max_jwt_lifetime_seconds: Integer` + - `speed: :standard | :fast` - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + How fast the model generates output for the dream. Always `standard`. - - `name: String` + - `:standard` - Admin-chosen slug identifier. + - `:fast` - - `poll_status: BetaFederationIssuerPollStatus` + - `output_behavior: BetaOutputBehavior` - Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. - - `consecutive_failures: Integer` + - `class BetaOutputBehaviorCreateNew` - Consecutive fetch failures since the last success. + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. - - `last_fetched_at: Time` + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. - When the last successful fetch completed. + - `type: :create_new` - format: date-time + - `class BetaOutputBehaviorUpdateExisting` - - `next_poll_at: Time` + Write the result into the input memory store instead of a new memory store. - When the next fetch is scheduled. Null if paused. + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. - format: date-time + - `type: :update_existing` - - `updated_at: Time` + - `memory_store_id: String` - When this issuer was last updated. + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. - format: date-time + minLength: 1 - - `updated_by_actor_id: String` + - `outputs: Array[BetaDreamOutput]` - Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. + + The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. + + - `type: :memory_store` + + - `memory_store_id: String` + + The ID of the memory store that the dream writes its result to (`memstore_...`). + + With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. + + - `session_id: String` + + The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. + + Stream that session's events to follow what the dream reads and writes. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. + + - `status: BetaDreamStatus` + + Where a dream is in its lifecycle. + + `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. + + - `:pending` + + The dream is waiting to start and hasn't read its inputs yet. + + `outputs` is empty and every `usage` count is zero. + + - `:running` + + The dream is reading its inputs and writing its result. + + `usage` updates while the dream has this status. + + - `:completed` + + The dream finished and its output memory store holds the complete result. + + - `:failed` + + The dream stopped with an error, which `error` describes. + + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + + - `:canceled` + + A cancel request stopped the dream before it reached `completed` or `failed`. + + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. + + - `usage: BetaDreamUsage` + + The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + + - `cache_creation_input_tokens: Integer` + + The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + + format: int32 + + - `cache_read_input_tokens: Integer` + + The dream's input tokens that were read from the prompt cache. + + format: int32 + + - `input_tokens: Integer` + + The dream's input tokens that weren't read from or written to the prompt cache. + + format: int32 + + - `output_tokens: Integer` + + The tokens that the model generated for the dream. + + format: int32 #### Example @@ -86671,72 +86318,134 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_issuer = anthropic.beta.organization.federation.issuers.create(issuer_url: "x", name: "x") +beta_dream = anthropic.beta.dreams.create(inputs: [{memory_store_id: "x", type: :memory_store}], model: "string") -puts(beta_federation_issuer) +puts(beta_dream) ``` ##### Response (200) ```json { - "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "id": "id", "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "check_jti": true, - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "issuer_url": "https://token.actions.githubusercontent.com", - "jwks": { - "type": "discovery", - "ca_cert_pem": "ca_cert_pem", - "discovery_base": "discovery_base" + "created_at": "2019-12-27T18:11:19.117Z", + "ended_at": "2019-12-27T18:11:19.117Z", + "error": { + "message": "message", + "type": "type" }, - "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", - "max_jwt_lifetime_seconds": 0, - "name": "github-actions", - "poll_status": { - "consecutive_failures": 0, - "last_fetched_at": "2019-12-27T18:11:19.117Z", - "next_poll_at": "2019-12-27T18:11:19.117Z" + "inputs": [ + { + "memory_store_id": "x", + "type": "memory_store" + } + ], + "instructions": "instructions", + "model": { + "id": "x", + "speed": "standard" }, - "type": "federation_issuer", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" + "output_behavior": { + "type": "create_new" + }, + "outputs": [ + { + "memory_store_id": "memory_store_id", + "type": "memory_store" + } + ], + "session_id": "session_id", + "status": "pending", + "type": "dream", + "usage": { + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "output_tokens": 0 + } } ``` -### List Federation Issuers +### List Dreams -`beta.organization.federation.issuers.list(**kwargs) -> PageCursor` +`beta.dreams.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/federation_issuers` +**GET** `/v1/dreams` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +List the dreams in the workspace, newest first. -List federation issuers in your organization. +Archived dreams are left out unless `include_archived` is `true`. -Archived issuers are excluded unless `include_archived=true`. +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#list-dreams) for how to page through dreams. #### Parameters +- `created_at_gt: Time` (query parameter) + + Return only dreams created after this time (exclusive), in RFC 3339. + + format: date-time + +- `created_at_lt: Time` (query parameter) + + Return only dreams created before this time (exclusive), in RFC 3339. + + format: date-time + - `include_archived: bool` (query parameter) - Include archived resources. Defaults to false. + Whether to include archived dreams. Defaults to `false`. - `limit: Integer` (query parameter) - Number of results per page. + The maximum number of dreams to return, from 1 to 100. Defaults to 20. - minimum: 1, maximum: 100 + format: int32 - `page: String` (query parameter) - Opaque cursor from a previous response's `next_page`. + The cursor for the page to return, taken from `next_page` in a previous response. + + Leave it out to get the first page. + +- `statuses: Array[BetaDreamStatus]` (query parameter) + + Return only dreams that have one of these statuses. + + Repeat the parameter to give more than one status. Leave it out to return dreams of every status. + + - `:pending` + + The dream is waiting to start and hasn't read its inputs yet. + + `outputs` is empty and every `usage` count is zero. + + - `:running` + + The dream is reading its inputs and writing its result. + + `usage` updates while the dream has this status. + + - `:completed` + + The dream finished and its output memory store holds the complete result. + + - `:failed` + + The dream stopped with an error, which `error` describes. + + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. + + - `:canceled` + + A cancel request stopped the dream before it reached `completed` or `failed`. + + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. - `String = String` @@ -86842,259 +86551,370 @@ Archived issuers are excluded unless `include_archived=true`. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationIssuer` +- `class BetaDream` - Registered external OIDC identity provider. + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - Records an external IdP the organization trusts for the RFC 7523 - jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - `type: :federation_issuer` + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + + - `type: :dream` - `id: String` - Tagged ID of the federation issuer. + The unique ID of the dream (`drm_...`). - `archived_at: Time` - If set, all rules referencing this issuer reject token exchange. + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + When the dream was created, in RFC 3339. - - `check_jti: bool` + Lists of dreams are sorted by this time, newest first. - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + format: date-time - - `created_at: Time` + - `ended_at: Time` - When this issuer was created. + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. format: date-time - - `created_by_actor_id: String` + - `error: BetaDreamError` - Tagged ID (`user_`/`svac_`) of the actor that created this issuer. + Why the dream failed, or `null` if `status` isn't `failed`. - - `issuer_url: String` + - `type: String` - The `iss` claim value. Incoming JWTs must match exactly. + A code for why the dream failed, such as `timeout` or `internal_error`. - - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - How signing keys are obtained for signature verification. + - `message: String` - - `class BetaJWKSDiscovery` + A human-readable explanation of why the dream failed. - JWKS via the issuer's OIDC discovery document. + - `inputs: Array[BetaDreamInput]` - - `type: :discovery` + The sources that the dream reads, from the request that created it. - - `ca_cert_pem: String` + - `class BetaDreamMemoryStoreInput` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that a dream reads, given as an entry in `inputs`. - maxLength: 8192 + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `discovery_base: String` + - `type: :memory_store` - Set when the discovery URL differs from `issuer_url`. + - `memory_store_id: String` - - `class BetaJWKSExplicitURL` + The ID of the memory store for the dream to read (`memstore_...`). - JWKS fetched from a fixed endpoint. + The memory store must be in the same workspace as the dream and must not be archived. - - `type: :explicit_url` + minLength: 1 - - `url: String` + - `class BetaDreamSessionsInput` - JWKS endpoint. + The sessions that a dream reads, given as an entry in `inputs`. - minLength: 1 + - `type: :sessions` - - `ca_cert_pem: String` + - `session_ids: Array[String]` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). - maxLength: 8192 + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. - - `class BetaJWKSInline` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. - JWKS supplied directly; no network fetch. + - `instructions: String` - - `type: :inline` + The guidance given when the dream was created, or `null` if none was given. - - `keys: Array[Hash[Symbol, untyped]]` + - `model: BetaDreamModelConfig` - Inline JWK objects. + The model that runs a dream, from the request that created it. - minItems: 1 + The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. - - `jwks_polling_disabled_at: Time` + - `id: String` - If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + The ID of the model that runs the dream, as given in the request that created it. - format: date-time + minLength: 1, maxLength: 256 - - `max_jwt_lifetime_seconds: Integer` + - `speed: :standard | :fast` - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + How fast the model generates output for the dream. Always `standard`. - - `name: String` + - `:standard` - Admin-chosen slug identifier. + - `:fast` - - `poll_status: BetaFederationIssuerPollStatus` + - `output_behavior: BetaOutputBehavior` - Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. - - `consecutive_failures: Integer` + - `class BetaOutputBehaviorCreateNew` - Consecutive fetch failures since the last success. + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. - - `last_fetched_at: Time` + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. - When the last successful fetch completed. + - `type: :create_new` - format: date-time + - `class BetaOutputBehaviorUpdateExisting` - - `next_poll_at: Time` + Write the result into the input memory store instead of a new memory store. - When the next fetch is scheduled. Null if paused. + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. - format: date-time + - `type: :update_existing` - - `updated_at: Time` + - `memory_store_id: String` - When this issuer was last updated. + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. - format: date-time + minLength: 1 - - `updated_by_actor_id: String` + - `outputs: Array[BetaDreamOutput]` - Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. -#### Example + The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. -```ruby -require "anthropic" + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :memory_store` -page = anthropic.beta.organization.federation.issuers.list + - `memory_store_id: String` -puts(page) -``` + The ID of the memory store that the dream writes its result to (`memstore_...`). -##### Response (200) + With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. -```json -{ - "data": [ - { - "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "check_jti": true, - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "issuer_url": "https://token.actions.githubusercontent.com", - "jwks": { - "type": "discovery", - "ca_cert_pem": "ca_cert_pem", - "discovery_base": "discovery_base" - }, - "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", - "max_jwt_lifetime_seconds": 0, - "name": "github-actions", - "poll_status": { - "consecutive_failures": 0, - "last_fetched_at": "2019-12-27T18:11:19.117Z", - "next_poll_at": "2019-12-27T18:11:19.117Z" - }, - "type": "federation_issuer", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" - } - ], - "next_page": "next_page" -} -``` + - `session_id: String` -### Get Federation Issuer + The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. -`beta.organization.federation.issuers.retrieve(federation_issuer_id, **kwargs) -> BetaFederationIssuer` + Stream that session's events to follow what the dream reads and writes. -**GET** `/v1/organizations/federation_issuers/{federation_issuer_id}` + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + - `status: BetaDreamStatus` -Retrieve a federation issuer by its ID (`fdis_...`). + Where a dream is in its lifecycle. -#### Parameters + `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. -- `federation_issuer_id: String` (path parameter) + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. - ID of the federation issuer. + - `:pending` -- `betas: Array[AnthropicBeta]` (header parameter) + The dream is waiting to start and hasn't read its inputs yet. - Optional header to specify the beta version(s) you want to use. + `outputs` is empty and every `usage` count is zero. - - `String = String` + - `:running` - - `:"message-batches-2024-09-24"` + The dream is reading its inputs and writing its result. - - `:"prompt-caching-2024-07-31"` + `usage` updates while the dream has this status. - - `:"computer-use-2024-10-22"` + - `:completed` - - `:"computer-use-2025-01-24"` + The dream finished and its output memory store holds the complete result. - - `:"pdfs-2024-09-25"` + - `:failed` - - `:"token-counting-2024-11-01"` + The dream stopped with an error, which `error` describes. - - `:"token-efficient-tools-2025-02-19"` + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. - - `:"output-128k-2025-02-19"` + - `:canceled` - - `:"files-api-2025-04-14"` + A cancel request stopped the dream before it reached `completed` or `failed`. - - `:"mcp-client-2025-04-04"` + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. - - `:"mcp-client-2025-11-20"` + - `usage: BetaDreamUsage` - - `:"dev-full-thinking-2025-05-14"` + The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. - - `:"interleaved-thinking-2025-05-14"` + - `cache_creation_input_tokens: Integer` - - `:"code-execution-2025-05-22"` + The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. - - `:"extended-cache-ttl-2025-04-11"` + format: int32 - - `:"context-1m-2025-08-07"` + - `cache_read_input_tokens: Integer` - - `:"context-management-2025-06-27"` + The dream's input tokens that were read from the prompt cache. - - `:"model-context-window-exceeded-2025-08-26"` + format: int32 - - `:"skills-2025-10-02"` + - `input_tokens: Integer` - - `:"fast-mode-2026-02-01"` + The dream's input tokens that weren't read from or written to the prompt cache. - - `:"output-300k-2026-03-24"` + format: int32 - - `:"user-profiles-2026-03-24"` + - `output_tokens: Integer` - - `:"user-profiles-2026-08-18"` + The tokens that the model generated for the dream. - - `:"user-profiles-2026-09-04"` + format: int32 + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.dreams.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "ended_at": "2019-12-27T18:11:19.117Z", + "error": { + "message": "message", + "type": "type" + }, + "inputs": [ + { + "memory_store_id": "x", + "type": "memory_store" + } + ], + "instructions": "instructions", + "model": { + "id": "x", + "speed": "standard" + }, + "output_behavior": { + "type": "create_new" + }, + "outputs": [ + { + "memory_store_id": "memory_store_id", + "type": "memory_store" + } + ], + "session_id": "session_id", + "status": "pending", + "type": "dream", + "usage": { + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "output_tokens": 0 + } + } + ], + "next_page": "next_page" +} +``` + +### Get a Dream + +`beta.dreams.retrieve(dream_id, **kwargs) -> BetaDream` + +**GET** `/v1/dreams/{dream_id}` + +Get a dream by ID to check its status, output memory store, and token usage. + +Archived dreams are returned too. + +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#track-progress) for how to poll a dream and what each status means. + +#### Parameters + +- `dream_id: String` (path parameter) + + The ID of the dream to get (`drm_...`). + +- `betas: Array[AnthropicBeta]` (header parameter) + + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + + - `String = String` + + - `:"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"` @@ -87150,287 +86970,315 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationIssuer` +- `class BetaDream` - Registered external OIDC identity provider. + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - Records an external IdP the organization trusts for the RFC 7523 - jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - `type: :federation_issuer` + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + + - `type: :dream` - `id: String` - Tagged ID of the federation issuer. + The unique ID of the dream (`drm_...`). - `archived_at: Time` - If set, all rules referencing this issuer reject token exchange. + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + When the dream was created, in RFC 3339. - - `check_jti: bool` + Lists of dreams are sorted by this time, newest first. - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + format: date-time - - `created_at: Time` + - `ended_at: Time` - When this issuer was created. + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. format: date-time - - `created_by_actor_id: String` + - `error: BetaDreamError` - Tagged ID (`user_`/`svac_`) of the actor that created this issuer. + Why the dream failed, or `null` if `status` isn't `failed`. - - `issuer_url: String` + - `type: String` - The `iss` claim value. Incoming JWTs must match exactly. + A code for why the dream failed, such as `timeout` or `internal_error`. - - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - How signing keys are obtained for signature verification. + - `message: String` - - `class BetaJWKSDiscovery` + A human-readable explanation of why the dream failed. - JWKS via the issuer's OIDC discovery document. + - `inputs: Array[BetaDreamInput]` - - `type: :discovery` + The sources that the dream reads, from the request that created it. - - `ca_cert_pem: String` + - `class BetaDreamMemoryStoreInput` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that a dream reads, given as an entry in `inputs`. - maxLength: 8192 + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `discovery_base: String` + - `type: :memory_store` - Set when the discovery URL differs from `issuer_url`. + - `memory_store_id: String` - - `class BetaJWKSExplicitURL` + The ID of the memory store for the dream to read (`memstore_...`). - JWKS fetched from a fixed endpoint. + The memory store must be in the same workspace as the dream and must not be archived. - - `type: :explicit_url` + minLength: 1 - - `url: String` + - `class BetaDreamSessionsInput` - JWKS endpoint. + The sessions that a dream reads, given as an entry in `inputs`. - minLength: 1 + - `type: :sessions` - - `ca_cert_pem: String` + - `session_ids: Array[String]` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). - maxLength: 8192 + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. - - `class BetaJWKSInline` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. - JWKS supplied directly; no network fetch. + - `instructions: String` - - `type: :inline` + The guidance given when the dream was created, or `null` if none was given. - - `keys: Array[Hash[Symbol, untyped]]` + - `model: BetaDreamModelConfig` - Inline JWK objects. + The model that runs a dream, from the request that created it. - minItems: 1 + The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. - - `jwks_polling_disabled_at: Time` + - `id: String` - If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + The ID of the model that runs the dream, as given in the request that created it. - format: date-time + minLength: 1, maxLength: 256 - - `max_jwt_lifetime_seconds: Integer` + - `speed: :standard | :fast` - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + How fast the model generates output for the dream. Always `standard`. - - `name: String` + - `:standard` - Admin-chosen slug identifier. + - `:fast` - - `poll_status: BetaFederationIssuerPollStatus` + - `output_behavior: BetaOutputBehavior` - Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. - - `consecutive_failures: Integer` + - `class BetaOutputBehaviorCreateNew` - Consecutive fetch failures since the last success. + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. - - `last_fetched_at: Time` + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. - When the last successful fetch completed. + - `type: :create_new` - format: date-time + - `class BetaOutputBehaviorUpdateExisting` - - `next_poll_at: Time` + Write the result into the input memory store instead of a new memory store. - When the next fetch is scheduled. Null if paused. + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. - format: date-time + - `type: :update_existing` - - `updated_at: Time` + - `memory_store_id: String` - When this issuer was last updated. + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. - format: date-time + minLength: 1 - - `updated_by_actor_id: String` + - `outputs: Array[BetaDreamOutput]` - Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. -#### Example + The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. -```ruby -require "anthropic" + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :memory_store` -beta_federation_issuer = anthropic.beta.organization.federation.issuers.retrieve("federation_issuer_id") + - `memory_store_id: String` -puts(beta_federation_issuer) -``` + The ID of the memory store that the dream writes its result to (`memstore_...`). -##### Response (200) + With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. -```json -{ - "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "check_jti": true, - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "issuer_url": "https://token.actions.githubusercontent.com", - "jwks": { - "type": "discovery", - "ca_cert_pem": "ca_cert_pem", - "discovery_base": "discovery_base" - }, - "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", - "max_jwt_lifetime_seconds": 0, - "name": "github-actions", - "poll_status": { - "consecutive_failures": 0, - "last_fetched_at": "2019-12-27T18:11:19.117Z", - "next_poll_at": "2019-12-27T18:11:19.117Z" - }, - "type": "federation_issuer", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" -} -``` + - `session_id: String` -### Update Federation Issuer + The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. -`beta.organization.federation.issuers.update(federation_issuer_id, **kwargs) -> BetaFederationIssuer` + Stream that session's events to follow what the dream reads and writes. -**POST** `/v1/organizations/federation_issuers/{federation_issuer_id}` + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + - `status: BetaDreamStatus` -Partially update a federation issuer. + Where a dream is in its lifecycle. -Setting `jwks` replaces the full JWKS shape at once. Archived issuers -cannot be updated; this returns 400. Create a new issuer instead. + `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. -Updating an issuer that backs a rule with a scope outside -`workspace:developer` or `workspace:inference` requires a Console -session. + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. -#### Parameters + - `:pending` -- `federation_issuer_id: String` (path parameter) + The dream is waiting to start and hasn't read its inputs yet. - ID of the federation issuer to update. + `outputs` is empty and every `usage` count is zero. -- `check_jti: bool` + - `:running` - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + The dream is reading its inputs and writing its result. -- `issuer_url: String` + `usage` updates while the dream has this status. - Replaces the `iss` claim value to match against. For discovery-mode issuers without a `discovery_base`, this is also the URL Anthropic fetches the OIDC discovery document and signing keys from, so changing it repoints the JWKS source. Changing the issuer URL to a well-known shared platform is rejected while any live rule under this issuer would not constrain tenant identity. + - `:completed` - minLength: 1 + The dream finished and its output memory store holds the complete result. -- `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + - `:failed` - Replaces the entire JWKS configuration. + The dream stopped with an error, which `error` describes. - - `class BetaJWKSDiscovery` + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. - JWKS via the issuer's OIDC discovery document. + - `:canceled` - - `type: :discovery` + A cancel request stopped the dream before it reached `completed` or `failed`. - - `ca_cert_pem: String` + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + - `usage: BetaDreamUsage` - maxLength: 8192 + The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. - - `discovery_base: String` + - `cache_creation_input_tokens: Integer` - Set when the discovery URL differs from `issuer_url`. + The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. - - `class BetaJWKSExplicitURL` + format: int32 - JWKS fetched from a fixed endpoint. + - `cache_read_input_tokens: Integer` - - `type: :explicit_url` + The dream's input tokens that were read from the prompt cache. - - `url: String` + format: int32 - JWKS endpoint. + - `input_tokens: Integer` - minLength: 1 + The dream's input tokens that weren't read from or written to the prompt cache. - - `ca_cert_pem: String` + format: int32 - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + - `output_tokens: Integer` - maxLength: 8192 + The tokens that the model generated for the dream. - - `class BetaJWKSInline` + format: int32 - JWKS supplied directly; no network fetch. +#### Example - - `type: :inline` +```ruby +require "anthropic" - - `keys: Array[Hash[Symbol, untyped]]` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Inline JWK objects. +beta_dream = anthropic.beta.dreams.retrieve("dream_id") - minItems: 1 +puts(beta_dream) +``` -- `jwks_polling_disabled: bool` +##### Response (200) - Only `false` is accepted, to re-enable polling after the system pauses it. Polling is paused automatically; sending `true` is rejected. +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "ended_at": "2019-12-27T18:11:19.117Z", + "error": { + "message": "message", + "type": "type" + }, + "inputs": [ + { + "memory_store_id": "x", + "type": "memory_store" + } + ], + "instructions": "instructions", + "model": { + "id": "x", + "speed": "standard" + }, + "output_behavior": { + "type": "create_new" + }, + "outputs": [ + { + "memory_store_id": "memory_store_id", + "type": "memory_store" + } + ], + "session_id": "session_id", + "status": "pending", + "type": "dream", + "usage": { + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "output_tokens": 0 + } +} +``` -- `max_jwt_lifetime_seconds: Integer` +### Cancel a Dream - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. +`beta.dreams.cancel(dream_id, **kwargs) -> BetaDream` - minimum: 1, maximum: 176400 +**POST** `/v1/dreams/{dream_id}/cancel` -- `name: String` +Stop a `pending` or `running` dream. - Replaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. +The response shows `status` as `canceled`, unless the dream reached `completed` or `failed` first. `usage` can keep changing after the response. Canceling a `canceled` dream returns it unchanged. Canceling a `completed` or `failed` dream returns a 400 error. - minLength: 1, maxLength: 255 +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#cancel-a-dream) to learn more about canceling dreams. + +#### Parameters + +- `dream_id: String` (path parameter) + + The ID of the dream to cancel (`drm_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. - `String = String` @@ -87536,142 +87384,237 @@ session. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationIssuer` +- `class BetaDream` - Registered external OIDC identity provider. + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - Records an external IdP the organization trusts for the RFC 7523 - jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - `type: :federation_issuer` + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + + - `type: :dream` - `id: String` - Tagged ID of the federation issuer. + The unique ID of the dream (`drm_...`). - `archived_at: Time` - If set, all rules referencing this issuer reject token exchange. + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + When the dream was created, in RFC 3339. - - `check_jti: bool` + Lists of dreams are sorted by this time, newest first. - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + format: date-time - - `created_at: Time` + - `ended_at: Time` - When this issuer was created. + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. format: date-time - - `created_by_actor_id: String` + - `error: BetaDreamError` - Tagged ID (`user_`/`svac_`) of the actor that created this issuer. + Why the dream failed, or `null` if `status` isn't `failed`. - - `issuer_url: String` + - `type: String` - The `iss` claim value. Incoming JWTs must match exactly. + A code for why the dream failed, such as `timeout` or `internal_error`. - - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - How signing keys are obtained for signature verification. + - `message: String` - - `class BetaJWKSDiscovery` + A human-readable explanation of why the dream failed. - JWKS via the issuer's OIDC discovery document. + - `inputs: Array[BetaDreamInput]` - - `type: :discovery` + The sources that the dream reads, from the request that created it. - - `ca_cert_pem: String` + - `class BetaDreamMemoryStoreInput` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that a dream reads, given as an entry in `inputs`. - maxLength: 8192 + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `discovery_base: String` + - `type: :memory_store` - Set when the discovery URL differs from `issuer_url`. + - `memory_store_id: String` - - `class BetaJWKSExplicitURL` + The ID of the memory store for the dream to read (`memstore_...`). - JWKS fetched from a fixed endpoint. + The memory store must be in the same workspace as the dream and must not be archived. - - `type: :explicit_url` + minLength: 1 - - `url: String` + - `class BetaDreamSessionsInput` - JWKS endpoint. + The sessions that a dream reads, given as an entry in `inputs`. + + - `type: :sessions` + + - `session_ids: Array[String]` + + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. + + - `instructions: String` + + The guidance given when the dream was created, or `null` if none was given. + + - `model: BetaDreamModelConfig` + + The model that runs a dream, from the request that created it. + + The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. + + - `id: String` + + The ID of the model that runs the dream, as given in the request that created it. + + minLength: 1, maxLength: 256 + + - `speed: :standard | :fast` + + How fast the model generates output for the dream. Always `standard`. + + - `:standard` + + - `:fast` + + - `output_behavior: BetaOutputBehavior` + + Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. + + - `class BetaOutputBehaviorCreateNew` + + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + + - `type: :create_new` + + - `class BetaOutputBehaviorUpdateExisting` + + Write the result into the input memory store instead of a new memory store. + + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + + - `type: :update_existing` + + - `memory_store_id: String` + + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. minLength: 1 - - `ca_cert_pem: String` + - `outputs: Array[BetaDreamOutput]` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. - maxLength: 8192 + The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. - - `class BetaJWKSInline` + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. - JWKS supplied directly; no network fetch. + - `type: :memory_store` - - `type: :inline` + - `memory_store_id: String` - - `keys: Array[Hash[Symbol, untyped]]` + The ID of the memory store that the dream writes its result to (`memstore_...`). - Inline JWK objects. + With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. - minItems: 1 + - `session_id: String` - - `jwks_polling_disabled_at: Time` + The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. - If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + Stream that session's events to follow what the dream reads and writes. - format: date-time + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. - - `max_jwt_lifetime_seconds: Integer` + - `status: BetaDreamStatus` - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + Where a dream is in its lifecycle. - - `name: String` + `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. - Admin-chosen slug identifier. + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. - - `poll_status: BetaFederationIssuerPollStatus` + - `:pending` - Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + The dream is waiting to start and hasn't read its inputs yet. - - `consecutive_failures: Integer` + `outputs` is empty and every `usage` count is zero. - Consecutive fetch failures since the last success. + - `:running` - - `last_fetched_at: Time` + The dream is reading its inputs and writing its result. - When the last successful fetch completed. + `usage` updates while the dream has this status. - format: date-time + - `:completed` - - `next_poll_at: Time` + The dream finished and its output memory store holds the complete result. - When the next fetch is scheduled. Null if paused. + - `:failed` - format: date-time + The dream stopped with an error, which `error` describes. - - `updated_at: Time` + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. - When this issuer was last updated. + - `:canceled` - format: date-time + A cancel request stopped the dream before it reached `completed` or `failed`. - - `updated_by_actor_id: String` + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. - Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + - `usage: BetaDreamUsage` + + The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. + + - `cache_creation_input_tokens: Integer` + + The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. + + format: int32 + + - `cache_read_input_tokens: Integer` + + The dream's input tokens that were read from the prompt cache. + + format: int32 + + - `input_tokens: Integer` + + The dream's input tokens that weren't read from or written to the prompt cache. + + format: int32 + + - `output_tokens: Integer` + + The tokens that the model generated for the dream. + + format: int32 #### Example @@ -87680,65 +87623,76 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_issuer = anthropic.beta.organization.federation.issuers.update("federation_issuer_id") +beta_dream = anthropic.beta.dreams.cancel("dream_id") -puts(beta_federation_issuer) +puts(beta_dream) ``` ##### Response (200) ```json { - "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "id": "id", "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "check_jti": true, - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "issuer_url": "https://token.actions.githubusercontent.com", - "jwks": { - "type": "discovery", - "ca_cert_pem": "ca_cert_pem", - "discovery_base": "discovery_base" + "created_at": "2019-12-27T18:11:19.117Z", + "ended_at": "2019-12-27T18:11:19.117Z", + "error": { + "message": "message", + "type": "type" }, - "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", - "max_jwt_lifetime_seconds": 0, - "name": "github-actions", - "poll_status": { - "consecutive_failures": 0, - "last_fetched_at": "2019-12-27T18:11:19.117Z", - "next_poll_at": "2019-12-27T18:11:19.117Z" + "inputs": [ + { + "memory_store_id": "x", + "type": "memory_store" + } + ], + "instructions": "instructions", + "model": { + "id": "x", + "speed": "standard" }, - "type": "federation_issuer", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" + "output_behavior": { + "type": "create_new" + }, + "outputs": [ + { + "memory_store_id": "memory_store_id", + "type": "memory_store" + } + ], + "session_id": "session_id", + "status": "pending", + "type": "dream", + "usage": { + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "output_tokens": 0 + } } ``` -### Archive Federation Issuer +### Archive a Dream -`beta.organization.federation.issuers.archive(federation_issuer_id, **kwargs) -> BetaFederationIssuer` +`beta.dreams.archive(dream_id, **kwargs) -> BetaDream` -**POST** `/v1/organizations/federation_issuers/{federation_issuer_id}/archive` +**POST** `/v1/dreams/{dream_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +Hide a `completed`, `failed`, or `canceled` dream from the default list of dreams. -Archive a federation issuer. +Archiving a `pending` or `running` dream returns a 400 error, so cancel it first. Archiving an archived dream returns it unchanged. An archived dream can still be fetched by ID. Archiving can't be undone. -Idempotent; re-archiving returns the issuer with its original -`archived_at`. Rejected with 400 if any live (non-archived) federation -rule still references the issuer; archive those rules first (a rule's -issuer cannot be changed), or recreate them against another issuer. +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#archive-a-dream) to learn more about archiving dreams. #### Parameters -- `federation_issuer_id: String` (path parameter) +- `dream_id: String` (path parameter) - ID of the federation issuer to archive. + The ID of the dream to archive (`drm_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. - `String = String` @@ -87844,296 +87798,317 @@ issuer cannot be changed), or recreate them against another issuer. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationIssuer` +- `class BetaDream` - Registered external OIDC identity provider. + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. - Records an external IdP the organization trusts for the RFC 7523 - jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. - - `type: :federation_issuer` + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#how-it-works) for what a dream reads and produces. + + - `type: :dream` - `id: String` - Tagged ID of the federation issuer. + The unique ID of the dream (`drm_...`). - `archived_at: Time` - If set, all rules referencing this issuer reject token exchange. + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + When the dream was created, in RFC 3339. - - `check_jti: bool` + Lists of dreams are sorted by this time, newest first. - Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + format: date-time - - `created_at: Time` + - `ended_at: Time` - When this issuer was created. + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. format: date-time - - `created_by_actor_id: String` + - `error: BetaDreamError` - Tagged ID (`user_`/`svac_`) of the actor that created this issuer. + Why the dream failed, or `null` if `status` isn't `failed`. - - `issuer_url: String` + - `type: String` - The `iss` claim value. Incoming JWTs must match exactly. + A code for why the dream failed, such as `timeout` or `internal_error`. - - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#errors) lists common error codes and when they occur. - How signing keys are obtained for signature verification. + - `message: String` - - `class BetaJWKSDiscovery` + A human-readable explanation of why the dream failed. - JWKS via the issuer's OIDC discovery document. + - `inputs: Array[BetaDreamInput]` - - `type: :discovery` + The sources that the dream reads, from the request that created it. - - `ca_cert_pem: String` + - `class BetaDreamMemoryStoreInput` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The memory store that a dream reads, given as an entry in `inputs`. - maxLength: 8192 + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. - - `discovery_base: String` + - `type: :memory_store` - Set when the discovery URL differs from `issuer_url`. + - `memory_store_id: String` - - `class BetaJWKSExplicitURL` + The ID of the memory store for the dream to read (`memstore_...`). - JWKS fetched from a fixed endpoint. + The memory store must be in the same workspace as the dream and must not be archived. - - `type: :explicit_url` + minLength: 1 - - `url: String` + - `class BetaDreamSessionsInput` - JWKS endpoint. + The sessions that a dream reads, given as an entry in `inputs`. - minLength: 1 + - `type: :sessions` - - `ca_cert_pem: String` + - `session_ids: Array[String]` - Optional custom CA (PEM) for TLS verification of the JWKS fetch. + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). - maxLength: 8192 + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. - - `class BetaJWKSInline` + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#limits) lists all the limits on a dream. - JWKS supplied directly; no network fetch. + - `instructions: String` - - `type: :inline` + The guidance given when the dream was created, or `null` if none was given. - - `keys: Array[Hash[Symbol, untyped]]` + - `model: BetaDreamModelConfig` - Inline JWK objects. + The model that runs a dream, from the request that created it. - minItems: 1 + The dream uses this model for all of its work. The response always gives the model as an object, even if the request gave only a model ID. - - `jwks_polling_disabled_at: Time` + - `id: String` - If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + The ID of the model that runs the dream, as given in the request that created it. - format: date-time + minLength: 1, maxLength: 256 - - `max_jwt_lifetime_seconds: Integer` + - `speed: :standard | :fast` - Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + How fast the model generates output for the dream. Always `standard`. - - `name: String` + - `:standard` - Admin-chosen slug identifier. + - `:fast` - - `poll_status: BetaFederationIssuerPollStatus` + - `output_behavior: BetaOutputBehavior` - Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + Where the dream writes its result, as set in the request that created the dream. If that request left out `output_behavior`, the dream used the `create_new` behavior. - - `consecutive_failures: Integer` + - `class BetaOutputBehaviorCreateNew` - Consecutive fetch failures since the last success. + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. - - `last_fetched_at: Time` + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. - When the last successful fetch completed. + - `type: :create_new` - format: date-time + - `class BetaOutputBehaviorUpdateExisting` - - `next_poll_at: Time` + Write the result into the input memory store instead of a new memory store. - When the next fetch is scheduled. Null if paused. + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. - format: date-time + - `type: :update_existing` - - `updated_at: Time` + - `memory_store_id: String` - When this issuer was last updated. + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. - format: date-time + minLength: 1 - - `updated_by_actor_id: String` + - `outputs: Array[BetaDreamOutput]` - Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + The memory store that holds the dream's result, as a one-item array, or an empty array until the dream records that memory store. -#### Example + The array is empty while the dream is `pending` and for a short time after it starts `running`. It can stay empty if the dream fails or is canceled before then. The memory store holds the complete result only once `status` is `completed`. -```ruby -require "anthropic" + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#use-the-output) for how to review and use the result. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :memory_store` -beta_federation_issuer = anthropic.beta.organization.federation.issuers.archive("federation_issuer_id") + - `memory_store_id: String` -puts(beta_federation_issuer) -``` + The ID of the memory store that the dream writes its result to (`memstore_...`). -##### Response (200) + With `output_behavior` set to `create_new`, this is a new memory store. With `update_existing`, it is the input memory store. -```json -{ - "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "check_jti": true, - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "issuer_url": "https://token.actions.githubusercontent.com", - "jwks": { - "type": "discovery", - "ca_cert_pem": "ca_cert_pem", - "discovery_base": "discovery_base" - }, - "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", - "max_jwt_lifetime_seconds": 0, - "name": "github-actions", - "poll_status": { - "consecutive_failures": 0, - "last_fetched_at": "2019-12-27T18:11:19.117Z", - "next_poll_at": "2019-12-27T18:11:19.117Z" - }, - "type": "federation_issuer", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" -} -``` + - `session_id: String` -## Beta › Organization › Federation › Rules + The ID of the session that runs the dream (`sesn_...`), or `null` if that session hasn't started. -### Create Federation Rule + Stream that session's events to follow what the dream reads and writes. -`beta.organization.federation.rules.create(**kwargs) -> BetaFederationRule` + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#watch-the-pipeline-run) for how to watch a running dream. -**POST** `/v1/organizations/federation_rules` + - `status: BetaDreamStatus` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + Where a dream is in its lifecycle. -Create a federation rule owned by your organization. + `completed`, `failed`, and `canceled` are final: once a dream has one of these statuses, its status doesn't change again. -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. + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=ruby#lifecycle) for what each status means. -#### Parameters + - `:pending` -- `issuer_id: String` + The dream is waiting to start and hasn't read its inputs yet. - Tagged ID of the federation issuer. + `outputs` is empty and every `usage` count is zero. -- `match: BetaFederationRuleMatch` + - `:running` - Conditions the verified JWT must satisfy for this rule to apply. At least one of `subject_prefix` (other than a wildcard-only value like `*`), `claims`, or `condition` is required; `audience` alone is not sufficient. + The dream is reading its inputs and writing its result. - - `audience: String` + `usage` updates while the dream has this status. - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. + - `:completed` - maxLength: 1024 + The dream finished and its output memory store holds the complete result. - - `claims: Hash[Symbol, String]` + - `:failed` - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + The dream stopped with an error, which `error` describes. - - `condition: String` + If `outputs` references a memory store, that memory store keeps what the dream wrote before it stopped. - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. + - `:canceled` - maxLength: 4096 + A cancel request stopped the dream before it reached `completed` or `failed`. - - `subject_prefix: String` + If `outputs` references a memory store, that memory store keeps what the dream wrote. `usage` can keep changing after the cancel. - Match the verified JWT `sub` claim. 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`. + - `usage: BetaDreamUsage` - maxLength: 1024 + The dream's token counts, which stop changing once its `status` is `completed` or `failed`. After a cancel, they can keep changing. -- `name: String` + - `cache_creation_input_tokens: Integer` - Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. + The dream's input tokens that were written to the prompt cache, for both the 5-minute and 1-hour cache durations. - minLength: 1, maxLength: 255 + format: int32 -- `oauth_scope: String` + - `cache_read_input_tokens: Integer` - Space-separated OAuth scopes. OAuth callers may only set `workspace:developer` or `workspace:inference`; other scopes (such as `org:admin`) require a Console session. + The dream's input tokens that were read from the prompt cache. - minLength: 1 + format: int32 -- `target: BetaServiceAccountTarget` + - `input_tokens: Integer` - Identity that tokens minted via this rule act as. Currently always a `service_account` target. + The dream's input tokens that weren't read from or written to the prompt cache. - - `type: :service_account` + format: int32 - - `service_account_id: String` + - `output_tokens: Integer` - Tagged ID of the service account to mint tokens for. + The tokens that the model generated for the dream. - - `service_account_name: String` + format: int32 - Service account's display name at read time. Ignored on writes. +#### Example -- `applies_to_all_workspaces: bool` +```ruby +require "anthropic" - When true, enable this rule for every workspace in the org (including workspaces created later). +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -- `attributes: Hash[Symbol, String]` +beta_dream = anthropic.beta.dreams.archive("dream_id") - CEL expressions `{name: expr}` extracting named values from claims. Not yet supported; any non-empty value is rejected with 400. +puts(beta_dream) +``` -- `description: String` +##### Response (200) - Optional free-text description. +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "ended_at": "2019-12-27T18:11:19.117Z", + "error": { + "message": "message", + "type": "type" + }, + "inputs": [ + { + "memory_store_id": "x", + "type": "memory_store" + } + ], + "instructions": "instructions", + "model": { + "id": "x", + "speed": "standard" + }, + "output_behavior": { + "type": "create_new" + }, + "outputs": [ + { + "memory_store_id": "memory_store_id", + "type": "memory_store" + } + ], + "session_id": "session_id", + "status": "pending", + "type": "dream", + "usage": { + "cache_creation_input_tokens": 0, + "cache_read_input_tokens": 0, + "input_tokens": 0, + "output_tokens": 0 + } +} +``` - maxLength: 2000 +## Beta › Tunnels -- `token_lifetime_seconds: Integer` +### Create Tunnel - Lifetime 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. +`beta.tunnels.create(**kwargs) -> BetaTunnel` - minimum: 60, maximum: 86400 +**POST** `/v1/tunnels` -- `workspace_id: String` +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. - Tagged ID of the workspace to enable this rule for. Required unless `applies_to_all_workspaces` is true. Additional workspaces can be added via the `/federation_rules/{federation_rule_id}/workspaces` sub-resource. +Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; it is not idempotent. The new tunnel rejects MCP traffic until at least one CA certificate is added. + +#### Parameters + +- `display_name: String` + + Optional human-readable name for the tunnel (1-255 characters). + + minLength: 1, maxLength: 255 - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -88239,136 +88214,45 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class BetaFederationRule` +- `workspace_id: String` (header parameter) - Authorization rule binding an external OIDC identity to Anthropic. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - 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_ids` or - `applies_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 legacy `workspace_id` binding do not enforce - this. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :federation_rule` +#### Returns - - `id: String` +- `class BetaTunnel` - Tagged ID of the federation rule. + An MCP tunnel. - - `applies_to_all_workspaces: bool` + - `type: :tunnel` - When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. + - `id: String` + + Unique identifier for the tunnel, prefixed with `tnl_`. - `archived_at: Time` - If set, this rule is archived and rejects token exchange. + RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. format: date-time - - `archived_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - - - `attributes: Hash[Symbol, String]` - - CEL expressions extracting named values from claims. Not yet supported; always null. - - `created_at: Time` - When this rule was created. - - format: date-time - - - `created_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that created this rule. - - - `description: String` - - Optional free-text description. - - - `issuer_id: String` - - Tagged ID of the issuer whose tokens this rule accepts. - - - `issuer_name: String` - - Issuer's display name at read time. - - - `match: BetaFederationRuleMatch` - - Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - - - `audience: String` - - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - maxLength: 1024 - - - `claims: Hash[Symbol, String]` - - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - - `condition: String` - - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - maxLength: 4096 - - - `subject_prefix: String` - - Match the verified JWT `sub` claim. 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: String` - - Admin-chosen slug identifier. - - - `oauth_scope: String` - - Space-separated OAuth scopes granted on the minted token. - - - `target: BetaServiceAccountTarget` - - What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. - - - `type: :service_account` - - - `service_account_id: String` - - Tagged ID of the service account to mint tokens for. - - - `service_account_name: String` - - Service account's display name at read time. Ignored on writes. - - - `token_lifetime_seconds: Integer` - - Lifetime 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: Time` - - When this rule was last updated. + RFC 3339 datetime string indicating when the tunnel was created. format: date-time - - `updated_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. - - - `workspace_id: String` + - `display_name: String` - Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + Human-readable name for the tunnel (1-255 characters). Null if unset. - - `workspace_ids: Array[String]` + - `domain: String` - Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. #### Example @@ -88377,95 +88261,43 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_rule = anthropic.beta.organization.federation.rules.create( - issuer_id: "issuer_id", - match: {}, - name: "x", - oauth_scope: "x", - target: {service_account_id: "svac_01SDCCSbTxrXDpWc1phhtcfK", type: :service_account} -) +beta_tunnel = anthropic.beta.tunnels.create -puts(beta_federation_rule) +puts(beta_tunnel) ``` ##### Response (200) ```json { - "id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK", - "applies_to_all_workspaces": true, + "id": "id", "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" - ] + "created_at": "2019-12-27T18:11:19.117Z", + "display_name": "display_name", + "domain": "domain", + "type": "tunnel" } ``` -### List Federation Rules - -`beta.organization.federation.rules.list(**kwargs) -> PageCursor` +### Get Tunnel -**GET** `/v1/organizations/federation_rules` +`beta.tunnels.retrieve(tunnel_id, **kwargs) -> BetaTunnel` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**GET** `/v1/tunnels/{tunnel_id}` -List federation rules in your organization. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -Optionally filter by issuer with `issuer_id`. Archived rules are excluded -unless `include_archived=true`. +Fetches a tunnel by ID. #### Parameters -- `include_archived: bool` (query parameter) - - Include archived resources. Defaults to false. - -- `issuer_id: String` (query parameter) - - Filter to rules referencing this federation issuer. - -- `limit: Integer` (query parameter) - - Number of results per page. - - minimum: 1, maximum: 100 - -- `page: String` (query parameter) +- `tunnel_id: String` (path parameter) - Opaque cursor from a previous response's `next_page`. + ID of the tunnel (`tnl_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -88571,136 +88403,45 @@ unless `include_archived=true`. - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class BetaFederationRule` +- `workspace_id: String` (header parameter) - Authorization rule binding an external OIDC identity to Anthropic. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - 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_ids` or - `applies_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 legacy `workspace_id` binding do not enforce - this. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :federation_rule` +#### Returns - - `id: String` +- `class BetaTunnel` - Tagged ID of the federation rule. + An MCP tunnel. - - `applies_to_all_workspaces: bool` + - `type: :tunnel` - When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. + - `id: String` + + Unique identifier for the tunnel, prefixed with `tnl_`. - `archived_at: Time` - If set, this rule is archived and rejects token exchange. + RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. format: date-time - - `archived_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - - - `attributes: Hash[Symbol, String]` - - CEL expressions extracting named values from claims. Not yet supported; always null. - - `created_at: Time` - When this rule was created. - - format: date-time - - - `created_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that created this rule. - - - `description: String` - - Optional free-text description. - - - `issuer_id: String` - - Tagged ID of the issuer whose tokens this rule accepts. - - - `issuer_name: String` - - Issuer's display name at read time. - - - `match: BetaFederationRuleMatch` - - Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - - - `audience: String` - - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - maxLength: 1024 - - - `claims: Hash[Symbol, String]` - - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - - `condition: String` - - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - maxLength: 4096 - - - `subject_prefix: String` - - Match the verified JWT `sub` claim. 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: String` - - Admin-chosen slug identifier. - - - `oauth_scope: String` - - Space-separated OAuth scopes granted on the minted token. - - - `target: BetaServiceAccountTarget` - - What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. - - - `type: :service_account` - - - `service_account_id: String` - - Tagged ID of the service account to mint tokens for. - - - `service_account_name: String` - - Service account's display name at read time. Ignored on writes. - - - `token_lifetime_seconds: Integer` - - Lifetime 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: Time` - - When this rule was last updated. + RFC 3339 datetime string indicating when the tunnel was created. format: date-time - - `updated_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. - - - `workspace_id: String` + - `display_name: String` - Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + Human-readable name for the tunnel (1-255 characters). Null if unset. - - `workspace_ids: Array[String]` + - `domain: String` - Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. #### Example @@ -88709,77 +88450,53 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.federation.rules.list +beta_tunnel = anthropic.beta.tunnels.retrieve("tunnel_id") -puts(page) +puts(beta_tunnel) ``` ##### Response (200) ```json { - "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" + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "display_name": "display_name", + "domain": "domain", + "type": "tunnel" } ``` -### Get Federation Rule +### List Tunnels -`beta.organization.federation.rules.retrieve(federation_rule_id, **kwargs) -> BetaFederationRule` +`beta.tunnels.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/federation_rules/{federation_rule_id}` +**GET** `/v1/tunnels` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -Retrieve a federation rule by its ID (`fdrl_...`). +Lists tunnels. Results are ordered by creation time, newest first; archived tunnels are excluded unless include_archived is set. #### Parameters -- `federation_rule_id: String` (path parameter) +- `include_archived: bool` (query parameter) - ID of the federation rule. + Whether to include archived tunnels in the results. Defaults to false. + +- `limit: Integer` (query parameter) + + Maximum number of tunnels to return per page. Defaults to 20, maximum 1000. + + format: int32 + +- `page: String` (query parameter) + + Opaque pagination cursor from a previous `list_tunnels` response. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -88885,302 +88602,284 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class BetaFederationRule` +- `workspace_id: String` (header parameter) - Authorization rule binding an external OIDC identity to Anthropic. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - 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_ids` or - `applies_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 legacy `workspace_id` binding do not enforce - this. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :federation_rule` +#### Returns - - `id: String` +- `class BetaTunnel` - Tagged ID of the federation rule. + An MCP tunnel. - - `applies_to_all_workspaces: bool` + - `type: :tunnel` - When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. + - `id: String` + + Unique identifier for the tunnel, prefixed with `tnl_`. - `archived_at: Time` - If set, this rule is archived and rejects token exchange. + RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. format: date-time - - `archived_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that archived this rule. + RFC 3339 datetime string indicating when the tunnel was created. - - `attributes: Hash[Symbol, String]` + format: date-time - CEL expressions extracting named values from claims. Not yet supported; always null. + - `display_name: String` - - `created_at: Time` + Human-readable name for the tunnel (1-255 characters). Null if unset. - When this rule was created. + - `domain: String` - format: date-time + Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. - - `created_by_actor_id: String` +#### Example - Tagged ID (`user_`/`svac_`) of the actor that created this rule. +```ruby +require "anthropic" - - `description: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Optional free-text description. +page = anthropic.beta.tunnels.list - - `issuer_id: String` +puts(page) +``` - Tagged ID of the issuer whose tokens this rule accepts. +##### Response (200) - - `issuer_name: String` +```json +{ + "data": [ + { + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "display_name": "display_name", + "domain": "domain", + "type": "tunnel" + } + ], + "next_page": "next_page" +} +``` - Issuer's display name at read time. +### Archive Tunnel - - `match: BetaFederationRuleMatch` +`beta.tunnels.archive(tunnel_id, **kwargs) -> BetaTunnel` - Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. +**POST** `/v1/tunnels/{tunnel_id}/archive` - - `audience: String` +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. +Archives a tunnel. Archival is irreversible: every non-archived certificate on the tunnel is archived in the same operation, the hostname is retired and never re-allocated, and the tunnel token is invalidated. Retrying against an already-archived tunnel returns the existing record unchanged. - maxLength: 1024 +#### Parameters - - `claims: Hash[Symbol, String]` +- `tunnel_id: String` (path parameter) - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + ID of the tunnel (`tnl_...`). - - `condition: String` +- `betas: Array[AnthropicBeta]` (header parameter) - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - maxLength: 4096 + - `String = String` - - `subject_prefix: String` + - `:"message-batches-2024-09-24"` - Match the verified JWT `sub` claim. 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`. + - `:"prompt-caching-2024-07-31"` - maxLength: 1024 + - `:"computer-use-2024-10-22"` - - `name: String` + - `:"computer-use-2025-01-24"` - Admin-chosen slug identifier. + - `:"pdfs-2024-09-25"` - - `oauth_scope: String` + - `:"token-counting-2024-11-01"` - Space-separated OAuth scopes granted on the minted token. + - `:"token-efficient-tools-2025-02-19"` - - `target: BetaServiceAccountTarget` + - `:"output-128k-2025-02-19"` - What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. + - `:"files-api-2025-04-14"` - - `type: :service_account` + - `:"mcp-client-2025-04-04"` - - `service_account_id: String` + - `:"mcp-client-2025-11-20"` - Tagged ID of the service account to mint tokens for. + - `:"dev-full-thinking-2025-05-14"` - - `service_account_name: String` + - `:"interleaved-thinking-2025-05-14"` - Service account's display name at read time. Ignored on writes. + - `:"code-execution-2025-05-22"` - - `token_lifetime_seconds: Integer` + - `:"extended-cache-ttl-2025-04-11"` - Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. + - `:"context-1m-2025-08-07"` - - `updated_at: Time` + - `:"context-management-2025-06-27"` - When this rule was last updated. + - `:"model-context-window-exceeded-2025-08-26"` - format: date-time + - `:"skills-2025-10-02"` - - `updated_by_actor_id: String` + - `:"fast-mode-2026-02-01"` - Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + - `:"output-300k-2026-03-24"` - - `workspace_id: String` + - `:"user-profiles-2026-03-24"` - Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + - `:"user-profiles-2026-08-18"` - - `workspace_ids: Array[String]` + - `:"user-profiles-2026-09-04"` - Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + - `:"advisor-tool-2026-03-01"` -#### Example + - `:"managed-agents-2026-04-01"` -```ruby -require "anthropic" + - `:"cache-diagnosis-2026-04-07"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"dreaming-2026-04-21"` -beta_federation_rule = anthropic.beta.organization.federation.rules.retrieve("federation_rule_id") + - `:"thinking-token-count-2026-05-13"` -puts(beta_federation_rule) -``` + - `:"server-side-fallback-2026-06-01"` -##### Response (200) + - `:"server-side-fallback-2026-07-01"` -```json -{ - "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" - ] -} -``` + - `:"fallback-credit-2026-06-01"` -### Update Federation Rule + - `:"fallback-credit-2026-07-01"` -`beta.organization.federation.rules.update(federation_rule_id, **kwargs) -> BetaFederationRule` + - `:"agent-memory-2026-07-22"` -**POST** `/v1/organizations/federation_rules/{federation_rule_id}` + - `:"mid-conversation-tool-changes-2026-07-01"` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + - `:"compact-2026-01-12"` -Partially update a federation rule. + - `:"computer-use-2025-11-24"` -`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. + - `:"mcp-tunnels-2026-06-22"` -#### Parameters + - `:"structured-outputs-2025-11-13"` -- `federation_rule_id: String` (path parameter) + - `:"task-budgets-2026-03-13"` - ID of the federation rule to update. + - `:"thinking-display-updates-2026-08-18"` -- `applies_to_all_workspaces: bool` + - `:"ce-user-management-2026-07-13"` - When true, enables this rule for every workspace in the org (including workspaces created later). Setting `false` is rejected with 400 if no workspace would remain enabled; a rule with only a legacy `workspace_id` binding continues to mint. + - `:"mid-conversation-output-config-2026-07-01"` -- `attributes: Hash[Symbol, String]` + - `:"thinking-binding-controls-2026-08-01"` - Replaces 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. + - `:"mid-conversation-system-clear-at-2026-08-21"` -- `description: String` + - `:"compact-2026-09-04"` - Replaces the description. Omit to leave unchanged; send `null` to clear (the field is stored as an empty string). + - `:"inline-tools-2026-09-15"` - maxLength: 2000 + - `:"mcp-client-2026-09-15"` -- `match: BetaFederationRuleMatch` + - `:"ce-plugins-2026-09-01"` - Replaces the entire match object. All populated matcher fields must pass. + - `:"spend-limit-reads-2026-09-26"` - - `audience: String` + - `:"telemetry-destinations-2026-08-11"` - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. + - `:"webhooks-2026-10-07"` - maxLength: 1024 +- `workspace_id: String` (header parameter) - - `claims: Hash[Symbol, String]` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `condition: String` +#### Returns - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. +- `class BetaTunnel` - maxLength: 4096 + An MCP tunnel. - - `subject_prefix: String` + - `type: :tunnel` - Match the verified JWT `sub` claim. 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`. + - `id: String` - maxLength: 1024 + Unique identifier for the tunnel, prefixed with `tnl_`. -- `name: String` + - `archived_at: Time` - Replaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. + RFC 3339 datetime string indicating when the tunnel was archived. Null if it is not archived. - minLength: 1, maxLength: 255 + format: date-time -- `oauth_scope: String` + - `created_at: Time` - Replaces the space-separated OAuth scopes granted on minted tokens. OAuth callers may only set `workspace:developer` or `workspace:inference`; other scopes (such as `org:admin`) require a Console session. + RFC 3339 datetime string indicating when the tunnel was created. - minLength: 1 + format: date-time -- `target: BetaServiceAccountTarget` + - `display_name: String` - Replaces the entire target object. Currently always a `service_account` target. + Human-readable name for the tunnel (1-255 characters). Null if unset. - - `type: :service_account` + - `domain: String` - - `service_account_id: String` + Anthropic-assigned hostname for the tunnel. MCP server URLs whose host is a subdomain of this value are routed through the tunnel. Globally unique and never reused, even after the tunnel is archived. - Tagged ID of the service account to mint tokens for. +#### Example - - `service_account_name: String` +```ruby +require "anthropic" - Service account's display name at read time. Ignored on writes. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -- `token_lifetime_seconds: Integer` +beta_tunnel = anthropic.beta.tunnels.archive("tunnel_id") - Replaces 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. +puts(beta_tunnel) +``` - minimum: 60, maximum: 86400 +##### Response (200) -- `workspace_id: String` +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "display_name": "display_name", + "domain": "domain", + "type": "tunnel" +} +``` - Replaces 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}/workspaces` sub-resource instead. +### Reveal Tunnel Token + +`beta.tunnels.reveal_token(tunnel_id, **kwargs) -> BetaTunnelToken` + +**POST** `/v1/tunnels/{tunnel_id}/reveal_token` + +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. + +Reveals a tunnel's connector token. The value is fetched live on each call; Anthropic does not store it. Repeated calls return the same value until the token is rotated. Exposed as POST so the token does not appear in intermediary access logs. + +#### Parameters + +- `tunnel_id: String` (path parameter) + + ID of the tunnel (`tnl_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -89286,136 +88985,29 @@ Console session. - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaFederationRule` - - Authorization 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_ids` or - `applies_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 legacy `workspace_id` binding do not enforce - this. - - - `type: :federation_rule` - - - `id: String` - - Tagged ID of the federation rule. - - - `applies_to_all_workspaces: bool` - - When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. - - - `archived_at: Time` - - If set, this rule is archived and rejects token exchange. - - format: date-time - - - `archived_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - - - `attributes: Hash[Symbol, String]` - - CEL expressions extracting named values from claims. Not yet supported; always null. - - - `created_at: Time` - - When this rule was created. - - format: date-time - - - `created_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that created this rule. - - - `description: String` - - Optional free-text description. - - - `issuer_id: String` - - Tagged ID of the issuer whose tokens this rule accepts. - - - `issuer_name: String` - - Issuer's display name at read time. - - - `match: BetaFederationRuleMatch` - - Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - - - `audience: String` - - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - maxLength: 1024 - - - `claims: Hash[Symbol, String]` - - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - - `condition: String` - - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - maxLength: 4096 - - - `subject_prefix: String` - - Match the verified JWT `sub` claim. 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: String` - - Admin-chosen slug identifier. - - - `oauth_scope: String` - - Space-separated OAuth scopes granted on the minted token. - - - `target: BetaServiceAccountTarget` - - What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. - - - `type: :service_account` - - - `service_account_id: String` - - Tagged ID of the service account to mint tokens for. - - - `service_account_name: String` - - Service account's display name at read time. Ignored on writes. + - `:"webhooks-2026-10-07"` - - `token_lifetime_seconds: Integer` +- `workspace_id: String` (header parameter) - Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `updated_at: Time` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - When this rule was last updated. +#### Returns - format: date-time +- `class BetaTunnelToken` - - `updated_by_actor_id: String` + A tunnel's connector token. - Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + - `type: :tunnel_token` - - `workspace_id: String` + - `id: String` - Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + Stable identifier for the current token value. Changes when the token is rotated. - - `workspace_ids: Array[String]` + - `tunnel_token: String` - Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + The connector token used to run the tunnel. Treat as a credential. #### Example @@ -89424,80 +89016,46 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_rule = anthropic.beta.organization.federation.rules.update("federation_rule_id") +beta_tunnel_token = anthropic.beta.tunnels.reveal_token("tunnel_id") -puts(beta_federation_rule) +puts(beta_tunnel_token) ``` ##### Response (200) ```json { - "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" - ] + "id": "id", + "tunnel_token": "tunnel_token", + "type": "tunnel_token" } ``` -### Archive Federation Rule - -`beta.organization.federation.rules.archive(federation_rule_id, **kwargs) -> BetaFederationRule` +### Rotate Tunnel Token -**POST** `/v1/organizations/federation_rules/{federation_rule_id}/archive` +`beta.tunnels.rotate_token(tunnel_id, **kwargs) -> BetaTunnelToken` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**POST** `/v1/tunnels/{tunnel_id}/rotate_token` -Archive a federation rule. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -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. +Rotates a tunnel's connector token. Rotation invalidates the current token for new connections and returns a fresh value; established connections are not severed. A connector restarted after rotation must use the new value. #### Parameters -- `federation_rule_id: String` (path parameter) +- `tunnel_id: String` (path parameter) - ID of the federation rule to archive. + ID of the tunnel (`tnl_...`). + +- `reason: String` + + Optional free-text reason for the rotation, recorded for audit. + + maxLength: 1024 - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -89603,136 +89161,229 @@ other scopes require a Console session. - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class BetaFederationRule` +- `workspace_id: String` (header parameter) - Authorization rule binding an external OIDC identity to Anthropic. + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - 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_ids` or - `applies_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 legacy `workspace_id` binding do not enforce - this. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `type: :federation_rule` +#### Returns + +- `class BetaTunnelToken` + + A tunnel's connector token. + + - `type: :tunnel_token` - `id: String` - Tagged ID of the federation rule. + Stable identifier for the current token value. Changes when the token is rotated. - - `applies_to_all_workspaces: bool` + - `tunnel_token: String` - When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. + The connector token used to run the tunnel. Treat as a credential. - - `archived_at: Time` +#### Example - If set, this rule is archived and rejects token exchange. +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `archived_by_actor_id: String` +beta_tunnel_token = anthropic.beta.tunnels.rotate_token("tunnel_id") - Tagged ID (`user_`/`svac_`) of the actor that archived this rule. +puts(beta_tunnel_token) +``` - - `attributes: Hash[Symbol, String]` +##### Response (200) - CEL expressions extracting named values from claims. Not yet supported; always null. +```json +{ + "id": "id", + "tunnel_token": "tunnel_token", + "type": "tunnel_token" +} +``` - - `created_at: Time` +## Beta › Tunnels › Certificates - When this rule was created. +### Create Tunnel Certificate - format: date-time +`beta.tunnels.certificates.create(tunnel_id, **kwargs) -> BetaTunnelCertificate` - - `created_by_actor_id: String` +**POST** `/v1/tunnels/{tunnel_id}/certificates` - Tagged ID (`user_`/`svac_`) of the actor that created this rule. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. - - `description: String` +Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's server certificate against this CA when it terminates the inner TLS session. A tunnel holds at most two non-archived certificates. - Optional free-text description. +#### Parameters - - `issuer_id: String` +- `tunnel_id: String` (path parameter) - Tagged ID of the issuer whose tokens this rule accepts. + ID of the tunnel (`tnl_...`). - - `issuer_name: String` +- `ca_certificate_pem: String` - Issuer's display name at read time. + PEM-encoded X.509 CA certificate. Must contain exactly one certificate and no private-key material. Maximum 8KB. - - `match: BetaFederationRuleMatch` + maxLength: 8192 - Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. +- `betas: Array[AnthropicBeta]` (header parameter) - - `audience: String` + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. + - `String = String` - maxLength: 1024 + - `:"message-batches-2024-09-24"` - - `claims: Hash[Symbol, String]` + - `:"prompt-caching-2024-07-31"` - Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + - `:"computer-use-2024-10-22"` - - `condition: String` + - `:"computer-use-2025-01-24"` - CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. + - `:"pdfs-2024-09-25"` - maxLength: 4096 + - `:"token-counting-2024-11-01"` - - `subject_prefix: String` + - `:"token-efficient-tools-2025-02-19"` - Match the verified JWT `sub` claim. 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`. + - `:"output-128k-2025-02-19"` - maxLength: 1024 + - `:"files-api-2025-04-14"` - - `name: String` + - `:"mcp-client-2025-04-04"` - Admin-chosen slug identifier. + - `:"mcp-client-2025-11-20"` - - `oauth_scope: String` + - `:"dev-full-thinking-2025-05-14"` - Space-separated OAuth scopes granted on the minted token. + - `:"interleaved-thinking-2025-05-14"` - - `target: BetaServiceAccountTarget` + - `:"code-execution-2025-05-22"` - What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :service_account` + - `:"context-1m-2025-08-07"` - - `service_account_id: String` + - `:"context-management-2025-06-27"` - Tagged ID of the service account to mint tokens for. + - `:"model-context-window-exceeded-2025-08-26"` - - `service_account_name: String` + - `:"skills-2025-10-02"` - Service account's display name at read time. Ignored on writes. + - `:"fast-mode-2026-02-01"` - - `token_lifetime_seconds: Integer` + - `:"output-300k-2026-03-24"` - Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. + - `:"user-profiles-2026-03-24"` - - `updated_at: Time` + - `:"user-profiles-2026-08-18"` - When this rule was last updated. + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaTunnelCertificate` + + A CA certificate attached to a tunnel. + + - `type: :tunnel_certificate` + + - `id: String` + + Unique identifier for the certificate, prefixed with `tcrt_`. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. format: date-time - - `updated_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + RFC 3339 datetime string indicating when the certificate was registered. - - `workspace_id: String` + format: date-time - Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + - `expires_at: Time` - - `workspace_ids: Array[String]` + RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. - Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + format: date-time + + - `fingerprint: String` + + Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + + - `tunnel_id: String` + + ID of the tunnel the certificate is registered against. #### Example @@ -89741,87 +89392,48 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_rule = anthropic.beta.organization.federation.rules.archive("federation_rule_id") +beta_tunnel_certificate = anthropic.beta.tunnels.certificates.create("tunnel_id", ca_certificate_pem: "ca_certificate_pem") -puts(beta_federation_rule) +puts(beta_tunnel_certificate) ``` ##### Response (200) ```json { - "id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK", - "applies_to_all_workspaces": true, + "id": "id", "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" - ] + "created_at": "2019-12-27T18:11:19.117Z", + "expires_at": "2019-12-27T18:11:19.117Z", + "fingerprint": "fingerprint", + "tunnel_id": "tunnel_id", + "type": "tunnel_certificate" } ``` -## Beta › Organization › Federation › Rules › Workspaces - -### Add Federation Rule Workspace - -`beta.organization.federation.rules.workspaces.add(federation_rule_id, **kwargs) -> BetaFederationRuleWorkspace` +### Get Tunnel Certificate -**POST** `/v1/organizations/federation_rules/{federation_rule_id}/workspaces` +`beta.tunnels.certificates.retrieve(certificate_id, **kwargs) -> BetaTunnelCertificate` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**GET** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}` -Enable a federation rule for a workspace. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -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. +Fetches a tunnel certificate by ID. #### Parameters -- `federation_rule_id: String` (path parameter) +- `tunnel_id: String` (path parameter) - ID of the federation rule. + ID of the tunnel (`tnl_...`). -- `workspace_id: String` +- `certificate_id: String` (path parameter) - Tagged ID of the workspace to enable this rule for. + ID of the certificate (`tcrt_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -89927,33 +89539,51 @@ other scopes require a Console session. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationRuleWorkspace` +- `class BetaTunnelCertificate` - - `type: :federation_rule_workspace` + A CA certificate attached to a tunnel. - - `created_at: Time` + - `type: :tunnel_certificate` - When this workspace was enabled for the rule. + - `id: String` + + Unique identifier for the certificate, prefixed with `tcrt_`. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. format: date-time - - `created_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_...` or `svac_...`) of the actor that enabled this workspace for the rule, if known. + RFC 3339 datetime string indicating when the certificate was registered. - - `federation_rule_id: String` + format: date-time - Tagged ID of the federation rule. + - `expires_at: Time` - - `workspace_id: String` + RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. - Tagged ID of the workspace this rule is enabled for. + format: date-time - - `workspace_name: String` + - `fingerprint: String` - Workspace display name. Populated when listing; null in the enable response. + Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + + - `tunnel_id: String` + + ID of the tunnel the certificate is registered against. #### Example @@ -89962,62 +89592,58 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_federation_rule_workspace = anthropic.beta.organization.federation.rules.workspaces.add( - "federation_rule_id", - workspace_id: "workspace_id" -) +beta_tunnel_certificate = anthropic.beta.tunnels.certificates.retrieve("certificate_id", tunnel_id: "tunnel_id") -puts(beta_federation_rule_workspace) +puts(beta_tunnel_certificate) ``` ##### Response (200) ```json { - "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" + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "expires_at": "2019-12-27T18:11:19.117Z", + "fingerprint": "fingerprint", + "tunnel_id": "tunnel_id", + "type": "tunnel_certificate" } ``` -### List Federation Rule Workspaces - -`beta.organization.federation.rules.workspaces.list(federation_rule_id, **kwargs) -> PageCursor` +### List Tunnel Certificates -**GET** `/v1/organizations/federation_rules/{federation_rule_id}/workspaces` +`beta.tunnels.certificates.list(tunnel_id, **kwargs) -> PageCursor` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**GET** `/v1/tunnels/{tunnel_id}/certificates` -List workspaces where this federation rule is enabled. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -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. +Lists the certificates registered on a tunnel. Archived certificates are excluded unless include_archived is set. #### Parameters -- `federation_rule_id: String` (path parameter) +- `tunnel_id: String` (path parameter) - ID of the federation rule. + ID of the tunnel (`tnl_...`). + +- `include_archived: bool` (query parameter) + + Whether to include archived certificates in the results. Defaults to false. - `limit: Integer` (query parameter) - Number of results per page. + Maximum number of certificates to return per page. Defaults to 20, maximum 1000. - minimum: 1, maximum: 100 + format: int32 - `page: String` (query parameter) - Opaque cursor from a previous response's `next_page`. + Opaque pagination cursor from a previous `list_tunnel_certificates` response. - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -90123,33 +89749,51 @@ rules with `applies_to_all_workspaces` or a legacy single - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + #### Returns -- `class BetaFederationRuleWorkspace` +- `class BetaTunnelCertificate` - - `type: :federation_rule_workspace` + A CA certificate attached to a tunnel. - - `created_at: Time` + - `type: :tunnel_certificate` - When this workspace was enabled for the rule. + - `id: String` + + Unique identifier for the certificate, prefixed with `tcrt_`. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. format: date-time - - `created_by_actor_id: String` + - `created_at: Time` - Tagged ID (`user_...` or `svac_...`) of the actor that enabled this workspace for the rule, if known. + RFC 3339 datetime string indicating when the certificate was registered. - - `federation_rule_id: String` + format: date-time - Tagged ID of the federation rule. + - `expires_at: Time` - - `workspace_id: String` + RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. - Tagged ID of the workspace this rule is enabled for. + format: date-time - - `workspace_name: String` + - `fingerprint: String` - Workspace display name. Populated when listing; null in the enable response. + Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. + + - `tunnel_id: String` + + ID of the tunnel the certificate is registered against. #### Example @@ -90158,7 +89802,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.federation.rules.workspaces.list("federation_rule_id") +page = anthropic.beta.tunnels.certificates.list("tunnel_id") puts(page) ``` @@ -90169,46 +89813,42 @@ puts(page) { "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" + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "expires_at": "2019-12-27T18:11:19.117Z", + "fingerprint": "fingerprint", + "tunnel_id": "tunnel_id", + "type": "tunnel_certificate" } ], "next_page": "next_page" } ``` -### Remove Federation Rule Workspace - -`beta.organization.federation.rules.workspaces.remove(workspace_id, **kwargs) -> WorkspaceRemoveResponse` +### Archive Tunnel Certificate -**DELETE** `/v1/organizations/federation_rules/{federation_rule_id}/workspaces/{workspace_id}` +`beta.tunnels.certificates.archive(certificate_id, **kwargs) -> BetaTunnelCertificate` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**POST** `/v1/tunnels/{tunnel_id}/certificates/{certificate_id}/archive` -Disable a federation rule for a workspace. +The Tunnels API is in research preview. It requires the `anthropic-beta: mcp-tunnels-2026-06-22` header and may change without a deprecation period. It supersedes the Admin API endpoints at `/v1/organizations/tunnels`, which remain available during a migration window. -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. +Archives a tunnel certificate, removing it from the set Anthropic trusts for the tunnel. The certificate record is retained. Archiving the last non-archived certificate is permitted; the tunnel rejects MCP traffic until a new certificate is added. #### Parameters -- `federation_rule_id: String` (path parameter) +- `tunnel_id: String` (path parameter) - ID of the federation rule. + ID of the tunnel (`tnl_...`). -- `workspace_id: String` (path parameter) +- `certificate_id: String` (path parameter) - ID of the workspace to disable for. + ID of the certificate to archive (`tcrt_...`). - `betas: Array[AnthropicBeta]` (header parameter) - Optional header to specify the beta version(s) you want to use. + This endpoint is in beta: requests must send `mcp-tunnels-2026-06-22` in this header. - `String = String` @@ -90314,160 +89954,107 @@ Console session. - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class WorkspaceRemoveResponse` +- `workspace_id: String` (header parameter) - - `type: :federation_rule_workspace_deleted` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - `federation_rule_id: String` + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - Tagged ID of the federation rule. +#### Returns - - `workspace_id: String` +- `class BetaTunnelCertificate` - Tagged ID of the workspace named in the delete request. Removal is idempotent. + A CA certificate attached to a tunnel. -#### Example + - `type: :tunnel_certificate` -```ruby -require "anthropic" + - `id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Unique identifier for the certificate, prefixed with `tcrt_`. -workspace = anthropic.beta.organization.federation.rules.workspaces.remove( - "workspace_id", - federation_rule_id: "federation_rule_id" -) + - `archived_at: Time` -puts(workspace) -``` + RFC 3339 datetime string indicating when the certificate was archived. Null if it is still in the trusted set. -##### Response (200) + format: date-time -```json -{ - "federation_rule_id": "federation_rule_id", - "type": "federation_rule_workspace_deleted", - "workspace_id": "workspace_id" -} -``` + - `created_at: Time` -## Beta › Organization › Invites + RFC 3339 datetime string indicating when the certificate was registered. -### Create Invite + format: date-time -`beta.organization.invites.create(**kwargs) -> BetaOrganizationInvite` + - `expires_at: Time` -**POST** `/v1/organizations/invites` + RFC 3339 datetime string indicating when the certificate expires, or `null` if it does not expire. -Invite a user to join the organization by email. + format: date-time -On plans that draw members from a finite pool of purchased seats, the invite automatically consumes a seat from the lowest tier with availability; there is no seat-tier parameter. When no seat is free the request fails with a 400 error rather than purchasing a seat. + - `fingerprint: String` -#### Parameters + Lowercase hex SHA-256 fingerprint of the certificate's DER encoding. -- `email: String` + - `tunnel_id: String` - Email of the User. + ID of the tunnel the certificate is registered against. - format: email +#### Example -- `role: :billing | :claude_code_user | :developer | 2 more` +```ruby +require "anthropic" - Role for the invited User. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; inviting with the `managed` role requires the `write:rbac_groups` scope in addition to `write:members`. +beta_tunnel_certificate = anthropic.beta.tunnels.certificates.archive("certificate_id", tunnel_id: "tunnel_id") - - `:billing` +puts(beta_tunnel_certificate) +``` - - `:claude_code_user` +##### Response (200) - - `:developer` +```json +{ + "id": "id", + "archived_at": "2019-12-27T18:11:19.117Z", + "created_at": "2019-12-27T18:11:19.117Z", + "expires_at": "2019-12-27T18:11:19.117Z", + "fingerprint": "fingerprint", + "tunnel_id": "tunnel_id", + "type": "tunnel_certificate" +} +``` - - `:managed` +## Beta › Organization - - `:user` +### Get Current Organization -- `rbac_group_ids: Array[String]` +`beta.organization.retrieve() -> BetaOrganization` - RBAC group IDs to assign to the User when the Invite is accepted. A non-empty array is accepted only for a Claude Enterprise organization with RBAC groups, and requires the key to carry the `write:rbac_groups` scope. +**GET** `/v1/organizations/me` - maxItems: 100 +Retrieve information about the organization associated with the authenticated API key. #### Returns -- `class BetaOrganizationInvite` +- `class BetaOrganization` - - `type: :invite` + - `type: :organization` Object type. - For Invites, this is always `"invite"`. + For Organizations, this is always `"organization"`. - `id: String` - ID of the Invite. - - - `accepted_at: Time` - - RFC 3339 datetime string indicating when the Invite was accepted, or null. - - format: date-time - - - `email: String` - - Email of the User being invited. - - - `expires_at: Time` - - RFC 3339 datetime string indicating when the Invite expires. - - format: date-time - - - `invited_at: Time` - - RFC 3339 datetime string indicating when the Invite was created. - - format: date-time - - - `rbac_group_ids: Array[String]` - - RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. - - - `role: BetaOrganizationRole` - - Organization role of the User. - - - `:admin` - - - `:billing` - - - `:claude_code_user` - - - `:developer` - - - `:managed` - - - `:membership_admin` - - - `:owner` - - - `:primary_owner` - - - `:user` - - - `status: :accepted | :deleted | :expired | :pending` - - Status of the Invite. - - - `:accepted` + ID of the Organization. - - `:deleted` + format: uuid - - `:expired` + - `name: String` - - `:pending` + Name of the Organization. #### Example @@ -90476,36 +90063,30 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_organization_invite = anthropic.beta.organization.invites.create(email: "user@emaildomain.com", role: :user) +beta_organization = anthropic.beta.organization.retrieve -puts(beta_organization_invite) +puts(beta_organization) ``` ##### Response (200) ```json { - "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", - "accepted_at": "2019-12-27T18:11:19.117Z", - "email": "user@emaildomain.com", - "expires_at": "2024-11-20T23:58:27.427722Z", - "invited_at": "2024-10-30T23:58:27.427722Z", - "rbac_group_ids": [ - "string" - ], - "role": "admin", - "status": "pending", - "type": "invite" + "id": "12345678-1234-5678-1234-567812345678", + "name": "Organization Name", + "type": "organization" } ``` -### List Invites +## Beta › Organization › API Keys -`beta.organization.invites.list(**kwargs) -> Page` +### List API Keys -**GET** `/v1/organizations/invites` +`beta.organization.api_keys.list(**kwargs) -> Page` -List the organization's invites. +**GET** `/v1/organizations/api_keys` + +List API Keys #### Parameters @@ -90517,11 +90098,9 @@ List the organization's invites. ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. -- `email: String` (query parameter) - - Filter by the email address the Invite was sent to. Matches the same way as the Users list's `email` filter (normalized, case-insensitive). +- `created_by_user_id: String` (query parameter) - format: email + Filter by the ID of the User who created the object. - `limit: Integer` (query parameter) @@ -90531,95 +90110,135 @@ List the organization's invites. minimum: 1, maximum: 1000 -- `roles: Array[String]` (query parameter) +- `status: :active | :archived | :expired | :inactive` (query parameter) - Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together. + Filter by API key status. - Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`. + - `:active` -- `statuses: Array[:accepted | :expired | :pending]` (query parameter) + - `:archived` - Filter by Invite status. Repeatable; values are OR'ed together. Omit to return `pending`, `accepted`, and `expired` Invites alike. + - `:expired` - - `:accepted` + - `:inactive` - - `:expired` +- `workspace_id: String` (query parameter) - - `:pending` + Filter by Workspace ID. #### Returns -- `class BetaOrganizationInvite` +- `class BetaAPIKey` - - `type: :invite` + - `type: :api_key` Object type. - For Invites, this is always `"invite"`. + For API Keys, this is always `"api_key"`. - `id: String` - ID of the Invite. + ID of the API key. - - `accepted_at: Time` + - `created_at: Time` - RFC 3339 datetime string indicating when the Invite was accepted, or null. + RFC 3339 datetime string indicating when the API Key was created. format: date-time - - `email: String` + - `created_by: BetaAPIKeyCreatedBy` - Email of the User being invited. + The ID and type of the actor that created the API key, or `null` when the + creator is not recorded (legacy, workload-identity-federated, or + system-created keys). + + - `type: :service_account | :user` + + Type of the actor that created the object. + + - `:service_account` + + - `:user` + + - `id: String` + + ID of the actor that created the object. - `expires_at: Time` - RFC 3339 datetime string indicating when the Invite expires. + RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. format: date-time - - `invited_at: Time` + - `name: String` - RFC 3339 datetime string indicating when the Invite was created. + Name of the API key. - format: date-time + - `partial_key_hint: String` - - `rbac_group_ids: Array[String]` + Partially redacted hint for the API key. - RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. + - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` - - `role: BetaOrganizationRole` + The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. - Organization role of the User. + - `class BetaAPIKeyUserActor` - - `:admin` + - `type: :user_actor` - - `:billing` + Principal type. Always `"user_actor"` for a User. - - `:claude_code_user` + - `user_id: String` - - `:developer` + ID of the User the API key acts as. - - `:managed` + - `class BetaAPIKeyServiceAccountActor` - - `:membership_admin` + - `type: :service_account_actor` - - `:owner` + Principal type. Always `"service_account_actor"` for a Service Account. - - `:primary_owner` + - `service_account_id: String` - - `:user` + ID of the Service Account the API key acts as. - - `status: :accepted | :deleted | :expired | :pending` + - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` - Status of the Invite. + Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. - - `:accepted` + - `class BetaAPIKeyOrganizationScope` - - `:deleted` + - `type: :organization` + + Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. + + - `class BetaAPIKeyWorkspaceScope` + + - `type: :workspace` + + Scope type. Always `"workspace"`: the API key belongs to one Workspace. + + - `workspace_id: String` + + ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. + + - `status: :active | :archived | :expired | :inactive` + + Status of the API key. + + - `:active` + + - `:archived` - `:expired` - - `:pending` + - `:inactive` + + - `workspace_id: String` + + **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. + + Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. #### Example @@ -90628,7 +90247,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.invites.list +page = anthropic.beta.organization.api_keys.list puts(page) ``` @@ -90639,17 +90258,26 @@ puts(page) { "data": [ { - "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", - "accepted_at": "2019-12-27T18:11:19.117Z", - "email": "user@emaildomain.com", - "expires_at": "2024-11-20T23:58:27.427722Z", - "invited_at": "2024-10-30T23:58:27.427722Z", - "rbac_group_ids": [ - "string" - ], - "role": "admin", - "status": "pending", - "type": "invite" + "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by": { + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "type": "user" + }, + "expires_at": "2024-10-30T23:58:27.427722Z", + "name": "Developer Key", + "partial_key_hint": "sk-ant-api03-R2D...igAA", + "principal": { + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "scope": { + "type": "workspace", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" + }, + "status": "active", + "type": "api_key", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" } ], "first_id": "first_id", @@ -90658,151 +90286,133 @@ puts(page) } ``` -### Get Invite +### Retrieve API Key (Admin API) -`beta.organization.invites.retrieve(invite_id) -> BetaOrganizationInvite` +`beta.organization.api_keys.retrieve(api_key_id) -> BetaAPIKey` -**GET** `/v1/organizations/invites/{invite_id}` +**GET** `/v1/organizations/api_keys/{api_key_id}` -Retrieve an invite by ID. +Retrieve information about a single API key in your organization, looked up by its ID. This Admin API endpoint requires an Admin API key, is intended for programmatic key management, and never returns the key's secret value. To view or create your own API keys, go to [API keys](https://platform.claude.com/settings/keys) in the Claude Console. #### Parameters -- `invite_id: String` (path parameter) +- `api_key_id: String` (path parameter) - ID of the Invite. + ID of the API key. #### Returns -- `class BetaOrganizationInvite` +- `class BetaAPIKey` - - `type: :invite` + - `type: :api_key` Object type. - For Invites, this is always `"invite"`. + For API Keys, this is always `"api_key"`. - `id: String` - ID of the Invite. + ID of the API key. - - `accepted_at: Time` + - `created_at: Time` - RFC 3339 datetime string indicating when the Invite was accepted, or null. + RFC 3339 datetime string indicating when the API Key was created. format: date-time - - `email: String` - - Email of the User being invited. - - - `expires_at: Time` + - `created_by: BetaAPIKeyCreatedBy` - RFC 3339 datetime string indicating when the Invite expires. + The ID and type of the actor that created the API key, or `null` when the + creator is not recorded (legacy, workload-identity-federated, or + system-created keys). - format: date-time + - `type: :service_account | :user` - - `invited_at: Time` + Type of the actor that created the object. - RFC 3339 datetime string indicating when the Invite was created. + - `:service_account` - format: date-time + - `:user` - - `rbac_group_ids: Array[String]` + - `id: String` - RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. + ID of the actor that created the object. - - `role: BetaOrganizationRole` + - `expires_at: Time` - Organization role of the User. + RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. - - `:admin` + format: date-time - - `:billing` + - `name: String` - - `:claude_code_user` + Name of the API key. - - `:developer` + - `partial_key_hint: String` - - `:managed` + Partially redacted hint for the API key. - - `:membership_admin` + - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` - - `:owner` + The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. - - `:primary_owner` + - `class BetaAPIKeyUserActor` - - `:user` + - `type: :user_actor` - - `status: :accepted | :deleted | :expired | :pending` + Principal type. Always `"user_actor"` for a User. - Status of the Invite. + - `user_id: String` - - `:accepted` + ID of the User the API key acts as. - - `:deleted` + - `class BetaAPIKeyServiceAccountActor` - - `:expired` + - `type: :service_account_actor` - - `:pending` + Principal type. Always `"service_account_actor"` for a Service Account. -#### Example + - `service_account_id: String` -```ruby -require "anthropic" + ID of the Service Account the API key acts as. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` -beta_organization_invite = anthropic.beta.organization.invites.retrieve("invite_id") + Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. -puts(beta_organization_invite) -``` + - `class BetaAPIKeyOrganizationScope` -##### Response (200) + - `type: :organization` -```json -{ - "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", - "accepted_at": "2019-12-27T18:11:19.117Z", - "email": "user@emaildomain.com", - "expires_at": "2024-11-20T23:58:27.427722Z", - "invited_at": "2024-10-30T23:58:27.427722Z", - "rbac_group_ids": [ - "string" - ], - "role": "admin", - "status": "pending", - "type": "invite" -} -``` + Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. -### Delete Invite + - `class BetaAPIKeyWorkspaceScope` -`beta.organization.invites.delete(invite_id) -> InviteDeleteResponse` + - `type: :workspace` -**DELETE** `/v1/organizations/invites/{invite_id}` + Scope type. Always `"workspace"`: the API key belongs to one Workspace. -Delete a pending invite. + - `workspace_id: String` -#### Parameters + ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. -- `invite_id: String` (path parameter) + - `status: :active | :archived | :expired | :inactive` - ID of the Invite. + Status of the API key. -#### Returns + - `:active` -- `class InviteDeleteResponse` + - `:archived` - - `type: :invite_deleted` + - `:expired` - Deleted object type. + - `:inactive` - For Invites, this is always `"invite_deleted"`. + - `workspace_id: String` - - `id: String` + **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. - ID of the Invite. + Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. #### Example @@ -90811,230 +90421,181 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -invite = anthropic.beta.organization.invites.delete("invite_id") +beta_api_key = anthropic.beta.organization.api_keys.retrieve("api_key_id") -puts(invite) +puts(beta_api_key) ``` ##### Response (200) ```json { - "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", - "type": "invite_deleted" + "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by": { + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "type": "user" + }, + "expires_at": "2024-10-30T23:58:27.427722Z", + "name": "Developer Key", + "partial_key_hint": "sk-ant-api03-R2D...igAA", + "principal": { + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "scope": { + "type": "workspace", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" + }, + "status": "active", + "type": "api_key", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" } ``` -## Beta › Organization › Service Accounts - -### Create Service Account +### Update API Key -`beta.organization.service_accounts.create(**kwargs) -> BetaServiceAccount` +`beta.organization.api_keys.update(api_key_id, **kwargs) -> BetaAPIKey` -**POST** `/v1/organizations/service_accounts` +**POST** `/v1/organizations/api_keys/{api_key_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +Update API Key -Create a service account. +#### Parameters -A service account is a named workload identity that federation rules -target. `organization_role` is `developer` (default) or `admin`; a rule -may only be created or retargeted to grant `org:admin` scope when the -target's `organization_role` is `admin`. Creating an `admin`-role service -account requires an interactive credential (a user OAuth token or a -Console session) — a workload may only create `developer`-role service -accounts. +- `api_key_id: String` (path parameter) -#### Parameters + ID of the API key. - `name: String` - Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. + Name of the API key. - minLength: 1, maxLength: 255 + minLength: 1, maxLength: 500 -- `description: String` +- `status: :active | :archived | :inactive` - Optional free-text description. + Status of the API key. - maxLength: 2000 + - `:active` -- `organization_role: :admin | :developer` + - `:archived` - Org-level role. Defaults to `developer`. + - `:inactive` - - `:admin` +#### Returns - - `:developer` +- `class BetaAPIKey` -- `betas: Array[AnthropicBeta]` (header parameter) + - `type: :api_key` - Optional header to specify the beta version(s) you want to use. + Object type. - - `String = String` + For API Keys, this is always `"api_key"`. - - `:"message-batches-2024-09-24"` + - `id: String` - - `:"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"` + ID of the API key. - - `:"fallback-credit-2026-07-01"` + - `created_at: Time` - - `:"agent-memory-2026-07-22"` + RFC 3339 datetime string indicating when the API Key was created. - - `:"mid-conversation-tool-changes-2026-07-01"` + format: date-time - - `:"compact-2026-01-12"` + - `created_by: BetaAPIKeyCreatedBy` - - `:"computer-use-2025-11-24"` + The ID and type of the actor that created the API key, or `null` when the + creator is not recorded (legacy, workload-identity-federated, or + system-created keys). - - `:"mcp-tunnels-2026-06-22"` + - `type: :service_account | :user` - - `:"structured-outputs-2025-11-13"` + Type of the actor that created the object. - - `:"task-budgets-2026-03-13"` + - `:service_account` - - `:"thinking-display-updates-2026-08-18"` + - `:user` - - `:"ce-user-management-2026-07-13"` + - `id: String` - - `:"mid-conversation-output-config-2026-07-01"` + ID of the actor that created the object. - - `:"thinking-binding-controls-2026-08-01"` + - `expires_at: Time` - - `:"mid-conversation-system-clear-at-2026-08-21"` + RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires. - - `:"compact-2026-09-04"` + format: date-time - - `:"inline-tools-2026-09-15"` + - `name: String` - - `:"mcp-client-2026-09-15"` + Name of the API key. - - `:"ce-plugins-2026-09-01"` + - `partial_key_hint: String` - - `:"spend-limit-reads-2026-09-26"` + Partially redacted hint for the API key. - - `:"telemetry-destinations-2026-08-11"` + - `principal: BetaAPIKeyUserActor | BetaAPIKeyServiceAccountActor` -#### Returns + The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal. -- `class BetaServiceAccount` + - `class BetaAPIKeyUserActor` - Named non-human identity within the caller's organization. + - `type: :user_actor` - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). + Principal type. Always `"user_actor"` for a User. - - `type: :service_account` + - `user_id: String` - - `id: String` + ID of the User the API key acts as. - Tagged ID of the service account. + - `class BetaAPIKeyServiceAccountActor` - - `archived_at: Time` + - `type: :service_account_actor` - If set, this service account is archived. + Principal type. Always `"service_account_actor"` for a Service Account. - format: date-time + - `service_account_id: String` - - `archived_by_actor_id: String` + ID of the Service Account the API key acts as. - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + - `scope: BetaAPIKeyOrganizationScope | BetaAPIKeyWorkspaceScope` - - `created_at: Time` + Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace. - When this service account was created. + - `class BetaAPIKeyOrganizationScope` - format: date-time + - `type: :organization` - - `created_by_actor_id: String` + Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope. - Tagged ID (`user_`/`svac_`) of the actor that created this service account. + - `class BetaAPIKeyWorkspaceScope` - - `description: String` + - `type: :workspace` - Optional free-text description. + Scope type. Always `"workspace"`: the API key belongs to one Workspace. - - `name: String` + - `workspace_id: String` - Admin-chosen slug identifier. + ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace. - - `organization_role: :admin | :developer` + - `status: :active | :archived | :expired | :inactive` - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + Status of the API key. - - `:admin` + - `:active` - - `:developer` + - `:archived` - - `updated_at: Time` + - `:expired` - When this service account was last updated. + - `:inactive` - format: date-time + - `workspace_id: String` - - `updated_by_actor_id: String` + **Deprecated**: Use `scope` instead. `workspace_id` is `null` both for an API key in the default Workspace and for a principal-bound API key that has no Workspace. - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart. #### Example @@ -91043,228 +90604,210 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account = anthropic.beta.organization.service_accounts.create(name: "ci-deploy-bot") +beta_api_key = anthropic.beta.organization.api_keys.update("api_key_id") -puts(beta_service_account) +puts(beta_api_key) ``` ##### Response (200) ```json { - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", + "id": "apikey_01Rj2N8SVvo6BePZj99NhmiT", "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" + "created_by": { + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "type": "user" + }, + "expires_at": "2024-10-30T23:58:27.427722Z", + "name": "Developer Key", + "partial_key_hint": "sk-ant-api03-R2D...igAA", + "principal": { + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "scope": { + "type": "workspace", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" + }, + "status": "active", + "type": "api_key", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" } ``` -### List Service Accounts - -`beta.organization.service_accounts.list(**kwargs) -> PageCursor` +## Beta › Organization › External Keys -**GET** `/v1/organizations/service_accounts` +### Create External Key -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +`beta.organization.external_keys.create(**kwargs) -> BetaExternalKey` -List service accounts in the caller's organization. +**POST** `/v1/organizations/external_keys` -Results are ordered by creation time, newest first. Use `limit` and the -`next_page` cursor to paginate; set `include_archived=true` to include -archived service accounts. +Create an external key config owned by the caller's organization. #### Parameters -- `include_archived: bool` (query parameter) - - Include archived resources. Defaults to false. - -- `limit: Integer` (query parameter) - - Number of results per page. - - minimum: 1, maximum: 100 - -- `page: String` (query parameter) - - Opaque cursor from a previous response's `next_page`. - -- `betas: Array[AnthropicBeta]` (header parameter) - - Optional header to specify the beta version(s) you want to use. - - - `String = String` +- `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfigParam` - - `:"message-batches-2024-09-24"` + KMS provider identity and auth coordinates. - - `:"prompt-caching-2024-07-31"` + - `class BetaAWSExternalKeyConfig` - - `:"computer-use-2024-10-22"` + - `type: :aws` - - `:"computer-use-2025-01-24"` + - `kms_arn: String` - - `:"pdfs-2024-09-25"` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `:"token-counting-2024-11-01"` + maxLength: 2048 - - `:"token-efficient-tools-2025-02-19"` + - `region: String` - - `:"output-128k-2025-02-19"` + AWS region. Derived from `kms_arn` if omitted. - - `:"files-api-2025-04-14"` + - `role_arn: String` - - `:"mcp-client-2025-04-04"` + **Deprecated** - - `:"mcp-client-2025-11-20"` + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. - - `:"dev-full-thinking-2025-05-14"` + - `class BetaGCPExternalKeyConfig` - - `:"interleaved-thinking-2025-05-14"` + - `type: :gcp` - - `:"code-execution-2025-05-22"` + - `key_name: String` - - `:"extended-cache-ttl-2025-04-11"` + Full resource name of the Cloud KMS key. - - `:"context-1m-2025-08-07"` + - `class BetaAzureExternalKeyConfigParam` - - `:"context-management-2025-06-27"` + Azure Key Vault provider configuration. - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :azure` - - `:"skills-2025-10-02"` + - `key_name: String` - - `:"fast-mode-2026-02-01"` + Name of the key within the vault. - - `:"output-300k-2026-03-24"` + - `tenant_id: String` - - `:"user-profiles-2026-03-24"` + Azure AD tenant ID. - - `:"user-profiles-2026-08-18"` + - `vault_uri: String` - - `:"user-profiles-2026-09-04"` + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. - - `:"advisor-tool-2026-03-01"` + - `client_id: String` - - `:"managed-agents-2026-04-01"` + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. - - `:"cache-diagnosis-2026-04-07"` +- `display_name: String` - - `:"dreaming-2026-04-21"` + Human-friendly display name. - - `:"thinking-token-count-2026-05-13"` + minLength: 1, maxLength: 255 - - `:"server-side-fallback-2026-06-01"` +- `geo: :us` - - `:"server-side-fallback-2026-07-01"` + Data residency geo. Only `us` is supported. - - `:"fallback-credit-2026-06-01"` +#### Returns - - `:"fallback-credit-2026-07-01"` +- `class BetaExternalKey` - - `:"agent-memory-2026-07-22"` + CMEK external key config belonging to the caller's organization. - - `:"mid-conversation-tool-changes-2026-07-01"` + Configs are organization-scoped. Workspaces attach to a config; once any + workspace references it, the provider fields become effectively immutable + (existing encrypted data needs the config for decrypt). - - `:"compact-2026-01-12"` + - `type: :external_key` - - `:"computer-use-2025-11-24"` + - `id: String` - - `:"mcp-tunnels-2026-06-22"` + Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. - - `:"structured-outputs-2025-11-13"` + - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` - - `:"task-budgets-2026-03-13"` + Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaExternalKeyAttachedAttachment` - - `:"ce-user-management-2026-07-13"` + - `type: :attached` - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaExternalKeyUnattachedAttachment` - - `:"thinking-binding-controls-2026-08-01"` + - `type: :unattached` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `created_at: Time` - - `:"compact-2026-09-04"` + format: date-time - - `:"inline-tools-2026-09-15"` + - `display_name: String` - - `:"mcp-client-2026-09-15"` + Human-friendly display name. Null if none was set. - - `:"ce-plugins-2026-09-01"` + - `geo: String` - - `:"spend-limit-reads-2026-09-26"` + Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. - - `:"telemetry-destinations-2026-08-11"` + - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` -#### Returns + KMS provider identity and auth coordinates. -- `class BetaServiceAccount` + - `class BetaAWSExternalKeyConfig` - Named non-human identity within the caller's organization. + - `type: :aws` - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). + - `kms_arn: String` - - `type: :service_account` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `id: String` + maxLength: 2048 - Tagged ID of the service account. + - `region: String` - - `archived_at: Time` + AWS region. Derived from `kms_arn` if omitted. - If set, this service account is archived. + - `role_arn: String` - format: date-time + **Deprecated** - - `archived_by_actor_id: String` + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + - `class BetaGCPExternalKeyConfig` - - `created_at: Time` + - `type: :gcp` - When this service account was created. + - `key_name: String` - format: date-time + Full resource name of the Cloud KMS key. - - `created_by_actor_id: String` + - `class BetaAzureExternalKeyConfig` - Tagged ID (`user_`/`svac_`) of the actor that created this service account. + - `type: :azure` - - `description: String` + - `key_name: String` - Optional free-text description. + Name of the key within the vault. - - `name: String` + - `tenant_id: String` - Admin-chosen slug identifier. + Azure AD tenant ID. - - `organization_role: :admin | :developer` + - `vault_uri: String` - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. - - `:admin` + - `client_id: String` - - `:developer` + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. - `updated_at: Time` - When this service account was last updated. - format: date-time - - `updated_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. - #### Example ```ruby @@ -91272,218 +90815,304 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.service_accounts.list +beta_external_key = anthropic.beta.organization.external_keys.create( + provider_config: {kms_arn: "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", type: :aws} +) -puts(page) +puts(beta_external_key) ``` ##### Response (200) ```json { - "data": [ - { - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" - } - ], - "next_page": "next_page" + "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "attachment": { + "type": "attached" + }, + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "prod-us-key", + "geo": "us", + "provider_config": { + "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", + "type": "aws", + "region": "us-east-1", + "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" + }, + "type": "external_key", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -### Get Service Account +### List External Keys -`beta.organization.service_accounts.retrieve(service_account_id, **kwargs) -> BetaServiceAccount` +`beta.organization.external_keys.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/service_accounts/{service_account_id}` +**GET** `/v1/organizations/external_keys` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +List external key configs in the caller's organization. -Retrieve a service account by its ID (`svac_...`). +Results are ordered by creation time (newest first). Use the +`next_page` cursor from the response to fetch subsequent pages. #### Parameters -- `service_account_id: String` (path parameter) +- `limit: Integer` (query parameter) - ID of the service account. + Number of results per page. -- `betas: Array[AnthropicBeta]` (header parameter) + minimum: 1, maximum: 100 - Optional header to specify the beta version(s) you want to use. +- `page: String` (query parameter) - - `String = String` + Opaque cursor from a previous response's `next_page`. - - `:"message-batches-2024-09-24"` +#### Returns - - `:"prompt-caching-2024-07-31"` +- `class BetaExternalKey` - - `:"computer-use-2024-10-22"` + CMEK external key config belonging to the caller's organization. - - `:"computer-use-2025-01-24"` + Configs are organization-scoped. Workspaces attach to a config; once any + workspace references it, the provider fields become effectively immutable + (existing encrypted data needs the config for decrypt). - - `:"pdfs-2024-09-25"` + - `type: :external_key` - - `:"token-counting-2024-11-01"` + - `id: String` - - `:"token-efficient-tools-2025-02-19"` + Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. - - `:"output-128k-2025-02-19"` + - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` - - `:"files-api-2025-04-14"` + Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. - - `:"mcp-client-2025-04-04"` + - `class BetaExternalKeyAttachedAttachment` - - `:"mcp-client-2025-11-20"` + - `type: :attached` - - `:"dev-full-thinking-2025-05-14"` + - `class BetaExternalKeyUnattachedAttachment` - - `:"interleaved-thinking-2025-05-14"` + - `type: :unattached` - - `:"code-execution-2025-05-22"` + - `created_at: Time` - - `:"extended-cache-ttl-2025-04-11"` + format: date-time - - `:"context-1m-2025-08-07"` + - `display_name: String` - - `:"context-management-2025-06-27"` + Human-friendly display name. Null if none was set. - - `:"model-context-window-exceeded-2025-08-26"` + - `geo: String` - - `:"skills-2025-10-02"` + Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. - - `:"fast-mode-2026-02-01"` + - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` - - `:"output-300k-2026-03-24"` + KMS provider identity and auth coordinates. - - `:"user-profiles-2026-03-24"` + - `class BetaAWSExternalKeyConfig` - - `:"user-profiles-2026-08-18"` + - `type: :aws` - - `:"user-profiles-2026-09-04"` + - `kms_arn: String` - - `:"advisor-tool-2026-03-01"` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `:"managed-agents-2026-04-01"` + maxLength: 2048 - - `:"cache-diagnosis-2026-04-07"` + - `region: String` - - `:"dreaming-2026-04-21"` + AWS region. Derived from `kms_arn` if omitted. - - `:"thinking-token-count-2026-05-13"` + - `role_arn: String` - - `:"server-side-fallback-2026-06-01"` + **Deprecated** - - `:"server-side-fallback-2026-07-01"` + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. - - `:"fallback-credit-2026-06-01"` + - `class BetaGCPExternalKeyConfig` - - `:"fallback-credit-2026-07-01"` + - `type: :gcp` - - `:"agent-memory-2026-07-22"` + - `key_name: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + Full resource name of the Cloud KMS key. - - `:"compact-2026-01-12"` + - `class BetaAzureExternalKeyConfig` - - `:"computer-use-2025-11-24"` + - `type: :azure` - - `:"mcp-tunnels-2026-06-22"` + - `key_name: String` - - `:"structured-outputs-2025-11-13"` + Name of the key within the vault. - - `:"task-budgets-2026-03-13"` + - `tenant_id: String` - - `:"thinking-display-updates-2026-08-18"` + Azure AD tenant ID. - - `:"ce-user-management-2026-07-13"` + - `vault_uri: String` - - `:"mid-conversation-output-config-2026-07-01"` + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. - - `:"thinking-binding-controls-2026-08-01"` + - `client_id: String` - - `:"mid-conversation-system-clear-at-2026-08-21"` + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. - - `:"compact-2026-09-04"` + - `updated_at: Time` - - `:"inline-tools-2026-09-15"` + format: date-time - - `:"mcp-client-2026-09-15"` +#### Example - - `:"ce-plugins-2026-09-01"` +```ruby +require "anthropic" - - `:"spend-limit-reads-2026-09-26"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"telemetry-destinations-2026-08-11"` +page = anthropic.beta.organization.external_keys.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "attachment": { + "type": "attached" + }, + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "prod-us-key", + "geo": "us", + "provider_config": { + "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", + "type": "aws", + "region": "us-east-1", + "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" + }, + "type": "external_key", + "updated_at": "2024-10-30T23:58:27.427722Z" + } + ], + "next_page": "next_page" +} +``` + +### Get External Key + +`beta.organization.external_keys.retrieve(external_key_id) -> BetaExternalKey` + +**GET** `/v1/organizations/external_keys/{external_key_id}` + +Retrieve a single external key config in the caller's organization by ID. + +#### Parameters + +- `external_key_id: String` (path parameter) + + ID of the External Key. + + maxLength: 2048 #### Returns -- `class BetaServiceAccount` +- `class BetaExternalKey` - Named non-human identity within the caller's organization. + CMEK external key config belonging to the caller's organization. - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). + Configs are organization-scoped. Workspaces attach to a config; once any + workspace references it, the provider fields become effectively immutable + (existing encrypted data needs the config for decrypt). - - `type: :service_account` + - `type: :external_key` - `id: String` - Tagged ID of the service account. + Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. - - `archived_at: Time` + - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` - If set, this service account is archived. + Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. - format: date-time + - `class BetaExternalKeyAttachedAttachment` - - `archived_by_actor_id: String` + - `type: :attached` - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + - `class BetaExternalKeyUnattachedAttachment` - - `created_at: Time` + - `type: :unattached` - When this service account was created. + - `created_at: Time` format: date-time - - `created_by_actor_id: String` + - `display_name: String` - Tagged ID (`user_`/`svac_`) of the actor that created this service account. + Human-friendly display name. Null if none was set. - - `description: String` + - `geo: String` - Optional free-text description. + Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. - - `name: String` + - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` - Admin-chosen slug identifier. + KMS provider identity and auth coordinates. - - `organization_role: :admin | :developer` + - `class BetaAWSExternalKeyConfig` - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + - `type: :aws` - - `:admin` + - `kms_arn: String` - - `:developer` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `updated_at: Time` + maxLength: 2048 - When this service account was last updated. + - `region: String` - format: date-time + AWS region. Derived from `kms_arn` if omitted. - - `updated_by_actor_id: String` + - `role_arn: String` - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + **Deprecated** + + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. + + - `class BetaGCPExternalKeyConfig` + + - `type: :gcp` + + - `key_name: String` + + Full resource name of the Cloud KMS key. + + - `class BetaAzureExternalKeyConfig` + + - `type: :azure` + + - `key_name: String` + + Name of the key within the vault. + + - `tenant_id: String` + + Azure AD tenant ID. + + - `vault_uri: String` + + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. + + - `client_id: String` + + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. + + - `updated_at: Time` + + format: date-time #### Example @@ -91492,233 +91121,213 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account = anthropic.beta.organization.service_accounts.retrieve("service_account_id") +beta_external_key = anthropic.beta.organization.external_keys.retrieve("external_key_id") -puts(beta_service_account) +puts(beta_external_key) ``` ##### Response (200) ```json { - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", + "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "attachment": { + "type": "attached" + }, "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" + "display_name": "prod-us-key", + "geo": "us", + "provider_config": { + "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", + "type": "aws", + "region": "us-east-1", + "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" + }, + "type": "external_key", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -### Update Service Account - -`beta.organization.service_accounts.update(service_account_id, **kwargs) -> BetaServiceAccount` +### Update External Key -**POST** `/v1/organizations/service_accounts/{service_account_id}` +`beta.organization.external_keys.update(external_key_id, **kwargs) -> BetaExternalKey` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**POST** `/v1/organizations/external_keys/{external_key_id}` -Update a service account. +Partially update an external key config. Omitted fields are left unchanged. -Only `description` and `organization_role` are mutable; `name` cannot be -changed. Archived service accounts cannot be updated; this returns 400. -Setting `organization_role` to `admin` (even when unchanged) requires an -interactive credential (a user OAuth token or a Console session). +`display_name` is always editable. `geo` and `provider_config` cannot +be changed once any workspace references this config, because previously +encrypted data requires the original key identity to decrypt. #### Parameters -- `service_account_id: String` (path parameter) - - ID of the service account to update. - -- `description: String` - - Replaces the description. Omit to leave unchanged; send `null` to clear (the field is stored as an empty string). - - maxLength: 2000 - -- `organization_role: :admin | :developer` - - Replaces the org-level role. Omit or send `null` to leave unchanged. - - - `:admin` - - - `:developer` +- `external_key_id: String` (path parameter) -- `betas: Array[AnthropicBeta]` (header parameter) + ID of the External Key. - Optional header to specify the beta version(s) you want to use. + maxLength: 2048 - - `String = String` +- `display_name: String` - - `:"message-batches-2024-09-24"` + Human-friendly display name. - - `:"prompt-caching-2024-07-31"` + minLength: 1, maxLength: 255 - - `:"computer-use-2024-10-22"` +- `geo: :us` - - `:"computer-use-2025-01-24"` + Data residency geo. Only `us` is supported. - - `:"pdfs-2024-09-25"` +- `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfigParam` - - `:"token-counting-2024-11-01"` + KMS provider identity and auth coordinates. - - `:"token-efficient-tools-2025-02-19"` + - `class BetaAWSExternalKeyConfig` - - `:"output-128k-2025-02-19"` + - `type: :aws` - - `:"files-api-2025-04-14"` + - `kms_arn: String` - - `:"mcp-client-2025-04-04"` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `:"mcp-client-2025-11-20"` + maxLength: 2048 - - `:"dev-full-thinking-2025-05-14"` + - `region: String` - - `:"interleaved-thinking-2025-05-14"` + AWS region. Derived from `kms_arn` if omitted. - - `:"code-execution-2025-05-22"` + - `role_arn: String` - - `:"extended-cache-ttl-2025-04-11"` + **Deprecated** - - `:"context-1m-2025-08-07"` + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. - - `:"context-management-2025-06-27"` + - `class BetaGCPExternalKeyConfig` - - `:"model-context-window-exceeded-2025-08-26"` + - `type: :gcp` - - `:"skills-2025-10-02"` + - `key_name: String` - - `:"fast-mode-2026-02-01"` + Full resource name of the Cloud KMS key. - - `:"output-300k-2026-03-24"` + - `class BetaAzureExternalKeyConfigParam` - - `:"user-profiles-2026-03-24"` + Azure Key Vault provider configuration. - - `:"user-profiles-2026-08-18"` + - `type: :azure` - - `:"user-profiles-2026-09-04"` + - `key_name: String` - - `:"advisor-tool-2026-03-01"` + Name of the key within the vault. - - `:"managed-agents-2026-04-01"` + - `tenant_id: String` - - `:"cache-diagnosis-2026-04-07"` + Azure AD tenant ID. - - `:"dreaming-2026-04-21"` + - `vault_uri: String` - - `:"thinking-token-count-2026-05-13"` + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. - - `:"server-side-fallback-2026-06-01"` + - `client_id: String` - - `:"server-side-fallback-2026-07-01"` + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. - - `:"fallback-credit-2026-06-01"` +#### Returns - - `:"fallback-credit-2026-07-01"` +- `class BetaExternalKey` - - `:"agent-memory-2026-07-22"` + CMEK external key config belonging to the caller's organization. - - `:"mid-conversation-tool-changes-2026-07-01"` + Configs are organization-scoped. Workspaces attach to a config; once any + workspace references it, the provider fields become effectively immutable + (existing encrypted data needs the config for decrypt). - - `:"compact-2026-01-12"` + - `type: :external_key` - - `:"computer-use-2025-11-24"` + - `id: String` - - `:"mcp-tunnels-2026-06-22"` + Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN. - - `:"structured-outputs-2025-11-13"` + - `attachment: BetaExternalKeyAttachedAttachment | BetaExternalKeyUnattachedAttachment` - - `:"task-budgets-2026-03-13"` + Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted. - - `:"thinking-display-updates-2026-08-18"` + - `class BetaExternalKeyAttachedAttachment` - - `:"ce-user-management-2026-07-13"` + - `type: :attached` - - `:"mid-conversation-output-config-2026-07-01"` + - `class BetaExternalKeyUnattachedAttachment` - - `:"thinking-binding-controls-2026-08-01"` + - `type: :unattached` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `created_at: Time` - - `:"compact-2026-09-04"` + format: date-time - - `:"inline-tools-2026-09-15"` + - `display_name: String` - - `:"mcp-client-2026-09-15"` + Human-friendly display name. Null if none was set. - - `:"ce-plugins-2026-09-01"` + - `geo: String` - - `:"spend-limit-reads-2026-09-26"` + Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips. - - `:"telemetry-destinations-2026-08-11"` + - `provider_config: BetaAWSExternalKeyConfig | BetaGCPExternalKeyConfig | BetaAzureExternalKeyConfig` -#### Returns + KMS provider identity and auth coordinates. -- `class BetaServiceAccount` + - `class BetaAWSExternalKeyConfig` - Named non-human identity within the caller's organization. + - `type: :aws` - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). + - `kms_arn: String` - - `type: :service_account` + Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected. - - `id: String` + maxLength: 2048 - Tagged ID of the service account. + - `region: String` - - `archived_at: Time` + AWS region. Derived from `kms_arn` if omitted. - If set, this service account is archived. + - `role_arn: String` - format: date-time + **Deprecated** - - `archived_by_actor_id: String` + IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored. - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + - `class BetaGCPExternalKeyConfig` - - `created_at: Time` + - `type: :gcp` - When this service account was created. + - `key_name: String` - format: date-time + Full resource name of the Cloud KMS key. - - `created_by_actor_id: String` + - `class BetaAzureExternalKeyConfig` - Tagged ID (`user_`/`svac_`) of the actor that created this service account. + - `type: :azure` - - `description: String` + - `key_name: String` - Optional free-text description. + Name of the key within the vault. - - `name: String` + - `tenant_id: String` - Admin-chosen slug identifier. + Azure AD tenant ID. - - `organization_role: :admin | :developer` + - `vault_uri: String` - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + Key Vault data-plane URI — `https://{vault-name}.vault.azure.net` or `https://{hsm-name}.managedhsm.azure.net`. - - `:admin` + - `client_id: String` - - `:developer` + Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory. - `updated_at: Time` - When this service account was last updated. - format: date-time - - `updated_by_actor_id: String` - - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. - #### Example ```ruby @@ -91726,289 +91335,243 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account = anthropic.beta.organization.service_accounts.update("service_account_id") +beta_external_key = anthropic.beta.organization.external_keys.update("external_key_id") -puts(beta_service_account) +puts(beta_external_key) ``` ##### Response (200) ```json { - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", + "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "attachment": { + "type": "attached" + }, "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" + "display_name": "prod-us-key", + "geo": "us", + "provider_config": { + "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222", + "type": "aws", + "region": "us-east-1", + "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek" + }, + "type": "external_key", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -### Archive Service Account - -`beta.organization.service_accounts.archive(service_account_id, **kwargs) -> BetaServiceAccount` +### Delete External Key -**POST** `/v1/organizations/service_accounts/{service_account_id}/archive` +`beta.organization.external_keys.delete(external_key_id) -> ExternalKeyDeleteResponse` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). +**DELETE** `/v1/organizations/external_keys/{external_key_id}` -Archive a service account. +Delete an external key config. -Idempotent; re-archiving returns the service account with its original -`archived_at`. Rejected with 400 if any live (non-archived) federation -rule still targets this service account, same as issuer archival; archive -those rules first or change their target to another service account. +The request is rejected if any workspace still references this config. #### Parameters -- `service_account_id: String` (path parameter) +- `external_key_id: String` (path parameter) - ID of the service account to archive. + ID of the External Key. -- `betas: Array[AnthropicBeta]` (header parameter) + maxLength: 2048 - Optional header to specify the beta version(s) you want to use. +#### Returns - - `String = String` +- `class ExternalKeyDeleteResponse` - - `:"message-batches-2024-09-24"` + - `type: :external_key_deleted` - - `:"prompt-caching-2024-07-31"` + - `id: String` - - `:"computer-use-2024-10-22"` + ID of the deleted External Key. - - `:"computer-use-2025-01-24"` +#### Example - - `:"pdfs-2024-09-25"` +```ruby +require "anthropic" - - `:"token-counting-2024-11-01"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"token-efficient-tools-2025-02-19"` +external_key = anthropic.beta.organization.external_keys.delete("external_key_id") - - `:"output-128k-2025-02-19"` +puts(external_key) +``` - - `:"files-api-2025-04-14"` +##### Response (200) - - `:"mcp-client-2025-04-04"` +```json +{ + "id": "ekey_01AbCdEfGhIjKlMnOpQrStUv", + "type": "external_key_deleted" +} +``` - - `:"mcp-client-2025-11-20"` +### Validate External Key - - `:"dev-full-thinking-2025-05-14"` +`beta.organization.external_keys.validate(external_key_id) -> ExternalKeyValidateResponse` - - `:"interleaved-thinking-2025-05-14"` +**POST** `/v1/organizations/external_keys/{external_key_id}/validate` - - `:"code-execution-2025-05-22"` +Validate an external key config against the customer's KMS. - - `:"extended-cache-ttl-2025-04-11"` +Anthropic performs an encrypt/decrypt roundtrip against the configured +KMS key and waits up to 30 seconds for the result. The response status is +`success` if the roundtrip succeeded, or `failure` with an error +message if it failed or timed out. - - `:"context-1m-2025-08-07"` +#### Parameters - - `:"context-management-2025-06-27"` +- `external_key_id: String` (path parameter) - - `:"model-context-window-exceeded-2025-08-26"` + ID of the External Key. - - `:"skills-2025-10-02"` + maxLength: 2048 - - `:"fast-mode-2026-02-01"` +#### Returns - - `:"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"` +- `class ExternalKeyValidateResponse` - - `:"inline-tools-2026-09-15"` + Result of a validation roundtrip against the customer's KMS. - - `:"mcp-client-2026-09-15"` + HTTP 200 for both outcomes — the operation completed; `status` says + whether the key works. - - `:"ce-plugins-2026-09-01"` + - `type: :external_key_validation` - - `:"spend-limit-reads-2026-09-26"` + - `error: String` - - `:"telemetry-destinations-2026-08-11"` + Error message when status is `failure`. Null otherwise. -#### Returns + - `status: :failure | :success` -- `class BetaServiceAccount` + `success` — encrypt/decrypt roundtrip succeeded. `failure` — the roundtrip failed or timed out; see `error`. - Named non-human identity within the caller's organization. + - `:failure` - A service account is a pure identity: name + org. Authorization lives on - whatever references it (federation rules). + - `:success` - - `type: :service_account` +#### Example - - `id: String` +```ruby +require "anthropic" - Tagged ID of the service account. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `archived_at: Time` +response = anthropic.beta.organization.external_keys.validate("external_key_id") - If set, this service account is archived. +puts(response) +``` - format: date-time +##### Response (200) - - `archived_by_actor_id: String` +```json +{ + "error": "error", + "status": "failure", + "type": "external_key_validation" +} +``` - Tagged ID (`user_`/`svac_`) of the actor that archived this service account. +## Beta › Organization › Federation › Issuers - - `created_at: Time` +### Create Federation Issuer - When this service account was created. +`beta.organization.federation.issuers.create(**kwargs) -> BetaFederationIssuer` - format: date-time +**POST** `/v1/organizations/federation_issuers` - - `created_by_actor_id: String` +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). - Tagged ID (`user_`/`svac_`) of the actor that created this service account. +Register an OIDC issuer that Anthropic will trust for workload identity +federation in your organization. - - `description: String` +The `jwks` field controls how the issuer's signing keys are obtained and +takes one of three shapes selected by `type`: `discovery` (resolve keys +through OIDC discovery), `explicit_url` (fetch keys from a fixed JWKS +URL), or `inline` (provide a static key set). When `jwks.type` is +`discovery` and no `discovery_base` is set, the issuer URL must be +publicly reachable over HTTPS so Anthropic can fetch the discovery +document; for `explicit_url` and `inline` modes the issuer URL is only +matched as the JWT's `iss` claim and is not fetched. - Optional free-text description. +#### Parameters - - `name: String` +- `issuer_url: String` - Admin-chosen slug identifier. + The `iss` claim value to match against. - - `organization_role: :admin | :developer` + minLength: 1 - Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. +- `name: String` - - `:admin` + Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. - - `:developer` + minLength: 1, maxLength: 255 - - `updated_at: Time` +- `check_jti: bool` - When this service account was last updated. + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Defaults to true. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. - format: date-time +- `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` - - `updated_by_actor_id: String` + How signing keys are obtained. Defaults to OIDC discovery. - Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + - `class BetaJWKSDiscovery` -#### Example + JWKS via the issuer's OIDC discovery document. -```ruby -require "anthropic" + - `type: :discovery` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `ca_cert_pem: String` -beta_service_account = anthropic.beta.organization.service_accounts.archive("service_account_id") + Optional custom CA (PEM) for TLS verification of the JWKS fetch. -puts(beta_service_account) -``` + maxLength: 8192 -##### Response (200) + - `discovery_base: String` -```json -{ - "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", - "archived_at": "2019-12-27T18:11:19.117Z", - "archived_by_actor_id": "archived_by_actor_id", - "created_at": "2024-10-30T23:58:27.427722Z", - "created_by_actor_id": "created_by_actor_id", - "description": "description", - "name": "ci-deploy-bot", - "organization_role": "admin", - "type": "service_account", - "updated_at": "2024-10-30T23:58:27.427722Z", - "updated_by_actor_id": "updated_by_actor_id" -} -``` + Set when the discovery URL differs from `issuer_url`. -## Beta › Organization › Service Accounts › Workspaces + - `class BetaJWKSExplicitURL` -### Add Workspace To Service Account + JWKS fetched from a fixed endpoint. -`beta.organization.service_accounts.workspaces.add(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + - `type: :explicit_url` -**POST** `/v1/organizations/service_accounts/{service_account_id}/workspaces` + - `url: String` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + JWKS endpoint. -Add a service account to a workspace with the given `workspace_role`. + minLength: 1 -Mirror of `POST /workspaces/{workspace_id}/service_accounts`, addressed -from the service-account side; both create the same membership. If the -service account is already an explicit member of the workspace, its -`workspace_role` is replaced with the value supplied here. Archived -workspaces return 400. Archived service accounts cannot be added and are -rejected. + - `ca_cert_pem: String` -#### Parameters + Optional custom CA (PEM) for TLS verification of the JWKS fetch. -- `service_account_id: String` (path parameter) + maxLength: 8192 - ID of the service account. + - `class BetaJWKSInline` -- `workspace_id: String` + JWKS supplied directly; no network fetch. - Tagged workspace ID to add the service account to. + - `type: :inline` -- `workspace_role: BetaNoBillingWorkspaceRole` + - `keys: Array[Hash[Symbol, untyped]]` - Role to assign to the service account in this workspace. + Inline JWK objects. - - `:workspace_admin` + minItems: 1 - - `:workspace_developer` +- `max_jwt_lifetime_seconds: Integer` - - `:workspace_restricted_developer` + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Defaults to 3600 (1h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. - - `:workspace_user` + minimum: 1, maximum: 176400 - `betas: Array[AnthropicBeta]` (header parameter) @@ -92118,41 +91681,144 @@ rejected. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaServiceAccountWorkspaceMember` +- `class BetaFederationIssuer` - - `type: :service_account_workspace_member` + Registered external OIDC identity provider. + + Records an external IdP the organization trusts for the RFC 7523 + jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. + + - `type: :federation_issuer` + + - `id: String` + + Tagged ID of the federation issuer. + + - `archived_at: Time` + + If set, all rules referencing this issuer reject token exchange. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. + + - `check_jti: bool` + + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. + + - `created_at: Time` + + When this issuer was created. + + format: date-time - `created_by_actor_id: String` - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + Tagged ID (`user_`/`svac_`) of the actor that created this issuer. - - `implicit: bool` + - `issuer_url: String` - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + The `iss` claim value. Incoming JWTs must match exactly. - - `service_account_id: String` + - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` - Tagged service account ID (`svac_...`). + How signing keys are obtained for signature verification. - - `workspace_id: String` + - `class BetaJWKSDiscovery` - Tagged workspace ID (`wrkspc_...`). + JWKS via the issuer's OIDC discovery document. - - `workspace_role: BetaWorkspaceRole` + - `type: :discovery` - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + - `ca_cert_pem: String` - - `:workspace_admin` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - - `:workspace_billing` + maxLength: 8192 - - `:workspace_developer` + - `discovery_base: String` - - `:workspace_restricted_developer` + Set when the discovery URL differs from `issuer_url`. - - `:workspace_user` + - `class BetaJWKSExplicitURL` + + JWKS fetched from a fixed endpoint. + + - `type: :explicit_url` + + - `url: String` + + JWKS endpoint. + + minLength: 1 + + - `ca_cert_pem: String` + + Optional custom CA (PEM) for TLS verification of the JWKS fetch. + + maxLength: 8192 + + - `class BetaJWKSInline` + + JWKS supplied directly; no network fetch. + + - `type: :inline` + + - `keys: Array[Hash[Symbol, untyped]]` + + Inline JWK objects. + + minItems: 1 + + - `jwks_polling_disabled_at: Time` + + If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + + format: date-time + + - `max_jwt_lifetime_seconds: Integer` + + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + + - `name: String` + + Admin-chosen slug identifier. + + - `poll_status: BetaFederationIssuerPollStatus` + + Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + + - `consecutive_failures: Integer` + + Consecutive fetch failures since the last success. + + - `last_fetched_at: Time` + + When the last successful fetch completed. + + format: date-time + + - `next_poll_at: Time` + + When the next fetch is scheduled. Null if paused. + + format: date-time + + - `updated_at: Time` + + When this issuer was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. #### Example @@ -92161,57 +91827,58 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account_workspace_member = anthropic.beta.organization.service_accounts.workspaces.add( - "service_account_id", - workspace_id: "workspace_id", - workspace_role: :workspace_admin -) +beta_federation_issuer = anthropic.beta.organization.federation.issuers.create(issuer_url: "x", name: "x") -puts(beta_service_account_workspace_member) +puts(beta_federation_issuer) ``` ##### Response (200) ```json { + "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "check_jti": true, + "created_at": "2024-10-30T23:58:27.427722Z", "created_by_actor_id": "created_by_actor_id", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", - "workspace_id": "workspace_id", - "workspace_role": "workspace_admin" + "issuer_url": "https://token.actions.githubusercontent.com", + "jwks": { + "type": "discovery", + "ca_cert_pem": "ca_cert_pem", + "discovery_base": "discovery_base" + }, + "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", + "max_jwt_lifetime_seconds": 0, + "name": "github-actions", + "poll_status": { + "consecutive_failures": 0, + "last_fetched_at": "2019-12-27T18:11:19.117Z", + "next_poll_at": "2019-12-27T18:11:19.117Z" + }, + "type": "federation_issuer", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" } ``` -### List Workspaces For Service Account +### List Federation Issuers -`beta.organization.service_accounts.workspaces.list(service_account_id, **kwargs) -> PageCursor` +`beta.organization.federation.issuers.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/service_accounts/{service_account_id}/workspaces` +**GET** `/v1/organizations/federation_issuers` **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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -List the workspaces a service account is a member of. +List federation issuers in your organization. -Each entry includes the service account's `workspace_role` in that -workspace. Use `limit` and the `next_page` cursor to paginate. When the -service account has no explicit default-workspace membership, the -implicit (`implicit: true`) membership is returned as the first entry on -the first page; with `limit=1` the first page may return up to 2 entries -(the implicit entry plus one explicit membership) so a pagination cursor -can be derived. Memberships are returned only while -the service account is active. Without a `page` cursor, an archived -service account returns an empty list. A `page` cursor that does not -match an active membership returns a 400 invalid-request error. A cursor -stops matching when the membership is removed, the workspace is deleted, -or the service account is archived. Restart pagination from the first -page to recover. +Archived issuers are excluded unless `include_archived=true`. #### Parameters -- `service_account_id: String` (path parameter) +- `include_archived: bool` (query parameter) - ID of the service account. + Include archived resources. Defaults to false. - `limit: Integer` (query parameter) @@ -92331,113 +91998,221 @@ page to recover. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaServiceAccountWorkspaceMember` +- `class BetaFederationIssuer` - - `type: :service_account_workspace_member` + Registered external OIDC identity provider. - - `created_by_actor_id: String` + Records an external IdP the organization trusts for the RFC 7523 + jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + - `type: :federation_issuer` - - `implicit: bool` + - `id: String` - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + Tagged ID of the federation issuer. - - `service_account_id: String` + - `archived_at: Time` - Tagged service account ID (`svac_...`). + If set, all rules referencing this issuer reject token exchange. - - `workspace_id: String` + format: date-time - Tagged workspace ID (`wrkspc_...`). + - `archived_by_actor_id: String` - - `workspace_role: BetaWorkspaceRole` + Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + - `check_jti: bool` - - `:workspace_admin` + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. - - `:workspace_billing` + - `created_at: Time` - - `:workspace_developer` + When this issuer was created. - - `:workspace_restricted_developer` + format: date-time - - `:workspace_user` + - `created_by_actor_id: String` -#### Example + Tagged ID (`user_`/`svac_`) of the actor that created this issuer. -```ruby -require "anthropic" + - `issuer_url: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The `iss` claim value. Incoming JWTs must match exactly. -page = anthropic.beta.organization.service_accounts.workspaces.list("service_account_id") + - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` -puts(page) -``` + How signing keys are obtained for signature verification. -##### Response (200) + - `class BetaJWKSDiscovery` -```json -{ - "data": [ - { - "created_by_actor_id": "created_by_actor_id", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", - "workspace_id": "workspace_id", - "workspace_role": "workspace_admin" - } - ], - "next_page": "next_page" -} -``` + JWKS via the issuer's OIDC discovery document. -### Remove Workspace From Service Account + - `type: :discovery` -`beta.organization.service_accounts.workspaces.remove(workspace_id, **kwargs) -> WorkspaceRemoveResponse` + - `ca_cert_pem: String` -**DELETE** `/v1/organizations/service_accounts/{service_account_id}/workspaces/{workspace_id}` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + maxLength: 8192 -Remove a service account from a workspace. + - `discovery_base: String` -Mirror of `DELETE /workspaces/{workspace_id}/service_accounts/{service_account_id}`, -addressed from the service-account side. Removal is idempotent (returns -200 even if the membership was already removed). A DELETE against the -implicit default-workspace membership returns 200 but is a no-op and the -membership persists; deleting an explicit default-workspace row reverts -to the implicit `workspace_user` membership. Archived workspaces return -400. + Set when the discovery URL differs from `issuer_url`. -#### Parameters + - `class BetaJWKSExplicitURL` -- `service_account_id: String` (path parameter) + JWKS fetched from a fixed endpoint. - ID of the service account. + - `type: :explicit_url` -- `workspace_id: String` (path parameter) + - `url: String` - ID of the workspace. + JWKS endpoint. -- `betas: Array[AnthropicBeta]` (header parameter) + minLength: 1 - Optional header to specify the beta version(s) you want to use. + - `ca_cert_pem: String` - - `String = String` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - - `:"message-batches-2024-09-24"` + maxLength: 8192 - - `:"prompt-caching-2024-07-31"` + - `class BetaJWKSInline` - - `:"computer-use-2024-10-22"` + JWKS supplied directly; no network fetch. - - `:"computer-use-2025-01-24"` + - `type: :inline` + + - `keys: Array[Hash[Symbol, untyped]]` + + Inline JWK objects. + + minItems: 1 + + - `jwks_polling_disabled_at: Time` + + If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. + + format: date-time + + - `max_jwt_lifetime_seconds: Integer` + + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. + + - `name: String` + + Admin-chosen slug identifier. + + - `poll_status: BetaFederationIssuerPollStatus` + + Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. + + - `consecutive_failures: Integer` + + Consecutive fetch failures since the last success. + + - `last_fetched_at: Time` + + When the last successful fetch completed. + + format: date-time + + - `next_poll_at: Time` + + When the next fetch is scheduled. Null if paused. + + format: date-time + + - `updated_at: Time` + + When this issuer was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.federation.issuers.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "check_jti": true, + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "issuer_url": "https://token.actions.githubusercontent.com", + "jwks": { + "type": "discovery", + "ca_cert_pem": "ca_cert_pem", + "discovery_base": "discovery_base" + }, + "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", + "max_jwt_lifetime_seconds": 0, + "name": "github-actions", + "poll_status": { + "consecutive_failures": 0, + "last_fetched_at": "2019-12-27T18:11:19.117Z", + "next_poll_at": "2019-12-27T18:11:19.117Z" + }, + "type": "federation_issuer", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" + } + ], + "next_page": "next_page" +} +``` + +### Get Federation Issuer + +`beta.organization.federation.issuers.retrieve(federation_issuer_id, **kwargs) -> BetaFederationIssuer` + +**GET** `/v1/organizations/federation_issuers/{federation_issuer_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Retrieve a federation issuer by its ID (`fdis_...`). + +#### Parameters + +- `federation_issuer_id: String` (path parameter) + + ID of the federation issuer. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"message-batches-2024-09-24"` + + - `:"prompt-caching-2024-07-31"` + + - `:"computer-use-2024-10-22"` + + - `:"computer-use-2025-01-24"` - `:"pdfs-2024-09-25"` @@ -92533,134 +92308,144 @@ to the implicit `workspace_user` membership. Archived workspaces return - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class WorkspaceRemoveResponse` +- `class BetaFederationIssuer` - - `type: :service_account_workspace_member_deleted` + Registered external OIDC identity provider. - - `service_account_id: String` + Records an external IdP the organization trusts for the RFC 7523 + jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. - Tagged service account ID (`svac_...`) named in the delete request. Removal is idempotent; see the endpoint description for the implicit-membership no-op. + - `type: :federation_issuer` - - `workspace_id: String` + - `id: String` - Tagged workspace ID (`wrkspc_...`) named in the delete request. + Tagged ID of the federation issuer. -#### Example + - `archived_at: Time` -```ruby -require "anthropic" + If set, all rules referencing this issuer reject token exchange. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + format: date-time -workspace = anthropic.beta.organization.service_accounts.workspaces.remove( - "workspace_id", - service_account_id: "service_account_id" -) + - `archived_by_actor_id: String` -puts(workspace) -``` + Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. -##### Response (200) + - `check_jti: bool` -```json -{ - "service_account_id": "service_account_id", - "type": "service_account_workspace_member_deleted", - "workspace_id": "workspace_id" -} -``` + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. -## Beta › Organization › Users + - `created_at: Time` -### List Users + When this issuer was created. -`beta.organization.users.list(**kwargs) -> Page` + format: date-time -**GET** `/v1/organizations/users` + - `created_by_actor_id: String` -List the organization's members. + Tagged ID (`user_`/`svac_`) of the actor that created this issuer. -#### Parameters + - `issuer_url: String` -- `after_id: String` (query parameter) + The `iss` claim value. Incoming JWTs must match exactly. - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` -- `before_id: String` (query parameter) + How signing keys are obtained for signature verification. - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + - `class BetaJWKSDiscovery` -- `email: String` (query parameter) + JWKS via the issuer's OIDC discovery document. - Filter by user email. + - `type: :discovery` - format: email + - `ca_cert_pem: String` -- `limit: Integer` (query parameter) + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - Number of items to return per page. + maxLength: 8192 - Defaults to `20`. Ranges from `1` to `1000`. + - `discovery_base: String` - minimum: 1, maximum: 1000 + Set when the discovery URL differs from `issuer_url`. -- `roles: Array[String]` (query parameter) + - `class BetaJWKSExplicitURL` - Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together. + JWKS fetched from a fixed endpoint. - Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`. + - `type: :explicit_url` -#### Returns + - `url: String` -- `class BetaOrganizationUser` + JWKS endpoint. - - `type: :user` + minLength: 1 - Object type. + - `ca_cert_pem: String` - For Users, this is always `"user"`. + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - - `id: String` + maxLength: 8192 - ID of the User. + - `class BetaJWKSInline` - - `added_at: Time` + JWKS supplied directly; no network fetch. - RFC 3339 datetime string indicating when the User joined the Organization. + - `type: :inline` + + - `keys: Array[Hash[Symbol, untyped]]` + + Inline JWK objects. + + minItems: 1 + + - `jwks_polling_disabled_at: Time` + + If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. format: date-time - - `email: String` + - `max_jwt_lifetime_seconds: Integer` - Email of the User. + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. - `name: String` - Name of the User. + Admin-chosen slug identifier. - - `role: BetaOrganizationRole` + - `poll_status: BetaFederationIssuerPollStatus` - Organization role of the User. + Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. - - `:admin` + - `consecutive_failures: Integer` - - `:billing` + Consecutive fetch failures since the last success. - - `:claude_code_user` + - `last_fetched_at: Time` - - `:developer` + When the last successful fetch completed. - - `:managed` + format: date-time - - `:membership_admin` + - `next_poll_at: Time` - - `:owner` + When the next fetch is scheduled. Null if paused. - - `:primary_owner` + format: date-time - - `:user` + - `updated_at: Time` + + When this issuer was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. #### Example @@ -92669,403 +92454,386 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.users.list +beta_federation_issuer = anthropic.beta.organization.federation.issuers.retrieve("federation_issuer_id") -puts(page) +puts(beta_federation_issuer) ``` ##### Response (200) ```json { - "data": [ - { - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "added_at": "2024-10-30T23:58:27.427722Z", - "email": "user@emaildomain.com", - "name": "Jane Doe", - "role": "admin", - "type": "user" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" + "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "check_jti": true, + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "issuer_url": "https://token.actions.githubusercontent.com", + "jwks": { + "type": "discovery", + "ca_cert_pem": "ca_cert_pem", + "discovery_base": "discovery_base" + }, + "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", + "max_jwt_lifetime_seconds": 0, + "name": "github-actions", + "poll_status": { + "consecutive_failures": 0, + "last_fetched_at": "2019-12-27T18:11:19.117Z", + "next_poll_at": "2019-12-27T18:11:19.117Z" + }, + "type": "federation_issuer", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" } ``` -### Get User +### Update Federation Issuer -`beta.organization.users.retrieve(user_id) -> BetaOrganizationUser` +`beta.organization.federation.issuers.update(federation_issuer_id, **kwargs) -> BetaFederationIssuer` -**GET** `/v1/organizations/users/{user_id}` +**POST** `/v1/organizations/federation_issuers/{federation_issuer_id}` -Retrieve a member of the organization by user 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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -#### Parameters +Partially update a federation issuer. -- `user_id: String` (path parameter) +Setting `jwks` replaces the full JWKS shape at once. Archived issuers +cannot be updated; this returns 400. Create a new issuer instead. - ID of the User. +Updating an issuer that backs a rule with a scope outside +`workspace:developer` or `workspace:inference` requires a Console +session. -#### Returns +#### Parameters -- `class BetaOrganizationUser` +- `federation_issuer_id: String` (path parameter) - - `type: :user` + ID of the federation issuer to update. - Object type. +- `check_jti: bool` - For Users, this is always `"user"`. + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. - - `id: String` +- `issuer_url: String` - ID of the User. + Replaces the `iss` claim value to match against. For discovery-mode issuers without a `discovery_base`, this is also the URL Anthropic fetches the OIDC discovery document and signing keys from, so changing it repoints the JWKS source. Changing the issuer URL to a well-known shared platform is rejected while any live rule under this issuer would not constrain tenant identity. - - `added_at: Time` + minLength: 1 - RFC 3339 datetime string indicating when the User joined the Organization. +- `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` - format: date-time + Replaces the entire JWKS configuration. - - `email: String` + - `class BetaJWKSDiscovery` - Email of the User. + JWKS via the issuer's OIDC discovery document. - - `name: String` + - `type: :discovery` - Name of the User. + - `ca_cert_pem: String` - - `role: BetaOrganizationRole` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - Organization role of the User. + maxLength: 8192 - - `:admin` + - `discovery_base: String` - - `:billing` + Set when the discovery URL differs from `issuer_url`. - - `:claude_code_user` + - `class BetaJWKSExplicitURL` - - `:developer` + JWKS fetched from a fixed endpoint. - - `:managed` + - `type: :explicit_url` - - `:membership_admin` + - `url: String` - - `:owner` + JWKS endpoint. - - `:primary_owner` + minLength: 1 - - `:user` + - `ca_cert_pem: String` -#### Example + Optional custom CA (PEM) for TLS verification of the JWKS fetch. -```ruby -require "anthropic" + maxLength: 8192 -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaJWKSInline` -beta_organization_user = anthropic.beta.organization.users.retrieve("user_id") + JWKS supplied directly; no network fetch. -puts(beta_organization_user) -``` + - `type: :inline` -##### Response (200) + - `keys: Array[Hash[Symbol, untyped]]` -```json -{ - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "added_at": "2024-10-30T23:58:27.427722Z", - "email": "user@emaildomain.com", - "name": "Jane Doe", - "role": "admin", - "type": "user" -} -``` + Inline JWK objects. -### Update User + minItems: 1 -`beta.organization.users.update(user_id, **kwargs) -> BetaOrganizationUser` +- `jwks_polling_disabled: bool` -**POST** `/v1/organizations/users/{user_id}` + Only `false` is accepted, to re-enable polling after the system pauses it. Polling is paused automatically; sending `true` is rejected. -Update a member's organization role. +- `max_jwt_lifetime_seconds: Integer` -#### Parameters + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. -- `user_id: String` (path parameter) + minimum: 1, maximum: 176400 - ID of the User. +- `name: String` -- `role: :billing | :claude_code_user | :developer | 2 more` + Replaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. - New role for the User. + minLength: 1, maxLength: 255 - The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; changing a User's role to `managed` requires the `write:rbac_groups` scope in addition to `write:members`. +- `betas: Array[AnthropicBeta]` (header parameter) - - `:billing` + Optional header to specify the beta version(s) you want to use. - - `:claude_code_user` + - `String = String` - - `:developer` + - `:"message-batches-2024-09-24"` - - `:managed` + - `:"prompt-caching-2024-07-31"` - - `:user` + - `:"computer-use-2024-10-22"` -#### Returns + - `:"computer-use-2025-01-24"` -- `class BetaOrganizationUser` + - `:"pdfs-2024-09-25"` - - `type: :user` + - `:"token-counting-2024-11-01"` - Object type. + - `:"token-efficient-tools-2025-02-19"` - For Users, this is always `"user"`. + - `:"output-128k-2025-02-19"` - - `id: String` + - `:"files-api-2025-04-14"` - ID of the User. + - `:"mcp-client-2025-04-04"` - - `added_at: Time` + - `:"mcp-client-2025-11-20"` - RFC 3339 datetime string indicating when the User joined the Organization. + - `:"dev-full-thinking-2025-05-14"` - format: date-time + - `:"interleaved-thinking-2025-05-14"` - - `email: String` + - `:"code-execution-2025-05-22"` - Email of the User. + - `:"extended-cache-ttl-2025-04-11"` - - `name: String` + - `:"context-1m-2025-08-07"` - Name of the User. + - `:"context-management-2025-06-27"` - - `role: BetaOrganizationRole` + - `:"model-context-window-exceeded-2025-08-26"` - Organization role of the User. + - `:"skills-2025-10-02"` - - `:admin` + - `:"fast-mode-2026-02-01"` - - `:billing` + - `:"output-300k-2026-03-24"` - - `:claude_code_user` + - `:"user-profiles-2026-03-24"` - - `:developer` + - `:"user-profiles-2026-08-18"` - - `:managed` + - `:"user-profiles-2026-09-04"` - - `:membership_admin` + - `:"advisor-tool-2026-03-01"` - - `:owner` + - `:"managed-agents-2026-04-01"` - - `:primary_owner` + - `:"cache-diagnosis-2026-04-07"` - - `:user` + - `:"dreaming-2026-04-21"` -#### Example + - `:"thinking-token-count-2026-05-13"` -```ruby -require "anthropic" + - `:"server-side-fallback-2026-06-01"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"server-side-fallback-2026-07-01"` -beta_organization_user = anthropic.beta.organization.users.update("user_id", role: :user) + - `:"fallback-credit-2026-06-01"` -puts(beta_organization_user) -``` + - `:"fallback-credit-2026-07-01"` -##### Response (200) + - `:"agent-memory-2026-07-22"` -```json -{ - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "added_at": "2024-10-30T23:58:27.427722Z", - "email": "user@emaildomain.com", - "name": "Jane Doe", - "role": "admin", - "type": "user" -} -``` + - `:"mid-conversation-tool-changes-2026-07-01"` -### Remove User + - `:"compact-2026-01-12"` -`beta.organization.users.remove(user_id) -> UserRemoveResponse` + - `:"computer-use-2025-11-24"` -**DELETE** `/v1/organizations/users/{user_id}` + - `:"mcp-tunnels-2026-06-22"` -Remove a member from the organization. + - `:"structured-outputs-2025-11-13"` -#### Parameters + - `:"task-budgets-2026-03-13"` -- `user_id: String` (path parameter) + - `:"thinking-display-updates-2026-08-18"` - ID of the User. + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` #### Returns -- `class UserRemoveResponse` +- `class BetaFederationIssuer` - - `type: :user_deleted` + Registered external OIDC identity provider. - Deleted object type. + Records an external IdP the organization trusts for the RFC 7523 + jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. - For Users, this is always `"user_deleted"`. + - `type: :federation_issuer` - `id: String` - ID of the User. - -#### Example + Tagged ID of the federation issuer. -```ruby -require "anthropic" + - `archived_at: Time` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + If set, all rules referencing this issuer reject token exchange. -user = anthropic.beta.organization.users.remove("user_id") + format: date-time -puts(user) -``` + - `archived_by_actor_id: String` -##### Response (200) + Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. -```json -{ - "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "type": "user_deleted" -} -``` + - `check_jti: bool` -## Beta › Organization › Workspaces + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. -### List Workspaces + - `created_at: Time` -`beta.organization.workspaces.list(**kwargs) -> Page` + When this issuer was created. -**GET** `/v1/organizations/workspaces` + format: date-time -List Workspaces + - `created_by_actor_id: String` -#### Parameters + Tagged ID (`user_`/`svac_`) of the actor that created this issuer. -- `after_id: String` (query parameter) + - `issuer_url: String` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + The `iss` claim value. Incoming JWTs must match exactly. -- `before_id: String` (query parameter) + - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + How signing keys are obtained for signature verification. -- `include_archived: bool` (query parameter) + - `class BetaJWKSDiscovery` - Whether to include Workspaces that have been archived in the response + JWKS via the issuer's OIDC discovery document. -- `include_default: bool` (query parameter) + - `type: :discovery` - Whether to include the organization's default Workspace in the response + - `ca_cert_pem: String` -- `limit: Integer` (query parameter) + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - Number of items to return per page. + maxLength: 8192 - Defaults to `20`. Ranges from `1` to `1000`. + - `discovery_base: String` - minimum: 1, maximum: 1000 + Set when the discovery URL differs from `issuer_url`. -#### Returns + - `class BetaJWKSExplicitURL` -- `class BetaWorkspace` + JWKS fetched from a fixed endpoint. - - `type: :workspace` + - `type: :explicit_url` - Object type. + - `url: String` - For Workspaces, this is always `"workspace"`. + JWKS endpoint. - - `id: String` + minLength: 1 - ID of the Workspace. + - `ca_cert_pem: String` - - `archived_at: Time` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + maxLength: 8192 - format: date-time + - `class BetaJWKSInline` - - `compartment_id: String` + JWKS supplied directly; no network fetch. - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. + - `type: :inline` - - `created_at: Time` + - `keys: Array[Hash[Symbol, untyped]]` - RFC 3339 datetime string indicating when the Workspace was created. + Inline JWK objects. - format: date-time + minItems: 1 - - `data_residency: BetaDataResidency` + - `jwks_polling_disabled_at: Time` - Data residency configuration. + If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + format: date-time - Permitted inference geo values. 'unrestricted' means all geos are allowed. + - `max_jwt_lifetime_seconds: Integer` - - `Geos = Array[BetaAllowedInferenceGeo]` + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. - - `:global` + - `name: String` - - `:us` + Admin-chosen slug identifier. - - `:unrestricted` + - `poll_status: BetaFederationIssuerPollStatus` - - `default_inference_geo: :global | :us` + Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. - Default inference geo applied when requests omit the parameter. + - `consecutive_failures: Integer` - - `:global` + Consecutive fetch failures since the last success. - - `:us` + - `last_fetched_at: Time` - - `workspace_geo: :us` + When the last successful fetch completed. - Geographic region for workspace data storage. Immutable after creation. + format: date-time - - `display_color: String` + - `next_poll_at: Time` - Hex color code representing the Workspace in the Anthropic Console. + When the next fetch is scheduled. Null if paused. - - `external_key_id: String` + format: date-time - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. + - `updated_at: Time` - - `name: String` + When this issuer was last updated. - Name of the Workspace. + format: date-time - - `tags: Hash[Symbol, String]` + - `updated_by_actor_id: String` - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. #### Example @@ -93074,109 +92842,61 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.workspaces.list +beta_federation_issuer = anthropic.beta.organization.federation.issuers.update("federation_issuer_id") -puts(page) +puts(beta_federation_issuer) ``` ##### Response (200) ```json { - "data": [ - { - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", - "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" - }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" - }, - "type": "workspace" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" + "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "check_jti": true, + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "issuer_url": "https://token.actions.githubusercontent.com", + "jwks": { + "type": "discovery", + "ca_cert_pem": "ca_cert_pem", + "discovery_base": "discovery_base" + }, + "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", + "max_jwt_lifetime_seconds": 0, + "name": "github-actions", + "poll_status": { + "consecutive_failures": 0, + "last_fetched_at": "2019-12-27T18:11:19.117Z", + "next_poll_at": "2019-12-27T18:11:19.117Z" + }, + "type": "federation_issuer", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" } ``` -### Create Workspace - -`beta.organization.workspaces.create(**kwargs) -> BetaWorkspace` - -**POST** `/v1/organizations/workspaces` - -Create Workspace - -#### Parameters - -- `name: String` - - Name of the Workspace. - - minLength: 1, maxLength: 255 - -- `data_residency: BetaDataResidencyCreateConfig` - - Data residency configuration for the workspace. If omitted, defaults to `workspace_geo: "us"`, `allowed_inference_geos: "unrestricted"`, and `default_inference_geo: "global"`. - - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` - - Permitted inference geo values. Defaults to 'unrestricted' if omitted, which allows all geos. Use the string 'unrestricted' to allow all geos, or a list of specific geos. - - - `Geos = Array[BetaAllowedInferenceGeo]` - - - `:global` - - - `:us` - - - `:unrestricted` - - - `default_inference_geo: :global | :us` - - Default inference geo applied when requests omit the parameter. Defaults to 'global' if omitted. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`. - - - `:global` - - - `:us` - - - `workspace_geo: :us` +### Archive Federation Issuer - Geographic region for workspace data storage. Immutable after creation. Defaults to 'us' if omitted. +`beta.organization.federation.issuers.archive(federation_issuer_id, **kwargs) -> BetaFederationIssuer` -- `display_color: String` +**POST** `/v1/organizations/federation_issuers/{federation_issuer_id}/archive` - Hex color code representing the Workspace in the Anthropic Console. +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). - maxLength: 7, pattern: ^#[0-9A-Fa-f]{6}$ +Archive a federation issuer. -- `external_key_id: String` +Idempotent; re-archiving returns the issuer with its original +`archived_at`. Rejected with 400 if any live (non-archived) federation +rule still references the issuer; archive those rules first (a rule's +issuer cannot be changed), or recreate them against another issuer. - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. +#### Parameters -- `tags: Hash[Symbol, String]` +- `federation_issuer_id: String` (path parameter) - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + ID of the federation issuer to archive. - `betas: Array[AnthropicBeta]` (header parameter) @@ -93286,1015 +93006,869 @@ Create Workspace - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaWorkspace` +- `class BetaFederationIssuer` - - `type: :workspace` + Registered external OIDC identity provider. - Object type. + Records an external IdP the organization trusts for the RFC 7523 + jwt-bearer grant. The `issuer_url` must match the JWT `iss` claim exactly. - For Workspaces, this is always `"workspace"`. + - `type: :federation_issuer` - `id: String` - ID of the Workspace. + Tagged ID of the federation issuer. - `archived_at: Time` - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + If set, all rules referencing this issuer reject token exchange. format: date-time - - `compartment_id: String` + - `archived_by_actor_id: String` - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. + Tagged ID (`user_`/`svac_`) of the actor that archived this issuer. - - `created_at: Time` + - `check_jti: bool` - RFC 3339 datetime string indicating when the Workspace was created. + Whether the jwt-bearer exchange enforces JTI single-use (replay protection) for tokens from this issuer. Applies only to assertions carrying a `jti` claim; tokens without one are accepted without single-use enforcement. - format: date-time + - `created_at: Time` - - `data_residency: BetaDataResidency` + When this issuer was created. - Data residency configuration. + format: date-time - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + - `created_by_actor_id: String` - Permitted inference geo values. 'unrestricted' means all geos are allowed. + Tagged ID (`user_`/`svac_`) of the actor that created this issuer. - - `Geos = Array[BetaAllowedInferenceGeo]` + - `issuer_url: String` - - `:global` + The `iss` claim value. Incoming JWTs must match exactly. - - `:us` + - `jwks: BetaJWKSDiscovery | BetaJWKSExplicitURL | BetaJWKSInline` - - `:unrestricted` + How signing keys are obtained for signature verification. - - `default_inference_geo: :global | :us` + - `class BetaJWKSDiscovery` - Default inference geo applied when requests omit the parameter. + JWKS via the issuer's OIDC discovery document. - - `:global` + - `type: :discovery` - - `:us` + - `ca_cert_pem: String` - - `workspace_geo: :us` + Optional custom CA (PEM) for TLS verification of the JWKS fetch. - Geographic region for workspace data storage. Immutable after creation. + maxLength: 8192 - - `display_color: String` + - `discovery_base: String` - Hex color code representing the Workspace in the Anthropic Console. + Set when the discovery URL differs from `issuer_url`. - - `external_key_id: String` + - `class BetaJWKSExplicitURL` - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. + JWKS fetched from a fixed endpoint. - - `name: String` + - `type: :explicit_url` - Name of the Workspace. + - `url: String` - - `tags: Hash[Symbol, String]` + JWKS endpoint. - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + minLength: 1 -#### Example + - `ca_cert_pem: String` -```ruby -require "anthropic" + Optional custom CA (PEM) for TLS verification of the JWKS fetch. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + maxLength: 8192 -beta_workspace = anthropic.beta.organization.workspaces.create(name: "x") + - `class BetaJWKSInline` -puts(beta_workspace) -``` + JWKS supplied directly; no network fetch. -##### Response (200) + - `type: :inline` -```json -{ - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", - "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" - }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" - }, - "type": "workspace" -} -``` + - `keys: Array[Hash[Symbol, untyped]]` -### Get Workspace + Inline JWK objects. -`beta.organization.workspaces.retrieve(workspace_id) -> BetaWorkspace` + minItems: 1 -**GET** `/v1/organizations/workspaces/{workspace_id}` + - `jwks_polling_disabled_at: Time` -Get Workspace + If set, Anthropic's JWKS poller has paused polling for this issuer after repeated fetch failures. Re-enable by sending `jwks_polling_disabled: false` via the issuer update endpoint (POST) once the upstream JWKS endpoint is fixed. An OAuth caller cannot send this when the issuer backs a rule with any scope other than `workspace:developer` or `workspace:inference`; use a Console session. -#### Parameters + format: date-time -- `workspace_id: String` (path parameter) + - `max_jwt_lifetime_seconds: Integer` - ID of the Workspace. + Maximum allowed iat→exp spread for assertions from this issuer (1-176400 seconds, i.e. up to 49h). Assertions must carry both `iat` and `exp`; a missing `iat` is rejected. -#### Returns + - `name: String` -- `class BetaWorkspace` + Admin-chosen slug identifier. - - `type: :workspace` + - `poll_status: BetaFederationIssuerPollStatus` - Object type. + Live state of Anthropic's JWKS polling for this issuer. Populated on both single-issuer retrieval and list responses, including archived issuers. Typically null for inline-key issuers (no polling), or when poll status is temporarily unavailable or polling has not started yet. - For Workspaces, this is always `"workspace"`. + - `consecutive_failures: Integer` - - `id: String` + Consecutive fetch failures since the last success. - ID of the Workspace. + - `last_fetched_at: Time` - - `archived_at: Time` + When the last successful fetch completed. - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + format: date-time - format: date-time + - `next_poll_at: Time` - - `compartment_id: String` + When the next fetch is scheduled. Null if paused. - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. + format: date-time - - `created_at: Time` + - `updated_at: Time` - RFC 3339 datetime string indicating when the Workspace was created. + When this issuer was last updated. format: date-time - - `data_residency: BetaDataResidency` - - Data residency configuration. - - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + - `updated_by_actor_id: String` - Permitted inference geo values. 'unrestricted' means all geos are allowed. + Tagged ID (`user_`/`svac_`) of the actor that last updated this issuer. - - `Geos = Array[BetaAllowedInferenceGeo]` +#### Example - - `:global` +```ruby +require "anthropic" - - `:us` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:unrestricted` +beta_federation_issuer = anthropic.beta.organization.federation.issuers.archive("federation_issuer_id") - - `default_inference_geo: :global | :us` +puts(beta_federation_issuer) +``` - Default inference geo applied when requests omit the parameter. - - - `:global` - - - `:us` - - - `workspace_geo: :us` - - Geographic region for workspace data storage. Immutable after creation. - - - `display_color: String` - - Hex color code representing the Workspace in the Anthropic Console. - - - `external_key_id: String` - - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. - - - `name: String` - - Name of the Workspace. - - - `tags: Hash[Symbol, String]` - - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_workspace = anthropic.beta.organization.workspaces.retrieve("workspace_id") - -puts(beta_workspace) -``` - -##### Response (200) +##### Response (200) ```json { - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "id": "fdis_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "check_jti": true, "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" + "created_by_actor_id": "created_by_actor_id", + "issuer_url": "https://token.actions.githubusercontent.com", + "jwks": { + "type": "discovery", + "ca_cert_pem": "ca_cert_pem", + "discovery_base": "discovery_base" }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" + "jwks_polling_disabled_at": "2019-12-27T18:11:19.117Z", + "max_jwt_lifetime_seconds": 0, + "name": "github-actions", + "poll_status": { + "consecutive_failures": 0, + "last_fetched_at": "2019-12-27T18:11:19.117Z", + "next_poll_at": "2019-12-27T18:11:19.117Z" }, - "type": "workspace" + "type": "federation_issuer", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" } ``` -### Update Workspace +## Beta › Organization › Federation › Rules -`beta.organization.workspaces.update(workspace_id, **kwargs) -> BetaWorkspace` +### Create Federation Rule -**POST** `/v1/organizations/workspaces/{workspace_id}` +`beta.organization.federation.rules.create(**kwargs) -> BetaFederationRule` -Update Workspace +**POST** `/v1/organizations/federation_rules` -#### Parameters +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -- `workspace_id: String` (path parameter) +Create a federation rule owned by your organization. -- `data_residency: BetaDataResidencyUpdateConfig` +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. - Data residency configuration for the workspace. +#### Parameters - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` +- `issuer_id: String` - Permitted inference geo values. Use 'unrestricted' to allow all geos, or a list of specific geos. + Tagged ID of the federation issuer. - - `Geos = Array[BetaAllowedInferenceGeo]` +- `match: BetaFederationRuleMatch` - - `:global` + Conditions the verified JWT must satisfy for this rule to apply. At least one of `subject_prefix` (other than a wildcard-only value like `*`), `claims`, or `condition` is required; `audience` alone is not sufficient. - - `:us` + - `audience: String` - - `:unrestricted` + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - `default_inference_geo: :global | :us` + maxLength: 1024 - Default inference geo applied when requests omit the parameter. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`. + - `claims: Hash[Symbol, String]` - - `:global` + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - `:us` + - `condition: String` -- `display_color: String` + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - Hex color code representing the Workspace in the Anthropic Console. + maxLength: 4096 - maxLength: 7, pattern: ^#[0-9A-Fa-f]{6}$ + - `subject_prefix: String` -- `external_key_id: String` + Match the verified JWT `sub` claim. 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`. - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. + maxLength: 1024 - `name: String` - Name of the Workspace. + Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. minLength: 1, maxLength: 255 -- `tags: Hash[Symbol, String]` +- `oauth_scope: String` - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + Space-separated OAuth scopes. OAuth callers may only set `workspace:developer` or `workspace:inference`; other scopes (such as `org:admin`) require a Console session. -#### Returns + minLength: 1 -- `class BetaWorkspace` +- `target: BetaServiceAccountTarget` - - `type: :workspace` + Identity that tokens minted via this rule act as. Currently always a `service_account` target. - Object type. + - `type: :service_account` - For Workspaces, this is always `"workspace"`. + - `service_account_id: String` - - `id: String` + Tagged ID of the service account to mint tokens for. - ID of the Workspace. + - `service_account_name: String` - - `archived_at: Time` + Service account's display name at read time. Ignored on writes. - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. +- `applies_to_all_workspaces: bool` - format: date-time + When true, enable this rule for every workspace in the org (including workspaces created later). - - `compartment_id: String` +- `attributes: Hash[Symbol, String]` - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. + CEL expressions `{name: expr}` extracting named values from claims. Not yet supported; any non-empty value is rejected with 400. - - `created_at: Time` +- `description: String` - RFC 3339 datetime string indicating when the Workspace was created. + Optional free-text description. - format: date-time + maxLength: 2000 - - `data_residency: BetaDataResidency` +- `token_lifetime_seconds: Integer` - Data residency configuration. + Lifetime 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. - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + minimum: 60, maximum: 86400 - Permitted inference geo values. 'unrestricted' means all geos are allowed. +- `workspace_id: String` - - `Geos = Array[BetaAllowedInferenceGeo]` + Tagged ID of the workspace to enable this rule for. Required unless `applies_to_all_workspaces` is true. Additional workspaces can be added via the `/federation_rules/{federation_rule_id}/workspaces` sub-resource. - - `:global` +- `betas: Array[AnthropicBeta]` (header parameter) - - `:us` + Optional header to specify the beta version(s) you want to use. - - `:unrestricted` + - `String = String` - - `default_inference_geo: :global | :us` + - `:"message-batches-2024-09-24"` - Default inference geo applied when requests omit the parameter. + - `:"prompt-caching-2024-07-31"` - - `:global` + - `:"computer-use-2024-10-22"` - - `:us` + - `:"computer-use-2025-01-24"` - - `workspace_geo: :us` + - `:"pdfs-2024-09-25"` - Geographic region for workspace data storage. Immutable after creation. + - `:"token-counting-2024-11-01"` - - `display_color: String` + - `:"token-efficient-tools-2025-02-19"` - Hex color code representing the Workspace in the Anthropic Console. + - `:"output-128k-2025-02-19"` - - `external_key_id: String` + - `:"files-api-2025-04-14"` - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. + - `:"mcp-client-2025-04-04"` - - `name: String` + - `:"mcp-client-2025-11-20"` - Name of the Workspace. + - `:"dev-full-thinking-2025-05-14"` - - `tags: Hash[Symbol, String]` + - `:"interleaved-thinking-2025-05-14"` - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + - `:"code-execution-2025-05-22"` -#### Example + - `:"extended-cache-ttl-2025-04-11"` -```ruby -require "anthropic" + - `:"context-1m-2025-08-07"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"context-management-2025-06-27"` -beta_workspace = anthropic.beta.organization.workspaces.update("workspace_id") + - `:"model-context-window-exceeded-2025-08-26"` -puts(beta_workspace) -``` + - `:"skills-2025-10-02"` -##### Response (200) + - `:"fast-mode-2026-02-01"` -```json -{ - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", - "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" - }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" - }, - "type": "workspace" -} -``` + - `:"output-300k-2026-03-24"` -### Archive Workspace + - `:"user-profiles-2026-03-24"` -`beta.organization.workspaces.archive(workspace_id) -> BetaWorkspace` + - `:"user-profiles-2026-08-18"` -**POST** `/v1/organizations/workspaces/{workspace_id}/archive` + - `:"user-profiles-2026-09-04"` -Archive Workspace + - `:"advisor-tool-2026-03-01"` -#### Parameters + - `:"managed-agents-2026-04-01"` -- `workspace_id: String` (path parameter) + - `:"cache-diagnosis-2026-04-07"` -#### Returns + - `:"dreaming-2026-04-21"` -- `class BetaWorkspace` + - `:"thinking-token-count-2026-05-13"` - - `type: :workspace` + - `:"server-side-fallback-2026-06-01"` - Object type. + - `:"server-side-fallback-2026-07-01"` - For Workspaces, this is always `"workspace"`. + - `:"fallback-credit-2026-06-01"` - - `id: String` + - `:"fallback-credit-2026-07-01"` - ID of the Workspace. + - `:"agent-memory-2026-07-22"` - - `archived_at: Time` + - `:"mid-conversation-tool-changes-2026-07-01"` - RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + - `:"compact-2026-01-12"` - format: date-time + - `:"computer-use-2025-11-24"` - - `compartment_id: String` + - `:"mcp-tunnels-2026-06-22"` - Identifier for this Workspace's encryption compartment. When you configure a - customer-managed encryption key (CMEK) on AWS, reference this value in your - KMS key-policy condition so the key is scoped to this compartment. On GCP and - Azure, Anthropic enforces the compartment binding automatically; you do not - need to reference this value in your key configuration. See the CMEK - integration guide for the required key configuration; unless your organization - is on Claude Platform on AWS, it includes a separate value used during key - validation. On Claude Platform on AWS there is no separate validation value: - the key is validated against this Workspace's own value when it is attached, so - if your key policy uses the compartment condition, add this value to it before - attaching the key. + - `:"structured-outputs-2025-11-13"` - - `created_at: Time` + - `:"task-budgets-2026-03-13"` - RFC 3339 datetime string indicating when the Workspace was created. + - `:"thinking-display-updates-2026-08-18"` - format: date-time + - `:"ce-user-management-2026-07-13"` - - `data_residency: BetaDataResidency` + - `:"mid-conversation-output-config-2026-07-01"` - Data residency configuration. + - `:"thinking-binding-controls-2026-08-01"` - - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Permitted inference geo values. 'unrestricted' means all geos are allowed. + - `:"compact-2026-09-04"` - - `Geos = Array[BetaAllowedInferenceGeo]` + - `:"inline-tools-2026-09-15"` - - `:global` + - `:"mcp-client-2026-09-15"` - - `:us` + - `:"ce-plugins-2026-09-01"` - - `:unrestricted` + - `:"spend-limit-reads-2026-09-26"` - - `default_inference_geo: :global | :us` + - `:"telemetry-destinations-2026-08-11"` - Default inference geo applied when requests omit the parameter. + - `:"webhooks-2026-10-07"` - - `:global` +#### Returns - - `:us` +- `class BetaFederationRule` - - `workspace_geo: :us` + Authorization rule binding an external OIDC identity to Anthropic. - Geographic region for workspace data storage. Immutable after creation. + 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_ids` or + `applies_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 legacy `workspace_id` binding do not enforce + this. - - `display_color: String` + - `type: :federation_rule` - Hex color code representing the Workspace in the Anthropic Console. + - `id: String` - - `external_key_id: String` + Tagged ID of the federation rule. - ID of the customer-managed encryption key (CMEK) configuration to use for this - Workspace. Setting this field requires CMEK to be enabled for your - organization. When set, data stored for this Workspace is encrypted with the - referenced key. Create key configurations with the External Keys API. On - Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a - single-Region key in the same AWS account and Region as the Workspace. On that - platform the key is validated against this Workspace when it is attached, so a - key-policy problem is reported as an error on this request. This field is write-once: - once a key is attached to a Workspace it cannot be detached or replaced. To - rotate key material, rotate the underlying key on your cloud KMS; the - `external_key_id` stays the same. + - `applies_to_all_workspaces: bool` - - `name: String` + When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. - Name of the Workspace. + - `archived_at: Time` - - `tags: Hash[Symbol, String]` + If set, this rule is archived and rejects token exchange. - User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + format: date-time -#### Example + - `archived_by_actor_id: String` -```ruby -require "anthropic" + Tagged ID (`user_`/`svac_`) of the actor that archived this rule. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `attributes: Hash[Symbol, String]` -beta_workspace = anthropic.beta.organization.workspaces.archive("workspace_id") + CEL expressions extracting named values from claims. Not yet supported; always null. -puts(beta_workspace) -``` + - `created_at: Time` -##### Response (200) + When this rule was created. -```json -{ - "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "archived_at": "2024-11-01T23:59:27.427722Z", - "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", - "created_at": "2024-10-30T23:58:27.427722Z", - "data_residency": { - "allowed_inference_geos": "unrestricted", - "default_inference_geo": "global", - "workspace_geo": "us" - }, - "display_color": "#6C5BB9", - "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", - "name": "Workspace Name", - "tags": { - "env": "prod", - "team": "platform" - }, - "type": "workspace" -} -``` + format: date-time -## Beta › Organization › Workspaces › Rate Limits + - `created_by_actor_id: String` -### List Workspace Rate Limits + Tagged ID (`user_`/`svac_`) of the actor that created this rule. -`beta.organization.workspaces.rate_limits.list(workspace_id, **kwargs) -> PageCursor` + - `description: String` -**GET** `/v1/organizations/workspaces/{workspace_id}/rate_limits` + Optional free-text description. -List a workspace's rate limits. + - `issuer_id: String` -By default, returns only the groups and limiter types that have a -workspace-level override. With `include_inherited=true`, returns every -group with organization-level limits the workspace can see, listing for -each the values it inherits from the organization as well as its own -overrides. Each value's `source` says which it is. + Tagged ID of the issuer whose tokens this rule accepts. -When `limit` is omitted, every matching entry is returned in a single -page; when `limit` truncates the result, follow `next_page` to fetch -the remaining entries. + - `issuer_name: String` -#### Parameters + Issuer's display name at read time. -- `workspace_id: String` (path parameter) + - `match: BetaFederationRuleMatch` - The ID of the workspace. + Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. -- `group_type: :batch | :files | :model_group | 3 more` (query parameter) + - `audience: String` - Filter by group type. + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - `:batch` + maxLength: 1024 - - `:files` + - `claims: Hash[Symbol, String]` - - `:model_group` + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - `:skills` + - `condition: String` - - `:token_count` + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - `:web_search` + maxLength: 4096 -- `include_inherited: bool` (query parameter) + - `subject_prefix: String` - Also list the limiter values the workspace inherits from the organization, including groups with no workspace-level override. + Match the verified JWT `sub` claim. 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`. -- `limit: Integer` (query parameter) + maxLength: 1024 - Maximum number of items to return per page. Ranges from `1` to `1000`. + - `name: String` - When omitted, every remaining entry is returned in a single page and `next_page` is `null`. + Admin-chosen slug identifier. - minimum: 1, maximum: 1000 + - `oauth_scope: String` -- `page: String` (query parameter) + Space-separated OAuth scopes granted on the minted token. - Opaque cursor from a previous response's `next_page`. + - `target: BetaServiceAccountTarget` -#### Returns + What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. -- `class BetaWorkspaceRateLimit` + - `type: :service_account` - - `type: :workspace_rate_limit` + - `service_account_id: String` - Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + Tagged ID of the service account to mint tokens for. - - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + - `service_account_name: String` - The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + Service account's display name at read time. Ignored on writes. - - `class BetaOrganizationRateLimitModelGroup` + - `token_lifetime_seconds: Integer` - - `type: :model_group` + Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. - Always `model_group`: a family of models. + - `updated_at: Time` - - `id: String` + When this rule was last updated. - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + format: date-time - - `display_name: String` + - `updated_by_actor_id: String` - Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. - - `class BetaOrganizationRateLimitBatchGroup` + - `workspace_id: String` - - `type: :batch` + Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. - Always `batch`: the Message Batches API. + - `workspace_ids: Array[String]` - - `id: String` + Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. +#### Example - - `class BetaOrganizationRateLimitTokenCountGroup` +```ruby +require "anthropic" - - `type: :token_count` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Always `token_count`: the Token Count API. +beta_federation_rule = anthropic.beta.organization.federation.rules.create( + issuer_id: "issuer_id", + match: {}, + name: "x", + oauth_scope: "x", + target: {service_account_id: "svac_01SDCCSbTxrXDpWc1phhtcfK", type: :service_account} +) - - `id: String` +puts(beta_federation_rule) +``` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. +##### Response (200) - - `class BetaOrganizationRateLimitFilesGroup` +```json +{ + "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" + ] +} +``` - - `type: :files` +### List Federation Rules - Always `files`: the Files API. +`beta.organization.federation.rules.list(**kwargs) -> PageCursor` - - `id: String` +**GET** `/v1/organizations/federation_rules` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). - - `class BetaOrganizationRateLimitSkillsGroup` +List federation rules in your organization. - - `type: :skills` +Optionally filter by issuer with `issuer_id`. Archived rules are excluded +unless `include_archived=true`. - Always `skills`: the Skills API. +#### Parameters - - `id: String` +- `include_archived: bool` (query parameter) - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + Include archived resources. Defaults to false. - - `class BetaOrganizationRateLimitWebSearchGroup` +- `issuer_id: String` (query parameter) - - `type: :web_search` + Filter to rules referencing this federation issuer. - Always `web_search`: the Messages API web search tool. +- `limit: Integer` (query parameter) - - `id: String` + Number of results per page. - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + minimum: 1, maximum: 100 - - `limits: Array[BetaWorkspaceRateLimitValue]` +- `page: String` (query parameter) - The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + Opaque cursor from a previous response's `next_page`. - - `type: String` +- `betas: Array[AnthropicBeta]` (header parameter) - The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + Optional header to specify the beta version(s) you want to use. - - `org_limit: Integer` + - `String = String` - The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + - `:"message-batches-2024-09-24"` - - `source: BetaWorkspaceRateLimitWorkspaceSource | BetaWorkspaceRateLimitOrganizationSource` + - `:"prompt-caching-2024-07-31"` - Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + - `:"computer-use-2024-10-22"` - - `class BetaWorkspaceRateLimitWorkspaceSource` + - `:"computer-use-2025-01-24"` - - `type: :workspace` + - `:"pdfs-2024-09-25"` - Always `workspace`: a workspace-level override is stored. + - `:"token-counting-2024-11-01"` - - `class BetaWorkspaceRateLimitOrganizationSource` + - `:"token-efficient-tools-2025-02-19"` - - `type: :organization` + - `:"output-128k-2025-02-19"` - Always `organization`: no workspace-level override is stored, so the organization's value applies. + - `:"files-api-2025-04-14"` - - `value: Integer` + - `:"mcp-client-2025-04-04"` - The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + - `:"mcp-client-2025-11-20"` - - `models: Array[String]` + - `:"dev-full-thinking-2025-05-14"` - Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + - `:"interleaved-thinking-2025-05-14"` - - `rate_limit_id: String` + - `:"code-execution-2025-05-22"` - The `id` of the organization's RateLimit entry this entry applies to. + - `:"extended-cache-ttl-2025-04-11"` - - `workspace_id: String` + - `:"context-1m-2025-08-07"` - ID of the Workspace this entry applies to. + - `:"context-management-2025-06-27"` - - `group_type: :batch | :files | :model_group | 3 more` + - `:"model-context-window-exceeded-2025-08-26"` - **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + - `:"skills-2025-10-02"` - Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + - `:"fast-mode-2026-02-01"` - - `:batch` + - `:"output-300k-2026-03-24"` - - `:files` + - `:"user-profiles-2026-03-24"` - - `:model_group` + - `:"user-profiles-2026-08-18"` - - `:skills` + - `:"user-profiles-2026-09-04"` - - `:token_count` + - `:"advisor-tool-2026-03-01"` - - `:web_search` + - `:"managed-agents-2026-04-01"` -#### Example + - `:"cache-diagnosis-2026-04-07"` -```ruby -require "anthropic" + - `:"dreaming-2026-04-21"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"thinking-token-count-2026-05-13"` -page = anthropic.beta.organization.workspaces.rate_limits.list("workspace_id") + - `:"server-side-fallback-2026-06-01"` -puts(page) -``` + - `:"server-side-fallback-2026-07-01"` -##### Response (200) + - `:"fallback-credit-2026-06-01"` -```json -{ - "data": [ - { - "group": { - "id": "id", - "display_name": "display_name", - "type": "model_group" - }, - "group_type": "batch", - "limits": [ - { - "org_limit": 0, - "source": { - "type": "workspace" - }, - "type": "type", - "value": 0 - } - ], - "models": [ - "string" - ], - "rate_limit_id": "rate_limit_id", - "type": "workspace_rate_limit", - "workspace_id": "workspace_id" - } - ], - "next_page": "next_page" -} -``` + - `:"fallback-credit-2026-07-01"` -## Beta › Organization › Workspaces › Members + - `:"agent-memory-2026-07-22"` -### List Workspace Members + - `:"mid-conversation-tool-changes-2026-07-01"` -`beta.organization.workspaces.members.list(workspace_id, **kwargs) -> Page` + - `:"compact-2026-01-12"` -**GET** `/v1/organizations/workspaces/{workspace_id}/members` + - `:"computer-use-2025-11-24"` -List Workspace Members + - `:"mcp-tunnels-2026-06-22"` -#### Parameters + - `:"structured-outputs-2025-11-13"` -- `workspace_id: String` (path parameter) + - `:"task-budgets-2026-03-13"` - ID of the Workspace. + - `:"thinking-display-updates-2026-08-18"` -- `after_id: String` (query parameter) + - `:"ce-user-management-2026-07-13"` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + - `:"mid-conversation-output-config-2026-07-01"` -- `before_id: String` (query parameter) + - `:"thinking-binding-controls-2026-08-01"` - ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + - `:"mid-conversation-system-clear-at-2026-08-21"` -- `limit: Integer` (query parameter) + - `:"compact-2026-09-04"` - Number of items to return per page. + - `:"inline-tools-2026-09-15"` - Defaults to `20`. Ranges from `1` to `1000`. + - `:"mcp-client-2026-09-15"` - minimum: 1, maximum: 1000 + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` #### Returns -- `class BetaWorkspaceMember` +- `class BetaFederationRule` - - `type: :workspace_member` + Authorization rule binding an external OIDC identity to Anthropic. - Object type. + 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_ids` or + `applies_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 legacy `workspace_id` binding do not enforce + this. - For Workspace Members, this is always `"workspace_member"`. + - `type: :federation_rule` - - `user_id: String` + - `id: String` - ID of the User. + Tagged ID of the federation rule. - - `workspace_id: String` + - `applies_to_all_workspaces: bool` - ID of the Workspace. + When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. - - `workspace_role: BetaWorkspaceRole` + - `archived_at: Time` - Role of the Workspace Member. + If set, this rule is archived and rejects token exchange. - - `:workspace_admin` + format: date-time - - `:workspace_billing` + - `archived_by_actor_id: String` - - `:workspace_developer` + Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - - `:workspace_restricted_developer` + - `attributes: Hash[Symbol, String]` - - `:workspace_user` + CEL expressions extracting named values from claims. Not yet supported; always null. -#### Example + - `created_at: Time` -```ruby -require "anthropic" + When this rule was created. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + format: date-time -page = anthropic.beta.organization.workspaces.members.list("workspace_id") + - `created_by_actor_id: String` -puts(page) -``` + Tagged ID (`user_`/`svac_`) of the actor that created this rule. -##### Response (200) + - `description: String` -```json -{ - "data": [ - { - "type": "workspace_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "workspace_role": "workspace_admin" - } - ], - "first_id": "first_id", - "has_more": true, - "last_id": "last_id" -} -``` + Optional free-text description. -### Create Workspace Member + - `issuer_id: String` -`beta.organization.workspaces.members.add(workspace_id, **kwargs) -> BetaWorkspaceMember` + Tagged ID of the issuer whose tokens this rule accepts. -**POST** `/v1/organizations/workspaces/{workspace_id}/members` + - `issuer_name: String` -Create Workspace Member + Issuer's display name at read time. -#### Parameters + - `match: BetaFederationRuleMatch` -- `workspace_id: String` (path parameter) + Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - ID of the Workspace. + - `audience: String` -- `user_id: String` + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - ID of the User. + maxLength: 1024 -- `workspace_role: BetaNoBillingWorkspaceRole` + - `claims: Hash[Symbol, String]` - Role of the new Workspace Member. Cannot be `workspace_billing`. + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - `:workspace_admin` + - `condition: String` - - `:workspace_developer` + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - `:workspace_restricted_developer` + maxLength: 4096 - - `:workspace_user` + - `subject_prefix: String` -#### Returns + Match the verified JWT `sub` claim. 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`. -- `class BetaWorkspaceMember` + maxLength: 1024 - - `type: :workspace_member` + - `name: String` - Object type. + Admin-chosen slug identifier. - For Workspace Members, this is always `"workspace_member"`. + - `oauth_scope: String` - - `user_id: String` + Space-separated OAuth scopes granted on the minted token. - ID of the User. + - `target: BetaServiceAccountTarget` - - `workspace_id: String` + What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. - ID of the Workspace. + - `type: :service_account` - - `workspace_role: BetaWorkspaceRole` + - `service_account_id: String` - Role of the Workspace Member. + Tagged ID of the service account to mint tokens for. - - `:workspace_admin` + - `service_account_name: String` - - `:workspace_billing` + Service account's display name at read time. Ignored on writes. - - `:workspace_developer` + - `token_lifetime_seconds: Integer` - - `:workspace_restricted_developer` + Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. - - `:workspace_user` + - `updated_at: Time` + + When this rule was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + + - `workspace_id: String` + + Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + + - `workspace_ids: Array[String]` + + Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). #### Example @@ -94303,497 +93877,476 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_workspace_member = anthropic.beta.organization.workspaces.members.add( - "workspace_id", - user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q", - workspace_role: :workspace_admin -) +page = anthropic.beta.organization.federation.rules.list -puts(beta_workspace_member) +puts(page) ``` ##### Response (200) ```json { - "type": "workspace_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "workspace_role": "workspace_admin" + "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 Workspace Member +### Get Federation Rule -`beta.organization.workspaces.members.retrieve(user_id, **kwargs) -> BetaWorkspaceMember` +`beta.organization.federation.rules.retrieve(federation_rule_id, **kwargs) -> BetaFederationRule` -**GET** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` +**GET** `/v1/organizations/federation_rules/{federation_rule_id}` -Get Workspace Member +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Retrieve a federation rule by its ID (`fdrl_...`). #### Parameters -- `workspace_id: String` (path parameter) +- `federation_rule_id: String` (path parameter) - ID of the Workspace. + ID of the federation rule. -- `user_id: String` (path parameter) +- `betas: Array[AnthropicBeta]` (header parameter) - ID of the User. + Optional header to specify the beta version(s) you want to use. -#### Returns + - `String = String` -- `class BetaWorkspaceMember` + - `:"message-batches-2024-09-24"` - - `type: :workspace_member` + - `:"prompt-caching-2024-07-31"` - Object type. + - `:"computer-use-2024-10-22"` - For Workspace Members, this is always `"workspace_member"`. + - `:"computer-use-2025-01-24"` - - `user_id: String` + - `:"pdfs-2024-09-25"` - ID of the User. + - `:"token-counting-2024-11-01"` - - `workspace_id: String` + - `:"token-efficient-tools-2025-02-19"` - ID of the Workspace. + - `:"output-128k-2025-02-19"` - - `workspace_role: BetaWorkspaceRole` + - `:"files-api-2025-04-14"` - Role of the Workspace Member. + - `:"mcp-client-2025-04-04"` - - `:workspace_admin` + - `:"mcp-client-2025-11-20"` - - `:workspace_billing` + - `:"dev-full-thinking-2025-05-14"` - - `:workspace_developer` + - `:"interleaved-thinking-2025-05-14"` - - `:workspace_restricted_developer` + - `:"code-execution-2025-05-22"` - - `:workspace_user` + - `:"extended-cache-ttl-2025-04-11"` -#### Example + - `:"context-1m-2025-08-07"` -```ruby -require "anthropic" + - `:"context-management-2025-06-27"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"model-context-window-exceeded-2025-08-26"` -beta_workspace_member = anthropic.beta.organization.workspaces.members.retrieve("user_id", workspace_id: "workspace_id") + - `:"skills-2025-10-02"` -puts(beta_workspace_member) -``` + - `:"fast-mode-2026-02-01"` -##### Response (200) + - `:"output-300k-2026-03-24"` -```json -{ - "type": "workspace_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "workspace_role": "workspace_admin" -} -``` - -### Update Workspace Member - -`beta.organization.workspaces.members.update(user_id, **kwargs) -> BetaWorkspaceMember` - -**POST** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` - -Update Workspace Member - -#### Parameters - -- `workspace_id: String` (path parameter) - - ID of the Workspace. - -- `user_id: String` (path parameter) - - ID of the User. - -- `workspace_role: BetaWorkspaceRole` - - New workspace role for the User. - - - `:workspace_admin` - - - `:workspace_billing` - - - `:workspace_developer` - - - `:workspace_restricted_developer` - - - `:workspace_user` - -#### Returns - -- `class BetaWorkspaceMember` + - `:"user-profiles-2026-03-24"` - - `type: :workspace_member` + - `:"user-profiles-2026-08-18"` - Object type. + - `:"user-profiles-2026-09-04"` - For Workspace Members, this is always `"workspace_member"`. + - `:"advisor-tool-2026-03-01"` - - `user_id: String` + - `:"managed-agents-2026-04-01"` - ID of the User. + - `:"cache-diagnosis-2026-04-07"` - - `workspace_id: String` + - `:"dreaming-2026-04-21"` - ID of the Workspace. + - `:"thinking-token-count-2026-05-13"` - - `workspace_role: BetaWorkspaceRole` + - `:"server-side-fallback-2026-06-01"` - Role of the Workspace Member. + - `:"server-side-fallback-2026-07-01"` - - `:workspace_admin` + - `:"fallback-credit-2026-06-01"` - - `:workspace_billing` + - `:"fallback-credit-2026-07-01"` - - `:workspace_developer` + - `:"agent-memory-2026-07-22"` - - `:workspace_restricted_developer` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:workspace_user` + - `:"compact-2026-01-12"` -#### Example + - `:"computer-use-2025-11-24"` -```ruby -require "anthropic" + - `:"mcp-tunnels-2026-06-22"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"structured-outputs-2025-11-13"` -beta_workspace_member = anthropic.beta.organization.workspaces.members.update( - "user_id", - workspace_id: "workspace_id", - workspace_role: :workspace_admin -) + - `:"task-budgets-2026-03-13"` -puts(beta_workspace_member) -``` + - `:"thinking-display-updates-2026-08-18"` -##### Response (200) + - `:"ce-user-management-2026-07-13"` -```json -{ - "type": "workspace_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", - "workspace_role": "workspace_admin" -} -``` + - `:"mid-conversation-output-config-2026-07-01"` -### Delete Workspace Member + - `:"thinking-binding-controls-2026-08-01"` -`beta.organization.workspaces.members.remove(user_id, **kwargs) -> MemberRemoveResponse` + - `:"mid-conversation-system-clear-at-2026-08-21"` -**DELETE** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` + - `:"compact-2026-09-04"` -Delete Workspace Member + - `:"inline-tools-2026-09-15"` -#### Parameters + - `:"mcp-client-2026-09-15"` -- `workspace_id: String` (path parameter) + - `:"ce-plugins-2026-09-01"` - ID of the Workspace. + - `:"spend-limit-reads-2026-09-26"` -- `user_id: String` (path parameter) + - `:"telemetry-destinations-2026-08-11"` - ID of the User. + - `:"webhooks-2026-10-07"` #### Returns -- `class MemberRemoveResponse` - - - `type: :workspace_member_deleted` - - Deleted object type. - - For Workspace Members, this is always `"workspace_member_deleted"`. - - - `user_id: String` - - ID of the User. - - - `workspace_id: String` - - ID of the Workspace. - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -member = anthropic.beta.organization.workspaces.members.remove("user_id", workspace_id: "workspace_id") +- `class BetaFederationRule` -puts(member) -``` + Authorization rule binding an external OIDC identity to Anthropic. -##### Response (200) + 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_ids` or + `applies_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 legacy `workspace_id` binding do not enforce + this. -```json -{ - "type": "workspace_member_deleted", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", - "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" -} -``` + - `type: :federation_rule` -## Beta › Organization › Workspaces › Service Accounts + - `id: String` -### List Service Account Workspace Members + Tagged ID of the federation rule. -`beta.organization.workspaces.service_accounts.list(workspace_id, **kwargs) -> PageCursor` + - `applies_to_all_workspaces: bool` -**GET** `/v1/organizations/workspaces/{workspace_id}/service_accounts` + When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + - `archived_at: Time` -List the service accounts that are members of a workspace. + If set, this rule is archived and rejects token exchange. -Each entry includes the service account's `workspace_role`. Use `limit` -and the `next_page` cursor to paginate. Archived workspaces return 400; -use `GET /service_accounts/{id}/workspaces` to audit memberships of an -archived workspace. The implicit default-workspace membership is not -included in this list. Memberships of archived service accounts are -omitted from the results. + format: date-time -#### Parameters + - `archived_by_actor_id: String` -- `workspace_id: String` (path parameter) + Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - ID of the workspace. + - `attributes: Hash[Symbol, String]` -- `limit: Integer` (query parameter) + CEL expressions extracting named values from claims. Not yet supported; always null. - Number of results per page. + - `created_at: Time` - minimum: 1, maximum: 100 + When this rule was created. -- `page: String` (query parameter) + format: date-time - Opaque cursor from a previous response's `next_page`. + - `created_by_actor_id: String` -- `betas: Array[AnthropicBeta]` (header parameter) + Tagged ID (`user_`/`svac_`) of the actor that created this rule. - Optional header to specify the beta version(s) you want to use. + - `description: String` - - `String = String` + Optional free-text description. - - `:"message-batches-2024-09-24"` + - `issuer_id: String` - - `:"prompt-caching-2024-07-31"` + Tagged ID of the issuer whose tokens this rule accepts. - - `:"computer-use-2024-10-22"` + - `issuer_name: String` - - `:"computer-use-2025-01-24"` + Issuer's display name at read time. - - `:"pdfs-2024-09-25"` + - `match: BetaFederationRuleMatch` - - `:"token-counting-2024-11-01"` + Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - - `:"token-efficient-tools-2025-02-19"` + - `audience: String` - - `:"output-128k-2025-02-19"` + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - `:"files-api-2025-04-14"` + maxLength: 1024 - - `:"mcp-client-2025-04-04"` + - `claims: Hash[Symbol, String]` - - `:"mcp-client-2025-11-20"` + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. - - `:"dev-full-thinking-2025-05-14"` + - `condition: String` - - `:"interleaved-thinking-2025-05-14"` + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. - - `:"code-execution-2025-05-22"` + maxLength: 4096 - - `:"extended-cache-ttl-2025-04-11"` + - `subject_prefix: String` - - `:"context-1m-2025-08-07"` + Match the verified JWT `sub` claim. 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`. - - `:"context-management-2025-06-27"` + maxLength: 1024 - - `:"model-context-window-exceeded-2025-08-26"` + - `name: String` - - `:"skills-2025-10-02"` + Admin-chosen slug identifier. - - `:"fast-mode-2026-02-01"` + - `oauth_scope: String` - - `:"output-300k-2026-03-24"` + Space-separated OAuth scopes granted on the minted token. - - `:"user-profiles-2026-03-24"` + - `target: BetaServiceAccountTarget` - - `:"user-profiles-2026-08-18"` + What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. - - `:"user-profiles-2026-09-04"` + - `type: :service_account` - - `:"advisor-tool-2026-03-01"` + - `service_account_id: String` - - `:"managed-agents-2026-04-01"` + Tagged ID of the service account to mint tokens for. - - `:"cache-diagnosis-2026-04-07"` + - `service_account_name: String` - - `:"dreaming-2026-04-21"` + Service account's display name at read time. Ignored on writes. - - `:"thinking-token-count-2026-05-13"` + - `token_lifetime_seconds: Integer` - - `:"server-side-fallback-2026-06-01"` + Lifetime in seconds of access tokens minted via this rule. Minted tokens are capped at `max(60, min(this value, 2 × remaining assertion validity))` seconds. - - `:"server-side-fallback-2026-07-01"` + - `updated_at: Time` - - `:"fallback-credit-2026-06-01"` + When this rule was last updated. - - `:"fallback-credit-2026-07-01"` + format: date-time - - `:"agent-memory-2026-07-22"` + - `updated_by_actor_id: String` - - `:"mid-conversation-tool-changes-2026-07-01"` + Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. - - `:"compact-2026-01-12"` + - `workspace_id: String` - - `:"computer-use-2025-11-24"` + Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. - - `:"mcp-tunnels-2026-06-22"` + - `workspace_ids: Array[String]` - - `:"structured-outputs-2025-11-13"` + Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). - - `:"task-budgets-2026-03-13"` +#### Example - - `:"thinking-display-updates-2026-08-18"` +```ruby +require "anthropic" - - `:"ce-user-management-2026-07-13"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"mid-conversation-output-config-2026-07-01"` +beta_federation_rule = anthropic.beta.organization.federation.rules.retrieve("federation_rule_id") - - `:"thinking-binding-controls-2026-08-01"` +puts(beta_federation_rule) +``` - - `:"mid-conversation-system-clear-at-2026-08-21"` +##### Response (200) - - `:"compact-2026-09-04"` +```json +{ + "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" + ] +} +``` - - `:"inline-tools-2026-09-15"` +### Update Federation Rule - - `:"mcp-client-2026-09-15"` +`beta.organization.federation.rules.update(federation_rule_id, **kwargs) -> BetaFederationRule` - - `:"ce-plugins-2026-09-01"` +**POST** `/v1/organizations/federation_rules/{federation_rule_id}` - - `:"spend-limit-reads-2026-09-26"` +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). - - `:"telemetry-destinations-2026-08-11"` +Partially update a federation rule. -#### Returns +`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. -- `class BetaServiceAccountWorkspaceMember` +#### Parameters - - `type: :service_account_workspace_member` +- `federation_rule_id: String` (path parameter) - - `created_by_actor_id: String` + ID of the federation rule to update. - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. +- `applies_to_all_workspaces: bool` - - `implicit: bool` + When true, enables this rule for every workspace in the org (including workspaces created later). Setting `false` is rejected with 400 if no workspace would remain enabled; a rule with only a legacy `workspace_id` binding continues to mint. - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. +- `attributes: Hash[Symbol, String]` - - `service_account_id: String` + Replaces 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. - Tagged service account ID (`svac_...`). +- `description: String` - - `workspace_id: String` + Replaces the description. Omit to leave unchanged; send `null` to clear (the field is stored as an empty string). - Tagged workspace ID (`wrkspc_...`). + maxLength: 2000 - - `workspace_role: BetaWorkspaceRole` +- `match: BetaFederationRuleMatch` - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + Replaces the entire match object. All populated matcher fields must pass. - - `:workspace_admin` + - `audience: String` - - `:workspace_billing` + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - `:workspace_developer` + maxLength: 1024 - - `:workspace_restricted_developer` + - `claims: Hash[Symbol, String]` - - `:workspace_user` + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. -#### Example + - `condition: String` -```ruby -require "anthropic" + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + maxLength: 4096 -page = anthropic.beta.organization.workspaces.service_accounts.list("workspace_id") + - `subject_prefix: String` -puts(page) -``` + Match the verified JWT `sub` claim. 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`. -##### Response (200) + maxLength: 1024 -```json -{ - "data": [ - { - "created_by_actor_id": "created_by_actor_id", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", - "workspace_id": "workspace_id", - "workspace_role": "workspace_admin" - } - ], - "next_page": "next_page" -} -``` +- `name: String` -### Create Service Account Workspace Member + Replaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. -`beta.organization.workspaces.service_accounts.add(workspace_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + minLength: 1, maxLength: 255 -**POST** `/v1/organizations/workspaces/{workspace_id}/service_accounts` +- `oauth_scope: String` -**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + Replaces the space-separated OAuth scopes granted on minted tokens. OAuth callers may only set `workspace:developer` or `workspace:inference`; other scopes (such as `org:admin`) require a Console session. -Add a service account to a workspace with the given `workspace_role`. + minLength: 1 -The role determines what the service account can do in the workspace and -which workspace-scoped permissions it can be granted when authenticating -through federation. Every service account is already an implicit -`workspace_user` member of the default workspace; adding it explicitly -assigns a chosen role. If the service account is already an explicit -member of the workspace, its `workspace_role` is replaced with the -value supplied here. Archived workspaces return 400. Archived service -accounts cannot be added and are rejected. +- `target: BetaServiceAccountTarget` -#### Parameters + Replaces the entire target object. Currently always a `service_account` target. -- `workspace_id: String` (path parameter) + - `type: :service_account` - ID of the workspace. + - `service_account_id: String` -- `service_account_id: String` + Tagged ID of the service account to mint tokens for. - Tagged service account ID to add. + - `service_account_name: String` -- `workspace_role: BetaNoBillingWorkspaceRole` + Service account's display name at read time. Ignored on writes. - Role to assign to the service account in this workspace. +- `token_lifetime_seconds: Integer` - - `:workspace_admin` + Replaces 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. - - `:workspace_developer` + minimum: 60, maximum: 86400 - - `:workspace_restricted_developer` +- `workspace_id: String` - - `:workspace_user` + Replaces 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}/workspaces` sub-resource instead. - `betas: Array[AnthropicBeta]` (header parameter) @@ -94903,97 +94456,216 @@ accounts cannot be added and are rejected. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaServiceAccountWorkspaceMember` +- `class BetaFederationRule` - - `type: :service_account_workspace_member` + Authorization rule binding an external OIDC identity to Anthropic. - - `created_by_actor_id: String` + 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_ids` or + `applies_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 legacy `workspace_id` binding do not enforce + this. - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + - `type: :federation_rule` - - `implicit: bool` + - `id: String` - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + Tagged ID of the federation rule. - - `service_account_id: String` + - `applies_to_all_workspaces: bool` - Tagged service account ID (`svac_...`). + When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. - - `workspace_id: String` + - `archived_at: Time` - Tagged workspace ID (`wrkspc_...`). + If set, this rule is archived and rejects token exchange. - - `workspace_role: BetaWorkspaceRole` + format: date-time - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + - `archived_by_actor_id: String` - - `:workspace_admin` + Tagged ID (`user_`/`svac_`) of the actor that archived this rule. - - `:workspace_billing` + - `attributes: Hash[Symbol, String]` - - `:workspace_developer` + CEL expressions extracting named values from claims. Not yet supported; always null. - - `:workspace_restricted_developer` + - `created_at: Time` - - `:workspace_user` + When this rule was created. -#### Example + format: date-time -```ruby -require "anthropic" + - `created_by_actor_id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Tagged ID (`user_`/`svac_`) of the actor that created this rule. -beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.add( - "workspace_id", - service_account_id: "service_account_id", - workspace_role: :workspace_admin -) + - `description: String` -puts(beta_service_account_workspace_member) + Optional free-text description. + + - `issuer_id: String` + + Tagged ID of the issuer whose tokens this rule accepts. + + - `issuer_name: String` + + Issuer's display name at read time. + + - `match: BetaFederationRuleMatch` + + Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. + + - `audience: String` + + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. + + maxLength: 1024 + + - `claims: Hash[Symbol, String]` + + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + + - `condition: String` + + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. + + maxLength: 4096 + + - `subject_prefix: String` + + Match the verified JWT `sub` claim. 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: String` + + Admin-chosen slug identifier. + + - `oauth_scope: String` + + Space-separated OAuth scopes granted on the minted token. + + - `target: BetaServiceAccountTarget` + + What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. + + - `type: :service_account` + + - `service_account_id: String` + + Tagged ID of the service account to mint tokens for. + + - `service_account_name: String` + + Service account's display name at read time. Ignored on writes. + + - `token_lifetime_seconds: Integer` + + Lifetime 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: Time` + + When this rule was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + + - `workspace_id: String` + + Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + + - `workspace_ids: Array[String]` + + Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_federation_rule = anthropic.beta.organization.federation.rules.update("federation_rule_id") + +puts(beta_federation_rule) ``` ##### Response (200) ```json { + "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", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", + "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_role": "workspace_admin" + "workspace_ids": [ + "string" + ] } ``` -### Get Service Account Workspace Member +### Archive Federation Rule -`beta.organization.workspaces.service_accounts.retrieve(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` +`beta.organization.federation.rules.archive(federation_rule_id, **kwargs) -> BetaFederationRule` -**GET** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_id}` +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -Retrieve a service account's membership in a workspace. +Archive a federation rule. -Returns the membership record, including the service account's -`workspace_role` in this workspace. Archived workspaces return 400. For -the default workspace, returns the implicit (`implicit: true`) -membership when no explicit membership exists; an explicitly added -membership is returned with its assigned role. An archived service -account returns 404. +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. #### Parameters -- `workspace_id: String` (path parameter) - - ID of the workspace. - -- `service_account_id: String` (path parameter) +- `federation_rule_id: String` (path parameter) - ID of the service account. + ID of the federation rule to archive. - `betas: Array[AnthropicBeta]` (header parameter) @@ -95103,41 +94775,138 @@ account returns 404. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaServiceAccountWorkspaceMember` +- `class BetaFederationRule` - - `type: :service_account_workspace_member` + Authorization 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_ids` or + `applies_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 legacy `workspace_id` binding do not enforce + this. + + - `type: :federation_rule` + + - `id: String` + + Tagged ID of the federation rule. + + - `applies_to_all_workspaces: bool` + + When true, this rule is enabled for every workspace in the org (including ones created after the rule). `workspace_ids` is ignored at exchange time. + + - `archived_at: Time` + + If set, this rule is archived and rejects token exchange. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this rule. + + - `attributes: Hash[Symbol, String]` + + CEL expressions extracting named values from claims. Not yet supported; always null. + + - `created_at: Time` + + When this rule was created. + + format: date-time - `created_by_actor_id: String` - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + Tagged ID (`user_`/`svac_`) of the actor that created this rule. - - `implicit: bool` + - `description: String` - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + Optional free-text description. - - `service_account_id: String` + - `issuer_id: String` - Tagged service account ID (`svac_...`). + Tagged ID of the issuer whose tokens this rule accepts. - - `workspace_id: String` + - `issuer_name: String` - Tagged workspace ID (`wrkspc_...`). + Issuer's display name at read time. - - `workspace_role: BetaWorkspaceRole` + - `match: BetaFederationRuleMatch` - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + Conditions the verified JWT must satisfy for this rule to apply. All populated matcher fields must pass. - - `:workspace_admin` + - `audience: String` - - `:workspace_billing` + Exact match against the `aud` claim (any element if array). When omitted, the JWT's `aud` must still equal Anthropic's expected audience for the issuer; setting this field overrides that default. - - `:workspace_developer` + maxLength: 1024 - - `:workspace_restricted_developer` + - `claims: Hash[Symbol, String]` - - `:workspace_user` + Exact-match `{claim: value}` pairs against top-level claims. Only string-valued claims can be matched; use `condition` for non-string claims. + + - `condition: String` + + CEL expression over claims for logic the structural fields can't express. Must evaluate to a boolean and may reference only the `claims` variable; a constant-true expression (such as `true`) is rejected with 400. + + maxLength: 4096 + + - `subject_prefix: String` + + Match the verified JWT `sub` claim. 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: String` + + Admin-chosen slug identifier. + + - `oauth_scope: String` + + Space-separated OAuth scopes granted on the minted token. + + - `target: BetaServiceAccountTarget` + + What this rule targets. Check `type` before reading the other fields. Tokens minted via a rule whose target `type` is `service_account` act as that service account. + + - `type: :service_account` + + - `service_account_id: String` + + Tagged ID of the service account to mint tokens for. + + - `service_account_name: String` + + Service account's display name at read time. Ignored on writes. + + - `token_lifetime_seconds: Integer` + + Lifetime 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: Time` + + When this rule was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this rule. + + - `workspace_id: String` + + Legacy single-workspace binding. Prefer `workspace_ids` and the `/federation_rules/{federation_rule_id}/workspaces` sub-resource for managing workspace enablement. + + - `workspace_ids: Array[String]` + + Tagged IDs of the workspaces this rule is enabled for. May be empty for older rules that only carry the legacy `workspace_id` binding. Ignored at exchange time when `applies_to_all_workspaces` is true (the list may still be non-empty). #### Example @@ -95146,65 +94915,83 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.retrieve( - "service_account_id", - workspace_id: "workspace_id" -) +beta_federation_rule = anthropic.beta.organization.federation.rules.archive("federation_rule_id") -puts(beta_service_account_workspace_member) +puts(beta_federation_rule) ``` ##### Response (200) ```json { + "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", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", + "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_role": "workspace_admin" + "workspace_ids": [ + "string" + ] } ``` -### Update Service Account Workspace Member +## Beta › Organization › Federation › Rules › Workspaces -`beta.organization.workspaces.service_accounts.update(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` +### Add Federation Rule Workspace -**POST** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_id}` +`beta.organization.federation.rules.workspaces.add(federation_rule_id, **kwargs) -> BetaFederationRuleWorkspace` + +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -Change a service account's role in a workspace. +Enable a federation rule for a workspace. -The new `workspace_role` replaces the current one. Only explicit -memberships can be updated; to set a role on the implicit -default-workspace membership, add the service account explicitly with -`POST /workspaces/{workspace_id}/service_accounts`. Archived workspaces -return 400. Archived service accounts cannot be updated and are -rejected. +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. #### Parameters -- `workspace_id: String` (path parameter) - - ID of the workspace. - -- `service_account_id: String` (path parameter) - - ID of the service account. - -- `workspace_role: BetaNoBillingWorkspaceRole` - - New role for the service account in this workspace. - - - `:workspace_admin` +- `federation_rule_id: String` (path parameter) - - `:workspace_developer` + ID of the federation rule. - - `:workspace_restricted_developer` +- `workspace_id: String` - - `:workspace_user` + Tagged ID of the workspace to enable this rule for. - `betas: Array[AnthropicBeta]` (header parameter) @@ -95314,41 +95101,35 @@ rejected. - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaServiceAccountWorkspaceMember` - - - `type: :service_account_workspace_member` - - - `created_by_actor_id: String` + - `:"webhooks-2026-10-07"` - Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. +#### Returns - - `implicit: bool` +- `class BetaFederationRuleWorkspace` - True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + - `type: :federation_rule_workspace` - - `service_account_id: String` + - `created_at: Time` - Tagged service account ID (`svac_...`). + When this workspace was enabled for the rule. - - `workspace_id: String` + format: date-time - Tagged workspace ID (`wrkspc_...`). + - `created_by_actor_id: String` - - `workspace_role: BetaWorkspaceRole` + Tagged ID (`user_...` or `svac_...`) of the actor that enabled this workspace for the rule, if known. - Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + - `federation_rule_id: String` - - `:workspace_admin` + Tagged ID of the federation rule. - - `:workspace_billing` + - `workspace_id: String` - - `:workspace_developer` + Tagged ID of the workspace this rule is enabled for. - - `:workspace_restricted_developer` + - `workspace_name: String` - - `:workspace_user` + Workspace display name. Populated when listing; null in the enable response. #### Example @@ -95357,53 +95138,58 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.update( - "service_account_id", - workspace_id: "workspace_id", - workspace_role: :workspace_admin +beta_federation_rule_workspace = anthropic.beta.organization.federation.rules.workspaces.add( + "federation_rule_id", + workspace_id: "workspace_id" ) -puts(beta_service_account_workspace_member) +puts(beta_federation_rule_workspace) ``` ##### Response (200) ```json { + "created_at": "2024-10-30T23:58:27.427722Z", "created_by_actor_id": "created_by_actor_id", - "implicit": true, - "service_account_id": "service_account_id", - "type": "service_account_workspace_member", + "federation_rule_id": "federation_rule_id", + "type": "federation_rule_workspace", "workspace_id": "workspace_id", - "workspace_role": "workspace_admin" + "workspace_name": "workspace_name" } ``` -### Delete Service Account Workspace Member +### List Federation Rule Workspaces -`beta.organization.workspaces.service_accounts.remove(service_account_id, **kwargs) -> ServiceAccountRemoveResponse` +`beta.organization.federation.rules.workspaces.list(federation_rule_id, **kwargs) -> PageCursor` -**DELETE** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_id}` +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -Remove a service account from a workspace. +List workspaces where this federation rule is enabled. -Removal is idempotent (returns 200 even if the membership was already -removed). A DELETE against the implicit default-workspace membership -returns 200 but is a no-op and the membership persists; deleting an -explicit default-workspace row reverts to the implicit `workspace_user` -membership. Archived workspaces return 400. +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. #### Parameters -- `workspace_id: String` (path parameter) +- `federation_rule_id: String` (path parameter) - ID of the workspace. + ID of the federation rule. -- `service_account_id: String` (path parameter) +- `limit: Integer` (query parameter) - ID of the service account. + Number of results per page. + + minimum: 1, maximum: 100 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. - `betas: Array[AnthropicBeta]` (header parameter) @@ -95513,19 +95299,35 @@ membership. Archived workspaces return 400. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class ServiceAccountRemoveResponse` +- `class BetaFederationRuleWorkspace` - - `type: :service_account_workspace_member_deleted` + - `type: :federation_rule_workspace` - - `service_account_id: String` + - `created_at: Time` - Tagged service account ID (`svac_...`) named in the delete request. Removal is idempotent; see the endpoint description for the implicit-membership no-op. + When this workspace was enabled for the rule. + + format: date-time + + - `created_by_actor_id: String` + + Tagged ID (`user_...` or `svac_...`) of the actor that enabled this workspace for the rule, if known. + + - `federation_rule_id: String` + + Tagged ID of the federation rule. - `workspace_id: String` - Tagged workspace ID (`wrkspc_...`) named in the delete request. + Tagged ID of the workspace this rule is enabled for. + + - `workspace_name: String` + + Workspace display name. Populated when listing; null in the enable response. #### Example @@ -95534,189 +95336,177 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -service_account = anthropic.beta.organization.workspaces.service_accounts.remove( - "service_account_id", - workspace_id: "workspace_id" -) +page = anthropic.beta.organization.federation.rules.workspaces.list("federation_rule_id") -puts(service_account) +puts(page) ``` ##### Response (200) ```json { - "service_account_id": "service_account_id", - "type": "service_account_workspace_member_deleted", - "workspace_id": "workspace_id" + "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" } ``` -## Beta › Organization › Rate Limits +### Remove Federation Rule Workspace -### List Organization Rate Limits +`beta.organization.federation.rules.workspaces.remove(workspace_id, **kwargs) -> WorkspaceRemoveResponse` -`beta.organization.rate_limits.list(**kwargs) -> PageCursor` - -**GET** `/v1/organizations/rate_limits` +**DELETE** `/v1/organizations/federation_rules/{federation_rule_id}/workspaces/{workspace_id}` -List Messages API rate limits for your organization. +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). -Each entry corresponds to one rate-limit group (either a model family -or an API-surface category such as the Message Batches API or the web -search tool) and contains the set of limiter values that apply to it. +Disable a federation rule for a workspace. -When `limit` is omitted, every matching entry is returned in a single -page; when `limit` truncates the result, follow `next_page` to fetch -the remaining entries. +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. #### Parameters -- `group_type: :batch | :files | :model_group | 3 more` (query parameter) - - Filter by group type. - - - `:batch` - - - `:files` - - - `:model_group` - - - `:skills` - - - `:token_count` - - - `:web_search` +- `federation_rule_id: String` (path parameter) -- `limit: Integer` (query parameter) + ID of the federation rule. - Maximum number of items to return per page. Ranges from `1` to `1000`. +- `workspace_id: String` (path parameter) - When omitted, every remaining entry is returned in a single page and `next_page` is `null`. + ID of the workspace to disable for. - minimum: 1, maximum: 1000 +- `betas: Array[AnthropicBeta]` (header parameter) -- `model: String` (query parameter) + Optional header to specify the beta version(s) you want to use. - Filter to the single entry containing this model. Accepts full model names and aliases. Returns 404 if the model is not found or has no rate limits for this organization. + - `String = String` -- `page: String` (query parameter) + - `:"message-batches-2024-09-24"` - Opaque cursor from a previous response's `next_page`. + - `:"prompt-caching-2024-07-31"` -#### Returns + - `:"computer-use-2024-10-22"` -- `class BetaOrganizationRateLimit` + - `:"computer-use-2025-01-24"` - - `type: :rate_limit` + - `:"pdfs-2024-09-25"` - Object type. Always `rate_limit` for organization rate-limit entries. + - `:"token-counting-2024-11-01"` - - `id: String` + - `:"token-efficient-tools-2025-02-19"` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + - `:"output-128k-2025-02-19"` - - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + - `:"files-api-2025-04-14"` - The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + - `:"mcp-client-2025-04-04"` - - `class BetaOrganizationRateLimitModelGroup` + - `:"mcp-client-2025-11-20"` - - `type: :model_group` + - `:"dev-full-thinking-2025-05-14"` - Always `model_group`: a family of models. + - `:"interleaved-thinking-2025-05-14"` - - `id: String` + - `:"code-execution-2025-05-22"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"extended-cache-ttl-2025-04-11"` - - `display_name: String` + - `:"context-1m-2025-08-07"` - Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + - `:"context-management-2025-06-27"` - - `class BetaOrganizationRateLimitBatchGroup` + - `:"model-context-window-exceeded-2025-08-26"` - - `type: :batch` + - `:"skills-2025-10-02"` - Always `batch`: the Message Batches API. + - `:"fast-mode-2026-02-01"` - - `id: String` + - `:"output-300k-2026-03-24"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"user-profiles-2026-03-24"` - - `class BetaOrganizationRateLimitTokenCountGroup` + - `:"user-profiles-2026-08-18"` - - `type: :token_count` + - `:"user-profiles-2026-09-04"` - Always `token_count`: the Token Count API. + - `:"advisor-tool-2026-03-01"` - - `id: String` + - `:"managed-agents-2026-04-01"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"cache-diagnosis-2026-04-07"` - - `class BetaOrganizationRateLimitFilesGroup` + - `:"dreaming-2026-04-21"` - - `type: :files` + - `:"thinking-token-count-2026-05-13"` - Always `files`: the Files API. + - `:"server-side-fallback-2026-06-01"` - - `id: String` + - `:"server-side-fallback-2026-07-01"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"fallback-credit-2026-06-01"` - - `class BetaOrganizationRateLimitSkillsGroup` + - `:"fallback-credit-2026-07-01"` - - `type: :skills` + - `:"agent-memory-2026-07-22"` - Always `skills`: the Skills API. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `id: String` + - `:"compact-2026-01-12"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"computer-use-2025-11-24"` - - `class BetaOrganizationRateLimitWebSearchGroup` + - `:"mcp-tunnels-2026-06-22"` - - `type: :web_search` + - `:"structured-outputs-2025-11-13"` - Always `web_search`: the Messages API web search tool. + - `:"task-budgets-2026-03-13"` - - `id: String` + - `:"thinking-display-updates-2026-08-18"` - Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + - `:"ce-user-management-2026-07-13"` - - `limits: Array[BetaOrganizationRateLimitValue]` + - `:"mid-conversation-output-config-2026-07-01"` - The limiter values that apply to this group. + - `:"thinking-binding-controls-2026-08-01"` - - `type: String` + - `:"mid-conversation-system-clear-at-2026-08-21"` - The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + - `:"compact-2026-09-04"` - - `value: Integer` + - `:"inline-tools-2026-09-15"` - The configured limit value for this limiter type. + - `:"mcp-client-2026-09-15"` - - `models: Array[String]` + - `:"ce-plugins-2026-09-01"` - Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + - `:"spend-limit-reads-2026-09-26"` - - `group_type: :batch | :files | :model_group | 3 more` + - `:"telemetry-destinations-2026-08-11"` - **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + - `:"webhooks-2026-10-07"` - Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. +#### Returns - - `:batch` +- `class WorkspaceRemoveResponse` - - `:files` + - `type: :federation_rule_workspace_deleted` - - `:model_group` + - `federation_rule_id: String` - - `:skills` + Tagged ID of the federation rule. - - `:token_count` + - `workspace_id: String` - - `:web_search` + Tagged ID of the workspace named in the delete request. Removal is idempotent. #### Example @@ -95725,948 +95515,7642 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.rate_limits.list +workspace = anthropic.beta.organization.federation.rules.workspaces.remove( + "workspace_id", + federation_rule_id: "federation_rule_id" +) -puts(page) +puts(workspace) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "group": { - "id": "id", - "display_name": "display_name", - "type": "model_group" - }, - "group_type": "batch", - "limits": [ - { - "type": "type", - "value": 0 - } - ], - "models": [ - "string" - ], - "type": "rate_limit" - } - ], - "next_page": "next_page" + "federation_rule_id": "federation_rule_id", + "type": "federation_rule_workspace_deleted", + "workspace_id": "workspace_id" } ``` -## Beta › Organization › Compliance Settings +## Beta › Organization › Invites -### Get Compliance Settings +### Create Invite -`beta.organization.compliance_settings.retrieve() -> BetaComplianceSettings` +`beta.organization.invites.create(**kwargs) -> BetaOrganizationInvite` -**GET** `/v1/organizations/compliance_settings` +**POST** `/v1/organizations/invites` -Retrieve your organization's Compliance Settings. +Invite a user to join the organization by email. -Compliance Settings is a singleton resource: there is exactly one per -organization, addressed without an identifier. The `state` field reflects -whether the Compliance API is enabled. An organization with a parent -organization reads the state inherited from the parent's configuration. +On plans that draw members from a finite pool of purchased seats, the invite automatically consumes a seat from the lowest tier with availability; there is no seat-tier parameter. When no seat is free the request fails with a 400 error rather than purchasing a seat. -#### Returns +#### Parameters -- `class BetaComplianceSettings` +- `email: String` - - `type: :compliance_settings` + Email of the User. - - `state: BetaComplianceSettingsState` + format: email - Whether the Compliance API is enabled for this organization. +- `role: :billing | :claude_code_user | :developer | 2 more` - - `class BetaComplianceSettingsStateEnabled` + Role for the invited User. - - `type: :enabled` + The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; inviting with the `managed` role requires the `write:rbac_groups` scope in addition to `write:members`. - - `class BetaComplianceSettingsStateDisabled` + - `:billing` - - `type: :disabled` + - `:claude_code_user` -#### Example + - `:developer` -```ruby -require "anthropic" + - `:managed` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:user` -beta_compliance_settings = anthropic.beta.organization.compliance_settings.retrieve +- `rbac_group_ids: Array[String]` -puts(beta_compliance_settings) -``` + RBAC group IDs to assign to the User when the Invite is accepted. A non-empty array is accepted only for a Claude Enterprise organization with RBAC groups, and requires the key to carry the `write:rbac_groups` scope. -##### Response (200) + maxItems: 100 -```json -{ - "state": { - "type": "enabled" - }, - "type": "compliance_settings" -} -``` +#### Returns -### Update Compliance Settings +- `class BetaOrganizationInvite` -`beta.organization.compliance_settings.update(**kwargs) -> BetaComplianceSettings` + - `type: :invite` -**POST** `/v1/organizations/compliance_settings` + Object type. -Update your organization's Compliance Settings. + For Invites, this is always `"invite"`. -Setting `state` to `enabled` turns on the Compliance API and begins -capturing organization activity events. Setting it to `disabled` turns -both off. `state` reflects whether the Compliance API is enabled. + - `id: String` -A request that sets `state` to its current value succeeds and leaves the -resource unchanged. A `disabled` request stays in effect until a later -`enabled` request or the organization's next provisioning action that -enables Access Transparency: enabling Access Transparency also enables -the Compliance API, which serves its activity events, so such -provisioning (including re-runs) re-enables the Compliance API even -after a `disabled` request. Automated provisioning never disables -compliance settings. + ID of the Invite. -#### Parameters + - `accepted_at: Time` -- `state: BetaComplianceSettingsStateParam` + RFC 3339 datetime string indicating when the Invite was accepted, or null. - Desired state. Accepts the string shorthand "enabled" or "disabled" in place of the object form; the response always returns the canonical object form. + format: date-time - - `class BetaComplianceSettingsStateEnabledParam` + - `email: String` - - `type: :enabled` + Email of the User being invited. - - `class BetaComplianceSettingsStateDisabledParam` + - `expires_at: Time` - - `type: :disabled` + RFC 3339 datetime string indicating when the Invite expires. -#### Returns + format: date-time -- `class BetaComplianceSettings` + - `invited_at: Time` - - `type: :compliance_settings` + RFC 3339 datetime string indicating when the Invite was created. - - `state: BetaComplianceSettingsState` + format: date-time - Whether the Compliance API is enabled for this organization. + - `rbac_group_ids: Array[String]` - - `class BetaComplianceSettingsStateEnabled` + RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. - - `type: :enabled` + - `role: BetaOrganizationRole` - - `class BetaComplianceSettingsStateDisabled` + Organization role of the User. - - `type: :disabled` + - `:admin` -#### Example + - `:billing` -```ruby -require "anthropic" + - `:claude_code_user` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:developer` -beta_compliance_settings = anthropic.beta.organization.compliance_settings.update(state: {type: :enabled}) + - `:managed` -puts(beta_compliance_settings) -``` + - `:membership_admin` -##### Response (200) + - `:owner` -```json -{ - "state": { - "type": "enabled" - }, - "type": "compliance_settings" -} -``` + - `:primary_owner` -## Beta › Organization › Analytics › Summaries + - `:user` -### Get Activity Summaries + - `status: :accepted | :deleted | :expired | :pending` -`beta.organization.analytics.summaries.list(**kwargs) -> PageCursor` + Status of the Invite. -**GET** `/v1/organizations/analytics/summaries` + - `:accepted` -Get organization-wide activity summaries for a date range. + - `:deleted` -Returns one entry per day from `starting_date` (inclusive) to `ending_date` -(exclusive) in `data`, the same `data` / `next_page` envelope as the other -analytics list endpoints; the series is currently returned in full, so -`next_page` is always null. -Data is typically available with a 1-day lag and may be revised by a few -percent over the following days: when `ending_date` is omitted it -defaults to the most recent available day + 1, so the last entry covers -the most recent available day. The series can be scoped to an RBAC group -via `filter[]=rbac_group_id:{id}`. Available to organizations on a Claude -Enterprise plan. Requires an API key with the `read:analytics` scope. + - `:expired` -#### Parameters + - `:pending` -- `starting_date: Date` (query parameter) +#### Example - UTC date in YYYY-MM-DD format. Start of the date range (inclusive). Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. +```ruby +require "anthropic" - format: date +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -- `ending_date: Date` (query parameter) +beta_organization_invite = anthropic.beta.organization.invites.create(email: "user@emaildomain.com", role: :user) - UTC date in YYYY-MM-DD format. End of the date range (exclusive). Data is typically available with a 1-day lag, so this can be at most today — which is also the default when omitted, making the last entry cover the most recent available day. Data may be revised by a few percent over the following days. The range may span at most 366 days. +puts(beta_organization_invite) +``` - format: date +##### Response (200) -- `filter: Array[String]` (query parameter) +```json +{ + "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", + "accepted_at": "2019-12-27T18:11:19.117Z", + "email": "user@emaildomain.com", + "expires_at": "2024-11-20T23:58:27.427722Z", + "invited_at": "2024-10-30T23:58:27.427722Z", + "rbac_group_ids": [ + "string" + ], + "role": "admin", + "status": "pending", + "type": "invite" +} +``` - Filters as `dimension:value`. Only `rbac_group_id` is supported (e.g. `filter[]=rbac_group_id:{id}`); repeat the param to OR across groups. Scopes the whole day series to members of the matching group(s), re-aggregated from member-level activity — org-wide seat/invite fields and the adoption rates derived from them are null on scoped rows. `rbac_group_id` accepts the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each UTC day (time-of-usage attribution). At most 100 entries. +### List Invites - maxItems: 100 +`beta.organization.invites.list(**kwargs) -> Page` -- `limit: Integer` (query parameter) +**GET** `/v1/organizations/invites` - Number of results per page (1-1000, default 100). The day series (at most 366 entries) is currently returned in full in a single page, so `limit` does not yet shorten it. +List the organization's invites. - minimum: 1, maximum: 1000 +#### Parameters -- `page: String` (query parameter) +- `after_id: String` (query parameter) - Opaque cursor from a previous response's `next_page` field. `next_page` is currently always null, so there is never a cursor to send. + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. -#### Returns +- `before_id: String` (query parameter) -- `class BetaAnalyticsSingleDayActivitySummary` + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. - Per-day entry in the /summaries response. +- `email: String` (query parameter) - - `assigned_seat_count: Integer` + Filter by the email address the Invite was sent to. Matches the same way as the Users list's `email` filter (normalized, case-insensitive). - Number of seats currently assigned to members. Null when the response is scoped to an RBAC group — seat assignment is org-wide and has no per-group analogue. + format: email - - `cowork_daily_active_user_count: Integer` +- `limit: Integer` (query parameter) - Number of users with Cowork activity on the requested day + Number of items to return per page. - - `cowork_monthly_active_user_count: Integer` + Defaults to `20`. Ranges from `1` to `1000`. - Number of users with Cowork activity in the 30-day rolling window + minimum: 1, maximum: 1000 - - `cowork_weekly_active_user_count: Integer` +- `roles: Array[String]` (query parameter) - Number of users with Cowork activity in the 7-day rolling window + Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together. - - `daily_active_user_count: Integer` + Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`. - Number of users with token consumption on the requested day +- `statuses: Array[:accepted | :expired | :pending]` (query parameter) - - `daily_adoption_rate: Float` + Filter by Invite status. Repeatable; values are OR'ed together. Omit to return `pending`, `accepted`, and `expired` Invites alike. - Percentage of assigned seats with activity on the requested day (`DAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + - `:accepted` - - `ending_at: Time` + - `:expired` - End of the aggregation period (exclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-16T00:00:00Z`). + - `:pending` - format: date-time +#### Returns - - `monthly_active_user_count: Integer` +- `class BetaOrganizationInvite` - Number of users with token consumption in the 30-day rolling window + - `type: :invite` - - `monthly_adoption_rate: Float` + Object type. - Percentage of assigned seats with activity in the 30-day rolling window (`MAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + For Invites, this is always `"invite"`. - - `pending_invite_count: Integer` + - `id: String` - Number of pending invitations to join the organization. Null when the response is scoped to an RBAC group. + ID of the Invite. - - `starting_at: Time` + - `accepted_at: Time` - Start of the aggregation period (inclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-15T00:00:00Z`). + RFC 3339 datetime string indicating when the Invite was accepted, or null. format: date-time - - `weekly_active_user_count: Integer` + - `email: String` - Number of users with token consumption in the 7-day rolling window + Email of the User being invited. - - `weekly_adoption_rate: Float` + - `expires_at: Time` - Percentage of assigned seats with activity in the 7-day rolling window (`WAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + RFC 3339 datetime string indicating when the Invite expires. - - `chat_cowork_unified_daily_active_user_count: Integer` + format: date-time - Number of users with activity in Chat and Cowork unified on the requested day. Omitted from the response on deployments that do not offer Chat and Cowork unified. + - `invited_at: Time` - - `chat_cowork_unified_monthly_active_user_count: Integer` + RFC 3339 datetime string indicating when the Invite was created. - Number of users with activity in Chat and Cowork unified in the 28-day rolling window (30 days when the request filters by `rbac_group_id`). Omitted from the response on deployments that do not offer Chat and Cowork unified. + format: date-time - - `chat_cowork_unified_weekly_active_user_count: Integer` + - `rbac_group_ids: Array[String]` - Number of users with activity in Chat and Cowork unified in the 7-day rolling window. Omitted from the response on deployments that do not offer Chat and Cowork unified. + RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. - - `chat_daily_active_user_count: Integer` + - `role: BetaOrganizationRole` - Number of users with claude.ai (chat) activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + Organization role of the User. - - `chat_monthly_active_user_count: Integer` + - `:admin` - Number of users with claude.ai (chat) activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:billing` - - `chat_weekly_active_user_count: Integer` + - `:claude_code_user` - Number of users with claude.ai (chat) activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:developer` - - `claude_code_daily_active_user_count: Integer` + - `:managed` - Number of users with Claude Code activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:membership_admin` - - `claude_code_monthly_active_user_count: Integer` + - `:owner` - Number of users with Claude Code activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:primary_owner` - - `claude_code_weekly_active_user_count: Integer` + - `:user` - Number of users with Claude Code activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `status: :accepted | :deleted | :expired | :pending` - - `claude_design_daily_active_user_count: Integer` + Status of the Invite. - Number of users with Claude Design activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:accepted` - - `claude_design_monthly_active_user_count: Integer` + - `:deleted` - Number of users with Claude Design activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + - `:expired` - - `claude_design_weekly_active_user_count: Integer` + - `:pending` - Number of users with Claude Design activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. +#### Example - - `office_agent_daily_active_user_count: Integer` +```ruby +require "anthropic" - Number of users with Claude in Office activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `office_agent_monthly_active_user_count: Integer` +page = anthropic.beta.organization.invites.list - Number of users with Claude in Office activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. +puts(page) +``` - - `office_agent_weekly_active_user_count: Integer` - - Number of users with Claude in Office activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. - - - `science_daily_active_user_count: Integer` - - Number of users with Claude Science activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. - - - `science_entitled_user_count: Integer` - - Number of users with a Claude Science seat entitlement (per-seat RBAC) at the time of the daily snapshot. The funnel top; independent of the org-level Claude Science toggle. Null when the response is scoped to an RBAC group — entitlement is org-wide and has no per-group analogue. Omitted from the response while the per-product breakdown is not enabled for this organization. - - - `science_monthly_active_user_count: Integer` - - Number of users with Claude Science activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. - - - `science_weekly_active_user_count: Integer` - - Number of users with Claude Science activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -page = anthropic.beta.organization.analytics.summaries.list(starting_date: "2019-12-27") - -puts(page) -``` - -##### Response (200) +##### Response (200) ```json { "data": [ { - "assigned_seat_count": 0, - "cowork_daily_active_user_count": 0, - "cowork_monthly_active_user_count": 0, - "cowork_weekly_active_user_count": 0, - "daily_active_user_count": 0, - "daily_adoption_rate": 0, - "ending_at": "2019-12-27T18:11:19.117Z", - "monthly_active_user_count": 0, - "monthly_adoption_rate": 0, - "pending_invite_count": 0, - "starting_at": "2019-12-27T18:11:19.117Z", - "weekly_active_user_count": 0, - "weekly_adoption_rate": 0, - "chat_cowork_unified_daily_active_user_count": 0, - "chat_cowork_unified_monthly_active_user_count": 0, - "chat_cowork_unified_weekly_active_user_count": 0, - "chat_daily_active_user_count": 0, - "chat_monthly_active_user_count": 0, - "chat_weekly_active_user_count": 0, - "claude_code_daily_active_user_count": 0, - "claude_code_monthly_active_user_count": 0, - "claude_code_weekly_active_user_count": 0, - "claude_design_daily_active_user_count": 0, - "claude_design_monthly_active_user_count": 0, - "claude_design_weekly_active_user_count": 0, - "office_agent_daily_active_user_count": 0, - "office_agent_monthly_active_user_count": 0, - "office_agent_weekly_active_user_count": 0, - "science_daily_active_user_count": 0, - "science_entitled_user_count": 0, - "science_monthly_active_user_count": 0, - "science_weekly_active_user_count": 0 + "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", + "accepted_at": "2019-12-27T18:11:19.117Z", + "email": "user@emaildomain.com", + "expires_at": "2024-11-20T23:58:27.427722Z", + "invited_at": "2024-10-30T23:58:27.427722Z", + "rbac_group_ids": [ + "string" + ], + "role": "admin", + "status": "pending", + "type": "invite" } ], - "next_page": "next_page", - "summaries": [ - { - "assigned_seat_count": 0, - "cowork_daily_active_user_count": 0, - "cowork_monthly_active_user_count": 0, - "cowork_weekly_active_user_count": 0, - "daily_active_user_count": 0, - "daily_adoption_rate": 0, - "ending_at": "2019-12-27T18:11:19.117Z", - "monthly_active_user_count": 0, - "monthly_adoption_rate": 0, - "pending_invite_count": 0, - "starting_at": "2019-12-27T18:11:19.117Z", - "weekly_active_user_count": 0, - "weekly_adoption_rate": 0, - "chat_cowork_unified_daily_active_user_count": 0, - "chat_cowork_unified_monthly_active_user_count": 0, - "chat_cowork_unified_weekly_active_user_count": 0, - "chat_daily_active_user_count": 0, - "chat_monthly_active_user_count": 0, - "chat_weekly_active_user_count": 0, - "claude_code_daily_active_user_count": 0, - "claude_code_monthly_active_user_count": 0, - "claude_code_weekly_active_user_count": 0, - "claude_design_daily_active_user_count": 0, - "claude_design_monthly_active_user_count": 0, - "claude_design_weekly_active_user_count": 0, - "office_agent_daily_active_user_count": 0, - "office_agent_monthly_active_user_count": 0, - "office_agent_weekly_active_user_count": 0, - "science_daily_active_user_count": 0, - "science_entitled_user_count": 0, - "science_monthly_active_user_count": 0, - "science_weekly_active_user_count": 0 - } - ] + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" } ``` -## Beta › Organization › Analytics › Users - -### List User Activity - -`beta.organization.analytics.users.list(**kwargs) -> PageCursor` +### Get Invite -**GET** `/v1/organizations/analytics/users` +`beta.organization.invites.retrieve(invite_id) -> BetaOrganizationInvite` -Get per-user activity for a given day, with cursor-based pagination. +**GET** `/v1/organizations/invites/{invite_id}` -Returns activity metrics for each user in the organization, sorted by email -address. Use `group_by[]` for per-RBAC-group aggregates, or `filter[]` to -scope results to specific members, groups, or a chat project. Available -to organizations on a Claude Enterprise plan. Requires an API key with -the `read:analytics` scope. +Retrieve an invite by ID. #### Parameters -- `date: Date` (query parameter) - - UTC date in YYYY-MM-DD format. The day to get user activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. +- `invite_id: String` (path parameter) - format: date + ID of the Invite. -- `ending_date: Date` (query parameter) +#### Returns - UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. +- `class BetaOrganizationInvite` - format: date + - `type: :invite` -- `filter: Array[String]` (query parameter) + Object type. - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. A `project_id` filter limits each member's row to their claude.ai chat activity in that project and cannot be combined with `group_by[]` or an `rbac_group_id` filter. On these rows, every count in `chat_cowork_unified_metrics.sessions` is 0, because sessions are not measured per project. On any day a member sent a chat message in Chat and Cowork unified, all of that member's project activity for the day is counted in `chat_cowork_unified_metrics.chat` instead of `chat_metrics`. + For Invites, this is always `"invite"`. - maxItems: 100 + - `id: String` -- `group_by: Array[:rbac_group_id]` (query parameter) + ID of the Invite. - Dimensions to break results out by (e.g. `group_by[]=rbac_group_id`). Supported on this endpoint: `rbac_group_id`. Rows are already per-member, so the one supported grouping aggregates them per RBAC group instead. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + - `accepted_at: Time` - maxItems: 100 + RFC 3339 datetime string indicating when the Invite was accepted, or null. -- `limit: Integer` (query parameter) + format: date-time - Number of results per page (1-1000, default 100). + - `email: String` - minimum: 1, maximum: 1000 + Email of the User being invited. -- `order: :asc | :desc` (query parameter) + - `expires_at: Time` - Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + RFC 3339 datetime string indicating when the Invite expires. - - `:asc` + format: date-time - - `:desc` + - `invited_at: Time` -- `order_by: String` (query parameter) + RFC 3339 datetime string indicating when the Invite was created. - Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + format: date-time -- `page: String` (query parameter) + - `rbac_group_ids: Array[String]` - Opaque cursor from a previous response's `next_page` field. + RBAC group IDs recorded on the Invite (Claude Enterprise organizations), to be assigned to the User when the Invite is accepted. `[]` when none. -- `starting_date: Date` (query parameter) + - `role: BetaOrganizationRole` - UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + Organization role of the User. - format: date + - `:admin` -#### Returns + - `:billing` -- `class BetaAnalyticsUserActivity` + - `:claude_code_user` - Per-user activity data for a given day. + - `:developer` - - `chat_metrics: BetaAnalyticsChatMetrics` + - `:managed` - Claude.ai activity metrics for a single user on a given day. + - `:membership_admin` - - `connectors_used_count: Integer` + - `:owner` - Number of MCP connector invocations. + - `:primary_owner` - - `distinct_artifacts_created_count: Integer` + - `:user` - Number of distinct artifacts created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + - `status: :accepted | :deleted | :expired | :pending` - - `distinct_connectors_used_count: Integer` + Status of the Invite. - Distinct claude.ai connectors this user used. Excludes calls whose connector could not be identified and all calls from organizations with zero data retention. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:accepted` - - `distinct_conversation_count: Integer` + - `:deleted` - Number of distinct conversations the user participated in. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:expired` - - `distinct_files_uploaded_count: Integer` + - `:pending` - Number of distinct files uploaded. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +#### Example - - `distinct_projects_created_count: Integer` +```ruby +require "anthropic" - Number of distinct projects created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `distinct_projects_used_count: Integer` +beta_organization_invite = anthropic.beta.organization.invites.retrieve("invite_id") - Number of distinct projects used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +puts(beta_organization_invite) +``` - - `distinct_shared_artifacts_viewed_count: Integer` +##### Response (200) - Number of distinct shared artifacts the user viewed. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +```json +{ + "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", + "accepted_at": "2019-12-27T18:11:19.117Z", + "email": "user@emaildomain.com", + "expires_at": "2024-11-20T23:58:27.427722Z", + "invited_at": "2024-10-30T23:58:27.427722Z", + "rbac_group_ids": [ + "string" + ], + "role": "admin", + "status": "pending", + "type": "invite" +} +``` - - `distinct_skills_used_count: Integer` +### Delete Invite - Number of distinct skills used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +`beta.organization.invites.delete(invite_id) -> InviteDeleteResponse` - - `message_count: Integer` +**DELETE** `/v1/organizations/invites/{invite_id}` - Number of messages sent +Delete a pending invite. - - `shared_conversations_viewed_count: Integer` +#### Parameters - Number of times the user opened a shared conversation in a project +- `invite_id: String` (path parameter) - - `thinking_message_count: Integer` + ID of the Invite. - Number of messages that used extended thinking +#### Returns - - `claude_code_metrics: BetaAnalyticsClaudeCodeMetrics` +- `class InviteDeleteResponse` - Claude Code activity metrics for a single user on a given day. + - `type: :invite_deleted` - - `core_metrics: BetaAnalyticsCoreCodeMetrics` + Deleted object type. - Core Claude Code activity metrics for a single user on a given day. + For Invites, this is always `"invite_deleted"`. - - `artifacts_created_count: Integer` + - `id: String` - Number of artifacts created in Claude Code sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + ID of the Invite. - - `commit_count: Integer` +#### Example - Number of commits made via Claude Code +```ruby +require "anthropic" - - `distinct_session_count: Integer` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Number of distinct Claude Code sessions. On aggregated rows and in date-range mode: summed per-day distinct counts. A session essentially never spans a UTC day, so the sum is in practice the true distinct count. +invite = anthropic.beta.organization.invites.delete("invite_id") - - `lines_of_code: BetaAnalyticsLinesOfCode` +puts(invite) +``` - Lines of code added and removed via Claude Code. +##### Response (200) - - `added_count: Integer` +```json +{ + "id": "invite_015gWxCN9Hfg2QhZwTK7Mdeu", + "type": "invite_deleted" +} +``` - Lines of code added +## Beta › Organization › Service Accounts - - `removed_count: Integer` +### Create Service Account - Lines of code removed +`beta.organization.service_accounts.create(**kwargs) -> BetaServiceAccount` - - `pull_request_count: Integer` +**POST** `/v1/organizations/service_accounts` - Number of pull requests created via Claude Code +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). - - `tool_actions: BetaAnalyticsToolActions` +Create a service account. - Per-tool accepted/rejected counts for Claude Code file modification tools. +A service account is a named workload identity that federation rules +target. `organization_role` is `developer` (default) or `admin`; a rule +may only be created or retargeted to grant `org:admin` scope when the +target's `organization_role` is `admin`. Creating an `admin`-role service +account requires an interactive credential (a user OAuth token or a +Console session) — a workload may only create `developer`-role service +accounts. - - `edit_tool: BetaAnalyticsToolActionCounts` +#### Parameters - Accepted/rejected counts for a single Claude Code tool type. +- `name: String` - - `accepted_count: Integer` + Slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409. - Number of tool proposals accepted + minLength: 1, maxLength: 255 - - `rejected_count: Integer` +- `description: String` - Number of tool proposals rejected + Optional free-text description. - - `multi_edit_tool: BetaAnalyticsToolActionCounts` + maxLength: 2000 - Accepted/rejected counts for a single Claude Code tool type. +- `organization_role: :admin | :developer` - - `notebook_edit_tool: BetaAnalyticsToolActionCounts` + Org-level role. Defaults to `developer`. - Accepted/rejected counts for a single Claude Code tool type. + - `:admin` - - `write_tool: BetaAnalyticsToolActionCounts` + - `:developer` - Accepted/rejected counts for a single Claude Code tool type. +- `betas: Array[AnthropicBeta]` (header parameter) - - `cowork_metrics: BetaAnalyticsCoworkMetrics` + Optional header to specify the beta version(s) you want to use. - Cowork activity metrics for a single user on a given day. + - `String = String` - - `action_count: Integer` + - `:"message-batches-2024-09-24"` - Number of tool actions completed in Cowork sessions + - `:"prompt-caching-2024-07-31"` - - `artifacts_created_count: Integer` + - `:"computer-use-2024-10-22"` - Number of artifacts created in Cowork sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + - `:"computer-use-2025-01-24"` - - `connectors_used_count: Integer` + - `:"pdfs-2024-09-25"` - Total number of connector invocations in Cowork sessions + - `:"token-counting-2024-11-01"` - - `dispatch_turn_count: Integer` + - `:"token-efficient-tools-2025-02-19"` - Number of Dispatch (background agent) turns completed + - `:"output-128k-2025-02-19"` - - `distinct_connectors_used_count: Integer` + - `:"files-api-2025-04-14"` - Number of distinct connectors used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"mcp-client-2025-04-04"` - - `distinct_session_count: Integer` + - `:"mcp-client-2025-11-20"` - Number of distinct Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"dev-full-thinking-2025-05-14"` - - `distinct_skills_used_count: Integer` + - `:"interleaved-thinking-2025-05-14"` - Number of distinct skills used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"code-execution-2025-05-22"` - - `message_count: Integer` + - `:"extended-cache-ttl-2025-04-11"` - Number of messages sent in Cowork sessions + - `:"context-1m-2025-08-07"` - - `skills_used_count: Integer` + - `:"context-management-2025-06-27"` - Total number of skill invocations in Cowork sessions + - `:"model-context-window-exceeded-2025-08-26"` - - `distinct_plugins_used_count: Integer` + - `:"skills-2025-10-02"` - Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"fast-mode-2026-02-01"` - - `edit_tool_count: Integer` + - `:"output-300k-2026-03-24"` - Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + - `:"user-profiles-2026-03-24"` - - `file_edit_count: Integer` + - `:"user-profiles-2026-08-18"` - Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization. + - `:"user-profiles-2026-09-04"` - - `multi_edit_tool_count: Integer` + - `:"advisor-tool-2026-03-01"` - Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + - `:"managed-agents-2026-04-01"` - - `notebook_edit_tool_count: Integer` + - `:"cache-diagnosis-2026-04-07"` - Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + - `:"dreaming-2026-04-21"` - - `plugins_used_count: Integer` + - `:"thinking-token-count-2026-05-13"` - Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. + - `:"server-side-fallback-2026-06-01"` - - `sessions_with_file_edits_count: Integer` + - `:"server-side-fallback-2026-07-01"` - Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"fallback-credit-2026-06-01"` - - `write_tool_count: Integer` + - `:"fallback-credit-2026-07-01"` - Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + - `:"agent-memory-2026-07-22"` - - `design_metrics: BetaAnalyticsDesignMetrics` + - `:"mid-conversation-tool-changes-2026-07-01"` - Claude Design activity metrics for a single user on a given day. + - `:"compact-2026-01-12"` - - `distinct_projects_created_count: Integer` + - `:"computer-use-2025-11-24"` - Number of distinct Claude Design projects created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + - `:"mcp-tunnels-2026-06-22"` - - `distinct_projects_used_count: Integer` + - `:"structured-outputs-2025-11-13"` - Number of distinct Claude Design projects the user worked in. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"task-budgets-2026-03-13"` - - `distinct_session_count: Integer` + - `:"thinking-display-updates-2026-08-18"` - Number of distinct Claude Design sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"ce-user-management-2026-07-13"` - - `message_count: Integer` + - `:"mid-conversation-output-config-2026-07-01"` - Number of messages sent in Claude Design sessions + - `:"thinking-binding-controls-2026-08-01"` - - `office_metrics: BetaAnalyticsOfficeMetrics` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Office Agent activity metrics for a single user on a given day, broken out by Office product. + - `:"compact-2026-09-04"` - - `excel: BetaAnalyticsOfficeProductMetrics` + - `:"inline-tools-2026-09-15"` - Office Agent activity metrics for a single user on a given day within one Office product. + - `:"mcp-client-2026-09-15"` - - `connectors_used_count: Integer` + - `:"ce-plugins-2026-09-01"` - Number of MCP connector invocations + - `:"spend-limit-reads-2026-09-26"` - - `distinct_connectors_used_count: Integer` + - `:"telemetry-destinations-2026-08-11"` - Number of distinct MCP connectors used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:"webhooks-2026-10-07"` - - `distinct_session_count: Integer` +#### Returns - Number of distinct Office Agent sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `class BetaServiceAccount` - - `distinct_skills_used_count: Integer` + Named non-human identity within the caller's organization. - Number of distinct skills used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). - - `message_count: Integer` + - `type: :service_account` - Number of messages sent + - `id: String` - - `skills_used_count: Integer` + Tagged ID of the service account. - Number of skill invocations + - `archived_at: Time` - - `outlook: BetaAnalyticsOfficeProductMetrics` + If set, this service account is archived. - Office Agent activity metrics for a single user on a given day within one Office product. + format: date-time - - `powerpoint: BetaAnalyticsOfficeProductMetrics` + - `archived_by_actor_id: String` - Office Agent activity metrics for a single user on a given day within one Office product. + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. - - `word: BetaAnalyticsOfficeProductMetrics` + - `created_at: Time` - Office Agent activity metrics for a single user on a given day within one Office product. + When this service account was created. - - `science_metrics: BetaAnalyticsScienceMetrics` + format: date-time - Claude Science activity metrics for a single user on a given day. + - `created_by_actor_id: String` - - `delegation_count: Integer` + Tagged ID (`user_`/`svac_`) of the actor that created this service account. - Number of delegations (handoffs to a specialized agent) in Claude Science sessions + - `description: String` - - `distinct_session_count: Integer` + Optional free-text description. - Number of distinct Claude Science sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `name: String` - - `message_count: Integer` + Admin-chosen slug identifier. - Number of messages sent in Claude Science sessions + - `organization_role: :admin | :developer` - - `remote_compute_job_count: Integer` + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. - Number of remote compute jobs launched from Claude Science sessions + - `:admin` - - `skills_used_count: Integer` + - `:developer` - Total number of skill invocations in Claude Science sessions + - `updated_at: Time` - - `web_search_count: Integer` + When this service account was last updated. - Number of web searches performed + format: date-time - - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + - `updated_by_actor_id: String` - Activity recorded while the member had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into `chat` (chat activity) and `sessions` (Cowork activity). Omitted from the response on deployments that do not offer Chat and Cowork unified. + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. - - `chat: BetaAnalyticsChatCoworkUnifiedChatMetrics` +#### Example - Chat activity recorded while members had Chat and Cowork unified turned - on. +```ruby +require "anthropic" - - `connectors_used_count: Integer` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Same measure as `chat_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. +beta_service_account = anthropic.beta.organization.service_accounts.create(name: "ci-deploy-bot") + +puts(beta_service_account) +``` + +##### Response (200) + +```json +{ + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" +} +``` + +### List Service Accounts + +`beta.organization.service_accounts.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/service_accounts` + +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +List service accounts in the caller's organization. + +Results are ordered by creation time, newest first. Use `limit` and the +`next_page` cursor to paginate; set `include_archived=true` to include +archived service accounts. + +#### Parameters + +- `include_archived: bool` (query parameter) + + Include archived resources. Defaults to false. + +- `limit: Integer` (query parameter) + + Number of results per page. + + minimum: 1, maximum: 100 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccount` + + Named non-human identity within the caller's organization. + + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). + + - `type: :service_account` + + - `id: String` + + Tagged ID of the service account. + + - `archived_at: Time` + + If set, this service account is archived. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + + - `created_at: Time` + + When this service account was created. + + format: date-time + + - `created_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that created this service account. + + - `description: String` + + Optional free-text description. + + - `name: String` + + Admin-chosen slug identifier. + + - `organization_role: :admin | :developer` + + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + + - `:admin` + + - `:developer` + + - `updated_at: Time` + + When this service account was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.service_accounts.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" + } + ], + "next_page": "next_page" +} +``` + +### Get Service Account + +`beta.organization.service_accounts.retrieve(service_account_id, **kwargs) -> BetaServiceAccount` + +**GET** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Retrieve a service account by its ID (`svac_...`). + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccount` + + Named non-human identity within the caller's organization. + + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). + + - `type: :service_account` + + - `id: String` + + Tagged ID of the service account. + + - `archived_at: Time` + + If set, this service account is archived. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + + - `created_at: Time` + + When this service account was created. + + format: date-time + + - `created_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that created this service account. + + - `description: String` + + Optional free-text description. + + - `name: String` + + Admin-chosen slug identifier. + + - `organization_role: :admin | :developer` + + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + + - `:admin` + + - `:developer` + + - `updated_at: Time` + + When this service account was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account = anthropic.beta.organization.service_accounts.retrieve("service_account_id") + +puts(beta_service_account) +``` + +##### Response (200) + +```json +{ + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" +} +``` + +### Update Service Account + +`beta.organization.service_accounts.update(service_account_id, **kwargs) -> BetaServiceAccount` + +**POST** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Update a service account. + +Only `description` and `organization_role` are mutable; `name` cannot be +changed. Archived service accounts cannot be updated; this returns 400. +Setting `organization_role` to `admin` (even when unchanged) requires an +interactive credential (a user OAuth token or a Console session). + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account to update. + +- `description: String` + + Replaces the description. Omit to leave unchanged; send `null` to clear (the field is stored as an empty string). + + maxLength: 2000 + +- `organization_role: :admin | :developer` + + Replaces the org-level role. Omit or send `null` to leave unchanged. + + - `:admin` + + - `:developer` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccount` + + Named non-human identity within the caller's organization. + + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). + + - `type: :service_account` + + - `id: String` + + Tagged ID of the service account. + + - `archived_at: Time` + + If set, this service account is archived. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + + - `created_at: Time` + + When this service account was created. + + format: date-time + + - `created_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that created this service account. + + - `description: String` + + Optional free-text description. + + - `name: String` + + Admin-chosen slug identifier. + + - `organization_role: :admin | :developer` + + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + + - `:admin` + + - `:developer` + + - `updated_at: Time` + + When this service account was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account = anthropic.beta.organization.service_accounts.update("service_account_id") + +puts(beta_service_account) +``` + +##### Response (200) + +```json +{ + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" +} +``` + +### Archive Service Account + +`beta.organization.service_accounts.archive(service_account_id, **kwargs) -> BetaServiceAccount` + +**POST** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Archive a service account. + +Idempotent; re-archiving returns the service account with its original +`archived_at`. Rejected with 400 if any live (non-archived) federation +rule still targets this service account, same as issuer archival; archive +those rules first or change their target to another service account. + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account to archive. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccount` + + Named non-human identity within the caller's organization. + + A service account is a pure identity: name + org. Authorization lives on + whatever references it (federation rules). + + - `type: :service_account` + + - `id: String` + + Tagged ID of the service account. + + - `archived_at: Time` + + If set, this service account is archived. + + format: date-time + + - `archived_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that archived this service account. + + - `created_at: Time` + + When this service account was created. + + format: date-time + + - `created_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that created this service account. + + - `description: String` + + Optional free-text description. + + - `name: String` + + Admin-chosen slug identifier. + + - `organization_role: :admin | :developer` + + Org-level role. A federation rule may only be created or retargeted to grant `org:admin` scope when this is `admin`. A rule granting `org:admin` whose target is later demoted to `developer` is rejected at token exchange. Rules granting `org:admin` are managed in the Console. + + - `:admin` + + - `:developer` + + - `updated_at: Time` + + When this service account was last updated. + + format: date-time + + - `updated_by_actor_id: String` + + Tagged ID (`user_`/`svac_`) of the actor that last updated this service account. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account = anthropic.beta.organization.service_accounts.archive("service_account_id") + +puts(beta_service_account) +``` + +##### Response (200) + +```json +{ + "id": "svac_01SDCCSbTxrXDpWc1phhtcfK", + "archived_at": "2019-12-27T18:11:19.117Z", + "archived_by_actor_id": "archived_by_actor_id", + "created_at": "2024-10-30T23:58:27.427722Z", + "created_by_actor_id": "created_by_actor_id", + "description": "description", + "name": "ci-deploy-bot", + "organization_role": "admin", + "type": "service_account", + "updated_at": "2024-10-30T23:58:27.427722Z", + "updated_by_actor_id": "updated_by_actor_id" +} +``` + +## Beta › Organization › Service Accounts › Workspaces + +### Add Workspace To Service Account + +`beta.organization.service_accounts.workspaces.add(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + +**POST** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Add a service account to a workspace with the given `workspace_role`. + +Mirror of `POST /workspaces/{workspace_id}/service_accounts`, addressed +from the service-account side; both create the same membership. If the +service account is already an explicit member of the workspace, its +`workspace_role` is replaced with the value supplied here. Archived +workspaces return 400. Archived service accounts cannot be added and are +rejected. + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `workspace_id: String` + + Tagged workspace ID to add the service account to. + +- `workspace_role: BetaNoBillingWorkspaceRole` + + Role to assign to the service account in this workspace. + + - `:workspace_admin` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account_workspace_member = anthropic.beta.organization.service_accounts.workspaces.add( + "service_account_id", + workspace_id: "workspace_id", + workspace_role: :workspace_admin +) + +puts(beta_service_account_workspace_member) +``` + +##### Response (200) + +```json +{ + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" +} +``` + +### List Workspaces For Service Account + +`beta.organization.service_accounts.workspaces.list(service_account_id, **kwargs) -> PageCursor` + +**GET** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +List the workspaces a service account is a member of. + +Each entry includes the service account's `workspace_role` in that +workspace. Use `limit` and the `next_page` cursor to paginate. When the +service account has no explicit default-workspace membership, the +implicit (`implicit: true`) membership is returned as the first entry on +the first page; with `limit=1` the first page may return up to 2 entries +(the implicit entry plus one explicit membership) so a pagination cursor +can be derived. Memberships are returned only while +the service account is active. Without a `page` cursor, an archived +service account returns an empty list. A `page` cursor that does not +match an active membership returns a 400 invalid-request error. A cursor +stops matching when the membership is removed, the workspace is deleted, +or the service account is archived. Restart pagination from the first +page to recover. + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `limit: Integer` (query parameter) + + Number of results per page. + + minimum: 1, maximum: 100 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.service_accounts.workspaces.list("service_account_id") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" + } + ], + "next_page": "next_page" +} +``` + +### Remove Workspace From Service Account + +`beta.organization.service_accounts.workspaces.remove(workspace_id, **kwargs) -> WorkspaceRemoveResponse` + +**DELETE** `/v1/organizations/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Remove a service account from a workspace. + +Mirror of `DELETE /workspaces/{workspace_id}/service_accounts/{service_account_id}`, +addressed from the service-account side. Removal is idempotent (returns +200 even if the membership was already removed). A DELETE against the +implicit default-workspace membership returns 200 but is a no-op and the +membership persists; deleting an explicit default-workspace row reverts +to the implicit `workspace_user` membership. Archived workspaces return +400. + +#### Parameters + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class WorkspaceRemoveResponse` + + - `type: :service_account_workspace_member_deleted` + + - `service_account_id: String` + + Tagged service account ID (`svac_...`) named in the delete request. Removal is idempotent; see the endpoint description for the implicit-membership no-op. + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`) named in the delete request. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +workspace = anthropic.beta.organization.service_accounts.workspaces.remove( + "workspace_id", + service_account_id: "service_account_id" +) + +puts(workspace) +``` + +##### Response (200) + +```json +{ + "service_account_id": "service_account_id", + "type": "service_account_workspace_member_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Users + +### List Users + +`beta.organization.users.list(**kwargs) -> Page` + +**GET** `/v1/organizations/users` + +List the organization's members. + +#### Parameters + +- `after_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + +- `email: String` (query parameter) + + Filter by user email. + + format: email + +- `limit: Integer` (query parameter) + + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `1000`. + + minimum: 1, maximum: 1000 + +- `roles: Array[String]` (query parameter) + + Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together. + + Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`. + +#### Returns + +- `class BetaOrganizationUser` + + - `type: :user` + + Object type. + + For Users, this is always `"user"`. + + - `id: String` + + ID of the User. + + - `added_at: Time` + + RFC 3339 datetime string indicating when the User joined the Organization. + + format: date-time + + - `email: String` + + Email of the User. + + - `name: String` + + Name of the User. + + - `role: BetaOrganizationRole` + + Organization role of the User. + + - `:admin` + + - `:billing` + + - `:claude_code_user` + + - `:developer` + + - `:managed` + + - `:membership_admin` + + - `:owner` + + - `:primary_owner` + + - `:user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.users.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "added_at": "2024-10-30T23:58:27.427722Z", + "email": "user@emaildomain.com", + "name": "Jane Doe", + "role": "admin", + "type": "user" + } + ], + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" +} +``` + +### Get User + +`beta.organization.users.retrieve(user_id) -> BetaOrganizationUser` + +**GET** `/v1/organizations/users/{user_id}` + +Retrieve a member of the organization by user ID. + +#### Parameters + +- `user_id: String` (path parameter) + + ID of the User. + +#### Returns + +- `class BetaOrganizationUser` + + - `type: :user` + + Object type. + + For Users, this is always `"user"`. + + - `id: String` + + ID of the User. + + - `added_at: Time` + + RFC 3339 datetime string indicating when the User joined the Organization. + + format: date-time + + - `email: String` + + Email of the User. + + - `name: String` + + Name of the User. + + - `role: BetaOrganizationRole` + + Organization role of the User. + + - `:admin` + + - `:billing` + + - `:claude_code_user` + + - `:developer` + + - `:managed` + + - `:membership_admin` + + - `:owner` + + - `:primary_owner` + + - `:user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_organization_user = anthropic.beta.organization.users.retrieve("user_id") + +puts(beta_organization_user) +``` + +##### Response (200) + +```json +{ + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "added_at": "2024-10-30T23:58:27.427722Z", + "email": "user@emaildomain.com", + "name": "Jane Doe", + "role": "admin", + "type": "user" +} +``` + +### Update User + +`beta.organization.users.update(user_id, **kwargs) -> BetaOrganizationUser` + +**POST** `/v1/organizations/users/{user_id}` + +Update a member's organization role. + +#### Parameters + +- `user_id: String` (path parameter) + + ID of the User. + +- `role: :billing | :claude_code_user | :developer | 2 more` + + New role for the User. + + The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; changing a User's role to `managed` requires the `write:rbac_groups` scope in addition to `write:members`. + + - `:billing` + + - `:claude_code_user` + + - `:developer` + + - `:managed` + + - `:user` + +#### Returns + +- `class BetaOrganizationUser` + + - `type: :user` + + Object type. + + For Users, this is always `"user"`. + + - `id: String` + + ID of the User. + + - `added_at: Time` + + RFC 3339 datetime string indicating when the User joined the Organization. + + format: date-time + + - `email: String` + + Email of the User. + + - `name: String` + + Name of the User. + + - `role: BetaOrganizationRole` + + Organization role of the User. + + - `:admin` + + - `:billing` + + - `:claude_code_user` + + - `:developer` + + - `:managed` + + - `:membership_admin` + + - `:owner` + + - `:primary_owner` + + - `:user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_organization_user = anthropic.beta.organization.users.update("user_id", role: :user) + +puts(beta_organization_user) +``` + +##### Response (200) + +```json +{ + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "added_at": "2024-10-30T23:58:27.427722Z", + "email": "user@emaildomain.com", + "name": "Jane Doe", + "role": "admin", + "type": "user" +} +``` + +### Remove User + +`beta.organization.users.remove(user_id) -> UserRemoveResponse` + +**DELETE** `/v1/organizations/users/{user_id}` + +Remove a member from the organization. + +#### Parameters + +- `user_id: String` (path parameter) + + ID of the User. + +#### Returns + +- `class UserRemoveResponse` + + - `type: :user_deleted` + + Deleted object type. + + For Users, this is always `"user_deleted"`. + + - `id: String` + + ID of the User. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +user = anthropic.beta.organization.users.remove("user_id") + +puts(user) +``` + +##### Response (200) + +```json +{ + "id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "type": "user_deleted" +} +``` + +## Beta › Organization › Workspaces + +### List Workspaces + +`beta.organization.workspaces.list(**kwargs) -> Page` + +**GET** `/v1/organizations/workspaces` + +List Workspaces + +#### Parameters + +- `after_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + +- `include_archived: bool` (query parameter) + + Whether to include Workspaces that have been archived in the response + +- `include_default: bool` (query parameter) + + Whether to include the organization's default Workspace in the response + +- `limit: Integer` (query parameter) + + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `1000`. + + minimum: 1, maximum: 1000 + +#### Returns + +- `class BetaWorkspace` + + - `type: :workspace` + + Object type. + + For Workspaces, this is always `"workspace"`. + + - `id: String` + + ID of the Workspace. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: String` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: Time` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: String` + + Name of the Workspace. + + - `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.workspaces.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" + } + ], + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" +} +``` + +### Create Workspace + +`beta.organization.workspaces.create(**kwargs) -> BetaWorkspace` + +**POST** `/v1/organizations/workspaces` + +Create Workspace + +#### Parameters + +- `name: String` + + Name of the Workspace. + + minLength: 1, maxLength: 255 + +- `data_residency: BetaDataResidencyCreateConfig` + + Data residency configuration for the workspace. If omitted, defaults to `workspace_geo: "us"`, `allowed_inference_geos: "unrestricted"`, and `default_inference_geo: "global"`. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. Defaults to 'unrestricted' if omitted, which allows all geos. Use the string 'unrestricted' to allow all geos, or a list of specific geos. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. Defaults to 'global' if omitted. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. Defaults to 'us' if omitted. + +- `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + maxLength: 7, pattern: ^#[0-9A-Fa-f]{6}$ + +- `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + +- `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaWorkspace` + + - `type: :workspace` + + Object type. + + For Workspaces, this is always `"workspace"`. + + - `id: String` + + ID of the Workspace. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: String` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: Time` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: String` + + Name of the Workspace. + + - `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace = anthropic.beta.organization.workspaces.create(name: "x") + +puts(beta_workspace) +``` + +##### Response (200) + +```json +{ + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" +} +``` + +### Get Workspace + +`beta.organization.workspaces.retrieve(workspace_id) -> BetaWorkspace` + +**GET** `/v1/organizations/workspaces/{workspace_id}` + +Get Workspace + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +#### Returns + +- `class BetaWorkspace` + + - `type: :workspace` + + Object type. + + For Workspaces, this is always `"workspace"`. + + - `id: String` + + ID of the Workspace. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: String` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: Time` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: String` + + Name of the Workspace. + + - `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace = anthropic.beta.organization.workspaces.retrieve("workspace_id") + +puts(beta_workspace) +``` + +##### Response (200) + +```json +{ + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" +} +``` + +### Update Workspace + +`beta.organization.workspaces.update(workspace_id, **kwargs) -> BetaWorkspace` + +**POST** `/v1/organizations/workspaces/{workspace_id}` + +Update Workspace + +#### Parameters + +- `workspace_id: String` (path parameter) + +- `data_residency: BetaDataResidencyUpdateConfig` + + Data residency configuration for the workspace. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. Use 'unrestricted' to allow all geos, or a list of specific geos. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. Must be a member of `allowed_inference_geos` unless `allowed_inference_geos` is `"unrestricted"`. + + - `:global` + + - `:us` + +- `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + maxLength: 7, pattern: ^#[0-9A-Fa-f]{6}$ + +- `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + +- `name: String` + + Name of the Workspace. + + minLength: 1, maxLength: 255 + +- `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Returns + +- `class BetaWorkspace` + + - `type: :workspace` + + Object type. + + For Workspaces, this is always `"workspace"`. + + - `id: String` + + ID of the Workspace. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: String` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: Time` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: String` + + Name of the Workspace. + + - `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace = anthropic.beta.organization.workspaces.update("workspace_id") + +puts(beta_workspace) +``` + +##### Response (200) + +```json +{ + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" +} +``` + +### Archive Workspace + +`beta.organization.workspaces.archive(workspace_id) -> BetaWorkspace` + +**POST** `/v1/organizations/workspaces/{workspace_id}/archive` + +Archive Workspace + +#### Parameters + +- `workspace_id: String` (path parameter) + +#### Returns + +- `class BetaWorkspace` + + - `type: :workspace` + + Object type. + + For Workspaces, this is always `"workspace"`. + + - `id: String` + + ID of the Workspace. + + - `archived_at: Time` + + RFC 3339 datetime string indicating when the Workspace was archived, or `null` if the Workspace is not archived. + + format: date-time + + - `compartment_id: String` + + Identifier for this Workspace's encryption compartment. When you configure a + customer-managed encryption key (CMEK) on AWS, reference this value in your + KMS key-policy condition so the key is scoped to this compartment. On GCP and + Azure, Anthropic enforces the compartment binding automatically; you do not + need to reference this value in your key configuration. See the CMEK + integration guide for the required key configuration; unless your organization + is on Claude Platform on AWS, it includes a separate value used during key + validation. On Claude Platform on AWS there is no separate validation value: + the key is validated against this Workspace's own value when it is attached, so + if your key policy uses the compartment condition, add this value to it before + attaching the key. + + - `created_at: Time` + + RFC 3339 datetime string indicating when the Workspace was created. + + format: date-time + + - `data_residency: BetaDataResidency` + + Data residency configuration. + + - `allowed_inference_geos: Array[BetaAllowedInferenceGeo] | :unrestricted` + + Permitted inference geo values. 'unrestricted' means all geos are allowed. + + - `Geos = Array[BetaAllowedInferenceGeo]` + + - `:global` + + - `:us` + + - `:unrestricted` + + - `default_inference_geo: :global | :us` + + Default inference geo applied when requests omit the parameter. + + - `:global` + + - `:us` + + - `workspace_geo: :us` + + Geographic region for workspace data storage. Immutable after creation. + + - `display_color: String` + + Hex color code representing the Workspace in the Anthropic Console. + + - `external_key_id: String` + + ID of the customer-managed encryption key (CMEK) configuration to use for this + Workspace. Setting this field requires CMEK to be enabled for your + organization. When set, data stored for this Workspace is encrypted with the + referenced key. Create key configurations with the External Keys API. On + Claude Platform on AWS the value is the AWS KMS key ARN, and the key must be a + single-Region key in the same AWS account and Region as the Workspace. On that + platform the key is validated against this Workspace when it is attached, so a + key-policy problem is reported as an error on this request. This field is write-once: + once a key is attached to a Workspace it cannot be detached or replaced. To + rotate key material, rotate the underlying key on your cloud KMS; the + `external_key_id` stays the same. + + - `name: String` + + Name of the Workspace. + + - `tags: Hash[Symbol, String]` + + User-defined tags as string key-value pairs. Keys may not begin with `anthropic`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace = anthropic.beta.organization.workspaces.archive("workspace_id") + +puts(beta_workspace) +``` + +##### Response (200) + +```json +{ + "id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "archived_at": "2024-11-01T23:59:27.427722Z", + "compartment_id": "f8a7b6c5-4d3e-4f1a-8b9c-0d1e2f3a4b5c", + "created_at": "2024-10-30T23:58:27.427722Z", + "data_residency": { + "allowed_inference_geos": "unrestricted", + "default_inference_geo": "global", + "workspace_geo": "us" + }, + "display_color": "#6C5BB9", + "external_key_id": "ekey_01SDCCSbTxrXDpWc1phhtcfK", + "name": "Workspace Name", + "tags": { + "env": "prod", + "team": "platform" + }, + "type": "workspace" +} +``` + +## Beta › Organization › Workspaces › Rate Limits + +### List Workspace Rate Limits + +`beta.organization.workspaces.rate_limits.list(workspace_id, **kwargs) -> PageCursor` + +**GET** `/v1/organizations/workspaces/{workspace_id}/rate_limits` + +List a workspace's rate limits. + +By default, returns only the groups and limiter types that have a +workspace-level override. With `include_inherited=true`, returns every +group with organization-level limits the workspace can see, listing for +each the values it inherits from the organization as well as its own +overrides. Each value's `source` says which it is. + +When `limit` is omitted, every matching entry is returned in a single +page; when `limit` truncates the result, follow `next_page` to fetch +the remaining entries. + +#### Parameters + +- `workspace_id: String` (path parameter) + + The ID of the workspace. + +- `group_type: :batch | :files | :model_group | 3 more` (query parameter) + + Filter by group type. + + - `:batch` + + - `:files` + + - `:model_group` + + - `:skills` + + - `:token_count` + + - `:web_search` + +- `include_inherited: bool` (query parameter) + + Also list the limiter values the workspace inherits from the organization, including groups with no workspace-level override. + +- `limit: Integer` (query parameter) + + Maximum number of items to return per page. Ranges from `1` to `1000`. + + When omitted, every remaining entry is returned in a single page and `next_page` is `null`. + + minimum: 1, maximum: 1000 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `type: :workspace_rate_limit` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `type: :model_group` + + Always `model_group`: a family of models. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: String` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `type: :batch` + + Always `batch`: the Message Batches API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `type: :token_count` + + Always `token_count`: the Token Count API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `type: :files` + + Always `files`: the Files API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `type: :skills` + + Always `skills`: the Skills API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `type: :web_search` + + Always `web_search`: the Messages API web search tool. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: Array[BetaWorkspaceRateLimitValue]` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: String` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: Integer` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource | BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `class BetaWorkspaceRateLimitWorkspaceSource` + + - `type: :workspace` + + Always `workspace`: a workspace-level override is stored. + + - `class BetaWorkspaceRateLimitOrganizationSource` + + - `type: :organization` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + - `value: Integer` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: Array[String]` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: String` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: String` + + ID of the Workspace this entry applies to. + + - `group_type: :batch | :files | :model_group | 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `:batch` + + - `:files` + + - `:model_group` + + - `:skills` + + - `:token_count` + + - `:web_search` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.workspaces.rate_limits.list("workspace_id") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Set Workspace Rate Limits + +`beta.organization.workspaces.rate_limits.update(rate_limit_id, **kwargs) -> BetaWorkspaceRateLimit` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `workspace_id: String` (path parameter) + + The ID of the workspace. + +- `rate_limit_id: String` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `limits: Array[BetaWorkspaceRateLimitUpdateValue]` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `:fast_itpmca` + + - `:fast_otpm` + + - `:input_tokens_per_minute` + + - `:input_tokens_per_minute_cache_aware` + + - `:output_tokens_per_minute` + + - `:requests_per_minute` + + - `:tokens_per_day` + + - `:tokens_per_minute` + + - `:tool_uses_per_second` + + - `value: Integer` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `class BetaWorkspaceRateLimit` + + - `type: :workspace_rate_limit` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `type: :model_group` + + Always `model_group`: a family of models. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: String` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `type: :batch` + + Always `batch`: the Message Batches API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `type: :token_count` + + Always `token_count`: the Token Count API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `type: :files` + + Always `files`: the Files API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `type: :skills` + + Always `skills`: the Skills API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `type: :web_search` + + Always `web_search`: the Messages API web search tool. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: Array[BetaWorkspaceRateLimitValue]` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: String` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: Integer` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource | BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `class BetaWorkspaceRateLimitWorkspaceSource` + + - `type: :workspace` + + Always `workspace`: a workspace-level override is stored. + + - `class BetaWorkspaceRateLimitOrganizationSource` + + - `type: :organization` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + - `value: Integer` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: Array[String]` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: String` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: String` + + ID of the Workspace this entry applies to. + + - `group_type: :batch | :files | :model_group | 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `:batch` + + - `:files` + + - `:model_group` + + - `:skills` + + - `:token_count` + + - `:web_search` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace_rate_limit = anthropic.beta.organization.workspaces.rate_limits.update( + "rate_limit_id", + workspace_id: "workspace_id", + limits: [{type: :fast_itpmca, value: 0}] +) + +puts(beta_workspace_rate_limit) +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Workspaces › Members + +### List Workspace Members + +`beta.organization.workspaces.members.list(workspace_id, **kwargs) -> Page` + +**GET** `/v1/organizations/workspaces/{workspace_id}/members` + +List Workspace Members + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +- `after_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: String` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object. + +- `limit: Integer` (query parameter) + + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `1000`. + + minimum: 1, maximum: 1000 + +#### Returns + +- `class BetaWorkspaceMember` + + - `type: :workspace_member` + + Object type. + + For Workspace Members, this is always `"workspace_member"`. + + - `user_id: String` + + ID of the User. + + - `workspace_id: String` + + ID of the Workspace. + + - `workspace_role: BetaWorkspaceRole` + + Role of the Workspace Member. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.workspaces.members.list("workspace_id") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "type": "workspace_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "workspace_role": "workspace_admin" + } + ], + "first_id": "first_id", + "has_more": true, + "last_id": "last_id" +} +``` + +### Create Workspace Member + +`beta.organization.workspaces.members.add(workspace_id, **kwargs) -> BetaWorkspaceMember` + +**POST** `/v1/organizations/workspaces/{workspace_id}/members` + +Create Workspace Member + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +- `user_id: String` + + ID of the User. + +- `workspace_role: BetaNoBillingWorkspaceRole` + + Role of the new Workspace Member. Cannot be `workspace_billing`. + + - `:workspace_admin` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Returns + +- `class BetaWorkspaceMember` + + - `type: :workspace_member` + + Object type. + + For Workspace Members, this is always `"workspace_member"`. + + - `user_id: String` + + ID of the User. + + - `workspace_id: String` + + ID of the Workspace. + + - `workspace_role: BetaWorkspaceRole` + + Role of the Workspace Member. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace_member = anthropic.beta.organization.workspaces.members.add( + "workspace_id", + user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q", + workspace_role: :workspace_admin +) + +puts(beta_workspace_member) +``` + +##### Response (200) + +```json +{ + "type": "workspace_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "workspace_role": "workspace_admin" +} +``` + +### Get Workspace Member + +`beta.organization.workspaces.members.retrieve(user_id, **kwargs) -> BetaWorkspaceMember` + +**GET** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` + +Get Workspace Member + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +- `user_id: String` (path parameter) + + ID of the User. + +#### Returns + +- `class BetaWorkspaceMember` + + - `type: :workspace_member` + + Object type. + + For Workspace Members, this is always `"workspace_member"`. + + - `user_id: String` + + ID of the User. + + - `workspace_id: String` + + ID of the Workspace. + + - `workspace_role: BetaWorkspaceRole` + + Role of the Workspace Member. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace_member = anthropic.beta.organization.workspaces.members.retrieve("user_id", workspace_id: "workspace_id") + +puts(beta_workspace_member) +``` + +##### Response (200) + +```json +{ + "type": "workspace_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "workspace_role": "workspace_admin" +} +``` + +### Update Workspace Member + +`beta.organization.workspaces.members.update(user_id, **kwargs) -> BetaWorkspaceMember` + +**POST** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` + +Update Workspace Member + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +- `user_id: String` (path parameter) + + ID of the User. + +- `workspace_role: BetaWorkspaceRole` + + New workspace role for the User. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Returns + +- `class BetaWorkspaceMember` + + - `type: :workspace_member` + + Object type. + + For Workspace Members, this is always `"workspace_member"`. + + - `user_id: String` + + ID of the User. + + - `workspace_id: String` + + ID of the Workspace. + + - `workspace_role: BetaWorkspaceRole` + + Role of the Workspace Member. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_workspace_member = anthropic.beta.organization.workspaces.members.update( + "user_id", + workspace_id: "workspace_id", + workspace_role: :workspace_admin +) + +puts(beta_workspace_member) +``` + +##### Response (200) + +```json +{ + "type": "workspace_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ", + "workspace_role": "workspace_admin" +} +``` + +### Delete Workspace Member + +`beta.organization.workspaces.members.remove(user_id, **kwargs) -> MemberRemoveResponse` + +**DELETE** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}` + +Delete Workspace Member + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the Workspace. + +- `user_id: String` (path parameter) + + ID of the User. + +#### Returns + +- `class MemberRemoveResponse` + + - `type: :workspace_member_deleted` + + Deleted object type. + + For Workspace Members, this is always `"workspace_member_deleted"`. + + - `user_id: String` + + ID of the User. + + - `workspace_id: String` + + ID of the Workspace. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +member = anthropic.beta.organization.workspaces.members.remove("user_id", workspace_id: "workspace_id") + +puts(member) +``` + +##### Response (200) + +```json +{ + "type": "workspace_member_deleted", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q", + "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ" +} +``` + +## Beta › Organization › Workspaces › Service Accounts + +### List Service Account Workspace Members + +`beta.organization.workspaces.service_accounts.list(workspace_id, **kwargs) -> PageCursor` + +**GET** `/v1/organizations/workspaces/{workspace_id}/service_accounts` + +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +List the service accounts that are members of a workspace. + +Each entry includes the service account's `workspace_role`. Use `limit` +and the `next_page` cursor to paginate. Archived workspaces return 400; +use `GET /service_accounts/{id}/workspaces` to audit memberships of an +archived workspace. The implicit default-workspace membership is not +included in this list. Memberships of archived service accounts are +omitted from the results. + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `limit: Integer` (query parameter) + + Number of results per page. + + minimum: 1, maximum: 100 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.workspaces.service_accounts.list("workspace_id") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" + } + ], + "next_page": "next_page" +} +``` + +### Create Service Account Workspace Member + +`beta.organization.workspaces.service_accounts.add(workspace_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + +**POST** `/v1/organizations/workspaces/{workspace_id}/service_accounts` + +**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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Add a service account to a workspace with the given `workspace_role`. + +The role determines what the service account can do in the workspace and +which workspace-scoped permissions it can be granted when authenticating +through federation. Every service account is already an implicit +`workspace_user` member of the default workspace; adding it explicitly +assigns a chosen role. If the service account is already an explicit +member of the workspace, its `workspace_role` is replaced with the +value supplied here. Archived workspaces return 400. Archived service +accounts cannot be added and are rejected. + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `service_account_id: String` + + Tagged service account ID to add. + +- `workspace_role: BetaNoBillingWorkspaceRole` + + Role to assign to the service account in this workspace. + + - `:workspace_admin` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.add( + "workspace_id", + service_account_id: "service_account_id", + workspace_role: :workspace_admin +) + +puts(beta_service_account_workspace_member) +``` + +##### Response (200) + +```json +{ + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" +} +``` + +### Get Service Account Workspace Member + +`beta.organization.workspaces.service_accounts.retrieve(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + +**GET** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Retrieve a service account's membership in a workspace. + +Returns the membership record, including the service account's +`workspace_role` in this workspace. Archived workspaces return 400. For +the default workspace, returns the implicit (`implicit: true`) +membership when no explicit membership exists; an explicitly added +membership is returned with its assigned role. An archived service +account returns 404. + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.retrieve( + "service_account_id", + workspace_id: "workspace_id" +) + +puts(beta_service_account_workspace_member) +``` + +##### Response (200) + +```json +{ + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" +} +``` + +### Update Service Account Workspace Member + +`beta.organization.workspaces.service_accounts.update(service_account_id, **kwargs) -> BetaServiceAccountWorkspaceMember` + +**POST** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Change a service account's role in a workspace. + +The new `workspace_role` replaces the current one. Only explicit +memberships can be updated; to set a role on the implicit +default-workspace membership, add the service account explicitly with +`POST /workspaces/{workspace_id}/service_accounts`. Archived workspaces +return 400. Archived service accounts cannot be updated and are +rejected. + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `workspace_role: BetaNoBillingWorkspaceRole` + + New role for the service account in this workspace. + + - `:workspace_admin` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaServiceAccountWorkspaceMember` + + - `type: :service_account_workspace_member` + + - `created_by_actor_id: String` + + Tagged ID (`user_...`/`svac_...`) of the actor who created this membership. + + - `implicit: bool` + + True when this is the implicit default-workspace membership every service account has when no explicit membership exists. Implicit memberships have role `workspace_user` and cannot be removed. + + - `service_account_id: String` + + Tagged service account ID (`svac_...`). + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`). + + - `workspace_role: BetaWorkspaceRole` + + Role of the service account in this workspace. Service accounts cannot hold the `workspace_billing` role. + + - `:workspace_admin` + + - `:workspace_billing` + + - `:workspace_developer` + + - `:workspace_restricted_developer` + + - `:workspace_user` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_service_account_workspace_member = anthropic.beta.organization.workspaces.service_accounts.update( + "service_account_id", + workspace_id: "workspace_id", + workspace_role: :workspace_admin +) + +puts(beta_service_account_workspace_member) +``` + +##### Response (200) + +```json +{ + "created_by_actor_id": "created_by_actor_id", + "implicit": true, + "service_account_id": "service_account_id", + "type": "service_account_workspace_member", + "workspace_id": "workspace_id", + "workspace_role": "workspace_admin" +} +``` + +### Delete Service Account Workspace Member + +`beta.organization.workspaces.service_accounts.remove(service_account_id, **kwargs) -> ServiceAccountRemoveResponse` + +**DELETE** `/v1/organizations/workspaces/{workspace_id}/service_accounts/{service_account_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](https://platform.claude.com/docs/en/manage-claude/wif-admin-api?sdk_languages=ruby). + +Remove a service account from a workspace. + +Removal is idempotent (returns 200 even if the membership was already +removed). A DELETE against the implicit default-workspace membership +returns 200 but is a no-op and the membership persists; deleting an +explicit default-workspace row reverts to the implicit `workspace_user` +membership. Archived workspaces return 400. + +#### Parameters + +- `workspace_id: String` (path parameter) + + ID of the workspace. + +- `service_account_id: String` (path parameter) + + ID of the service account. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class ServiceAccountRemoveResponse` + + - `type: :service_account_workspace_member_deleted` + + - `service_account_id: String` + + Tagged service account ID (`svac_...`) named in the delete request. Removal is idempotent; see the endpoint description for the implicit-membership no-op. + + - `workspace_id: String` + + Tagged workspace ID (`wrkspc_...`) named in the delete request. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +service_account = anthropic.beta.organization.workspaces.service_accounts.remove( + "service_account_id", + workspace_id: "workspace_id" +) + +puts(service_account) +``` + +##### Response (200) + +```json +{ + "service_account_id": "service_account_id", + "type": "service_account_workspace_member_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Rate Limits + +### List Organization Rate Limits + +`beta.organization.rate_limits.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/rate_limits` + +List Messages API rate limits for your organization. + +Each entry corresponds to one rate-limit group (either a model family +or an API-surface category such as the Message Batches API or the web +search tool) and contains the set of limiter values that apply to it. + +When `limit` is omitted, every matching entry is returned in a single +page; when `limit` truncates the result, follow `next_page` to fetch +the remaining entries. + +#### Parameters + +- `group_type: :batch | :files | :model_group | 3 more` (query parameter) + + Filter by group type. + + - `:batch` + + - `:files` + + - `:model_group` + + - `:skills` + + - `:token_count` + + - `:web_search` + +- `limit: Integer` (query parameter) + + Maximum number of items to return per page. Ranges from `1` to `1000`. + + When omitted, every remaining entry is returned in a single page and `next_page` is `null`. + + minimum: 1, maximum: 1000 + +- `model: String` (query parameter) + + Filter to the single entry containing this model. Accepts full model names and aliases. Returns 404 if the model is not found or has no rate limits for this organization. + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. + +#### Returns + +- `class BetaOrganizationRateLimit` + + - `type: :rate_limit` + + Object type. Always `rate_limit` for organization rate-limit entries. + + - `id: String` + + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. + + - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `class BetaOrganizationRateLimitModelGroup` + + - `type: :model_group` + + Always `model_group`: a family of models. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: String` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `class BetaOrganizationRateLimitBatchGroup` + + - `type: :batch` + + Always `batch`: the Message Batches API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitTokenCountGroup` + + - `type: :token_count` + + Always `token_count`: the Token Count API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitFilesGroup` + + - `type: :files` + + Always `files`: the Files API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitSkillsGroup` + + - `type: :skills` + + Always `skills`: the Skills API. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `class BetaOrganizationRateLimitWebSearchGroup` + + - `type: :web_search` + + Always `web_search`: the Messages API web search tool. + + - `id: String` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: Array[BetaOrganizationRateLimitValue]` + + The limiter values that apply to this group. + + - `type: String` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `value: Integer` + + The configured limit value for this limiter type. + + - `models: Array[String]` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `group_type: :batch | :files | :model_group | 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `:batch` + + - `:files` + + - `:model_group` + + - `:skills` + + - `:token_count` + + - `:web_search` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.rate_limits.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "id": "id", + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "type": "rate_limit" + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Compliance Settings + +### Get Compliance Settings + +`beta.organization.compliance_settings.retrieve() -> BetaComplianceSettings` + +**GET** `/v1/organizations/compliance_settings` + +Retrieve your organization's Compliance Settings. + +Compliance Settings is a singleton resource: there is exactly one per +organization, addressed without an identifier. The `state` field reflects +whether the Compliance API is enabled. An organization with a parent +organization reads the state inherited from the parent's configuration. + +#### Returns + +- `class BetaComplianceSettings` + + - `type: :compliance_settings` + + - `state: BetaComplianceSettingsState` + + Whether the Compliance API is enabled for this organization. + + - `class BetaComplianceSettingsStateEnabled` + + - `type: :enabled` + + - `class BetaComplianceSettingsStateDisabled` + + - `type: :disabled` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_compliance_settings = anthropic.beta.organization.compliance_settings.retrieve + +puts(beta_compliance_settings) +``` + +##### Response (200) + +```json +{ + "state": { + "type": "enabled" + }, + "type": "compliance_settings" +} +``` + +### Update Compliance Settings + +`beta.organization.compliance_settings.update(**kwargs) -> BetaComplianceSettings` + +**POST** `/v1/organizations/compliance_settings` + +Update your organization's Compliance Settings. + +Setting `state` to `enabled` turns on the Compliance API and begins +capturing organization activity events. Setting it to `disabled` turns +both off. `state` reflects whether the Compliance API is enabled. + +A request that sets `state` to its current value succeeds and leaves the +resource unchanged. A `disabled` request stays in effect until a later +`enabled` request or the organization's next provisioning action that +enables Access Transparency: enabling Access Transparency also enables +the Compliance API, which serves its activity events, so such +provisioning (including re-runs) re-enables the Compliance API even +after a `disabled` request. Automated provisioning never disables +compliance settings. + +#### Parameters + +- `state: BetaComplianceSettingsStateParam` + + Desired state. Accepts the string shorthand "enabled" or "disabled" in place of the object form; the response always returns the canonical object form. + + - `class BetaComplianceSettingsStateEnabledParam` + + - `type: :enabled` + + - `class BetaComplianceSettingsStateDisabledParam` + + - `type: :disabled` + +#### Returns + +- `class BetaComplianceSettings` + + - `type: :compliance_settings` + + - `state: BetaComplianceSettingsState` + + Whether the Compliance API is enabled for this organization. + + - `class BetaComplianceSettingsStateEnabled` + + - `type: :enabled` + + - `class BetaComplianceSettingsStateDisabled` + + - `type: :disabled` + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_compliance_settings = anthropic.beta.organization.compliance_settings.update(state: {type: :enabled}) + +puts(beta_compliance_settings) +``` + +##### Response (200) + +```json +{ + "state": { + "type": "enabled" + }, + "type": "compliance_settings" +} +``` + +## Beta › Organization › Analytics › Summaries + +### Get Activity Summaries + +`beta.organization.analytics.summaries.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/summaries` + +Get organization-wide activity summaries for a date range. + +Returns one entry per day from `starting_date` (inclusive) to `ending_date` +(exclusive) in `data`, the same `data` / `next_page` envelope as the other +analytics list endpoints; the series is currently returned in full, so +`next_page` is always null. +Data is typically available with a 1-day lag and may be revised by a few +percent over the following days: when `ending_date` is omitted it +defaults to the most recent available day + 1, so the last entry covers +the most recent available day. The series can be scoped to an RBAC group +via `filter[]=rbac_group_id:{id}`. Available to organizations on a Claude +Enterprise plan. Requires an API key with the `read:analytics` scope. + +#### Parameters + +- `starting_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. Start of the date range (inclusive). Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive). Data is typically available with a 1-day lag, so this can be at most today — which is also the default when omitted, making the last entry cover the most recent available day. Data may be revised by a few percent over the following days. The range may span at most 366 days. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`. Only `rbac_group_id` is supported (e.g. `filter[]=rbac_group_id:{id}`); repeat the param to OR across groups. Scopes the whole day series to members of the matching group(s), re-aggregated from member-level activity — org-wide seat/invite fields and the adoption rates derived from them are null on scoped rows. `rbac_group_id` accepts the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each UTC day (time-of-usage attribution). At most 100 entries. + + maxItems: 100 + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). The day series (at most 366 entries) is currently returned in full in a single page, so `limit` does not yet shorten it. + + minimum: 1, maximum: 1000 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. `next_page` is currently always null, so there is never a cursor to send. + +#### Returns + +- `class BetaAnalyticsSingleDayActivitySummary` + + Per-day entry in the /summaries response. + + - `assigned_seat_count: Integer` + + Number of seats currently assigned to members. Null when the response is scoped to an RBAC group — seat assignment is org-wide and has no per-group analogue. + + - `cowork_daily_active_user_count: Integer` + + Number of users with Cowork activity on the requested day + + - `cowork_monthly_active_user_count: Integer` + + Number of users with Cowork activity in the 30-day rolling window + + - `cowork_weekly_active_user_count: Integer` + + Number of users with Cowork activity in the 7-day rolling window + + - `daily_active_user_count: Integer` + + Number of users with token consumption on the requested day + + - `daily_adoption_rate: Float` + + Percentage of assigned seats with activity on the requested day (`DAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + + - `ending_at: Time` + + End of the aggregation period (exclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-16T00:00:00Z`). + + format: date-time + + - `monthly_active_user_count: Integer` + + Number of users with token consumption in the 30-day rolling window + + - `monthly_adoption_rate: Float` + + Percentage of assigned seats with activity in the 30-day rolling window (`MAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + + - `pending_invite_count: Integer` + + Number of pending invitations to join the organization. Null when the response is scoped to an RBAC group. + + - `starting_at: Time` + + Start of the aggregation period (inclusive), UTC midnight in RFC 3339 format (e.g. `2026-01-15T00:00:00Z`). + + format: date-time + + - `weekly_active_user_count: Integer` + + Number of users with token consumption in the 7-day rolling window + + - `weekly_adoption_rate: Float` + + Percentage of assigned seats with activity in the 7-day rolling window (`WAU / assigned_seat_count * 100`). Null when the response is scoped to an RBAC group. + + - `chat_cowork_unified_daily_active_user_count: Integer` + + Number of users with activity in Chat and Cowork unified on the requested day. Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `chat_cowork_unified_monthly_active_user_count: Integer` + + Number of users with activity in Chat and Cowork unified in the 28-day rolling window (30 days when the request filters by `rbac_group_id`). Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `chat_cowork_unified_weekly_active_user_count: Integer` + + Number of users with activity in Chat and Cowork unified in the 7-day rolling window. Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `chat_daily_active_user_count: Integer` + + Number of users with claude.ai (chat) activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `chat_monthly_active_user_count: Integer` + + Number of users with claude.ai (chat) activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `chat_weekly_active_user_count: Integer` + + Number of users with claude.ai (chat) activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_code_daily_active_user_count: Integer` + + Number of users with Claude Code activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_code_monthly_active_user_count: Integer` + + Number of users with Claude Code activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_code_weekly_active_user_count: Integer` + + Number of users with Claude Code activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_design_daily_active_user_count: Integer` + + Number of users with Claude Design activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_design_monthly_active_user_count: Integer` + + Number of users with Claude Design activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `claude_design_weekly_active_user_count: Integer` + + Number of users with Claude Design activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `office_agent_daily_active_user_count: Integer` + + Number of users with Claude in Office activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `office_agent_monthly_active_user_count: Integer` + + Number of users with Claude in Office activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `office_agent_weekly_active_user_count: Integer` + + Number of users with Claude in Office activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `science_daily_active_user_count: Integer` + + Number of users with Claude Science activity on the requested day. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `science_entitled_user_count: Integer` + + Number of users with a Claude Science seat entitlement (per-seat RBAC) at the time of the daily snapshot. The funnel top; independent of the org-level Claude Science toggle. Null when the response is scoped to an RBAC group — entitlement is org-wide and has no per-group analogue. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `science_monthly_active_user_count: Integer` + + Number of users with Claude Science activity in the 30-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + + - `science_weekly_active_user_count: Integer` + + Number of users with Claude Science activity in the 7-day rolling window. Omitted from the response while the per-product breakdown is not enabled for this organization. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.summaries.list(starting_date: "2019-12-27") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "assigned_seat_count": 0, + "cowork_daily_active_user_count": 0, + "cowork_monthly_active_user_count": 0, + "cowork_weekly_active_user_count": 0, + "daily_active_user_count": 0, + "daily_adoption_rate": 0, + "ending_at": "2019-12-27T18:11:19.117Z", + "monthly_active_user_count": 0, + "monthly_adoption_rate": 0, + "pending_invite_count": 0, + "starting_at": "2019-12-27T18:11:19.117Z", + "weekly_active_user_count": 0, + "weekly_adoption_rate": 0, + "chat_cowork_unified_daily_active_user_count": 0, + "chat_cowork_unified_monthly_active_user_count": 0, + "chat_cowork_unified_weekly_active_user_count": 0, + "chat_daily_active_user_count": 0, + "chat_monthly_active_user_count": 0, + "chat_weekly_active_user_count": 0, + "claude_code_daily_active_user_count": 0, + "claude_code_monthly_active_user_count": 0, + "claude_code_weekly_active_user_count": 0, + "claude_design_daily_active_user_count": 0, + "claude_design_monthly_active_user_count": 0, + "claude_design_weekly_active_user_count": 0, + "office_agent_daily_active_user_count": 0, + "office_agent_monthly_active_user_count": 0, + "office_agent_weekly_active_user_count": 0, + "science_daily_active_user_count": 0, + "science_entitled_user_count": 0, + "science_monthly_active_user_count": 0, + "science_weekly_active_user_count": 0 + } + ], + "next_page": "next_page", + "summaries": [ + { + "assigned_seat_count": 0, + "cowork_daily_active_user_count": 0, + "cowork_monthly_active_user_count": 0, + "cowork_weekly_active_user_count": 0, + "daily_active_user_count": 0, + "daily_adoption_rate": 0, + "ending_at": "2019-12-27T18:11:19.117Z", + "monthly_active_user_count": 0, + "monthly_adoption_rate": 0, + "pending_invite_count": 0, + "starting_at": "2019-12-27T18:11:19.117Z", + "weekly_active_user_count": 0, + "weekly_adoption_rate": 0, + "chat_cowork_unified_daily_active_user_count": 0, + "chat_cowork_unified_monthly_active_user_count": 0, + "chat_cowork_unified_weekly_active_user_count": 0, + "chat_daily_active_user_count": 0, + "chat_monthly_active_user_count": 0, + "chat_weekly_active_user_count": 0, + "claude_code_daily_active_user_count": 0, + "claude_code_monthly_active_user_count": 0, + "claude_code_weekly_active_user_count": 0, + "claude_design_daily_active_user_count": 0, + "claude_design_monthly_active_user_count": 0, + "claude_design_weekly_active_user_count": 0, + "office_agent_daily_active_user_count": 0, + "office_agent_monthly_active_user_count": 0, + "office_agent_weekly_active_user_count": 0, + "science_daily_active_user_count": 0, + "science_entitled_user_count": 0, + "science_monthly_active_user_count": 0, + "science_weekly_active_user_count": 0 + } + ] +} +``` + +## Beta › Organization › Analytics › Users + +### List User Activity + +`beta.organization.analytics.users.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/users` + +Get per-user activity for a given day, with cursor-based pagination. + +Returns activity metrics for each user in the organization, sorted by email +address. Use `group_by[]` for per-RBAC-group aggregates, or `filter[]` to +scope results to specific members, groups, or a chat project. Available +to organizations on a Claude Enterprise plan. Requires an API key with +the `read:analytics` scope. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get user activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. A `project_id` filter limits each member's row to their claude.ai chat activity in that project and cannot be combined with `group_by[]` or an `rbac_group_id` filter. On these rows, every count in `chat_cowork_unified_metrics.sessions` is 0, because sessions are not measured per project. On any day a member sent a chat message in Chat and Cowork unified, all of that member's project activity for the day is counted in `chat_cowork_unified_metrics.chat` instead of `chat_metrics`. + + maxItems: 100 + +- `group_by: Array[:rbac_group_id]` (query parameter) + + Dimensions to break results out by (e.g. `group_by[]=rbac_group_id`). Supported on this endpoint: `rbac_group_id`. Rows are already per-member, so the one supported grouping aggregates them per RBAC group instead. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + + maxItems: 100 + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). + + minimum: 1, maximum: 1000 + +- `order: :asc | :desc` (query parameter) + + Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + + - `:asc` + + - `:desc` + +- `order_by: String` (query parameter) + + Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. + +- `starting_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +#### Returns + +- `class BetaAnalyticsUserActivity` + + Per-user activity data for a given day. + + - `chat_metrics: BetaAnalyticsChatMetrics` + + Claude.ai activity metrics for a single user on a given day. + + - `connectors_used_count: Integer` + + Number of MCP connector invocations. + + - `distinct_artifacts_created_count: Integer` + + Number of distinct artifacts created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `distinct_connectors_used_count: Integer` + + Distinct claude.ai connectors this user used. Excludes calls whose connector could not be identified and all calls from organizations with zero data retention. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_conversation_count: Integer` + + Number of distinct conversations the user participated in. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_files_uploaded_count: Integer` + + Number of distinct files uploaded. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_projects_created_count: Integer` + + Number of distinct projects created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `distinct_projects_used_count: Integer` + + Number of distinct projects used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_shared_artifacts_viewed_count: Integer` + + Number of distinct shared artifacts the user viewed. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_skills_used_count: Integer` + + Number of distinct skills used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Number of messages sent + + - `shared_conversations_viewed_count: Integer` + + Number of times the user opened a shared conversation in a project + + - `thinking_message_count: Integer` + + Number of messages that used extended thinking + + - `claude_code_metrics: BetaAnalyticsClaudeCodeMetrics` + + Claude Code activity metrics for a single user on a given day. + + - `core_metrics: BetaAnalyticsCoreCodeMetrics` + + Core Claude Code activity metrics for a single user on a given day. + + - `artifacts_created_count: Integer` + + Number of artifacts created in Claude Code sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `commit_count: Integer` + + Number of commits made via Claude Code + + - `distinct_session_count: Integer` + + Number of distinct Claude Code sessions. On aggregated rows and in date-range mode: summed per-day distinct counts. A session essentially never spans a UTC day, so the sum is in practice the true distinct count. + + - `lines_of_code: BetaAnalyticsLinesOfCode` + + Lines of code added and removed via Claude Code. + + - `added_count: Integer` + + Lines of code added + + - `removed_count: Integer` + + Lines of code removed + + - `pull_request_count: Integer` + + Number of pull requests created via Claude Code + + - `tool_actions: BetaAnalyticsToolActions` + + Per-tool accepted/rejected counts for Claude Code file modification tools. + + - `edit_tool: BetaAnalyticsToolActionCounts` + + Accepted/rejected counts for a single Claude Code tool type. + + - `accepted_count: Integer` + + Number of tool proposals accepted + + - `rejected_count: Integer` + + Number of tool proposals rejected + + - `multi_edit_tool: BetaAnalyticsToolActionCounts` + + Accepted/rejected counts for a single Claude Code tool type. + + - `notebook_edit_tool: BetaAnalyticsToolActionCounts` + + Accepted/rejected counts for a single Claude Code tool type. + + - `write_tool: BetaAnalyticsToolActionCounts` + + Accepted/rejected counts for a single Claude Code tool type. + + - `cowork_metrics: BetaAnalyticsCoworkMetrics` + + Cowork activity metrics for a single user on a given day. + + - `action_count: Integer` + + Number of tool actions completed in Cowork sessions + + - `artifacts_created_count: Integer` + + Number of artifacts created in Cowork sessions: an artifact counts once, on the day a session first saves it. Counted from 2026-08-17; 0 on earlier days. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `connectors_used_count: Integer` + + Total number of connector invocations in Cowork sessions + + - `dispatch_turn_count: Integer` + + Number of Dispatch (background agent) turns completed + + - `distinct_connectors_used_count: Integer` + + Number of distinct connectors used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_session_count: Integer` + + Number of distinct Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_skills_used_count: Integer` + + Number of distinct skills used in Cowork sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Number of messages sent in Cowork sessions + + - `skills_used_count: Integer` + + Total number of skill invocations in Cowork sessions + + - `distinct_plugins_used_count: Integer` + + Number of distinct plugins used in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `edit_tool_count: Integer` + + Number of successful Edit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + + - `file_edit_count: Integer` + + Number of successful file-edit tool calls (Edit, MultiEdit, Write, NotebookEdit) in Cowork sessions. Null, never 0, while the file-edit metrics are not enabled for this organization. + + - `multi_edit_tool_count: Integer` + + Number of successful MultiEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + + - `notebook_edit_tool_count: Integer` + + Number of successful NotebookEdit tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + + - `plugins_used_count: Integer` + + Total number of plugin invocations in Cowork sessions. Null while Cowork plugin-use metrics are not enabled for this organization. + + - `sessions_with_file_edits_count: Integer` + + Number of distinct Cowork sessions with at least one successful file-edit tool call. Null while the file-edit metrics are not enabled for this organization. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `write_tool_count: Integer` + + Number of successful Write tool calls in Cowork sessions. Null while the file-edit metrics are not enabled for this organization. + + - `design_metrics: BetaAnalyticsDesignMetrics` + + Claude Design activity metrics for a single user on a given day. + + - `distinct_projects_created_count: Integer` + + Number of distinct Claude Design projects created. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `distinct_projects_used_count: Integer` + + Number of distinct Claude Design projects the user worked in. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_session_count: Integer` + + Number of distinct Claude Design sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Number of messages sent in Claude Design sessions + + - `office_metrics: BetaAnalyticsOfficeMetrics` + + Office Agent activity metrics for a single user on a given day, broken out by Office product. + + - `excel: BetaAnalyticsOfficeProductMetrics` + + Office Agent activity metrics for a single user on a given day within one Office product. + + - `connectors_used_count: Integer` + + Number of MCP connector invocations + + - `distinct_connectors_used_count: Integer` + + Number of distinct MCP connectors used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_session_count: Integer` + + Number of distinct Office Agent sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_skills_used_count: Integer` + + Number of distinct skills used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Number of messages sent + + - `skills_used_count: Integer` + + Number of skill invocations + + - `outlook: BetaAnalyticsOfficeProductMetrics` + + Office Agent activity metrics for a single user on a given day within one Office product. + + - `powerpoint: BetaAnalyticsOfficeProductMetrics` + + Office Agent activity metrics for a single user on a given day within one Office product. + + - `word: BetaAnalyticsOfficeProductMetrics` + + Office Agent activity metrics for a single user on a given day within one Office product. + + - `science_metrics: BetaAnalyticsScienceMetrics` + + Claude Science activity metrics for a single user on a given day. + + - `delegation_count: Integer` + + Number of delegations (handoffs to a specialized agent) in Claude Science sessions + + - `distinct_session_count: Integer` + + Number of distinct Claude Science sessions. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Number of messages sent in Claude Science sessions + + - `remote_compute_job_count: Integer` + + Number of remote compute jobs launched from Claude Science sessions + + - `skills_used_count: Integer` + + Total number of skill invocations in Claude Science sessions + + - `web_search_count: Integer` + + Number of web searches performed + + - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + + Activity recorded while the member had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into `chat` (chat activity) and `sessions` (Cowork activity). Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `chat: BetaAnalyticsChatCoworkUnifiedChatMetrics` + + Chat activity recorded while members had Chat and Cowork unified turned + on. + + - `connectors_used_count: Integer` + + Same measure as `chat_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. - `distinct_artifacts_created_count: Integer` - Same measure as `chat_metrics.distinct_artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + Same measure as `chat_metrics.distinct_artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `distinct_connectors_used_count: Integer` + + Same measure as `chat_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_conversation_count: Integer` + + Same measure as `chat_metrics.distinct_conversation_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_files_uploaded_count: Integer` + + Same measure as `chat_metrics.distinct_files_uploaded_count`, for activity recorded while members had Chat and Cowork unified turned on. It counts uploaded files as well as files Claude created and images returned by Claude's tools, such as screenshots. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_projects_created_count: Integer` + + Same measure as `chat_metrics.distinct_projects_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `distinct_projects_used_count: Integer` + + Same measure as `chat_metrics.distinct_projects_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_shared_artifacts_viewed_count: Integer` + + Always null: shared-artifact views are not currently measured. + + - `distinct_skills_used_count: Integer` + + Same measure as `chat_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `message_count: Integer` + + Same measure as `chat_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `shared_conversations_viewed_count: Integer` + + Same measure as `chat_metrics.shared_conversations_viewed_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `thinking_message_count: Integer` + + Same measure as `chat_metrics.thinking_message_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `sessions: BetaAnalyticsChatCoworkUnifiedSessionsMetrics` + + Cowork session activity recorded while members had Chat and Cowork + unified turned on. + + - `action_count: Integer` + + Same measure as `cowork_metrics.action_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `artifacts_created_count: Integer` + + Same measure as `cowork_metrics.artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + + - `connectors_used_count: Integer` + + Same measure as `cowork_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `dispatch_turn_count: Integer` + + Same measure as `cowork_metrics.dispatch_turn_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `distinct_connectors_used_count: Integer` + + Same measure as `cowork_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_plugins_used_count: Integer` + + Same measure as `cowork_metrics.distinct_plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_session_count: Integer` + + Same measure as `cowork_metrics.distinct_session_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_skills_used_count: Integer` + + Same measure as `cowork_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `edit_tool_count: Integer` + + Same measure as `cowork_metrics.edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `file_edit_count: Integer` + + Same measure as `cowork_metrics.file_edit_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `message_count: Integer` + + Same measure as `cowork_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `multi_edit_tool_count: Integer` + + Same measure as `cowork_metrics.multi_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. Claude no longer has a multi-edit tool, so expect 0 when not null; each edit is now a separate Edit tool call, counted in `edit_tool_count` and `file_edit_count`. + + - `notebook_edit_tool_count: Integer` + + Same measure as `cowork_metrics.notebook_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `plugins_used_count: Integer` + + Same measure as `cowork_metrics.plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `sessions_with_file_edits_count: Integer` + + Same measure as `cowork_metrics.sessions_with_file_edits_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `skills_used_count: Integer` + + Same measure as `cowork_metrics.skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `write_tool_count: Integer` + + Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + + - `distinct_user_count: Integer` + + Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values. + + - `last_activity_date: Date` + + Most recent UTC day (YYYY-MM-DD) on which the user had any counted activity, within the requested window: equal to the requested `date` in single-day mode, and to the latest active day from `starting_date` (inclusive) to `ending_date` (exclusive) in date-range rollup mode — never a day earlier than the window start. On filtered requests (`filter[]`) only days matching the filter count: with `filter[]=rbac_group_id:{id}` it is the last day the user was active while a member of that group, consistent with the row's other metrics. On grouped (`group_by[]`) rows it is the latest day any member of the group was active (the requested `date` in single-day mode). Omitted from the response while last-activity reporting is not enabled for this organization. + + format: date + + - `rbac_group_id: String` + + Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + + - `rbac_group_name: String` + + Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + + - `user: BetaAnalyticsUser` + + The user this row describes. Null on rows aggregated across users. + + - `type: :user` + + Object type. Always `user`. + + - `id: String` + + Tagged user identifier (e.g. `user_...`) + + - `email_address: String` + + Email address of the user + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.users.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "chat_metrics": { + "connectors_used_count": 0, + "distinct_artifacts_created_count": 0, + "distinct_connectors_used_count": 0, + "distinct_conversation_count": 0, + "distinct_files_uploaded_count": 0, + "distinct_projects_created_count": 0, + "distinct_projects_used_count": 0, + "distinct_shared_artifacts_viewed_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "shared_conversations_viewed_count": 0, + "thinking_message_count": 0 + }, + "claude_code_metrics": { + "core_metrics": { + "artifacts_created_count": 0, + "commit_count": 0, + "distinct_session_count": 0, + "lines_of_code": { + "added_count": 0, + "removed_count": 0 + }, + "pull_request_count": 0 + }, + "tool_actions": { + "edit_tool": { + "accepted_count": 0, + "rejected_count": 0 + }, + "multi_edit_tool": { + "accepted_count": 0, + "rejected_count": 0 + }, + "notebook_edit_tool": { + "accepted_count": 0, + "rejected_count": 0 + }, + "write_tool": { + "accepted_count": 0, + "rejected_count": 0 + } + } + }, + "cowork_metrics": { + "action_count": 0, + "artifacts_created_count": 0, + "connectors_used_count": 0, + "dispatch_turn_count": 0, + "distinct_connectors_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "skills_used_count": 0, + "distinct_plugins_used_count": 0, + "edit_tool_count": 0, + "file_edit_count": 0, + "multi_edit_tool_count": 0, + "notebook_edit_tool_count": 0, + "plugins_used_count": 0, + "sessions_with_file_edits_count": 0, + "write_tool_count": 0 + }, + "design_metrics": { + "distinct_projects_created_count": 0, + "distinct_projects_used_count": 0, + "distinct_session_count": 0, + "message_count": 0 + }, + "office_metrics": { + "excel": { + "connectors_used_count": 0, + "distinct_connectors_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "skills_used_count": 0 + }, + "outlook": { + "connectors_used_count": 0, + "distinct_connectors_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "skills_used_count": 0 + }, + "powerpoint": { + "connectors_used_count": 0, + "distinct_connectors_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "skills_used_count": 0 + }, + "word": { + "connectors_used_count": 0, + "distinct_connectors_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "skills_used_count": 0 + } + }, + "science_metrics": { + "delegation_count": 0, + "distinct_session_count": 0, + "message_count": 0, + "remote_compute_job_count": 0, + "skills_used_count": 0 + }, + "web_search_count": 0, + "chat_cowork_unified_metrics": { + "chat": { + "connectors_used_count": 0, + "distinct_artifacts_created_count": 0, + "distinct_connectors_used_count": 0, + "distinct_conversation_count": 0, + "distinct_files_uploaded_count": 0, + "distinct_projects_created_count": 0, + "distinct_projects_used_count": 0, + "distinct_shared_artifacts_viewed_count": 0, + "distinct_skills_used_count": 0, + "message_count": 0, + "shared_conversations_viewed_count": 0, + "thinking_message_count": 0 + }, + "sessions": { + "action_count": 0, + "artifacts_created_count": 0, + "connectors_used_count": 0, + "dispatch_turn_count": 0, + "distinct_connectors_used_count": 0, + "distinct_plugins_used_count": 0, + "distinct_session_count": 0, + "distinct_skills_used_count": 0, + "edit_tool_count": 0, + "file_edit_count": 0, + "message_count": 0, + "multi_edit_tool_count": 0, + "notebook_edit_tool_count": 0, + "plugins_used_count": 0, + "sessions_with_file_edits_count": 0, + "skills_used_count": 0, + "write_tool_count": 0 + } + }, + "distinct_user_count": 0, + "last_activity_date": "2019-12-27", + "rbac_group_id": "rbac_group_id", + "rbac_group_name": "rbac_group_name", + "user": { + "id": "id", + "email_address": "email_address", + "type": "user" + } + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Analytics › Apps › Chat › Projects + +### Get Chat Project Usage + +`beta.organization.analytics.apps.chat.projects.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/apps/chat/projects` + +Get per-project activity for a given day, with cursor-based pagination. + +Returns activity metrics for each project in the organization, sorted by +project ID. Use `group_by[]` to break projects out per member or per RBAC +group, and `filter[]` to scope results; the parameter descriptions list the +supported dimensions. Available to organizations on a Claude Enterprise +plan. Requires an API key with the `read:analytics` scope. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get project activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. + + maxItems: 100 + +- `group_by: Array[:rbac_group_id | :user_id]` (query parameter) + + Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + + maxItems: 100 + + - `:rbac_group_id` + + - `:user_id` + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). + + minimum: 1, maximum: 1000 + +- `order: :asc | :desc` (query parameter) + + Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + + - `:asc` + + - `:desc` + +- `order_by: String` (query parameter) + + Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. + +- `starting_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +#### Returns + +- `class BetaAnalyticsProjectActivity` + + Per-project activity data for a given day. + + - `distinct_user_count: Integer` + + Number of distinct users who used the project on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + + - `message_count: Integer` + + Number of messages sent in the project on the requested day + + - `project_id: String` + + Tagged project identifier (e.g. `claude_proj_...`) + + - `project_name: String` + + Name of the project + + - `created_at: Time` + + Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded. + + format: date-time + + - `created_by: BetaAnalyticsUser` + + User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists. + + - `type: :user` + + Object type. Always `user`. + + - `id: String` + + Tagged user identifier (e.g. `user_...`) + + - `email_address: String` + + Email address of the user + + - `distinct_conversation_count: Integer` + + Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed. + + - `product: String` + + Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + + - `rbac_group_id: String` + + Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + + - `rbac_group_name: String` + + Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + + - `user_id: String` + + Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.apps.chat.projects.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "distinct_user_count": 0, + "message_count": 0, + "project_id": "project_id", + "project_name": "project_name", + "created_at": "2019-12-27T18:11:19.117Z", + "created_by": { + "id": "id", + "email_address": "email_address", + "type": "user" + }, + "distinct_conversation_count": 0, + "product": "product", + "rbac_group_id": "rbac_group_id", + "rbac_group_name": "rbac_group_name", + "user_id": "user_id" + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Analytics › Connectors + +### Get Connector Usage + +`beta.organization.analytics.connectors.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/connectors` + +Get per-connector usage for a given day, with cursor-based pagination. + +Returns connector usage metrics for the organization, sorted by connector +name. Connector names are normalized from their various sources — for +example, "Atlassian MCP server" and "mcp-atlassian" both appear as +"atlassian". Use `group_by[]` to break usage out per member, per RBAC +group, or per product surface, and `filter[]` to scope results; the +parameter descriptions list the supported dimensions. Available to +organizations on a Claude Enterprise plan. Requires an API key with the +`read:analytics` scope. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get connector usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `connector_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `connector_name` matches case-insensitively, a display name such as 'GitHub MCP' also matches its normalized stored form ('github'), and for rows whose `connector_name` is an opaque connector id the connector's display name (`connector_display_name`) also matches; `product` is one of `chat_cowork_unified`, `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + + maxItems: 100 + +- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + + Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + + maxItems: 100 + + - `:product` + + - `:rbac_group_id` + + - `:user_id` + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). + + minimum: 1, maximum: 1000 + +- `order: :asc | :desc` (query parameter) + + Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + + - `:asc` + + - `:desc` + +- `order_by: String` (query parameter) + + Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. + +- `starting_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +#### Returns + +- `class BetaAnalyticsConnectorActivity` + + Per-connector activity data for a given day. + + - `chat_metrics: BetaAnalyticsConnectorChatMetrics` + + Claude.ai activity metrics for a single connector on a given day. + + - `distinct_conversation_connector_used_count: Integer` + + Number of distinct conversations in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `claude_code_metrics: BetaAnalyticsConnectorClaudeCodeMetrics` + + Claude Code activity metrics for a single connector on a given day. + + - `distinct_session_connector_used_count: Integer` + + Number of distinct Claude Code sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `connector_name: String` + + Name of the connector. Some rows carry an opaque connector id here instead of a readable name; `connector_display_name` holds the resolved name for those rows. + + - `cowork_metrics: BetaAnalyticsConnectorCoworkMetrics` + + Cowork activity metrics for a single connector on a given day. + + - `distinct_session_connector_used_count: Integer` + + Number of distinct Cowork sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_user_count: Integer` + + Number of distinct users who used the connector on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + + - `office_metrics: BetaAnalyticsConnectorOfficeMetrics` + + Office Agent activity metrics for a single connector on a given day, broken out by Office product. + + - `excel: BetaAnalyticsConnectorOfficeProductMetrics` + + Office Agent activity metrics for a single connector on a given day within one Office product. + + - `distinct_session_connector_used_count: Integer` + + Number of distinct Office Agent sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `outlook: BetaAnalyticsConnectorOfficeProductMetrics` + + Office Agent activity metrics for a single connector on a given day within one Office product. + + - `powerpoint: BetaAnalyticsConnectorOfficeProductMetrics` + + Office Agent activity metrics for a single connector on a given day within one Office product. + + - `word: BetaAnalyticsConnectorOfficeProductMetrics` + + Office Agent activity metrics for a single connector on a given day within one Office product. + + - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + + Connector use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `chat: BetaAnalyticsConnectorChatCoworkUnifiedChatMetrics` + + A connector's use in chat conversations recorded while members had + Chat and Cowork unified turned on. + + - `distinct_conversation_connector_used_count: Integer` + + Same measure as `chat_metrics.distinct_conversation_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `sessions: BetaAnalyticsConnectorChatCoworkUnifiedSessionsMetrics` + + A connector's use in Cowork sessions recorded while members had + Chat and Cowork unified turned on. + + - `distinct_session_connector_used_count: Integer` + + Same measure as `cowork_metrics.distinct_session_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + + - `connector_display_name: String` + + Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization. + + - `individual_auth_distinct_user_count: Integer` + + Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket. + + - `managed_auth_distinct_user_count: Integer` + + Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value. + + - `product: String` + + Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + + - `rbac_group_id: String` + + Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + + - `rbac_group_name: String` + + Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + + - `read_call_count: Integer` + + Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side. + + - `unclassified_call_count: Integer` + + Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance. + + - `user_id: String` + + Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + + - `write_call_count: Integer` + + Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.connectors.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "chat_metrics": { + "distinct_conversation_connector_used_count": 0 + }, + "claude_code_metrics": { + "distinct_session_connector_used_count": 0 + }, + "connector_name": "connector_name", + "cowork_metrics": { + "distinct_session_connector_used_count": 0 + }, + "distinct_user_count": 0, + "office_metrics": { + "excel": { + "distinct_session_connector_used_count": 0 + }, + "outlook": { + "distinct_session_connector_used_count": 0 + }, + "powerpoint": { + "distinct_session_connector_used_count": 0 + }, + "word": { + "distinct_session_connector_used_count": 0 + } + }, + "chat_cowork_unified_metrics": { + "chat": { + "distinct_conversation_connector_used_count": 0 + }, + "sessions": { + "distinct_session_connector_used_count": 0 + } + }, + "connector_display_name": "connector_display_name", + "individual_auth_distinct_user_count": 0, + "managed_auth_distinct_user_count": 0, + "product": "product", + "rbac_group_id": "rbac_group_id", + "rbac_group_name": "rbac_group_name", + "read_call_count": 0, + "unclassified_call_count": 0, + "user_id": "user_id", + "write_call_count": 0 + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Analytics › Plugins + +### Get Plugin Usage + +`beta.organization.analytics.plugins.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/plugins` + +Get per-plugin install + invocation usage for a given day, with pagination. + +Returns plugin usage metrics for the organization across Cowork and Claude +Code, sorted by plugin name. The `plugin_name` value `third-party` is +an aggregate bucket, not a plugin: it collects plugin activity, from +either surface, for which the reporting client did not provide a plugin +name — so an organization's own plugins can contribute both to their own +named rows and to this bucket. Use `group_by[]` to break usage out per +member, per RBAC group, or per product surface (Cowork / Claude Code), +and `filter[]` to scope results; the parameter descriptions list the +supported dimensions. Requires an API key with the +`read:analytics` scope. `starting_date` / `ending_date` select +range-rollup mode like `/skills`. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get plugin usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `plugin_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `plugin_name` matches case-insensitively; `product` is `chat_cowork_unified`, `claude_code`, or `cowork` (the only surfaces with plugin attribution); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + + maxItems: 100 + +- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + + Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. On this endpoint `product` takes the values `chat_cowork_unified`, `claude_code`, or `cowork` only (the surfaces with plugin attribution). Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + + maxItems: 100 + + - `:product` + + - `:rbac_group_id` + + - `:user_id` + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). + + minimum: 1, maximum: 1000 + +- `order: :asc | :desc` (query parameter) + + Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + + - `:asc` + + - `:desc` + +- `order_by: String` (query parameter) + + Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. + +- `starting_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +#### Returns + +- `class BetaAnalyticsPluginActivity` + + Per-plugin install + invocation activity for a given day. + + With `group_by[]=user_id` / `rbac_group_id` / `product` (`cowork`, + `claude_code` and `chat_cowork_unified` only on this endpoint) each row is + one (plugin, user), (plugin, group), or (plugin, product) cut: the flat + `user_id` / `rbac_group_id` / `product` keys carry the cut and the counts + are scoped to it. + + - `claude_code_metrics: BetaAnalyticsPluginClaudeCodeMetrics` + + Claude Code activity metrics for a single plugin on a given day. + + - `distinct_session_plugin_used_count: Integer` + + Number of distinct Claude Code sessions in which the plugin was invoked. Null on aggregated rows where a distinct count cannot be computed. + + - `cowork_metrics: BetaAnalyticsPluginCoworkMetrics` + + Cowork activity metrics for a single plugin on a given day. + + - `distinct_session_plugin_used_count: Integer` + + Number of distinct Cowork sessions in which the plugin was invoked. Null on aggregated rows where a distinct count cannot be computed. + + - `distinct_user_count: Integer` + + Number of distinct users with recorded install or invocation activity for the plugin on the requested day (install-only users count), or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + + - `install_count: Integer` + + Number of distinct users who installed the plugin on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + + - `invocation_count: Integer` + + Number of plugin invocations on the requested day + + - `plugin_name: String` + + Name of the plugin + + - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + + Plugin use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. + + - `distinct_session_plugin_used_count: Integer` + + Same measure as `cowork_metrics.distinct_session_plugin_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Null on aggregated rows where a distinct count cannot be computed. + + - `plugin_id: String` + + Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id. + + - `product: String` + + Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + + - `rbac_group_id: String` + + Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + + - `rbac_group_name: String` + + Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + + - `user_id: String` + + Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.plugins.list + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "claude_code_metrics": { + "distinct_session_plugin_used_count": 0 + }, + "cowork_metrics": { + "distinct_session_plugin_used_count": 0 + }, + "distinct_user_count": 0, + "install_count": 0, + "invocation_count": 0, + "plugin_name": "plugin_name", + "chat_cowork_unified_metrics": { + "distinct_session_plugin_used_count": 0 + }, + "plugin_id": "plugin_id", + "product": "product", + "rbac_group_id": "rbac_group_id", + "rbac_group_name": "rbac_group_name", + "user_id": "user_id" + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Analytics › Skills + +### Get Skill Usage + +`beta.organization.analytics.skills.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/skills` + +Get per-skill usage for a given day, with cursor-based pagination. + +Returns skill usage metrics for the organization, sorted by skill name. +Use `group_by[]` to break usage out per member, per RBAC group, or per +product surface, and `filter[]` to scope results; the parameter +descriptions list the supported dimensions. Available to organizations +on a Claude Enterprise plan. Requires an API key with the +`read:analytics` scope. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get skill usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `ending_date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `product`, `rbac_group_id`, `share_status`, `skill_name`, `user_id`. Value forms: `product` is one of `chat_cowork_unified`, `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `share_status` is one of `organization`, `private`, or `public`; `skill_name` matches case-insensitively; `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + + maxItems: 100 + +- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + + Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + + maxItems: 100 + + - `:product` + + - `:rbac_group_id` + + - `:user_id` + +- `limit: Integer` (query parameter) + + Number of results per page (1-1000, default 100). + + minimum: 1, maximum: 1000 + +- `order: :asc | :desc` (query parameter) + + Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + + - `:asc` - - `distinct_connectors_used_count: Integer` + - `:desc` - Same measure as `chat_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `order_by: String` (query parameter) - - `distinct_conversation_count: Integer` + Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). - Same measure as `chat_metrics.distinct_conversation_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `page: String` (query parameter) - - `distinct_files_uploaded_count: Integer` + Opaque cursor from a previous response's `next_page` field. - Same measure as `chat_metrics.distinct_files_uploaded_count`, for activity recorded while members had Chat and Cowork unified turned on. It counts uploaded files as well as files Claude created and images returned by Claude's tools, such as screenshots. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `starting_date: Date` (query parameter) - - `distinct_projects_created_count: Integer` + UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. - Same measure as `chat_metrics.distinct_projects_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + format: date - - `distinct_projects_used_count: Integer` +#### Returns - Same measure as `chat_metrics.distinct_projects_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `class BetaAnalyticsSkillActivity` - - `distinct_shared_artifacts_viewed_count: Integer` + Per-skill activity data for a given day. - Always null: shared-artifact views are not currently measured. + - `chat_metrics: BetaAnalyticsSkillChatMetrics` - - `distinct_skills_used_count: Integer` + Claude.ai activity metrics for a single skill on a given day. - Same measure as `chat_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `distinct_conversation_skill_used_count: Integer` - - `message_count: Integer` + Number of distinct conversations in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `chat_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `claude_code_metrics: BetaAnalyticsSkillClaudeCodeMetrics` - - `shared_conversations_viewed_count: Integer` + Claude Code activity metrics for a single skill on a given day. - Same measure as `chat_metrics.shared_conversations_viewed_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `distinct_session_skill_used_count: Integer` - - `thinking_message_count: Integer` + Number of distinct Claude Code sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `chat_metrics.thinking_message_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `cowork_metrics: BetaAnalyticsSkillCoworkMetrics` - - `sessions: BetaAnalyticsChatCoworkUnifiedSessionsMetrics` + Cowork activity metrics for a single skill on a given day. - Cowork session activity recorded while members had Chat and Cowork - unified turned on. + - `distinct_session_skill_used_count: Integer` - - `action_count: Integer` + Number of distinct Cowork sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `cowork_metrics.action_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `distinct_user_count: Integer` - - `artifacts_created_count: Integer` + Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. - Same measure as `cowork_metrics.artifacts_created_count`, for activity recorded while members had Chat and Cowork unified turned on. Exact in date-range mode: a creation belongs to exactly one day, so the per-day counts never overlap and their sum over the window is the exact count of distinct creations in it. + - `office_metrics: BetaAnalyticsSkillOfficeMetrics` - - `connectors_used_count: Integer` + Office Agent activity metrics for a single skill on a given day, broken out by Office product. - Same measure as `cowork_metrics.connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `excel: BetaAnalyticsSkillOfficeProductMetrics` - - `dispatch_turn_count: Integer` + Office Agent activity metrics for a single skill on a given day within one Office product. - Same measure as `cowork_metrics.dispatch_turn_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `distinct_session_skill_used_count: Integer` - - `distinct_connectors_used_count: Integer` + Number of distinct Office Agent sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `cowork_metrics.distinct_connectors_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `outlook: BetaAnalyticsSkillOfficeProductMetrics` - - `distinct_plugins_used_count: Integer` + Office Agent activity metrics for a single skill on a given day within one Office product. - Same measure as `cowork_metrics.distinct_plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `powerpoint: BetaAnalyticsSkillOfficeProductMetrics` - - `distinct_session_count: Integer` + Office Agent activity metrics for a single skill on a given day within one Office product. - Same measure as `cowork_metrics.distinct_session_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `word: BetaAnalyticsSkillOfficeProductMetrics` - - `distinct_skills_used_count: Integer` + Office Agent activity metrics for a single skill on a given day within one Office product. - Same measure as `cowork_metrics.distinct_skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `skill_name: String` - - `edit_tool_count: Integer` + Name of the skill - Same measure as `cowork_metrics.edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `attributed_list_price: String` - - `file_edit_count: Integer` + List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts. - Same measure as `cowork_metrics.file_edit_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` - - `message_count: Integer` + Skill use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. - Same measure as `cowork_metrics.message_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `chat: BetaAnalyticsSkillChatCoworkUnifiedChatMetrics` - - `multi_edit_tool_count: Integer` + A skill's use in chat conversations recorded while members had + Chat and Cowork unified turned on. - Same measure as `cowork_metrics.multi_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. Claude no longer has a multi-edit tool, so expect 0 when not null; each edit is now a separate Edit tool call, counted in `edit_tool_count` and `file_edit_count`. + - `distinct_conversation_skill_used_count: Integer` - - `notebook_edit_tool_count: Integer` + Same measure as `chat_metrics.distinct_conversation_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `cowork_metrics.notebook_edit_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `sessions: BetaAnalyticsSkillChatCoworkUnifiedSessionsMetrics` - - `plugins_used_count: Integer` + A skill's use in Cowork sessions recorded while members had Chat + and Cowork unified turned on. - Same measure as `cowork_metrics.plugins_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `distinct_session_skill_used_count: Integer` - - `sessions_with_file_edits_count: Integer` + Same measure as `cowork_metrics.distinct_session_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. - Same measure as `cowork_metrics.sessions_with_file_edits_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `currency: String` - - `skills_used_count: Integer` + Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null. - Same measure as `cowork_metrics.skills_used_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `enable_count: Integer` - - `write_tool_count: Integer` + Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`). - Same measure as `cowork_metrics.write_tool_count`, for activity recorded while members had Chat and Cowork unified turned on. + - `estimated_overage_spend: String` - - `distinct_user_count: Integer` + Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts. - Number of distinct active users represented by this row. Only set for grouped rollups (`group_by[]`); null for per-user rows. In date-range mode, recomputed as an exact distinct count of the group's active members over the requested window, never a sum of per-day values. + - `invocation_count: Integer` - - `last_activity_date: Date` + Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly. - Most recent UTC day (YYYY-MM-DD) on which the user had any counted activity, within the requested window: equal to the requested `date` in single-day mode, and to the latest active day from `starting_date` (inclusive) to `ending_date` (exclusive) in date-range rollup mode — never a day earlier than the window start. On filtered requests (`filter[]`) only days matching the filter count: with `filter[]=rbac_group_id:{id}` it is the last day the user was active while a member of that group, consistent with the row's other metrics. On grouped (`group_by[]`) rows it is the latest day any member of the group was active (the requested `date` in single-day mode). Omitted from the response while last-activity reporting is not enabled for this organization. + - `product: String` - format: date + Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. - `rbac_group_id: String` @@ -96676,21 +103160,23 @@ the `read:analytics` scope. Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. - - `user: BetaAnalyticsUser` + - `share_status: :organization | :private | :public` - The user this row describes. Null on rows aggregated across users. + Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`. - - `type: :user` + - `:organization` - Object type. Always `user`. + - `:private` - - `id: String` + - `:public` - Tagged user identifier (e.g. `user_...`) + - `skill_display_name: String` - - `email_address: String` + Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). Organization-shared skills and skills delivered by the organization's own plugins (its plugin marketplaces and its library) resolve; plugin skill names are shown without their 'plugin:' prefix. The literal 'unknown' bucket row gets a fixed 'Unknown skill' label. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization. - Email address of the user + - `user_id: String` + + Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. #### Example @@ -96699,7 +103185,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.users.list +page = anthropic.beta.organization.analytics.skills.list puts(page) ``` @@ -96711,766 +103197,876 @@ puts(page) "data": [ { "chat_metrics": { - "connectors_used_count": 0, - "distinct_artifacts_created_count": 0, - "distinct_connectors_used_count": 0, - "distinct_conversation_count": 0, - "distinct_files_uploaded_count": 0, - "distinct_projects_created_count": 0, - "distinct_projects_used_count": 0, - "distinct_shared_artifacts_viewed_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "shared_conversations_viewed_count": 0, - "thinking_message_count": 0 + "distinct_conversation_skill_used_count": 0 }, "claude_code_metrics": { - "core_metrics": { - "artifacts_created_count": 0, - "commit_count": 0, - "distinct_session_count": 0, - "lines_of_code": { - "added_count": 0, - "removed_count": 0 - }, - "pull_request_count": 0 - }, - "tool_actions": { - "edit_tool": { - "accepted_count": 0, - "rejected_count": 0 - }, - "multi_edit_tool": { - "accepted_count": 0, - "rejected_count": 0 - }, - "notebook_edit_tool": { - "accepted_count": 0, - "rejected_count": 0 - }, - "write_tool": { - "accepted_count": 0, - "rejected_count": 0 - } - } + "distinct_session_skill_used_count": 0 }, "cowork_metrics": { - "action_count": 0, - "artifacts_created_count": 0, - "connectors_used_count": 0, - "dispatch_turn_count": 0, - "distinct_connectors_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "skills_used_count": 0, - "distinct_plugins_used_count": 0, - "edit_tool_count": 0, - "file_edit_count": 0, - "multi_edit_tool_count": 0, - "notebook_edit_tool_count": 0, - "plugins_used_count": 0, - "sessions_with_file_edits_count": 0, - "write_tool_count": 0 - }, - "design_metrics": { - "distinct_projects_created_count": 0, - "distinct_projects_used_count": 0, - "distinct_session_count": 0, - "message_count": 0 + "distinct_session_skill_used_count": 0 }, + "distinct_user_count": 0, "office_metrics": { "excel": { - "connectors_used_count": 0, - "distinct_connectors_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "skills_used_count": 0 + "distinct_session_skill_used_count": 0 }, "outlook": { - "connectors_used_count": 0, - "distinct_connectors_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "skills_used_count": 0 + "distinct_session_skill_used_count": 0 }, "powerpoint": { - "connectors_used_count": 0, - "distinct_connectors_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "skills_used_count": 0 + "distinct_session_skill_used_count": 0 }, "word": { - "connectors_used_count": 0, - "distinct_connectors_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "skills_used_count": 0 + "distinct_session_skill_used_count": 0 } }, - "science_metrics": { - "delegation_count": 0, - "distinct_session_count": 0, - "message_count": 0, - "remote_compute_job_count": 0, - "skills_used_count": 0 - }, - "web_search_count": 0, + "skill_name": "skill_name", + "attributed_list_price": "attributed_list_price", "chat_cowork_unified_metrics": { "chat": { - "connectors_used_count": 0, - "distinct_artifacts_created_count": 0, - "distinct_connectors_used_count": 0, - "distinct_conversation_count": 0, - "distinct_files_uploaded_count": 0, - "distinct_projects_created_count": 0, - "distinct_projects_used_count": 0, - "distinct_shared_artifacts_viewed_count": 0, - "distinct_skills_used_count": 0, - "message_count": 0, - "shared_conversations_viewed_count": 0, - "thinking_message_count": 0 + "distinct_conversation_skill_used_count": 0 }, "sessions": { - "action_count": 0, - "artifacts_created_count": 0, - "connectors_used_count": 0, - "dispatch_turn_count": 0, - "distinct_connectors_used_count": 0, - "distinct_plugins_used_count": 0, - "distinct_session_count": 0, - "distinct_skills_used_count": 0, - "edit_tool_count": 0, - "file_edit_count": 0, - "message_count": 0, - "multi_edit_tool_count": 0, - "notebook_edit_tool_count": 0, - "plugins_used_count": 0, - "sessions_with_file_edits_count": 0, - "skills_used_count": 0, - "write_tool_count": 0 + "distinct_session_skill_used_count": 0 } }, + "currency": "currency", + "enable_count": 0, + "estimated_overage_spend": "estimated_overage_spend", + "invocation_count": 0, + "product": "product", + "rbac_group_id": "rbac_group_id", + "rbac_group_name": "rbac_group_name", + "share_status": "organization", + "skill_display_name": "skill_display_name", + "user_id": "user_id" + } + ], + "next_page": "next_page" +} +``` + +## Beta › Organization › Analytics › Artifacts + +### Get Artifact Activity + +`beta.organization.analytics.artifacts.list(**kwargs) -> PageCursor` + +**GET** `/v1/organizations/analytics/artifacts` + +Get artifact-creation activity for a given day, broken out by MIME type. + +Returns the full (`artifact_type`, `is_shared`) cube for the organization; +`next_page` is null except for grouped queries, which paginate. The cube +can be broken out per product, per member, or per RBAC group via +`group_by[]`, and scoped via `filter[]`. Requires an API key with the +`read:analytics` scope. + +#### Parameters + +- `date: Date` (query parameter) + + UTC date in YYYY-MM-DD format. The day to get artifact activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + + format: date + +- `filter: Array[String]` (query parameter) + + Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `artifact_type`, `is_shared`, `product`, `rbac_group_id`, `user_id`. Value forms: `artifact_type` is a canonical artifact MIME type (e.g. `text/markdown`) or `other`; `is_shared` is `true` or `false`; `product` is `chat_cowork_unified`, `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + + maxItems: 100 + +- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + + Dimensions to break results out by: `product`, `user_id` and/or `rbac_group_id`. The ungrouped artifact-type cube is finite and returned in full; grouped queries multiply the cube and paginate via `next_page`. `product` takes the values `chat_cowork_unified`, `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts). `rbac_group_id` attributes a user to every group they held at any point during the requested UTC day, so grouped rows are not an exclusive partition. At most 100 entries. + + maxItems: 100 + + - `:product` + + - `:rbac_group_id` + + - `:user_id` + +- `limit: Integer` (query parameter) + + Maximum rows to return (1-1000, default 100). The ungrouped artifact-type cube is finite and returned in full; `limit` is the page size only when `group_by[]` multiplies the cube. + + minimum: 1, maximum: 1000 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated. + +#### Returns + +- `class BetaAnalyticsArtifactActivity` + + Artifact-creation activity for one (`artifact_type`, `is_shared`) bucket + on a given day. + + Artifacts form a small finite cube — the canonical MIME type (8 values incl. + `other`) crossed with shared-vs-private — so the response is the full set of + non-empty buckets, not a ranked/paginated list. Claude Code and Cowork + artifacts report under `text/html` and are counted from 2026-08-17 + onward; earlier days contain claude.ai chat artifacts only. With + `group_by[]=product` / `user_id` / `rbac_group_id` each row is further + split by the flat group keys and counts are scoped to that cut. + + - `artifact_type: String` + + Canonical artifact MIME type (e.g. `text/markdown`, `application/vnd.ant.react`, `image/svg+xml`), or `other`. Claude Code and Cowork artifacts report as `text/html`. + + - `artifacts_created_count: Integer` + + Number of artifacts created in this bucket on the requested day + + - `distinct_user_count: Integer` + + Number of distinct users who created artifacts in this bucket on the requested day + + - `is_shared: bool` + + Whether the artifacts in this bucket have ever been shared (a Claude Code / Cowork artifact is shared once anyone beyond its creator may open it: named members, the whole organization, or anyone with the link). + + - `published_artifacts_created_count: Integer` + + Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count` + + - `product: String` + + Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + + - `rbac_group_id: String` + + Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + + - `rbac_group_name: String` + + Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + + - `user_id: String` + + Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +page = anthropic.beta.organization.analytics.artifacts.list(date: "2019-12-27") + +puts(page) +``` + +##### Response (200) + +```json +{ + "data": [ + { + "artifact_type": "artifact_type", + "artifacts_created_count": 0, "distinct_user_count": 0, - "last_activity_date": "2019-12-27", + "is_shared": true, + "published_artifacts_created_count": 0, + "product": "product", "rbac_group_id": "rbac_group_id", "rbac_group_name": "rbac_group_name", - "user": { - "id": "id", - "email_address": "email_address", - "type": "user" - } + "user_id": "user_id" } ], "next_page": "next_page" } ``` -## Beta › Organization › Analytics › Apps › Chat › Projects +## Beta › Organization › Analytics › Usage Report + +### Get Token Usage Over Time + +`beta.organization.analytics.usage_report.list(**kwargs) -> ReportPageCursor` + +**GET** `/v1/organizations/analytics/usage_report` + +Get token usage over time across a date range. + +Returns token usage bucketed by minute, hour, or day, optionally broken +down by product, model, context window, inference region, or speed. +Available to organizations on a Claude Enterprise plan. Requires an API +key with the `read:analytics` scope. + +#### Parameters + +- `starting_at: Time` (query parameter) + + Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. + + format: date-time + +- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) + + Time bucket granularity. + + - `:"1d"` + + - `:"1h"` + + - `:"1m"` + +- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) + + Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. + + maxItems: 100 + + - `:dm` + + - `:engaged` + + - `:monitoring` + + - `:proactive` + + - `:scheduled` + +- `claude_tag_user_ids: Array[String]` (query parameter) + + Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. + + maxItems: 100 + +- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) + + Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. + + maxItems: 100 + + - `:"0-200k"` + + - `:"200k-1M"` + +- `ending_at: Time` (query parameter) + + End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. + + format: date-time + +- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 6 more]` (query parameter) + + Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values. + + maxItems: 100 + + - `:claude_tag_category` + + - `:claude_tag_user_id` + + - `:context_window` -### Get Chat Project Usage + - `:inference_geo` -`beta.organization.analytics.apps.chat.projects.list(**kwargs) -> PageCursor` + - `:model` -**GET** `/v1/organizations/analytics/apps/chat/projects` + - `:product` -Get per-project activity for a given day, with cursor-based pagination. + - `:rbac_group_id` -Returns activity metrics for each project in the organization, sorted by -project ID. Use `group_by[]` to break projects out per member or per RBAC -group, and `filter[]` to scope results; the parameter descriptions list the -supported dimensions. Available to organizations on a Claude Enterprise -plan. Requires an API key with the `read:analytics` scope. + - `:slack_channel_id` -#### Parameters + - `:speed` -- `date: Date` (query parameter) +- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) - UTC date in YYYY-MM-DD format. The day to get project activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. - format: date + maxItems: 100 -- `ending_date: Date` (query parameter) + - `:global` - UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + - `:not_available` - format: date + - `:us` -- `filter: Array[String]` (query parameter) +- `limit: Integer` (query parameter) - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `project_id`, `rbac_group_id`, `user_id`. Value forms: `project_id` takes a tagged project id (`claude_proj_...`); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. + Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256). + + minimum: 1 + +- `models: Array[String]` (query parameter) + + Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. maxItems: 100 -- `group_by: Array[:rbac_group_id | :user_id]` (query parameter) +- `page: String` (query parameter) - Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + Opaque cursor from a previous response's `next_page` field. + +- `products: Array[BetaAnalyticsProductFilter]` (query parameter) + + Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. maxItems: 100 - - `:rbac_group_id` + - `:chat` - - `:user_id` + - `:chat_cowork_unified` -- `limit: Integer` (query parameter) + - `:"claude-tag"` - Number of results per page (1-1000, default 100). + - `:claude_code` - minimum: 1, maximum: 1000 + - `:claude_design` -- `order: :asc | :desc` (query parameter) + - `:claude_in_chrome` - Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + - `:cowork` - - `:asc` + - `:office_agent` - - `:desc` +- `rbac_group_ids: Array[String]` (query parameter) -- `order_by: String` (query parameter) + Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. - Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + maxItems: 100 -- `page: String` (query parameter) +- `slack_channel_ids: Array[String]` (query parameter) - Opaque cursor from a previous response's `next_page` field. + Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. -- `starting_date: Date` (query parameter) + maxItems: 100 - UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. +- `speeds: Array[:fast | :standard]` (query parameter) - format: date + Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. + + maxItems: 100 + + - `:fast` + + - `:standard` + +- `user_ids: Array[String]` (query parameter) + + Filter to specific users by tagged user ID. + + maxItems: 100 #### Returns -- `class BetaAnalyticsProjectActivity` +- `class BetaAnalyticsUsageReportTimeBucket` - Per-project activity data for a given day. + - `ending_at: Time` - - `distinct_user_count: Integer` + End of the time bucket (exclusive) in RFC 3339 format. - Number of distinct users who used the project on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + format: date-time - - `message_count: Integer` + - `results: Array[BetaAnalyticsUsageBucketedResult]` - Number of messages sent in the project on the requested day + Rows for this time bucket. Empty when the bucket has no data; otherwise a single combined row when `group_by[]` is omitted, or one row per group (subject to the per-bucket group cap described on the `group_by[]` parameter). - - `project_id: String` + - `cache_creation: BetaCacheCreation` - Tagged project identifier (e.g. `claude_proj_...`) + The number of input tokens for cache creation. - - `project_name: String` + - `ephemeral_1h_input_tokens: Integer` - Name of the project + The number of input tokens used to create the 1 hour cache entry. - - `created_at: Time` + minimum: 0 - Project creation timestamp in RFC 3339 format. Null if the project was deleted before attribution was recorded. + - `ephemeral_5m_input_tokens: Integer` - format: date-time + The number of input tokens used to create the 5 minute cache entry. - - `created_by: BetaAnalyticsUser` + minimum: 0 - User who created the project. Null if the project was deleted before attribution was recorded, or if the creator's account no longer exists. + - `cache_read_input_tokens: Integer` - - `type: :user` + The number of input tokens read from the cache. - Object type. Always `user`. + - `claude_tag_category: BetaAnalyticsClaudeTagCategory` - - `id: String` + Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. - Tagged user identifier (e.g. `user_...`) + - `:dm` - - `email_address: String` + - `:engaged` - Email address of the user + - `:monitoring` - - `distinct_conversation_count: Integer` + - `:proactive` - Number of distinct conversations in the project. Null on aggregated rows where a distinct count cannot be computed. + - `:scheduled` - - `product: String` + - `claude_tag_user_id: String` - Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. - - `rbac_group_id: String` + - `context_window: BetaAnalyticsContextWindow` - Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. - - `rbac_group_name: String` + - `:"0-200k"` - Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + - `:"200k-1M"` - - `user_id: String` + - `inference_geo: :global | :us` - Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). -#### Example + - `:global` -```ruby -require "anthropic" + - `:us` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `model: String` -page = anthropic.beta.organization.analytics.apps.chat.projects.list + Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. -puts(page) -``` + - `output_tokens: Integer` -##### Response (200) + The number of output tokens generated. -```json -{ - "data": [ - { - "distinct_user_count": 0, - "message_count": 0, - "project_id": "project_id", - "project_name": "project_name", - "created_at": "2019-12-27T18:11:19.117Z", - "created_by": { - "id": "id", - "email_address": "email_address", - "type": "user" - }, - "distinct_conversation_count": 0, - "product": "product", - "rbac_group_id": "rbac_group_id", - "rbac_group_name": "rbac_group_name", - "user_id": "user_id" - } - ], - "next_page": "next_page" -} -``` + - `product: String` -## Beta › Organization › Analytics › Connectors + Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". -### Get Connector Usage + - `rbac_group_id: String` -`beta.organization.analytics.connectors.list(**kwargs) -> PageCursor` + RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. -**GET** `/v1/organizations/analytics/connectors` + - `requests: Integer` -Get per-connector usage for a given day, with cursor-based pagination. + Number of API requests in this row's scope. For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). -Returns connector usage metrics for the organization, sorted by connector -name. Connector names are normalized from their various sources — for -example, "Atlassian MCP server" and "mcp-atlassian" both appear as -"atlassian". Use `group_by[]` to break usage out per member, per RBAC -group, or per product surface, and `filter[]` to scope results; the -parameter descriptions list the supported dimensions. Available to -organizations on a Claude Enterprise plan. Requires an API key with the -`read:analytics` scope. + - `server_tool_use: BetaAnalyticsServerToolUse` -#### Parameters + Server-side tool usage metrics. -- `date: Date` (query parameter) + - `web_search_requests: Integer` - UTC date in YYYY-MM-DD format. The day to get connector usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + The number of web search requests made. - format: date + - `slack_channel_id: String` -- `ending_date: Date` (query parameter) + Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). - UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + - `speed: :fast | :standard` - format: date + Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. -- `filter: Array[String]` (query parameter) + - `:fast` - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `connector_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `connector_name` matches case-insensitively, a display name such as 'GitHub MCP' also matches its normalized stored form ('github'), and for rows whose `connector_name` is an opaque connector id the connector's display name (`connector_display_name`) also matches; `product` is one of `chat_cowork_unified`, `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + - `:standard` - maxItems: 100 + - `uncached_input_tokens: Integer` -- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + The number of uncached input tokens processed. - Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + - `starting_at: Time` - maxItems: 100 + Start of the time bucket (inclusive) in RFC 3339 format. - - `:product` + format: date-time - - `:rbac_group_id` +#### Example - - `:user_id` +```ruby +require "anthropic" -- `limit: Integer` (query parameter) +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Number of results per page (1-1000, default 100). +page = anthropic.beta.organization.analytics.usage_report.list(starting_at: "2019-12-27T18:11:19.117Z") - minimum: 1, maximum: 1000 +puts(page) +``` -- `order: :asc | :desc` (query parameter) +##### Response (200) - Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. +```json +{ + "data": [ + { + "ending_at": "2019-12-27T18:11:19.117Z", + "results": [ + { + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_read_input_tokens": 0, + "claude_tag_category": "dm", + "claude_tag_user_id": "U0123ABCDEF", + "context_window": "0-200k", + "inference_geo": "global", + "model": "claude-opus-5-5", + "output_tokens": 0, + "product": "chat", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "requests": 0, + "server_tool_use": { + "web_search_requests": 10 + }, + "slack_channel_id": "C0123ABCDEF", + "speed": "fast", + "uncached_input_tokens": 0 + } + ], + "starting_at": "2019-12-27T18:11:19.117Z" + } + ], + "data_refreshed_at": "2019-12-27T18:11:19.117Z", + "has_more": true, + "next_page": "next_page", + "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" +} +``` - - `:asc` +## Beta › Organization › Analytics › User Usage Report - - `:desc` +### Get Per-User Token Usage -- `order_by: String` (query parameter) +`beta.organization.analytics.user_usage_report.list(**kwargs) -> ReportPageCursor` - Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). +**GET** `/v1/organizations/analytics/user_usage_report` -- `page: String` (query parameter) +Get per-user token usage across a date range. - Opaque cursor from a previous response's `next_page` field. +Returns one row per user, ranked by the chosen token metric. Use this to +see which users consume the most tokens. Only usage attributable to a +seat user is included; for organization-wide totals including direct +API-key and automation traffic, use the bucketed +`/v1/organizations/analytics/usage_report` endpoint. Available to +organizations on a Claude Enterprise plan. Requires an API key with the +`read:analytics` scope. -- `starting_date: Date` (query parameter) +#### Parameters - UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. +- `starting_at: Time` (query parameter) - format: date + Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. -#### Returns + format: date-time -- `class BetaAnalyticsConnectorActivity` +- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) - Per-connector activity data for a given day. + Time-bucket granularity. When set, each row's `starting_at` and `ending_at` are populated and one actor may span several rows (one per time bucket with usage). The time bucket counts toward `limit`, so one page can return multiple rows for the same actor. `ending_at` is required when `bucket_width` is set, and with `bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the full `[starting_at, ending_at)` range. - - `chat_metrics: BetaAnalyticsConnectorChatMetrics` + - `:"1d"` - Claude.ai activity metrics for a single connector on a given day. + - `:"1h"` - - `distinct_conversation_connector_used_count: Integer` + - `:"1m"` - Number of distinct conversations in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) - - `claude_code_metrics: BetaAnalyticsConnectorClaudeCodeMetrics` + Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. - Claude Code activity metrics for a single connector on a given day. + maxItems: 100 - - `distinct_session_connector_used_count: Integer` + - `:dm` - Number of distinct Claude Code sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:engaged` - - `connector_name: String` + - `:monitoring` - Name of the connector. Some rows carry an opaque connector id here instead of a readable name; `connector_display_name` holds the resolved name for those rows. + - `:proactive` - - `cowork_metrics: BetaAnalyticsConnectorCoworkMetrics` + - `:scheduled` - Cowork activity metrics for a single connector on a given day. +- `claude_tag_user_ids: Array[String]` (query parameter) - - `distinct_session_connector_used_count: Integer` + Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. - Number of distinct Cowork sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + maxItems: 100 - - `distinct_user_count: Integer` +- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) - Number of distinct users who used the connector on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. - - `office_metrics: BetaAnalyticsConnectorOfficeMetrics` + maxItems: 100 - Office Agent activity metrics for a single connector on a given day, broken out by Office product. + - `:"0-200k"` - - `excel: BetaAnalyticsConnectorOfficeProductMetrics` + - `:"200k-1M"` - Office Agent activity metrics for a single connector on a given day within one Office product. +- `ending_at: Time` (query parameter) - - `distinct_session_connector_used_count: Integer` + End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. - Number of distinct Office Agent sessions in which the connector was used. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + format: date-time - - `outlook: BetaAnalyticsConnectorOfficeProductMetrics` +- `exclude_deleted_users: bool` (query parameter) - Office Agent activity metrics for a single connector on a given day within one Office product. + If true, omit rows for users who are deleted (`deleted: true`). A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual. - - `powerpoint: BetaAnalyticsConnectorOfficeProductMetrics` +- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 6 more]` (query parameter) - Office Agent activity metrics for a single connector on a given day within one Office product. + Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/usage_report` endpoint. `limit` bounds (actor × time bucket × dimension) rows — with dimensions or `bucket_width` present, one actor may span several rows. - - `word: BetaAnalyticsConnectorOfficeProductMetrics` + maxItems: 100 - Office Agent activity metrics for a single connector on a given day within one Office product. + - `:claude_tag_category` - - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + - `:claude_tag_user_id` - Connector use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. + - `:context_window` - - `chat: BetaAnalyticsConnectorChatCoworkUnifiedChatMetrics` + - `:inference_geo` - A connector's use in chat conversations recorded while members had - Chat and Cowork unified turned on. + - `:model` - - `distinct_conversation_connector_used_count: Integer` + - `:product` - Same measure as `chat_metrics.distinct_conversation_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:rbac_group_id` - - `sessions: BetaAnalyticsConnectorChatCoworkUnifiedSessionsMetrics` + - `:slack_channel_id` - A connector's use in Cowork sessions recorded while members had - Chat and Cowork unified turned on. + - `:speed` - - `distinct_session_connector_used_count: Integer` +- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) - Same measure as `cowork_metrics.distinct_session_connector_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. - - `connector_display_name: String` + maxItems: 100 - Human-readable display name for rows whose `connector_name` is an opaque connector id rather than a readable name, resolved at request time from the organization's connectors (including connectors that have since been removed). `connector_name` remains the row's stable key for sorting and pagination, and `filter[]=connector_name:{value}` also matches these rows by display name. Display names are not unique, and the same connector's claude.ai usage can appear under a separate row with a readable `connector_name`. Null when `connector_name` is already a readable name, when the id cannot be resolved to one of the organization's connectors, or when display-name resolution is not enabled for this organization. + - `:global` - - `individual_auth_distinct_user_count: Integer` + - `:not_available` - Number of distinct users whose use of this connector on the requested day ran on their own individual credential, connected through their own consent flow. Companion bucket to `managed_auth_distinct_user_count`, which carries the measurement, attribution, and null rules. Users whose requests used no stored credential count in neither bucket. + - `:us` - - `managed_auth_distinct_user_count: Integer` +- `limit: Integer` (query parameter) - Number of distinct users whose use of this connector on the requested day ran on Enterprise Managed Auth (an organization-managed credential provisioned through the organization's identity provider), read from the token record each request used. Null, never 0, when managed-auth reporting is not enabled for the organization, the value cannot be attributed to the row, no credentialed requests and no managed-token mint events (a managed credential being provisioned for a user's use of the connector) were observed that day, or the day predates 2026-07-01, the first day the backing data exists (forward-only data, no backfill). When credentialed requests or mint events were observed and attributed, both managed-auth fields populate, reporting 0 for a bucket with no users; the two counts are independent, not a partition — a user whose requests that day used both kinds of credential counts in both. Mint events carry user but not surface attribution, so they count as observed auth activity on `user_id` and `rbac_group_id` cuts — attributed to the user the credential was provisioned for — but never on a cut that references `product` (group or filter). Date-range rollup mode (`starting_date`/`ending_date`) computes both fields exactly over the window — distinct users with at least one qualifying day — when the whole window starts on or after 2026-07-01, with the null-versus-0 and mint-event rules applying with the window in place of the day; a range starting earlier reports every managed-auth field as null, never a partial-window value. + Number of rows per page (1-1000, default 20). One row per actor unless `group_by[]` or `bucket_width` splits an actor across rows; `cost_type`/`token_type` fan-out rows (cost endpoint only) are the exception — they do not count toward this limit, so `data` can exceed it. - - `product: String` + minimum: 1, maximum: 1000 - Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. +- `models: Array[String]` (query parameter) - - `rbac_group_id: String` + Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. - Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + maxItems: 100 - - `rbac_group_name: String` +- `order: :asc | :desc` (query parameter) - Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + Sort direction. Defaults to `desc`. - - `read_call_count: Integer` + - `:asc` - Number of connector tool calls on the requested day whose trusted read-only annotation marked them read-only. Call count, not distinct users. Every call recorded on a classified surface lands in exactly one of `read_call_count`, `write_call_count`, or `unclassified_call_count`, so the three sum to the day's classified calls. Classification is forward-only per surface: claude.ai from 2026-06-01, Claude Code from 2026-05-30, Claude in Office from 2026-05-29, Cowork from 2026-06-02 (Cowork clients predating annotation forwarding land in `unclassified_call_count`). Null, never 0, when the value cannot be stated: the read/write split is not enabled for this organization, or the day predates 2026-05-29. For a date-range total, sum the per-day values, but treat a window that extends before 2026-05-29 as null rather than summing only its covered days — date-range rollup mode (`starting_date`/`ending_date`) applies both rules server-side. + - `:desc` - - `unclassified_call_count: Integer` +- `order_by: :output_tokens | :requests | :total_tokens | :uncached_input_tokens` (query parameter) - Number of connector tool calls on the requested day with no trusted read-only annotation — the annotation is optional in the MCP spec and is discarded when connector access controls are active, so unclassified calls are common. This field shows how much of the day's classified activity the read/write split actually covers. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance. + Metric to rank actors by. Defaults to `total_tokens`. - - `user_id: String` + - `:output_tokens` - Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + - `:requests` - - `write_call_count: Integer` + - `:total_tokens` - Number of connector tool calls on the requested day whose trusted read-only annotation marked them not read-only. Call count, not distinct users. One of the three call-classification buckets; see `read_call_count` for the per-surface data-start dates, null conditions, and date-range guidance. + - `:uncached_input_tokens` -#### Example +- `page: String` (query parameter) -```ruby -require "anthropic" + Opaque cursor from a previous response's `next_page` field. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") +- `products: Array[BetaAnalyticsProductFilter]` (query parameter) -page = anthropic.beta.organization.analytics.connectors.list + Product surfaces to include. Defaults to all products. -puts(page) -``` + maxItems: 100 -##### Response (200) + - `:chat` -```json -{ - "data": [ - { - "chat_metrics": { - "distinct_conversation_connector_used_count": 0 - }, - "claude_code_metrics": { - "distinct_session_connector_used_count": 0 - }, - "connector_name": "connector_name", - "cowork_metrics": { - "distinct_session_connector_used_count": 0 - }, - "distinct_user_count": 0, - "office_metrics": { - "excel": { - "distinct_session_connector_used_count": 0 - }, - "outlook": { - "distinct_session_connector_used_count": 0 - }, - "powerpoint": { - "distinct_session_connector_used_count": 0 - }, - "word": { - "distinct_session_connector_used_count": 0 - } - }, - "chat_cowork_unified_metrics": { - "chat": { - "distinct_conversation_connector_used_count": 0 - }, - "sessions": { - "distinct_session_connector_used_count": 0 - } - }, - "connector_display_name": "connector_display_name", - "individual_auth_distinct_user_count": 0, - "managed_auth_distinct_user_count": 0, - "product": "product", - "rbac_group_id": "rbac_group_id", - "rbac_group_name": "rbac_group_name", - "read_call_count": 0, - "unclassified_call_count": 0, - "user_id": "user_id", - "write_call_count": 0 - } - ], - "next_page": "next_page" -} -``` + - `:chat_cowork_unified` + + - `:"claude-tag"` + + - `:claude_code` + + - `:claude_design` -## Beta › Organization › Analytics › Plugins + - `:claude_in_chrome` -### Get Plugin Usage + - `:cowork` -`beta.organization.analytics.plugins.list(**kwargs) -> PageCursor` + - `:office_agent` -**GET** `/v1/organizations/analytics/plugins` +- `rbac_group_ids: Array[String]` (query parameter) -Get per-plugin install + invocation usage for a given day, with pagination. + Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. -Returns plugin usage metrics for the organization across Cowork and Claude -Code, sorted by plugin name. The `plugin_name` value `third-party` is -an aggregate bucket, not a plugin: it collects plugin activity, from -either surface, for which the reporting client did not provide a plugin -name — so an organization's own plugins can contribute both to their own -named rows and to this bucket. Use `group_by[]` to break usage out per -member, per RBAC group, or per product surface (Cowork / Claude Code), -and `filter[]` to scope results; the parameter descriptions list the -supported dimensions. Requires an API key with the -`read:analytics` scope. `starting_date` / `ending_date` select -range-rollup mode like `/skills`. + maxItems: 100 -#### Parameters +- `slack_channel_ids: Array[String]` (query parameter) -- `date: Date` (query parameter) + Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. - UTC date in YYYY-MM-DD format. The day to get plugin usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + maxItems: 100 - format: date +- `speeds: Array[:fast | :standard]` (query parameter) -- `ending_date: Date` (query parameter) + Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. - UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. + maxItems: 100 - format: date + - `:fast` -- `filter: Array[String]` (query parameter) + - `:standard` - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `plugin_name`, `product`, `rbac_group_id`, `user_id`. Value forms: `plugin_name` matches case-insensitively; `product` is `chat_cowork_unified`, `claude_code`, or `cowork` (the only surfaces with plugin attribution); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. +- `user_ids: Array[String]` (query parameter) + + Filter to specific users by tagged user ID. maxItems: 100 -- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) +#### Returns - Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. On this endpoint `product` takes the values `chat_cowork_unified`, `claude_code`, or `cowork` only (the surfaces with plugin attribution). Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. +- `class BetaAnalyticsUsageUsersItem` - maxItems: 100 + - `actor: BetaAnalyticsUserActor` - - `:product` + The user this row's usage or cost is attributed to. Always a `user_actor`. - - `:rbac_group_id` + - `type: :user_actor` - - `:user_id` + Actor type. Always `"user_actor"`. -- `limit: Integer` (query parameter) + - `deleted: bool` - Number of results per page (1-1000, default 100). + True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation. - minimum: 1, maximum: 1000 + - `email_address: String` -- `order: :asc | :desc` (query parameter) + The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`). - Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. + - `name: String` - - `:asc` + The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null. - - `:desc` + - `user_id: String` -- `order_by: String` (query parameter) + Tagged user ID. - Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + - `cache_creation: BetaCacheCreation` -- `page: String` (query parameter) + The number of input tokens for cache creation. - Opaque cursor from a previous response's `next_page` field. + - `ephemeral_1h_input_tokens: Integer` -- `starting_date: Date` (query parameter) + The number of input tokens used to create the 1 hour cache entry. - UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + minimum: 0 - format: date + - `ephemeral_5m_input_tokens: Integer` -#### Returns + The number of input tokens used to create the 5 minute cache entry. -- `class BetaAnalyticsPluginActivity` + minimum: 0 - Per-plugin install + invocation activity for a given day. + - `cache_read_input_tokens: Integer` - With `group_by[]=user_id` / `rbac_group_id` / `product` (`cowork`, - `claude_code` and `chat_cowork_unified` only on this endpoint) each row is - one (plugin, user), (plugin, group), or (plugin, product) cut: the flat - `user_id` / `rbac_group_id` / `product` keys carry the cut and the counts - are scoped to it. + The number of input tokens read from the cache. - - `claude_code_metrics: BetaAnalyticsPluginClaudeCodeMetrics` + - `claude_tag_category: BetaAnalyticsClaudeTagCategory` - Claude Code activity metrics for a single plugin on a given day. + Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. - - `distinct_session_plugin_used_count: Integer` + - `:dm` - Number of distinct Claude Code sessions in which the plugin was invoked. Null on aggregated rows where a distinct count cannot be computed. + - `:engaged` - - `cowork_metrics: BetaAnalyticsPluginCoworkMetrics` + - `:monitoring` - Cowork activity metrics for a single plugin on a given day. + - `:proactive` - - `distinct_session_plugin_used_count: Integer` + - `:scheduled` - Number of distinct Cowork sessions in which the plugin was invoked. Null on aggregated rows where a distinct count cannot be computed. + - `claude_tag_user_id: String` - - `distinct_user_count: Integer` + Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. - Number of distinct users with recorded install or invocation activity for the plugin on the requested day (install-only users count), or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + - `context_window: BetaAnalyticsContextWindow` - - `install_count: Integer` + Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. - Number of distinct users who installed the plugin on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. + - `:"0-200k"` - - `invocation_count: Integer` + - `:"200k-1M"` - Number of plugin invocations on the requested day + - `ending_at: Time` - - `plugin_name: String` + End of the row's UTC time bucket (exclusive), as an RFC 3339 timestamp; equal to `starting_at` plus one `bucket_width`. Null unless `bucket_width` is set. - Name of the plugin + format: date-time - - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + - `inference_geo: :global | :us` - Plugin use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. + Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). - - `distinct_session_plugin_used_count: Integer` + - `:global` - Same measure as `cowork_metrics.distinct_session_plugin_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Null on aggregated rows where a distinct count cannot be computed. + - `:us` - - `plugin_id: String` + - `model: String` - Stable plugin identifier when available (e.g. `serena@claude-plugins-official`). Null for third-party Claude Code plugins (redacted at the source) and Cowork slash commands that carry only a hashed id. + Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. + + - `output_tokens: Integer` + + The number of output tokens generated. - `product: String` - Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". - `rbac_group_id: String` - Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. - - `rbac_group_name: String` + - `requests: Integer` - Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + Number of API requests in this row's scope. For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). - - `user_id: String` + - `server_tool_use: BetaAnalyticsServerToolUse` - Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + Server-side tool usage metrics. + + - `web_search_requests: Integer` + + The number of web search requests made. + + - `slack_channel_id: String` + + Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). + + - `speed: :fast | :standard` + + Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. + + - `:fast` + + - `:standard` + + - `starting_at: Time` + + Start of the row's UTC time bucket (inclusive), as an RFC 3339 timestamp. Null unless `bucket_width` is set; without `bucket_width`, each row aggregates the full requested range. + + format: date-time + + - `total_tokens: Integer` + + Total token count across all token types. This is the value the default `order_by` (`total_tokens`) sorts on. + + - `uncached_input_tokens: Integer` + + The number of uncached input tokens processed. #### Example @@ -97479,7 +104075,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.plugins.list +page = anthropic.beta.organization.analytics.user_usage_report.list(starting_at: "2019-12-27T18:11:19.117Z") puts(page) ``` @@ -97490,411 +104086,340 @@ puts(page) { "data": [ { - "claude_code_metrics": { - "distinct_session_plugin_used_count": 0 + "actor": { + "deleted": true, + "email": "jane@example.com", + "email_address": "jane@example.com", + "name": "Jane Smith", + "type": "user_actor", + "user_id": "user_01AbCdEfGhIjKlMnOpQrSt" }, - "cowork_metrics": { - "distinct_session_plugin_used_count": 0 + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 }, - "distinct_user_count": 0, - "install_count": 0, - "invocation_count": 0, - "plugin_name": "plugin_name", - "chat_cowork_unified_metrics": { - "distinct_session_plugin_used_count": 0 + "cache_read_input_tokens": 3200000, + "claude_tag_category": "dm", + "claude_tag_user_id": "U0123ABCDEF", + "context_window": "0-200k", + "ending_at": "2019-12-27T18:11:19.117Z", + "inference_geo": "global", + "model": "claude-opus-5-5", + "output_tokens": 891000, + "product": "chat", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "requests": 128, + "server_tool_use": { + "web_search_requests": 10 }, - "plugin_id": "plugin_id", - "product": "product", - "rbac_group_id": "rbac_group_id", - "rbac_group_name": "rbac_group_name", - "user_id": "user_id" + "slack_channel_id": "C0123ABCDEF", + "speed": "fast", + "starting_at": "2019-12-27T18:11:19.117Z", + "total_tokens": 5377000, + "uncached_input_tokens": 1284500 } ], - "next_page": "next_page" + "data_refreshed_at": "2019-12-27T18:11:19.117Z", + "has_more": true, + "next_page": "next_page", + "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" } ``` -## Beta › Organization › Analytics › Skills +## Beta › Organization › Analytics › Cost Report -### Get Skill Usage +### Get Cost Over Time -`beta.organization.analytics.skills.list(**kwargs) -> PageCursor` +`beta.organization.analytics.cost_report.list(**kwargs) -> ReportPageCursor` -**GET** `/v1/organizations/analytics/skills` +**GET** `/v1/organizations/analytics/cost_report` -Get per-skill usage for a given day, with cursor-based pagination. +Get cost in USD over time across a date range. -Returns skill usage metrics for the organization, sorted by skill name. -Use `group_by[]` to break usage out per member, per RBAC group, or per -product surface, and `filter[]` to scope results; the parameter -descriptions list the supported dimensions. Available to organizations -on a Claude Enterprise plan. Requires an API key with the -`read:analytics` scope. +Returns cost bucketed by minute, hour, or day, optionally broken down by +product, model, context window, inference region, speed, cost type, or +token type. Available to organizations on a Claude Enterprise plan. +Requires an API key with the `read:analytics` scope. #### Parameters -- `date: Date` (query parameter) - - UTC date in YYYY-MM-DD format. The day to get skill usage for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. +- `starting_at: Time` (query parameter) - format: date + Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. -- `ending_date: Date` (query parameter) + format: date-time - UTC date in YYYY-MM-DD format. End of the date range (exclusive); only valid with `starting_date`. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day), so this can be at most today — which is also the default when omitted, resolved once when the first page is served and reused for the rest of the pagination sequence. At most 366 days after `starting_date`. +- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) - format: date + Time bucket granularity. -- `filter: Array[String]` (query parameter) + - `:"1d"` - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `product`, `rbac_group_id`, `share_status`, `skill_name`, `user_id`. Value forms: `product` is one of `chat_cowork_unified`, `chat`, `claude_code`, `cowork`, or `office_agent`; `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `share_status` is one of `organization`, `private`, or `public`; `skill_name` matches case-insensitively; `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + - `:"1h"` - maxItems: 100 + - `:"1m"` -- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) +- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) - Dimensions to break results out by (e.g. `group_by[]=user_id`). Supported on this endpoint: `product`, `rbac_group_id`, `user_id`. Grouped rows carry the requested dimension values as additional fields and paginate like ungrouped responses via `next_page`; an unsupported dimension returns 400. `rbac_group_id` attributes a user to every group they held at any point during each covered UTC day, so grouped rows are not an exclusive partition and can sum above org-level totals. At most 100 entries. + Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. maxItems: 100 - - `:product` - - - `:rbac_group_id` - - - `:user_id` - -- `limit: Integer` (query parameter) - - Number of results per page (1-1000, default 100). - - minimum: 1, maximum: 1000 - -- `order: :asc | :desc` (query parameter) - - Sort direction: `asc` or `desc`. Defaults to `asc` for the endpoint's sort column and to `desc` when `order_by` names a metric (a top-N ranking). Applies to `order_by`, or to the endpoint's default sort field when `order_by` is omitted. - - - `:asc` - - - `:desc` + - `:dm` -- `order_by: String` (query parameter) + - `:engaged` - Sort field. Restricted to the endpoint's sort column plus its rankable metrics (metrics default to descending; a few metrics rank in date-range mode only, per the endpoint's documented orderable set). + - `:monitoring` -- `page: String` (query parameter) + - `:proactive` - Opaque cursor from a previous response's `next_page` field. + - `:scheduled` -- `starting_date: Date` (query parameter) +- `claude_tag_user_ids: Array[String]` (query parameter) - UTC date in YYYY-MM-DD format. Start of a date range (inclusive). Enables rollup mode: one row per entity aggregated over the whole range — addable counters are summed across days, and a distinct count is never summed where summing could double-count (a field's range value is recomputed exactly over the window, approximate via HLL with typical error under 2%, null, or — for the creation-event counts, whose per-day values cannot overlap — a per-day sum that is itself exact; each field's own description says which). Use either `date` or `starting_date`, not both. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. - format: date + maxItems: 100 -#### Returns +- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) -- `class BetaAnalyticsSkillActivity` + Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. - Per-skill activity data for a given day. + maxItems: 100 - - `chat_metrics: BetaAnalyticsSkillChatMetrics` + - `:"0-200k"` - Claude.ai activity metrics for a single skill on a given day. + - `:"200k-1M"` - - `distinct_conversation_skill_used_count: Integer` +- `ending_at: Time` (query parameter) - Number of distinct conversations in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. - - `claude_code_metrics: BetaAnalyticsSkillClaudeCodeMetrics` + format: date-time - Claude Code activity metrics for a single skill on a given day. +- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 8 more]` (query parameter) - - `distinct_session_skill_used_count: Integer` + Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values. - Number of distinct Claude Code sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + maxItems: 100 - - `cowork_metrics: BetaAnalyticsSkillCoworkMetrics` + - `:claude_tag_category` - Cowork activity metrics for a single skill on a given day. + - `:claude_tag_user_id` - - `distinct_session_skill_used_count: Integer` + - `:context_window` - Number of distinct Cowork sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:cost_type` - - `distinct_user_count: Integer` + - `:inference_geo` - Number of distinct users who used the skill on the requested day, or, in date-range mode, over the requested window — recomputed as an exact distinct count over the window's per-member daily rows, never a sum of per-day values. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. + - `:model` - - `office_metrics: BetaAnalyticsSkillOfficeMetrics` + - `:product` - Office Agent activity metrics for a single skill on a given day, broken out by Office product. + - `:rbac_group_id` - - `excel: BetaAnalyticsSkillOfficeProductMetrics` + - `:slack_channel_id` - Office Agent activity metrics for a single skill on a given day within one Office product. + - `:speed` - - `distinct_session_skill_used_count: Integer` + - `:token_type` - Number of distinct Office Agent sessions in which the skill was used. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. +- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) - - `outlook: BetaAnalyticsSkillOfficeProductMetrics` + Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. - Office Agent activity metrics for a single skill on a given day within one Office product. + maxItems: 100 - - `powerpoint: BetaAnalyticsSkillOfficeProductMetrics` + - `:global` - Office Agent activity metrics for a single skill on a given day within one Office product. + - `:not_available` - - `word: BetaAnalyticsSkillOfficeProductMetrics` + - `:us` - Office Agent activity metrics for a single skill on a given day within one Office product. +- `limit: Integer` (query parameter) - - `skill_name: String` + Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256). - Name of the skill + minimum: 1 - - `attributed_list_price: String` +- `models: Array[String]` (query parameter) - List-price (rate-card) value of the member requests attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD), from Claude Code, Cowork, and Office Agent request-level attribution — the value of requests that involved the skill, not the skill's incremental cost. Unlike `estimated_overage_spend` this reflects usage value regardless of how it was funded — seat-covered usage counts — but it is undiscounted and does not tie to billed spend or the organization's spend reporting. claude.ai chat usage carries no request-level attribution and contributes nothing: the field is null on `chat` product rows and on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start), and on ungrouped rows it covers the Claude Code + Cowork + Office Agent share only (null when no attributable usage exists). Also null under the same conditions as `estimated_overage_spend` (spend reporting not enabled for this organization, `office_agent` product cuts before the 2026-06-18 data-start). "0" means attributable usage existed but none was attributed to this skill. Addable across days: date-range rollup mode returns the window's sum. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts. + Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. - - `chat_cowork_unified_metrics: ChatCoworkUnifiedMetrics` + maxItems: 100 - Skill use recorded while members had Chat and Cowork unified (Cowork's features inside claude.ai chat) turned on, split into chat conversations and Cowork sessions. A count is null in date-range mode where it cannot be computed. Omitted from the response on deployments that do not offer Chat and Cowork unified. +- `page: String` (query parameter) - - `chat: BetaAnalyticsSkillChatCoworkUnifiedChatMetrics` + Opaque cursor from a previous response's `next_page` field. - A skill's use in chat conversations recorded while members had - Chat and Cowork unified turned on. +- `products: Array[BetaAnalyticsProductFilter]` (query parameter) - - `distinct_conversation_skill_used_count: Integer` + Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. - Same measure as `chat_metrics.distinct_conversation_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + maxItems: 100 - - `sessions: BetaAnalyticsSkillChatCoworkUnifiedSessionsMetrics` + - `:chat` - A skill's use in Cowork sessions recorded while members had Chat - and Cowork unified turned on. + - `:chat_cowork_unified` - - `distinct_session_skill_used_count: Integer` + - `:"claude-tag"` - Same measure as `cowork_metrics.distinct_session_skill_used_count`, for activity recorded while members had Chat and Cowork unified turned on. Approximate (HLL, typical error <2%) in date-range mode. Null on aggregated rows where a distinct count cannot be computed. + - `:claude_code` - - `currency: String` + - `:claude_design` - Currency for this row's monetary fields (`estimated_overage_spend` and `attributed_list_price`), as an uppercase ISO-4217 code. Always "USD" when either amount is populated; null whenever both amounts are null. + - `:claude_in_chrome` - - `enable_count: Integer` + - `:cowork` - Distinct accounts that enabled this skill on the requested day (claude.ai only — the skill analog of plugin `install_count`). The count is org-wide: null when enable reporting is not enabled for this organization, or when the request scopes to `user_id` / `rbac_group_id` / `product` via `group_by[]` or `filter[]` (an org-wide count would be misleading on per-cut rows). A distinct count, not an event count: summing across days double-counts members who enable the skill on more than one day, so it is also null in date-range rollup mode (`starting_date`/`ending_date`). + - `:office_agent` - - `estimated_overage_spend: String` +- `rbac_group_ids: Array[String]` (query parameter) - Estimated overage spend attributed to this skill, as a decimal string in the minor unit of `currency` (cents for USD; "1250" is $12.50, fractional cents possible) — an allocation of each member's daily post-discount, pre-credit metered overage spend (the same cost basis as the organization's spend reporting and the Cost & Usage API, so per-skill figures are directly comparable; spend with no skill attribution — including any member-day without skill invocations — is not represented, so skill rows sum to at most those totals) across the skills the member used. Overage only: usage covered by included seat allowances bills nothing and allocates $0 here — see `attributed_list_price` for the funding-independent usage-value companion. Claude Code, Cowork, and Office Agent spend use request-level skill attribution; claude.ai chat spend is approximated proportionally to skill-invoking messages. An estimate, not a billing number — and the cost of the requests/messages that involved the skill, not the skill's incremental cost (the same request would still have cost something without the skill active). "0" means no overage spend was attributed; null when spend reporting is not enabled for this organization, on `office_agent` product cuts dated before 2026-06-18 (the Office Agent attribution data-start). Addable across days: date-range rollup mode (`starting_date`/`ending_date`) returns the window's sum. With `group_by[]=user_id` each row carries the user's own attributed spend. On `group_by[]` and `filter[]` shapes both amounts can total below the ungrouped value for the same skill over the same date or range: spend attributed to a member–skill pair with no counted usage on that day is excluded from those cuts. + Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. - - `invocation_count: Integer` + maxItems: 100 - Total number of times this skill was invoked on the requested day (the skill analog of plugin `invocation_count`). Unlike `distinct_user_count` — which answers '\# of users' — this is the true '# of uses'. A skill counts as used only when it is explicitly activated — the model (or the user, via the skill's slash command) invokes it, reading its instructions into context as part of that activation. Skills that are merely installed or listed as available, or whose content reaches the context without an activation (preloaded, hook-injected, or read as a plain file), are not counted. Null when invocation reporting is not enabled for this organization. Sum across a date range for total uses in the window — date-range rollup mode (`starting_date`/`ending_date`) returns this sum directly. +- `slack_channel_ids: Array[String]` (query parameter) - - `product: String` + Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. - Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + maxItems: 100 - - `rbac_group_id: String` +- `speeds: Array[:fast | :standard]` (query parameter) - Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. - - `rbac_group_name: String` + maxItems: 100 - Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + - `:fast` - - `share_status: :organization | :private | :public` + - `:standard` - Skill share status (claude.ai only): one of `private`, `organization`, or `public`. Null for skills used only in Claude Code or Office (no per-skill share-status concept) and when share-status reporting is not yet available for the organization. Filterable via `filter[]=share_status:{value}`. +- `user_ids: Array[String]` (query parameter) - - `:organization` + Filter to specific users by tagged user ID. - - `:private` + maxItems: 100 - - `:public` +#### Returns - - `skill_display_name: String` +- `class BetaAnalyticsCostReportTimeBucket` - Human-readable display name for rows whose `skill_name` is an opaque skill id (user/organization skill types and plugin-delivered skills, whose user-defined names usage reports generally withhold). Organization-shared skills and skills delivered by the organization's own plugins (its plugin marketplaces and its library) resolve; plugin skill names are shown without their 'plugin:' prefix. The literal 'unknown' bucket row gets a fixed 'Unknown skill' label. For a member's own skill (private or personal-plugin) it is null, except when the skill's owner used it from Claude Code or Cowork in the requested period: then it shows the name that client reported at the time. Apart from that, the names of members' own skills are not disclosed to analytics-key holders. Also null for Anthropic-provided plugin skills (not resolved), for an organization skill or plugin whose name can no longer be found (for example, one since deleted), when `skill_name` is already a display name, or when display-name resolution is not enabled for this organization. + - `ending_at: Time` - - `user_id: String` + End of the time bucket (exclusive) in RFC 3339 format. - Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + format: date-time -#### Example + - `results: Array[BetaAnalyticsCostBucketedResult]` -```ruby -require "anthropic" + Rows for this time bucket. Empty when the bucket has no data; otherwise a single combined row when `group_by[]` is omitted, or one row per group (subject to the per-bucket group cap described on the `group_by[]` parameter). -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `amount: String` -page = anthropic.beta.organization.analytics.skills.list + Amount (post-discount, pre-credit) in fractional cents. -puts(page) -``` + - `claude_tag_category: BetaAnalyticsClaudeTagCategory` -##### Response (200) + Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. -```json -{ - "data": [ - { - "chat_metrics": { - "distinct_conversation_skill_used_count": 0 - }, - "claude_code_metrics": { - "distinct_session_skill_used_count": 0 - }, - "cowork_metrics": { - "distinct_session_skill_used_count": 0 - }, - "distinct_user_count": 0, - "office_metrics": { - "excel": { - "distinct_session_skill_used_count": 0 - }, - "outlook": { - "distinct_session_skill_used_count": 0 - }, - "powerpoint": { - "distinct_session_skill_used_count": 0 - }, - "word": { - "distinct_session_skill_used_count": 0 - } - }, - "skill_name": "skill_name", - "attributed_list_price": "attributed_list_price", - "chat_cowork_unified_metrics": { - "chat": { - "distinct_conversation_skill_used_count": 0 - }, - "sessions": { - "distinct_session_skill_used_count": 0 - } - }, - "currency": "currency", - "enable_count": 0, - "estimated_overage_spend": "estimated_overage_spend", - "invocation_count": 0, - "product": "product", - "rbac_group_id": "rbac_group_id", - "rbac_group_name": "rbac_group_name", - "share_status": "organization", - "skill_display_name": "skill_display_name", - "user_id": "user_id" - } - ], - "next_page": "next_page" -} -``` + - `:dm` -## Beta › Organization › Analytics › Artifacts + - `:engaged` -### Get Artifact Activity + - `:monitoring` -`beta.organization.analytics.artifacts.list(**kwargs) -> PageCursor` + - `:proactive` -**GET** `/v1/organizations/analytics/artifacts` + - `:scheduled` -Get artifact-creation activity for a given day, broken out by MIME type. + - `claude_tag_user_id: String` -Returns the full (`artifact_type`, `is_shared`) cube for the organization; -`next_page` is null except for grouped queries, which paginate. The cube -can be broken out per product, per member, or per RBAC group via -`group_by[]`, and scoped via `filter[]`. Requires an API key with the -`read:analytics` scope. + Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. -#### Parameters + - `context_window: BetaAnalyticsContextWindow` -- `date: Date` (query parameter) + Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. - UTC date in YYYY-MM-DD format. The day to get artifact activity for. Data is typically available with a 1-day lag (varies by query; the error for a too-recent date names the latest available day) and may be revised by a few percent over the following days. No earlier than 2026-01-01. + - `:"0-200k"` - format: date + - `:"200k-1M"` -- `filter: Array[String]` (query parameter) + - `cost_type: BetaAnalyticsCostType` - Filters as `dimension:value`, e.g. `filter[]=rbac_group_id:{id}`. Repeat the param for OR within a dimension and across dimensions for AND. Supported dimensions on this endpoint: `artifact_type`, `is_shared`, `product`, `rbac_group_id`, `user_id`. Value forms: `artifact_type` is a canonical artifact MIME type (e.g. `text/markdown`) or `other`; `is_shared` is `true` or `false`; `product` is `chat_cowork_unified`, `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts); `rbac_group_id` takes the tagged id (`rbac_group_...`, as emitted in responses and by the spend-limits API) or a bare group UUID, and matches users who held the group at any point during each covered UTC day (time-of-usage attribution); `user_id` takes a tagged user id (`user_...`), as emitted in responses. An unsupported dimension returns 400. At most 100 entries. `chat_cowork_unified` is accepted as a `product` value only on deployments that offer Chat and Cowork unified. + Cost component when `group_by[]=cost_type`; null otherwise (amount is the combined total). - maxItems: 100 + - `:code_execution` -- `group_by: Array[:product | :rbac_group_id | :user_id]` (query parameter) + - `:tokens` - Dimensions to break results out by: `product`, `user_id` and/or `rbac_group_id`. The ungrouped artifact-type cube is finite and returned in full; grouped queries multiply the cube and paginate via `next_page`. `product` takes the values `chat_cowork_unified`, `chat`, `claude_code`, or `cowork` (the surfaces that create artifacts). `rbac_group_id` attributes a user to every group they held at any point during the requested UTC day, so grouped rows are not an exclusive partition. At most 100 entries. + - `:web_search` - maxItems: 100 + - `currency: String` - - `:product` + Currency code for the cost amount. Currently always `"USD"`. - - `:rbac_group_id` + - `inference_geo: :global | :us` - - `:user_id` + Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). -- `limit: Integer` (query parameter) + - `:global` - Maximum rows to return (1-1000, default 100). The ungrouped artifact-type cube is finite and returned in full; `limit` is the page size only when `group_by[]` multiplies the cube. + - `:us` - minimum: 1, maximum: 1000 + - `list_amount: String` -- `page: String` (query parameter) + List-price amount (pre-discount) in fractional cents. - Opaque cursor from a previous response's `next_page` field. Only valid with `group_by[]` — the ungrouped cube is never paginated. + - `model: String` -#### Returns + Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. -- `class BetaAnalyticsArtifactActivity` + - `product: String` - Artifact-creation activity for one (`artifact_type`, `is_shared`) bucket - on a given day. + Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". - Artifacts form a small finite cube — the canonical MIME type (8 values incl. - `other`) crossed with shared-vs-private — so the response is the full set of - non-empty buckets, not a ranked/paginated list. Claude Code and Cowork - artifacts report under `text/html` and are counted from 2026-08-17 - onward; earlier days contain claude.ai chat artifacts only. With - `group_by[]=product` / `user_id` / `rbac_group_id` each row is further - split by the flat group keys and counts are scoped to that cut. + - `rbac_group_id: String` - - `artifact_type: String` + RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. - Canonical artifact MIME type (e.g. `text/markdown`, `application/vnd.ant.react`, `image/svg+xml`), or `other`. Claude Code and Cowork artifacts report as `text/html`. + - `requests: Integer` - - `artifacts_created_count: Integer` + Number of API requests in this row's scope. Null when `group_by` includes `cost_type` or `token_type` (the count has no per-component attribution; read it from the ungrouped response). For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). - Number of artifacts created in this bucket on the requested day + - `slack_channel_id: String` - - `distinct_user_count: Integer` + Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). - Number of distinct users who created artifacts in this bucket on the requested day + - `speed: :fast | :standard` - - `is_shared: bool` + Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. - Whether the artifacts in this bucket have ever been shared (a Claude Code / Cowork artifact is shared once anyone beyond its creator may open it: named members, the whole organization, or anyone with the link). + - `:fast` - - `published_artifacts_created_count: Integer` + - `:standard` - Number of those artifacts that have been published (for Claude Code / Cowork artifacts: open to anyone with the link); never exceeds `artifacts_created_count` + - `token_type: BetaAnalyticsTokenType` - - `product: String` + Token type when `group_by[]=token_type` and `cost_type=tokens`; null otherwise. - Product that produced this row's activity: one of `chat`, `claude_code`, `cowork`, `office_agent`, or `chat_cowork_unified` (Chat and Cowork unified). These are the canonical Cost & Usage product names; an `office_agent` row's per-surface breakdown is in its `office_metrics`. On `/plugins` only `cowork`, `claude_code` and `chat_cowork_unified` occur (the only surfaces with plugin attribution); on `/artifacts` only `chat`, `claude_code`, `cowork` and `chat_cowork_unified` occur (the surfaces that create artifacts); `/apps/chat/projects` does not support the product dimension (a `product` entry in `group_by[]` or `filter[]` there is rejected). Present only when the request grouped by `product`. + - `:"cache_creation.ephemeral_1h_input_tokens"` - - `rbac_group_id: String` + - `:"cache_creation.ephemeral_5m_input_tokens"` - Tagged RBAC group identifier (`rbac_group_...`), matching the spend-limits API spelling. Present only when the request grouped by `rbac_group_id`. + - `:cache_read_input_tokens` - - `rbac_group_name: String` + - `:output_tokens` - Resolved RBAC group display name, alongside `rbac_group_id` when name resolution is available. Null if the group has been deleted or its name could not be resolved; `rbac_group_id` remains the stable key. + - `:uncached_input_tokens` - - `user_id: String` + - `starting_at: Time` - Tagged user identifier (e.g. `user_...`). Present only when the request grouped by `user_id`. + Start of the time bucket (inclusive) in RFC 3339 format. + + format: date-time #### Example @@ -97903,7 +104428,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.artifacts.list(date: "2019-12-27") +page = anthropic.beta.organization.analytics.cost_report.list(starting_at: "2019-12-27T18:11:19.117Z") puts(page) ``` @@ -97914,35 +104439,53 @@ puts(page) { "data": [ { - "artifact_type": "artifact_type", - "artifacts_created_count": 0, - "distinct_user_count": 0, - "is_shared": true, - "published_artifacts_created_count": 0, - "product": "product", - "rbac_group_id": "rbac_group_id", - "rbac_group_name": "rbac_group_name", - "user_id": "user_id" + "ending_at": "2019-12-27T18:11:19.117Z", + "results": [ + { + "amount": "amount", + "claude_tag_category": "dm", + "claude_tag_user_id": "U0123ABCDEF", + "context_window": "0-200k", + "cost_type": "code_execution", + "currency": "USD", + "inference_geo": "global", + "list_amount": "list_amount", + "model": "claude-opus-5-5", + "product": "chat", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "requests": 0, + "slack_channel_id": "C0123ABCDEF", + "speed": "fast", + "token_type": "cache_creation.ephemeral_1h_input_tokens" + } + ], + "starting_at": "2019-12-27T18:11:19.117Z" } ], - "next_page": "next_page" + "data_refreshed_at": "2019-12-27T18:11:19.117Z", + "has_more": true, + "next_page": "next_page", + "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" } ``` -## Beta › Organization › Analytics › Usage Report +## Beta › Organization › Analytics › User Cost Report -### Get Token Usage Over Time +### Get Per-User Cost -`beta.organization.analytics.usage_report.list(**kwargs) -> PageCursor` +`beta.organization.analytics.user_cost_report.list(**kwargs) -> ReportPageCursor` -**GET** `/v1/organizations/analytics/usage_report` +**GET** `/v1/organizations/analytics/user_cost_report` -Get token usage over time across a date range. +Get per-user cost in USD across a date range. -Returns token usage bucketed by minute, hour, or day, optionally broken -down by product, model, context window, inference region, or speed. -Available to organizations on a Claude Enterprise plan. Requires an API -key with the `read:analytics` scope. +Returns one row per user, ranked by spend. Use this to see which users +account for the most cost. Only cost attributable to a seat user is +included; for organization-wide totals including direct API-key and +automation traffic, use the bucketed +`/v1/organizations/analytics/cost_report` endpoint. Available to +organizations on a Claude Enterprise plan. Requires an API key with the +`read:analytics` scope. #### Parameters @@ -97954,7 +104497,7 @@ key with the `read:analytics` scope. - `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) - Time bucket granularity. + Time-bucket granularity. When set, each row's `starting_at` and `ending_at` are populated and one actor may span several rows (one per time bucket with usage). The time bucket counts toward `limit`, so one page can return multiple rows for the same actor. `ending_at` is required when `bucket_width` is set, and with `bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the full `[starting_at, ending_at)` range. - `:"1d"` @@ -98000,9 +104543,13 @@ key with the `read:analytics` scope. format: date-time -- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 6 more]` (query parameter) +- `exclude_deleted_users: bool` (query parameter) - Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values. + If true, omit rows for users who are deleted (`deleted: true`). A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual. + +- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 8 more]` (query parameter) + + Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/cost_report` endpoint. The `product`, `model`, `context_window`, `inference_geo`, and `speed` dimensions — and the time bucket, when `bucket_width` is set — count toward `limit`. `cost_type` and `token_type` do not: `cost_type` returns one row per cost component (tokens, web search, code execution); `token_type` returns one row per token type, each with `cost_type: "tokens"`; combining both returns the per-token-type rows plus the web-search and code-execution rows. A page can therefore contain more rows than `limit` when `cost_type` or `token_type` is requested. maxItems: 100 @@ -98012,6 +104559,8 @@ key with the `read:analytics` scope. - `:context_window` + - `:cost_type` + - `:inference_geo` - `:model` @@ -98024,6 +104573,8 @@ key with the `read:analytics` scope. - `:speed` + - `:token_type` + - `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. @@ -98038,9 +104589,9 @@ key with the `read:analytics` scope. - `limit: Integer` (query parameter) - Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256). + Number of rows per page (1-1000, default 20). One row per actor unless `group_by[]` or `bucket_width` splits an actor across rows; `cost_type`/`token_type` fan-out rows (cost endpoint only) are the exception — they do not count toward this limit, so `data` can exceed it. - minimum: 1 + minimum: 1, maximum: 1000 - `models: Array[String]` (query parameter) @@ -98048,13 +104599,29 @@ key with the `read:analytics` scope. maxItems: 100 +- `order: :asc | :desc` (query parameter) + + Sort direction. Defaults to `desc`. + + - `:asc` + + - `:desc` + +- `order_by: :amount | :list_amount` (query parameter) + + Metric to rank actors by. Defaults to `amount`. + + - `:amount` + + - `:list_amount` + - `page: String` (query parameter) Opaque cursor from a previous response's `next_page` field. - `products: Array[BetaAnalyticsProductFilter]` (query parameter) - Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. + Product surfaces to include. Defaults to all products. maxItems: 100 @@ -98104,122 +104671,142 @@ key with the `read:analytics` scope. #### Returns -- `class BetaAnalyticsUsageReportTimeBucket` +- `class BetaAnalyticsCostUsersItem` - - `ending_at: Time` + - `actor: BetaAnalyticsUserActor` - End of the time bucket (exclusive) in RFC 3339 format. + The user this row's usage or cost is attributed to. Always a `user_actor`. - format: date-time + - `type: :user_actor` - - `results: Array[BetaAnalyticsUsageBucketedResult]` + Actor type. Always `"user_actor"`. - Rows for this time bucket. Empty when the bucket has no data; otherwise a single combined row when `group_by[]` is omitted, or one row per group (subject to the per-bucket group cap described on the `group_by[]` parameter). + - `deleted: bool` - - `cache_creation: BetaCacheCreation` + True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation. - The number of input tokens for cache creation. + - `email_address: String` - - `ephemeral_1h_input_tokens: Integer` + The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`). - The number of input tokens used to create the 1 hour cache entry. + - `name: String` - minimum: 0 + The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null. - - `ephemeral_5m_input_tokens: Integer` + - `user_id: String` - The number of input tokens used to create the 5 minute cache entry. + Tagged user ID. - minimum: 0 + - `amount: String` - - `cache_read_input_tokens: Integer` + Amount (post-discount, pre-credit) in fractional cents (minor units). - The number of input tokens read from the cache. + - `claude_tag_category: BetaAnalyticsClaudeTagCategory` - - `claude_tag_category: BetaAnalyticsClaudeTagCategory` + Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. - Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. + - `:dm` - - `:dm` + - `:engaged` - - `:engaged` + - `:monitoring` - - `:monitoring` + - `:proactive` - - `:proactive` + - `:scheduled` - - `:scheduled` + - `claude_tag_user_id: String` - - `claude_tag_user_id: String` + Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. - Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. + - `context_window: BetaAnalyticsContextWindow` - - `context_window: BetaAnalyticsContextWindow` + Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. - Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. + - `:"0-200k"` - - `:"0-200k"` + - `:"200k-1M"` - - `:"200k-1M"` + - `cost_type: BetaAnalyticsCostType` - - `inference_geo: :global | :us` + Cost component breakdown; null when returning the combined total. - Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). + - `:code_execution` - - `:global` + - `:tokens` - - `:us` + - `:web_search` - - `model: String` + - `currency: String` - Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. + Currency code for the cost amount. Currently always `"USD"`. - - `output_tokens: Integer` + - `ending_at: Time` - The number of output tokens generated. + End of the row's UTC time bucket (exclusive), as an RFC 3339 timestamp; equal to `starting_at` plus one `bucket_width`. Null unless `bucket_width` is set. - - `product: String` + format: date-time - Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". + - `inference_geo: :global | :us` - - `rbac_group_id: String` + Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). - RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. + - `:global` - - `requests: Integer` + - `:us` - Number of API requests in this row's scope. For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). + - `list_amount: String` - - `server_tool_use: BetaAnalyticsServerToolUse` + List-price amount (pre-discount) in fractional cents. - Server-side tool usage metrics. + - `model: String` - - `web_search_requests: Integer` + Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. - The number of web search requests made. + - `product: String` - - `slack_channel_id: String` + Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". - Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). + - `rbac_group_id: String` - - `speed: :fast | :standard` + RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. - Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. + - `requests: Integer` - - `:fast` + Number of API requests in this row's scope. Null when `group_by` includes `cost_type` or `token_type` (the count has no per-component attribution; read it from the ungrouped response). For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). - - `:standard` + - `slack_channel_id: String` - - `uncached_input_tokens: Integer` + Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). - The number of uncached input tokens processed. + - `speed: :fast | :standard` + + Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. + + - `:fast` + + - `:standard` - `starting_at: Time` - Start of the time bucket (inclusive) in RFC 3339 format. + Start of the row's UTC time bucket (inclusive), as an RFC 3339 timestamp. Null unless `bucket_width` is set; without `bucket_width`, each row aggregates the full requested range. format: date-time + - `token_type: BetaAnalyticsTokenType` + + Token type when `cost_type` is `tokens`; null otherwise. + + - `:"cache_creation.ephemeral_1h_input_tokens"` + + - `:"cache_creation.ephemeral_5m_input_tokens"` + + - `:cache_read_input_tokens` + + - `:output_tokens` + + - `:uncached_input_tokens` + #### Example ```ruby @@ -98227,7 +104814,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.usage_report.list(starting_at: "2019-12-27T18:11:19.117Z") +page = anthropic.beta.organization.analytics.user_cost_report.list(starting_at: "2019-12-27T18:11:19.117Z") puts(page) ``` @@ -98238,32 +104825,31 @@ puts(page) { "data": [ { + "actor": { + "deleted": true, + "email": "jane@example.com", + "email_address": "jane@example.com", + "name": "Jane Smith", + "type": "user_actor", + "user_id": "user_01AbCdEfGhIjKlMnOpQrSt" + }, + "amount": "41280.000000", + "claude_tag_category": "dm", + "claude_tag_user_id": "U0123ABCDEF", + "context_window": "0-200k", + "cost_type": "code_execution", + "currency": "USD", "ending_at": "2019-12-27T18:11:19.117Z", - "results": [ - { - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 0, - "claude_tag_category": "dm", - "claude_tag_user_id": "U0123ABCDEF", - "context_window": "0-200k", - "inference_geo": "global", - "model": "claude-opus-5-5", - "output_tokens": 0, - "product": "chat", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "requests": 0, - "server_tool_use": { - "web_search_requests": 10 - }, - "slack_channel_id": "C0123ABCDEF", - "speed": "fast", - "uncached_input_tokens": 0 - } - ], - "starting_at": "2019-12-27T18:11:19.117Z" + "inference_geo": "global", + "list_amount": "51600.000000", + "model": "claude-opus-5-5", + "product": "chat", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "requests": 128, + "slack_channel_id": "C0123ABCDEF", + "speed": "fast", + "starting_at": "2019-12-27T18:11:19.117Z", + "token_type": "cache_creation.ephemeral_1h_input_tokens" } ], "data_refreshed_at": "2019-12-27T18:11:19.117Z", @@ -98273,347 +104859,507 @@ puts(page) } ``` -## Beta › Organization › Analytics › User Usage Report +## Beta › Organization › Spend Limits -### Get Per-User Token Usage +### Set Spend Limit -`beta.organization.analytics.user_usage_report.list(**kwargs) -> PageCursor` +`beta.organization.spend_limits.set(**kwargs) -> BetaSpendLimit` -**GET** `/v1/organizations/analytics/user_usage_report` +**POST** `/v1/organizations/spend_limits` -Get per-user token usage across a date range. +Set a spend limit. -Returns one row per user, ranked by the chosen token metric. Use this to -see which users consume the most tokens. Only usage attributable to a -seat user is included; for organization-wide totals including direct -API-key and automation traffic, use the bucketed -`/v1/organizations/analytics/usage_report` endpoint. Available to -organizations on a Claude Enterprise plan. Requires an API key with the -`read:analytics` scope. +Upsert keyed on (scope, period): setting a limit that already exists +overwrites it in place. A Claude Enterprise organization sets `user` +limits. Its seat-tier, group, and organization-level defaults are configured +in claude.ai. A Claude Console organization sets `organization` and +`workspace` limits, which are monthly and always carry an amount. Setting those +limits is in an early access preview. To request access, contact your +Anthropic account team. #### Parameters -- `starting_at: Time` (query parameter) +- `amount: String` + + Limit amount as a non-negative integer decimal string in the minor unit of the organization's billing currency (cents for USD): "50000" is $500.00. `null` sets an explicit no-limit override for this scope and `period` only — each period resolves independently, so caps for other periods still apply. + +- `scope: BetaSpendLimitUserScope | BetaSpendLimitOrganizationScope | BetaSpendLimitWorkspaceScope` + + What the limit applies to. Claude Enterprise organizations set `user` limits. Claude Console organizations set `organization` and `workspace` limits. Any other combination returns 400. Setting `organization` and `workspace` limits through the API is in an early access preview. To request access, contact your Anthropic account team. + + - `class BetaSpendLimitUserScope` + + Scope selecting a single member of the organization. + + - `type: :user` + + Scope type. Always `user` for this scope. + + - `user_id: String` + + Tagged ID of the member the spend limit applies to. + + - `class BetaSpendLimitOrganizationScope` + + - `type: :organization` + + - `class BetaSpendLimitWorkspaceScope` + + Scope selecting one workspace of a Claude Console organization. + + - `type: :workspace` + + Scope type. Always `workspace` for this scope. + + - `workspace_id: String` + + Tagged ID of the workspace the spend limit applies to. + +- `period: BetaSpendLimitPeriod` + + - `:daily` + + - `:monthly` + + - `:weekly` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` - Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. + - `:"server-side-fallback-2026-07-01"` - format: date-time + - `:"fallback-credit-2026-06-01"` -- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) + - `:"fallback-credit-2026-07-01"` - Time-bucket granularity. When set, each row's `starting_at` and `ending_at` are populated and one actor may span several rows (one per time bucket with usage). The time bucket counts toward `limit`, so one page can return multiple rows for the same actor. `ending_at` is required when `bucket_width` is set, and with `bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the full `[starting_at, ending_at)` range. + - `:"agent-memory-2026-07-22"` - - `:"1d"` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:"1h"` + - `:"compact-2026-01-12"` - - `:"1m"` + - `:"computer-use-2025-11-24"` -- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) + - `:"mcp-tunnels-2026-06-22"` - Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. + - `:"structured-outputs-2025-11-13"` - maxItems: 100 + - `:"task-budgets-2026-03-13"` - - `:dm` + - `:"thinking-display-updates-2026-08-18"` - - `:engaged` + - `:"ce-user-management-2026-07-13"` - - `:monitoring` + - `:"mid-conversation-output-config-2026-07-01"` - - `:proactive` + - `:"thinking-binding-controls-2026-08-01"` - - `:scheduled` + - `:"mid-conversation-system-clear-at-2026-08-21"` -- `claude_tag_user_ids: Array[String]` (query parameter) + - `:"compact-2026-09-04"` - Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. + - `:"inline-tools-2026-09-15"` - maxItems: 100 + - `:"mcp-client-2026-09-15"` -- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) + - `:"ce-plugins-2026-09-01"` - Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. + - `:"spend-limit-reads-2026-09-26"` - maxItems: 100 + - `:"telemetry-destinations-2026-08-11"` - - `:"0-200k"` + - `:"webhooks-2026-10-07"` - - `:"200k-1M"` +#### Returns -- `ending_at: Time` (query parameter) +- `class BetaSpendLimit` - End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. + A configured spend limit: a cap on metered spend for one scope and period. - format: date-time + - `type: :spend_limit` -- `exclude_deleted_users: bool` (query parameter) + Object type. Always `spend_limit`. - If true, omit rows for users who are deleted (`deleted: true`). A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual. + - `id: String` -- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 6 more]` (query parameter) + Unique tagged ID of the spend limit (`spl_...`). - Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/usage_report` endpoint. `limit` bounds (actor × time bucket × dimension) rows — with dimensions or `bucket_width` present, one actor may span several rows. + - `amount: String` - maxItems: 100 + Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. - - `:claude_tag_category` + - `created_at: Time` - - `:claude_tag_user_id` + RFC 3339 datetime at which the spend limit was created. - - `:context_window` + format: date-time - - `:inference_geo` + - `currency: String` - - `:model` + ISO 4217 code of the organization's billing currency; the unit for `amount`. - - `:product` + - `is_enabled: bool` - - `:rbac_group_id` + Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. - - `:slack_channel_id` + - `period: BetaSpendLimitPeriod` - - `:speed` + Length of the window the limit resets over. `amount` caps spend within each period. -- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) + - `:daily` - Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. + - `:monthly` - maxItems: 100 + - `:weekly` - - `:global` + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `:not_available` + What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. - - `:us` + - `class BetaSpendLimitUserScope` -- `limit: Integer` (query parameter) + Scope selecting a single member of the organization. - Number of rows per page (1-1000, default 20). One row per actor unless `group_by[]` or `bucket_width` splits an actor across rows; `cost_type`/`token_type` fan-out rows (cost endpoint only) are the exception — they do not count toward this limit, so `data` can exceed it. + - `type: :user` - minimum: 1, maximum: 1000 + Scope type. Always `user` for this scope. -- `models: Array[String]` (query parameter) + - `user_id: String` - Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. + Tagged ID of the member the spend limit applies to. - maxItems: 100 + - `class BetaSpendLimitSeatTierScope` -- `order: :asc | :desc` (query parameter) + - `type: :seat_tier` - Sort direction. Defaults to `desc`. + - `seat_tier: String` - - `:asc` + - `class BetaSpendLimitRBACGroupScope` - - `:desc` + - `type: :rbac_group` -- `order_by: :output_tokens | :requests | :total_tokens | :uncached_input_tokens` (query parameter) + - `rbac_group_id: String` - Metric to rank actors by. Defaults to `total_tokens`. + - `class BetaSpendLimitOrganizationServiceScope` - - `:output_tokens` + - `type: :organization_service` - - `:requests` + - `service: String` - - `:total_tokens` + - `class BetaSpendLimitOrganizationScope` - - `:uncached_input_tokens` + - `type: :organization` -- `page: String` (query parameter) + - `class BetaSpendLimitWorkspaceScope` - Opaque cursor from a previous response's `next_page` field. + Scope selecting one workspace of a Claude Console organization. -- `products: Array[BetaAnalyticsProductFilter]` (query parameter) + - `type: :workspace` - Product surfaces to include. Defaults to all products. + Scope type. Always `workspace` for this scope. - maxItems: 100 + - `workspace_id: String` - - `:chat` + Tagged ID of the workspace the spend limit applies to. - - `:chat_cowork_unified` + - `class BetaSpendLimitUsageTierScope` - - `:"claude-tag"` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:claude_code` + - `type: :usage_tier` - - `:claude_design` + Scope type. Always `usage_tier` for this scope. - - `:claude_in_chrome` + - `updated_at: Time` - - `:cowork` + RFC 3339 datetime at which the spend limit was last modified. - - `:office_agent` + format: date-time -- `rbac_group_ids: Array[String]` (query parameter) +#### Example - Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. +```ruby +require "anthropic" - maxItems: 100 +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -- `slack_channel_ids: Array[String]` (query parameter) +beta_spend_limit = anthropic.beta.organization.spend_limits.set( + amount: "50000", + scope: {type: :user, user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q"} +) - Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. +puts(beta_spend_limit) +``` - maxItems: 100 +##### Response (200) -- `speeds: Array[:fast | :standard]` (query parameter) +```json +{ + "id": "id", + "amount": "50000", + "created_at": "2019-12-27T18:11:19.117Z", + "currency": "USD", + "is_enabled": true, + "period": "daily", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "type": "spend_limit", + "updated_at": "2019-12-27T18:11:19.117Z" +} +``` - Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. +### Get Spend Limit - maxItems: 100 +`beta.organization.spend_limits.retrieve(spend_limit_id) -> BetaSpendLimit` - - `:fast` +**GET** `/v1/organizations/spend_limits/{spend_limit_id}` - - `:standard` +Retrieve a spend limit by ID. -- `user_ids: Array[String]` (query parameter) +#### Parameters - Filter to specific users by tagged user ID. +- `spend_limit_id: String` (path parameter) - maxItems: 100 + ID of the Spend Limit. #### Returns -- `class BetaAnalyticsUsageUsersItem` +- `class BetaSpendLimit` - - `actor: BetaAnalyticsUserActor` + A configured spend limit: a cap on metered spend for one scope and period. - The user this row's usage or cost is attributed to. Always a `user_actor`. + - `type: :spend_limit` - - `type: :user_actor` + Object type. Always `spend_limit`. - Actor type. Always `"user_actor"`. + - `id: String` - - `deleted: bool` + Unique tagged ID of the spend limit (`spl_...`). - True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation. + - `amount: String` - - `email_address: String` + Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. - The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`). + - `created_at: Time` - - `name: String` + RFC 3339 datetime at which the spend limit was created. - The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null. + format: date-time - - `user_id: String` + - `currency: String` - Tagged user ID. + ISO 4217 code of the organization's billing currency; the unit for `amount`. - - `cache_creation: BetaCacheCreation` + - `is_enabled: bool` - The number of input tokens for cache creation. + Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. - - `ephemeral_1h_input_tokens: Integer` + - `period: BetaSpendLimitPeriod` - The number of input tokens used to create the 1 hour cache entry. + Length of the window the limit resets over. `amount` caps spend within each period. - minimum: 0 + - `:daily` - - `ephemeral_5m_input_tokens: Integer` + - `:monthly` - The number of input tokens used to create the 5 minute cache entry. + - `:weekly` - minimum: 0 + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `cache_read_input_tokens: Integer` + What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. - The number of input tokens read from the cache. + - `class BetaSpendLimitUserScope` - - `claude_tag_category: BetaAnalyticsClaudeTagCategory` + Scope selecting a single member of the organization. - Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. + - `type: :user` - - `:dm` + Scope type. Always `user` for this scope. - - `:engaged` + - `user_id: String` - - `:monitoring` + Tagged ID of the member the spend limit applies to. - - `:proactive` + - `class BetaSpendLimitSeatTierScope` - - `:scheduled` + - `type: :seat_tier` - - `claude_tag_user_id: String` + - `seat_tier: String` - Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. + - `class BetaSpendLimitRBACGroupScope` - - `context_window: BetaAnalyticsContextWindow` + - `type: :rbac_group` - Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. + - `rbac_group_id: String` - - `:"0-200k"` + - `class BetaSpendLimitOrganizationServiceScope` - - `:"200k-1M"` + - `type: :organization_service` - - `ending_at: Time` + - `service: String` - End of the row's UTC time bucket (exclusive), as an RFC 3339 timestamp; equal to `starting_at` plus one `bucket_width`. Null unless `bucket_width` is set. + - `class BetaSpendLimitOrganizationScope` - format: date-time + - `type: :organization` - - `inference_geo: :global | :us` + - `class BetaSpendLimitWorkspaceScope` - Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). + Scope selecting one workspace of a Claude Console organization. - - `:global` + - `type: :workspace` - - `:us` + Scope type. Always `workspace` for this scope. - - `model: String` + - `workspace_id: String` - Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. + Tagged ID of the workspace the spend limit applies to. - - `output_tokens: Integer` + - `class BetaSpendLimitUsageTierScope` - The number of output tokens generated. + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `product: String` + - `type: :usage_tier` - Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". + Scope type. Always `usage_tier` for this scope. - - `rbac_group_id: String` + - `updated_at: Time` - RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. + RFC 3339 datetime at which the spend limit was last modified. - - `requests: Integer` + format: date-time - Number of API requests in this row's scope. For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). +#### Example - - `server_tool_use: BetaAnalyticsServerToolUse` +```ruby +require "anthropic" - Server-side tool usage metrics. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `web_search_requests: Integer` +beta_spend_limit = anthropic.beta.organization.spend_limits.retrieve("spend_limit_id") - The number of web search requests made. +puts(beta_spend_limit) +``` - - `slack_channel_id: String` +##### Response (200) - Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). +```json +{ + "id": "id", + "amount": "50000", + "created_at": "2019-12-27T18:11:19.117Z", + "currency": "USD", + "is_enabled": true, + "period": "daily", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "type": "spend_limit", + "updated_at": "2019-12-27T18:11:19.117Z" +} +``` - - `speed: :fast | :standard` +### Delete Spend Limit - Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. +`beta.organization.spend_limits.delete(spend_limit_id) -> SpendLimitDeleteResponse` - - `:fast` +**DELETE** `/v1/organizations/spend_limits/{spend_limit_id}` - - `:standard` +Delete a spend limit. - - `starting_at: Time` +For a Claude Enterprise organization, this deletes a per-user override, and +the member falls back to any inherited spend limit at that period. Its +seat-tier, group, and organization-level rows cannot be deleted via this +endpoint. A Claude Console organization deletes its organization and +workspace limits, but not its `usage_tier` limit. Deleting organization and +workspace limits through the API is in an early access preview. - Start of the row's UTC time bucket (inclusive), as an RFC 3339 timestamp. Null unless `bucket_width` is set; without `bucket_width`, each row aggregates the full requested range. +#### Parameters - format: date-time +- `spend_limit_id: String` (path parameter) - - `total_tokens: Integer` + ID of the Spend Limit. - Total token count across all token types. This is the value the default `order_by` (`total_tokens`) sorts on. +#### Returns - - `uncached_input_tokens: Integer` +- `class SpendLimitDeleteResponse` - The number of uncached input tokens processed. + - `type: :spend_limit_deleted` + + - `id: String` #### Example @@ -98622,737 +105368,797 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.user_usage_report.list(starting_at: "2019-12-27T18:11:19.117Z") +spend_limit = anthropic.beta.organization.spend_limits.delete("spend_limit_id") -puts(page) +puts(spend_limit) ``` ##### Response (200) ```json { - "data": [ - { - "actor": { - "deleted": true, - "email": "jane@example.com", - "email_address": "jane@example.com", - "name": "Jane Smith", - "type": "user_actor", - "user_id": "user_01AbCdEfGhIjKlMnOpQrSt" - }, - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_read_input_tokens": 3200000, - "claude_tag_category": "dm", - "claude_tag_user_id": "U0123ABCDEF", - "context_window": "0-200k", - "ending_at": "2019-12-27T18:11:19.117Z", - "inference_geo": "global", - "model": "claude-opus-5-5", - "output_tokens": 891000, - "product": "chat", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "requests": 128, - "server_tool_use": { - "web_search_requests": 10 - }, - "slack_channel_id": "C0123ABCDEF", - "speed": "fast", - "starting_at": "2019-12-27T18:11:19.117Z", - "total_tokens": 5377000, - "uncached_input_tokens": 1284500 - } - ], - "data_refreshed_at": "2019-12-27T18:11:19.117Z", - "has_more": true, - "next_page": "next_page", - "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" + "id": "id", + "type": "spend_limit_deleted" } ``` -## Beta › Organization › Analytics › Cost Report - -### Get Cost Over Time +### List Spend Limits -`beta.organization.analytics.cost_report.list(**kwargs) -> PageCursor` +`beta.organization.spend_limits.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/analytics/cost_report` +**GET** `/v1/organizations/spend_limits` -Get cost in USD over time across a date range. +List the organization's spend limits. -Returns cost bucketed by minute, hour, or day, optionally broken down by -product, model, context window, inference region, speed, cost type, or -token type. Available to organizations on a Claude Enterprise plan. -Requires an API key with the `read:analytics` scope. +Limits are grouped by scope type, in the order `organization`, `seat_tier`, +`rbac_group`, `organization_service`, `user`; within a type they come in a +fixed order that is not creation order. Supported for Claude Enterprise +organizations only, not for Claude Console organizations. #### Parameters -- `starting_at: Time` (query parameter) +- `limit: Integer` (query parameter) - Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. + Maximum number of limits per page. Defaults to `20`. - format: date-time + minimum: 1, maximum: 1000 -- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) +- `page: String` (query parameter) - Time bucket granularity. + Opaque cursor from a previous response's `next_page` field. - - `:"1d"` +- `scope_type: Array[:organization | :organization_service | :rbac_group | 3 more]` (query parameter) - - `:"1h"` + Return only limits with these scope types. Omit for all. - - `:"1m"` + maxItems: 100 -- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) + - `:organization` - Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. + - `:organization_service` - maxItems: 100 + - `:rbac_group` - - `:dm` + - `:seat_tier` - - `:engaged` + - `:user` + + - `:workspace` + +- `betas: Array[AnthropicBeta]` (header parameter) + + This endpoint is in beta: requests must send `spend-limit-reads-2026-09-26` in this header. + + - `String = String` + + - `:"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"` - - `:monitoring` + - `:"user-profiles-2026-09-04"` - - `:proactive` + - `:"advisor-tool-2026-03-01"` - - `:scheduled` + - `:"managed-agents-2026-04-01"` -- `claude_tag_user_ids: Array[String]` (query parameter) + - `:"cache-diagnosis-2026-04-07"` - Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. + - `:"dreaming-2026-04-21"` - maxItems: 100 + - `:"thinking-token-count-2026-05-13"` -- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) + - `:"server-side-fallback-2026-06-01"` - Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. + - `:"server-side-fallback-2026-07-01"` - maxItems: 100 + - `:"fallback-credit-2026-06-01"` - - `:"0-200k"` + - `:"fallback-credit-2026-07-01"` - - `:"200k-1M"` + - `:"agent-memory-2026-07-22"` -- `ending_at: Time` (query parameter) + - `:"mid-conversation-tool-changes-2026-07-01"` - End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. + - `:"compact-2026-01-12"` - format: date-time + - `:"computer-use-2025-11-24"` -- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 8 more]` (query parameter) + - `:"mcp-tunnels-2026-06-22"` - Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values. + - `:"structured-outputs-2025-11-13"` - maxItems: 100 + - `:"task-budgets-2026-03-13"` - - `:claude_tag_category` + - `:"thinking-display-updates-2026-08-18"` - - `:claude_tag_user_id` + - `:"ce-user-management-2026-07-13"` - - `:context_window` + - `:"mid-conversation-output-config-2026-07-01"` - - `:cost_type` + - `:"thinking-binding-controls-2026-08-01"` - - `:inference_geo` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `:model` + - `:"compact-2026-09-04"` - - `:product` + - `:"inline-tools-2026-09-15"` - - `:rbac_group_id` + - `:"mcp-client-2026-09-15"` - - `:slack_channel_id` + - `:"ce-plugins-2026-09-01"` - - `:speed` + - `:"spend-limit-reads-2026-09-26"` - - `:token_type` + - `:"telemetry-destinations-2026-08-11"` -- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) + - `:"webhooks-2026-10-07"` - Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. +#### Returns - maxItems: 100 +- `class BetaSpendLimit` - - `:global` + A configured spend limit: a cap on metered spend for one scope and period. - - `:not_available` + - `type: :spend_limit` - - `:us` + Object type. Always `spend_limit`. -- `limit: Integer` (query parameter) + - `id: String` - Maximum number of time buckets per page. Defaults and caps vary by `bucket_width` (`1d`: default 7, max 31; `1h`: default 24, max 168; `1m`: default 60, max 256). + Unique tagged ID of the spend limit (`spl_...`). - minimum: 1 + - `amount: String` -- `models: Array[String]` (query parameter) + Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. - Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. + - `created_at: Time` - maxItems: 100 + RFC 3339 datetime at which the spend limit was created. -- `page: String` (query parameter) + format: date-time - Opaque cursor from a previous response's `next_page` field. + - `currency: String` -- `products: Array[BetaAnalyticsProductFilter]` (query parameter) + ISO 4217 code of the organization's billing currency; the unit for `amount`. - Product surfaces to include. Defaults to all products. Use `group_by[]=product` to break out per-product values. + - `is_enabled: bool` - maxItems: 100 + Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. - - `:chat` + - `period: BetaSpendLimitPeriod` - - `:chat_cowork_unified` + Length of the window the limit resets over. `amount` caps spend within each period. - - `:"claude-tag"` + - `:daily` - - `:claude_code` + - `:monthly` - - `:claude_design` + - `:weekly` - - `:claude_in_chrome` + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `:cowork` + What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. - - `:office_agent` + - `class BetaSpendLimitUserScope` -- `rbac_group_ids: Array[String]` (query parameter) + Scope selecting a single member of the organization. - Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. + - `type: :user` - maxItems: 100 + Scope type. Always `user` for this scope. -- `slack_channel_ids: Array[String]` (query parameter) + - `user_id: String` - Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. + Tagged ID of the member the spend limit applies to. - maxItems: 100 + - `class BetaSpendLimitSeatTierScope` -- `speeds: Array[:fast | :standard]` (query parameter) + - `type: :seat_tier` - Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. + - `seat_tier: String` - maxItems: 100 + - `class BetaSpendLimitRBACGroupScope` - - `:fast` + - `type: :rbac_group` - - `:standard` + - `rbac_group_id: String` -- `user_ids: Array[String]` (query parameter) + - `class BetaSpendLimitOrganizationServiceScope` - Filter to specific users by tagged user ID. + - `type: :organization_service` - maxItems: 100 + - `service: String` -#### Returns + - `class BetaSpendLimitOrganizationScope` -- `class BetaAnalyticsCostReportTimeBucket` + - `type: :organization` - - `ending_at: Time` + - `class BetaSpendLimitWorkspaceScope` - End of the time bucket (exclusive) in RFC 3339 format. + Scope selecting one workspace of a Claude Console organization. - format: date-time + - `type: :workspace` - - `results: Array[BetaAnalyticsCostBucketedResult]` + Scope type. Always `workspace` for this scope. - Rows for this time bucket. Empty when the bucket has no data; otherwise a single combined row when `group_by[]` is omitted, or one row per group (subject to the per-bucket group cap described on the `group_by[]` parameter). + - `workspace_id: String` - - `amount: String` + Tagged ID of the workspace the spend limit applies to. - Amount (post-discount, pre-credit) in fractional cents. + - `class BetaSpendLimitUsageTierScope` - - `claude_tag_category: BetaAnalyticsClaudeTagCategory` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. + - `type: :usage_tier` - - `:dm` + Scope type. Always `usage_tier` for this scope. - - `:engaged` + - `updated_at: Time` - - `:monitoring` + RFC 3339 datetime at which the spend limit was last modified. - - `:proactive` + format: date-time - - `:scheduled` +#### Example - - `claude_tag_user_id: String` +```ruby +require "anthropic" - Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `context_window: BetaAnalyticsContextWindow` +page = anthropic.beta.organization.spend_limits.list - Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. +puts(page) +``` - - `:"0-200k"` +##### Response (200) - - `:"200k-1M"` +```json +{ + "data": [ + { + "id": "id", + "amount": "50000", + "created_at": "2019-12-27T18:11:19.117Z", + "currency": "USD", + "is_enabled": true, + "period": "daily", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "type": "spend_limit", + "updated_at": "2019-12-27T18:11:19.117Z" + } + ], + "next_page": "next_page" +} +``` - - `cost_type: BetaAnalyticsCostType` +## Beta › Organization › Spend Limits › Effective - Cost component when `group_by[]=cost_type`; null otherwise (amount is the combined total). +### List Effective Spend Limits - - `:code_execution` +`beta.organization.spend_limits.effective.list(**kwargs) -> PageCursor` - - `:tokens` +**GET** `/v1/organizations/spend_limits/effective` - - `:web_search` +List each member's effective spend limit and period-to-date spend. - - `currency: String` +Returns one row per (member, period) the member resolves a spend limit +for, with the `source` scope the spend limit was inherited from. +Paginates by member, so a member's periods never split across pages. +Supported for Claude Enterprise organizations only, not for Claude Console +organizations. - Currency code for the cost amount. Currently always `"USD"`. +#### Parameters - - `inference_geo: :global | :us` +- `limit: Integer` (query parameter) - Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). + Maximum number of members per page. A member's period rows never split across pages, so a page may carry more rows than this. Defaults to `20`. - - `:global` + minimum: 1, maximum: 1000 - - `:us` +- `page: String` (query parameter) - - `list_amount: String` + Opaque cursor from a previous response's `next_page` field. - List-price amount (pre-discount) in fractional cents. +- `period: Array[:daily | :monthly | :weekly]` (query parameter) - - `model: String` + Restrict the report to these limit periods. Omit to return one row per period each member resolves a spend limit for. - Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. + maxItems: 3 - - `product: String` + - `:daily` - Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". + - `:monthly` - - `rbac_group_id: String` + - `:weekly` - RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. +- `user_ids: Array[String]` (query parameter) - - `requests: Integer` + Restrict the report to these members, by tagged user ID (`user_...`). At most 100 entries. - Number of API requests in this row's scope. Null when `group_by` includes `cost_type` or `token_type` (the count has no per-component attribution; read it from the ungrouped response). For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). + maxItems: 100 - - `slack_channel_id: String` +#### Returns - Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). +- `class BetaSpendSummary` - - `speed: :fast | :standard` + Per-member effective-limit report row (`GET /spend_limits/effective`). - Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:fast` + - `class BetaSpendLimitUserActor` - - `:standard` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `token_type: BetaAnalyticsTokenType` + - `type: :user_actor` - Token type when `group_by[]=token_type` and `cost_type=tokens`; null otherwise. + Actor type. Always `user_actor`. - - `:"cache_creation.ephemeral_1h_input_tokens"` + - `deleted: bool` - - `:"cache_creation.ephemeral_5m_input_tokens"` + True only when the underlying account has been deleted. - - `:cache_read_input_tokens` + - `email_address: String` - - `:output_tokens` + The user's email address. Null when the account is unavailable or has been deleted. - - `:uncached_input_tokens` + - `name: String` - - `starting_at: Time` + The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - Start of the time bucket (inclusive) in RFC 3339 format. + - `user_id: String` - format: date-time + Tagged ID of the user. -#### Example + - `class BetaSpendLimitScopedAPIKeyActor` -```ruby -require "anthropic" + A scoped Admin API key acting on behalf of the organization. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :scoped_api_key_actor` -page = anthropic.beta.organization.analytics.cost_report.list(starting_at: "2019-12-27T18:11:19.117Z") + - `scoped_api_key_id: String` -puts(page) -``` + - `amount: String` -##### Response (200) + Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. -```json -{ - "data": [ - { - "ending_at": "2019-12-27T18:11:19.117Z", - "results": [ - { - "amount": "amount", - "claude_tag_category": "dm", - "claude_tag_user_id": "U0123ABCDEF", - "context_window": "0-200k", - "cost_type": "code_execution", - "currency": "USD", - "inference_geo": "global", - "list_amount": "list_amount", - "model": "claude-opus-5-5", - "product": "chat", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "requests": 0, - "slack_channel_id": "C0123ABCDEF", - "speed": "fast", - "token_type": "cache_creation.ephemeral_1h_input_tokens" - } - ], - "starting_at": "2019-12-27T18:11:19.117Z" - } - ], - "data_refreshed_at": "2019-12-27T18:11:19.117Z", - "has_more": true, - "next_page": "next_page", - "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" -} -``` + - `currency: String` -## Beta › Organization › Analytics › User Cost Report + ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. -### Get Per-User Cost + - `period: BetaSpendLimitPeriod` -`beta.organization.analytics.user_cost_report.list(**kwargs) -> PageCursor` + Period this row's effective limit and spend are reported for. -**GET** `/v1/organizations/analytics/user_cost_report` + - `:daily` -Get per-user cost in USD across a date range. + - `:monthly` -Returns one row per user, ranked by spend. Use this to see which users -account for the most cost. Only cost attributable to a seat user is -included; for organization-wide totals including direct API-key and -automation traffic, use the bucketed -`/v1/organizations/analytics/cost_report` endpoint. Available to -organizations on a Claude Enterprise plan. Requires an API key with the -`read:analytics` scope. + - `:weekly` -#### Parameters + - `period_to_date_spend: String` -- `starting_at: Time` (query parameter) + The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. - Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z. + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - format: date-time + - `class BetaSpendLimitUserScope` -- `bucket_width: :"1d" | :"1h" | :"1m"` (query parameter) + Scope selecting a single member of the organization. - Time-bucket granularity. When set, each row's `starting_at` and `ending_at` are populated and one actor may span several rows (one per time bucket with usage). The time bucket counts toward `limit`, so one page can return multiple rows for the same actor. `ending_at` is required when `bucket_width` is set, and with `bucket_width="1m"` the range may span at most 24 hours. When omitted, each row aggregates the full `[starting_at, ending_at)` range. + - `type: :user` - - `:"1d"` + Scope type. Always `user` for this scope. - - `:"1h"` + - `user_id: String` - - `:"1m"` + Tagged ID of the member the spend limit applies to. -- `claude_tag_categories: Array[BetaAnalyticsClaudeTagCategory]` (query parameter) + - `class BetaSpendLimitSeatTierScope` - Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values. + - `type: :seat_tier` - maxItems: 100 + - `seat_tier: String` - - `:dm` + - `class BetaSpendLimitRBACGroupScope` - - `:engaged` + - `type: :rbac_group` - - `:monitoring` + - `rbac_group_id: String` - - `:proactive` + - `class BetaSpendLimitOrganizationServiceScope` - - `:scheduled` + - `type: :organization_service` -- `claude_tag_user_ids: Array[String]` (query parameter) + - `service: String` - Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example `U0123ABCDEF`), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use `group_by[]=claude_tag_user_id` to break out per-user values. + - `class BetaSpendLimitOrganizationScope` - maxItems: 100 + - `type: :organization` -- `context_windows: Array[BetaAnalyticsContextWindow]` (query parameter) + - `class BetaSpendLimitWorkspaceScope` - Filter to specific context-window pricing tiers. Use `group_by[]=context_window` to break out per-tier values. + Scope selecting one workspace of a Claude Console organization. - maxItems: 100 + - `type: :workspace` - - `:"0-200k"` + Scope type. Always `workspace` for this scope. - - `:"200k-1M"` + - `workspace_id: String` -- `ending_at: Time` (query parameter) + Tagged ID of the workspace the spend limit applies to. - End of range, exclusive. When omitted, defaults to the earlier of now and `starting_at` + 31 days. The range may span at most 31 days. + - `class BetaSpendLimitUsageTierScope` - format: date-time + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. -- `exclude_deleted_users: bool` (query parameter) + - `type: :usage_tier` - If true, omit rows for users who are deleted (`deleted: true`). A page may contain fewer than `limit` rows; use `has_more` and `next_page` to paginate as usual. + Scope type. Always `usage_tier` for this scope. -- `group_by: Array[:claude_tag_category | :claude_tag_user_id | :context_window | 8 more]` (query parameter) + - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - Break each actor's row out by the given dimensions. Accepts the same values as the bucketed `/cost_report` endpoint. The `product`, `model`, `context_window`, `inference_geo`, and `speed` dimensions — and the time bucket, when `bucket_width` is set — count toward `limit`. `cost_type` and `token_type` do not: `cost_type` returns one row per cost component (tokens, web search, code execution); `token_type` returns one row per token type, each with `cost_type: "tokens"`; combining both returns the per-token-type rows plus the web-search and code-execution rows. A page can therefore contain more rows than `limit` when `cost_type` or `token_type` is requested. + - `class BetaSpendLimitUserScope` - maxItems: 100 + Scope selecting a single member of the organization. - - `:claude_tag_category` + - `class BetaSpendLimitSeatTierScope` - - `:claude_tag_user_id` + - `class BetaSpendLimitRBACGroupScope` - - `:context_window` + - `class BetaSpendLimitOrganizationServiceScope` - - `:cost_type` + - `class BetaSpendLimitOrganizationScope` - - `:inference_geo` + - `class BetaSpendLimitWorkspaceScope` - - `:model` + Scope selecting one workspace of a Claude Console organization. - - `:product` + - `class BetaSpendLimitUsageTierScope` - - `:rbac_group_id` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:slack_channel_id` + - `spend_limit_id: String` - - `:speed` +#### Example - - `:token_type` +```ruby +require "anthropic" -- `inference_geos: Array[BetaAnalyticsInferenceGeoFilter]` (query parameter) +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - Filter to specific inference regions. `not_available` matches rows where the region is unset. Use `group_by[]=inference_geo` to break out per-region values. +page = anthropic.beta.organization.spend_limits.effective.list - maxItems: 100 +puts(page) +``` - - `:global` +##### Response (200) - - `:not_available` +```json +{ + "data": [ + { + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "amount": "50000", + "currency": "USD", + "period": "daily", + "period_to_date_spend": "12050.5", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "source": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit_id": "spend_limit_id" + } + ], + "next_page": "next_page" +} +``` - - `:us` +## Beta › Organization › Spend Limits › Increase Requests -- `limit: Integer` (query parameter) +### List Spend Limit Increase Requests - Number of rows per page (1-1000, default 20). One row per actor unless `group_by[]` or `bucket_width` splits an actor across rows; `cost_type`/`token_type` fan-out rows (cost endpoint only) are the exception — they do not count toward this limit, so `data` can exceed it. +`beta.organization.spend_limits.increase_requests.list(**kwargs) -> PageCursor` - minimum: 1, maximum: 1000 +**GET** `/v1/organizations/spend_limit_increase_requests` -- `models: Array[String]` (query parameter) +List spend limit increase requests, most recent first. - Models to include. Defaults to all models. Use `group_by[]=model` to break out per-model values. +Pending requests include a live `spend_summary` for the requester. +Requests whose requester is no longer a member are excluded. - maxItems: 100 +#### Parameters -- `order: :asc | :desc` (query parameter) +- `actor_ids: Array[String]` (query parameter) - Sort direction. Defaults to `desc`. + Filter by requester, as `user_...` tagged IDs. - - `:asc` +- `limit: Integer` (query parameter) - - `:desc` + minimum: 1, maximum: 1000 -- `order_by: :amount | :list_amount` (query parameter) +- `page: String` (query parameter) - Metric to rank actors by. Defaults to `amount`. + Opaque cursor from a previous response's `next_page`. - - `:amount` +- `status: Array[BetaSpendLimitIncreaseRequestStatus]` (query parameter) - - `:list_amount` + Filter by status. Omit to return all. -- `page: String` (query parameter) + - `:approved` - Opaque cursor from a previous response's `next_page` field. + - `:denied` -- `products: Array[BetaAnalyticsProductFilter]` (query parameter) + - `:pending` - Product surfaces to include. Defaults to all products. +#### Returns - maxItems: 100 +- `class BetaSpendLimitIncreaseRequest` - - `:chat` + - `type: :spend_limit_increase_request` - - `:chat_cowork_unified` + - `id: String` - - `:"claude-tag"` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:claude_code` + - `class BetaSpendLimitUserActor` - - `:claude_design` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `:claude_in_chrome` + - `type: :user_actor` - - `:cowork` + Actor type. Always `user_actor`. - - `:office_agent` + - `deleted: bool` -- `rbac_group_ids: Array[String]` (query parameter) + True only when the underlying account has been deleted. - Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (`rbac_group_...`) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches. + - `email_address: String` - maxItems: 100 + The user's email address. Null when the account is unavailable or has been deleted. -- `slack_channel_ids: Array[String]` (query parameter) + - `name: String` - Filter to usage originating from specific Slack channels. Use `group_by[]=slack_channel_id` to break out per-channel values. + The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - maxItems: 100 + - `user_id: String` -- `speeds: Array[:fast | :standard]` (query parameter) + Tagged ID of the user. - Filter to fast or standard inference mode. Use `group_by[]=speed` to break out per-mode values. + - `class BetaSpendLimitScopedAPIKeyActor` - maxItems: 100 + A scoped Admin API key acting on behalf of the organization. - - `:fast` + - `type: :scoped_api_key_actor` - - `:standard` + - `scoped_api_key_id: String` -- `user_ids: Array[String]` (query parameter) + - `created_at: Time` - Filter to specific users by tagged user ID. + format: date-time - maxItems: 100 + - `period: BetaSpendLimitPeriod` -#### Returns + - `:daily` -- `class BetaAnalyticsCostUsersItem` + - `:monthly` - - `actor: BetaAnalyticsUserActor` + - `:weekly` - The user this row's usage or cost is attributed to. Always a `user_actor`. + - `resolved_at: Time` - - `type: :user_actor` + format: date-time - Actor type. Always `"user_actor"`. + - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `deleted: bool` + - `class BetaSpendLimitUserActor` - True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation. + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `email_address: String` + - `class BetaSpendLimitScopedAPIKeyActor` - The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`). + A scoped Admin API key acting on behalf of the organization. - - `name: String` + - `spend_summary: BetaSpendSummary` - The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"` for usage by Anthropic's security-patching service) or null. + Per-member effective-limit report row (`GET /spend_limits/effective`). - - `user_id: String` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - Tagged user ID. + - `class BetaSpendLimitUserActor` - - `amount: String` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - Amount (post-discount, pre-credit) in fractional cents (minor units). + - `class BetaSpendLimitScopedAPIKeyActor` - - `claude_tag_category: BetaAnalyticsClaudeTagCategory` + A scoped Admin API key acting on behalf of the organization. - Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time. + - `amount: String` - - `:dm` + Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. - - `:engaged` + - `currency: String` - - `:monitoring` + ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. - - `:proactive` + - `period: BetaSpendLimitPeriod` - - `:scheduled` + Period this row's effective limit and spend are reported for. - - `claude_tag_user_id: String` + - `period_to_date_spend: String` - Slack user ID (for example `U0123ABCDEF`) of the member the Claude Tag (Claude in Slack) usage is attributed to, not a claude.ai user ID. Populated only when `claude_tag_user_id` is in `group_by[]`; null for usage that is not Claude Tag and for Claude Tag usage that is not attributed to a single user (for example `monitoring`, and `proactive` usage Claude initiated), so per-user rows can sum to less than the Claude Tag total. Cannot be combined with `group_by[]=rbac_group_id` or the `rbac_group_ids[]` filter. + The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. - - `context_window: BetaAnalyticsContextWindow` + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - Context-window pricing tier of the usage or cost. Null unless `context_window` is in `group_by[]`; it can also be null on grouped rows with no context-window tier, such as code execution. + - `class BetaSpendLimitUserScope` - - `:"0-200k"` + Scope selecting a single member of the organization. - - `:"200k-1M"` + - `type: :user` - - `cost_type: BetaAnalyticsCostType` + Scope type. Always `user` for this scope. - Cost component breakdown; null when returning the combined total. + - `user_id: String` - - `:code_execution` + Tagged ID of the member the spend limit applies to. - - `:tokens` + - `class BetaSpendLimitSeatTierScope` - - `:web_search` + - `type: :seat_tier` - - `currency: String` + - `seat_tier: String` - Currency code for the cost amount. Currently always `"USD"`. + - `class BetaSpendLimitRBACGroupScope` - - `ending_at: Time` + - `type: :rbac_group` - End of the row's UTC time bucket (exclusive), as an RFC 3339 timestamp; equal to `starting_at` plus one `bucket_width`. Null unless `bucket_width` is set. + - `rbac_group_id: String` - format: date-time + - `class BetaSpendLimitOrganizationServiceScope` - - `inference_geo: :global | :us` + - `type: :organization_service` - Inference region of the usage or cost. Null unless `inference_geo` is in `group_by[]`; it can also be null on grouped rows where the region is not set (the rows that `inference_geos[]=not_available` matches). + - `service: String` - - `:global` + - `class BetaSpendLimitOrganizationScope` - - `:us` + - `type: :organization` - - `list_amount: String` + - `class BetaSpendLimitWorkspaceScope` - List-price amount (pre-discount) in fractional cents. + Scope selecting one workspace of a Claude Console organization. - - `model: String` + - `type: :workspace` - Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution. + Scope type. Always `workspace` for this scope. - - `product: String` + - `workspace_id: String` - Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude-tag`, and `chat_cowork_unified`. `claude-tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only on deployments that offer Chat and Cowork unified. Some unattributed usage is reported as "other". + Tagged ID of the workspace the spend limit applies to. - - `rbac_group_id: String` + - `class BetaSpendLimitUsageTierScope` - RBAC group (team) the usage is attributed to, in the public tagged `rbac_group_...` spelling — the same spelling the activity resources use for this key, so the same team has one id across resources and it round-trips as an `rbac_group_ids[]` filter value. Populated only when `rbac_group_id` is in `group_by[]`. Any-membership semantics: a user in several groups contributes their full usage to each of those groups' rows, so the named-group rows overlap and their sum can exceed the org total. A null value is the single unassigned row: users in no group on that (UTC) day. For the true org total, run the same query without `group_by[]`. + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `requests: Integer` + - `type: :usage_tier` - Number of API requests in this row's scope. Null when `group_by` includes `cost_type` or `token_type` (the count has no per-component attribution; read it from the ungrouped response). For sandbox / code-execution events, this counts execution spans rather than HTTP requests (these rows surface with `product: null`). + Scope type. Always `usage_tier` for this scope. - - `slack_channel_id: String` + - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled). + - `class BetaSpendLimitUserScope` - - `speed: :fast | :standard` + Scope selecting a single member of the organization. - Inference speed mode of the usage or cost: `fast` or `standard`. Null unless `speed` is in `group_by[]`. + - `class BetaSpendLimitSeatTierScope` - - `:fast` + - `class BetaSpendLimitRBACGroupScope` - - `:standard` + - `class BetaSpendLimitOrganizationServiceScope` - - `starting_at: Time` + - `class BetaSpendLimitOrganizationScope` - Start of the row's UTC time bucket (inclusive), as an RFC 3339 timestamp. Null unless `bucket_width` is set; without `bucket_width`, each row aggregates the full requested range. + - `class BetaSpendLimitWorkspaceScope` - format: date-time + Scope selecting one workspace of a Claude Console organization. - - `token_type: BetaAnalyticsTokenType` + - `class BetaSpendLimitUsageTierScope` - Token type when `cost_type` is `tokens`; null otherwise. + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:"cache_creation.ephemeral_1h_input_tokens"` + - `spend_limit_id: String` - - `:"cache_creation.ephemeral_5m_input_tokens"` + - `status: BetaSpendLimitIncreaseRequestStatus` - - `:cache_read_input_tokens` + - `:approved` - - `:output_tokens` + - `:denied` - - `:uncached_input_tokens` + - `:pending` #### Example @@ -99361,7 +106167,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.analytics.user_cost_report.list(starting_at: "2019-12-27T18:11:19.117Z") +page = anthropic.beta.organization.spend_limits.increase_requests.list puts(page) ``` @@ -99372,321 +106178,270 @@ puts(page) { "data": [ { + "id": "id", "actor": { "deleted": true, - "email": "jane@example.com", - "email_address": "jane@example.com", - "name": "Jane Smith", + "email_address": "email_address", + "name": "name", "type": "user_actor", - "user_id": "user_01AbCdEfGhIjKlMnOpQrSt" + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" }, - "amount": "41280.000000", - "claude_tag_category": "dm", - "claude_tag_user_id": "U0123ABCDEF", - "context_window": "0-200k", - "cost_type": "code_execution", - "currency": "USD", - "ending_at": "2019-12-27T18:11:19.117Z", - "inference_geo": "global", - "list_amount": "51600.000000", - "model": "claude-opus-5-5", - "product": "chat", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "requests": 128, - "slack_channel_id": "C0123ABCDEF", - "speed": "fast", - "starting_at": "2019-12-27T18:11:19.117Z", - "token_type": "cache_creation.ephemeral_1h_input_tokens" + "created_at": "2019-12-27T18:11:19.117Z", + "period": "daily", + "resolved_at": "2019-12-27T18:11:19.117Z", + "resolved_by": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_summary": { + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "amount": "50000", + "currency": "USD", + "period": "daily", + "period_to_date_spend": "12050.5", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "source": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit_id": "spend_limit_id" + }, + "status": "approved", + "type": "spend_limit_increase_request" } ], - "data_refreshed_at": "2019-12-27T18:11:19.117Z", - "has_more": true, - "next_page": "next_page", - "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF" + "next_page": "next_page" } ``` -## Beta › Organization › Spend Limits - -### Set Spend Limit +### Get Spend Limit Increase Request -`beta.organization.spend_limits.set(**kwargs) -> BetaSpendLimit` +`beta.organization.spend_limits.increase_requests.retrieve(spend_limit_increase_request_id) -> BetaSpendLimitIncreaseRequest` -**POST** `/v1/organizations/spend_limits` +**GET** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}` -Set a spend limit. +Retrieve a spend limit increase request. -Upsert keyed on (scope, period): setting a limit that already exists -overwrites it in place. A Claude Enterprise organization sets `user` -limits. Its seat-tier, group, and organization-level defaults are configured -in claude.ai. A Claude Console organization sets `organization` and -`workspace` limits, which are monthly and always carry an amount. Setting those -limits is in an early access preview. To request access, contact your -Anthropic account team. +While `pending`, the response includes a live `spend_summary` for the +requester at the request's period. #### Parameters -- `amount: String` - - Limit amount as a non-negative integer decimal string in the minor unit of the organization's billing currency (cents for USD): "50000" is $500.00. `null` sets an explicit no-limit override for this scope and `period` only — each period resolves independently, so caps for other periods still apply. - -- `scope: BetaSpendLimitUserScope | BetaSpendLimitOrganizationScope | BetaSpendLimitWorkspaceScope` - - What the limit applies to. Claude Enterprise organizations set `user` limits. Claude Console organizations set `organization` and `workspace` limits. Any other combination returns 400. Setting `organization` and `workspace` limits through the API is in an early access preview. To request access, contact your Anthropic account team. - - - `class BetaSpendLimitUserScope` - - Scope selecting a single member of the organization. - - - `type: :user` - - Scope type. Always `user` for this scope. - - - `user_id: String` - - Tagged ID of the member the spend limit applies to. - - - `class BetaSpendLimitOrganizationScope` - - - `type: :organization` - - - `class BetaSpendLimitWorkspaceScope` - - Scope selecting one workspace of a Claude Console organization. - - - `type: :workspace` - - Scope type. Always `workspace` for this scope. - - - `workspace_id: String` - - Tagged ID of the workspace the spend limit applies to. - -- `period: BetaSpendLimitPeriod` - - - `:daily` - - - `:monthly` - - - `:weekly` - -- `betas: Array[AnthropicBeta]` (header parameter) - - Optional header to specify the beta version(s) you want to use. - - - `String = String` - - - `:"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"` +- `spend_limit_increase_request_id: String` (path parameter) - - `:"mcp-client-2025-11-20"` + ID of the spend limit increase request. - - `:"dev-full-thinking-2025-05-14"` +#### Returns - - `:"interleaved-thinking-2025-05-14"` +- `class BetaSpendLimitIncreaseRequest` - - `:"code-execution-2025-05-22"` + - `type: :spend_limit_increase_request` - - `:"extended-cache-ttl-2025-04-11"` + - `id: String` - - `:"context-1m-2025-08-07"` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:"context-management-2025-06-27"` + - `class BetaSpendLimitUserActor` - - `:"model-context-window-exceeded-2025-08-26"` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `:"skills-2025-10-02"` + - `type: :user_actor` - - `:"fast-mode-2026-02-01"` + Actor type. Always `user_actor`. - - `:"output-300k-2026-03-24"` + - `deleted: bool` - - `:"user-profiles-2026-03-24"` + True only when the underlying account has been deleted. - - `:"user-profiles-2026-08-18"` + - `email_address: String` - - `:"user-profiles-2026-09-04"` + The user's email address. Null when the account is unavailable or has been deleted. - - `:"advisor-tool-2026-03-01"` + - `name: String` - - `:"managed-agents-2026-04-01"` + The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - - `:"cache-diagnosis-2026-04-07"` + - `user_id: String` - - `:"dreaming-2026-04-21"` + Tagged ID of the user. - - `:"thinking-token-count-2026-05-13"` + - `class BetaSpendLimitScopedAPIKeyActor` - - `:"server-side-fallback-2026-06-01"` + A scoped Admin API key acting on behalf of the organization. - - `:"server-side-fallback-2026-07-01"` + - `type: :scoped_api_key_actor` - - `:"fallback-credit-2026-06-01"` + - `scoped_api_key_id: String` - - `:"fallback-credit-2026-07-01"` + - `created_at: Time` - - `:"agent-memory-2026-07-22"` + format: date-time - - `:"mid-conversation-tool-changes-2026-07-01"` + - `period: BetaSpendLimitPeriod` - - `:"compact-2026-01-12"` + - `:daily` - - `:"computer-use-2025-11-24"` + - `:monthly` - - `:"mcp-tunnels-2026-06-22"` + - `:weekly` - - `:"structured-outputs-2025-11-13"` + - `resolved_at: Time` - - `:"task-budgets-2026-03-13"` + format: date-time - - `:"thinking-display-updates-2026-08-18"` + - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:"ce-user-management-2026-07-13"` + - `class BetaSpendLimitUserActor` - - `:"mid-conversation-output-config-2026-07-01"` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `:"thinking-binding-controls-2026-08-01"` + - `class BetaSpendLimitScopedAPIKeyActor` - - `:"mid-conversation-system-clear-at-2026-08-21"` + A scoped Admin API key acting on behalf of the organization. - - `:"compact-2026-09-04"` + - `spend_summary: BetaSpendSummary` - - `:"inline-tools-2026-09-15"` + Per-member effective-limit report row (`GET /spend_limits/effective`). - - `:"mcp-client-2026-09-15"` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:"ce-plugins-2026-09-01"` + - `class BetaSpendLimitUserActor` - - `:"spend-limit-reads-2026-09-26"` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaSpendLimitScopedAPIKeyActor` -#### Returns + A scoped Admin API key acting on behalf of the organization. -- `class BetaSpendLimit` + - `amount: String` - A configured spend limit: a cap on metered spend for one scope and period. + Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. - - `type: :spend_limit` + - `currency: String` - Object type. Always `spend_limit`. + ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. - - `id: String` + - `period: BetaSpendLimitPeriod` - Unique tagged ID of the spend limit (`spl_...`). + Period this row's effective limit and spend are reported for. - - `amount: String` + - `period_to_date_spend: String` - Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. + The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. - - `created_at: Time` + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - RFC 3339 datetime at which the spend limit was created. + - `class BetaSpendLimitUserScope` - format: date-time + Scope selecting a single member of the organization. - - `currency: String` + - `type: :user` - ISO 4217 code of the organization's billing currency; the unit for `amount`. + Scope type. Always `user` for this scope. - - `is_enabled: bool` + - `user_id: String` - Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. + Tagged ID of the member the spend limit applies to. - - `period: BetaSpendLimitPeriod` + - `class BetaSpendLimitSeatTierScope` - Length of the window the limit resets over. `amount` caps spend within each period. + - `type: :seat_tier` - - `:daily` + - `seat_tier: String` - - `:monthly` + - `class BetaSpendLimitRBACGroupScope` - - `:weekly` + - `type: :rbac_group` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + - `rbac_group_id: String` - What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. + - `class BetaSpendLimitOrganizationServiceScope` - - `class BetaSpendLimitUserScope` + - `type: :organization_service` - Scope selecting a single member of the organization. + - `service: String` - - `type: :user` + - `class BetaSpendLimitOrganizationScope` - Scope type. Always `user` for this scope. + - `type: :organization` - - `user_id: String` + - `class BetaSpendLimitWorkspaceScope` - Tagged ID of the member the spend limit applies to. + Scope selecting one workspace of a Claude Console organization. - - `class BetaSpendLimitSeatTierScope` + - `type: :workspace` - - `type: :seat_tier` + Scope type. Always `workspace` for this scope. - - `seat_tier: String` + - `workspace_id: String` - - `class BetaSpendLimitRBACGroupScope` + Tagged ID of the workspace the spend limit applies to. - - `type: :rbac_group` + - `class BetaSpendLimitUsageTierScope` - - `rbac_group_id: String` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `class BetaSpendLimitOrganizationServiceScope` + - `type: :usage_tier` - - `type: :organization_service` + Scope type. Always `usage_tier` for this scope. - - `service: String` + - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `class BetaSpendLimitOrganizationScope` + - `class BetaSpendLimitUserScope` - - `type: :organization` + Scope selecting a single member of the organization. - - `class BetaSpendLimitWorkspaceScope` + - `class BetaSpendLimitSeatTierScope` - Scope selecting one workspace of a Claude Console organization. + - `class BetaSpendLimitRBACGroupScope` - - `type: :workspace` + - `class BetaSpendLimitOrganizationServiceScope` - Scope type. Always `workspace` for this scope. + - `class BetaSpendLimitOrganizationScope` - - `workspace_id: String` + - `class BetaSpendLimitWorkspaceScope` - Tagged ID of the workspace the spend limit applies to. + Scope selecting one workspace of a Claude Console organization. - - `class BetaSpendLimitUsageTierScope` + - `class BetaSpendLimitUsageTierScope` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `type: :usage_tier` + - `spend_limit_id: String` - Scope type. Always `usage_tier` for this scope. + - `status: BetaSpendLimitIncreaseRequestStatus` - - `updated_at: Time` + - `:approved` - RFC 3339 datetime at which the spend limit was last modified. + - `:denied` - format: date-time + - `:pending` #### Example @@ -99695,12 +106450,9 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_spend_limit = anthropic.beta.organization.spend_limits.set( - amount: "50000", - scope: {type: :user, user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q"} -) +beta_spend_limit_increase_request = anthropic.beta.organization.spend_limits.increase_requests.retrieve("spend_limit_increase_request_id") -puts(beta_spend_limit) +puts(beta_spend_limit_increase_request) ``` ##### Response (200) @@ -99708,719 +106460,770 @@ puts(beta_spend_limit) ```json { "id": "id", - "amount": "50000", + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, "created_at": "2019-12-27T18:11:19.117Z", - "currency": "USD", - "is_enabled": true, "period": "daily", - "scope": { - "type": "user", + "resolved_at": "2019-12-27T18:11:19.117Z", + "resolved_by": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" }, - "type": "spend_limit", - "updated_at": "2019-12-27T18:11:19.117Z" + "spend_summary": { + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "amount": "50000", + "currency": "USD", + "period": "daily", + "period_to_date_spend": "12050.5", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "source": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit_id": "spend_limit_id" + }, + "status": "approved", + "type": "spend_limit_increase_request" } ``` -### Get Spend Limit +### Approve Spend Limit Increase Request -`beta.organization.spend_limits.retrieve(spend_limit_id) -> BetaSpendLimit` +`beta.organization.spend_limits.increase_requests.approve(spend_limit_increase_request_id, **kwargs) -> IncreaseRequestApproveResponse` -**GET** `/v1/organizations/spend_limits/{spend_limit_id}` +**POST** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/approve` -Retrieve a spend limit by ID. +Approve a pending spend limit increase request. + +Writes a per-user spend limit at `amount` for the requester and +transitions the request to `approved`. `period` defaults to the period +the member was blocked on. Anthropic emails the requester unless +`suppress_notification` is set. #### Parameters -- `spend_limit_id: String` (path parameter) +- `spend_limit_increase_request_id: String` (path parameter) - ID of the Spend Limit. + ID of the spend limit increase request. -#### Returns +- `amount: String` -- `class BetaSpendLimit` + New per-user spend limit as a non-negative integer decimal string (minor units). - A configured spend limit: a cap on metered spend for one scope and period. +- `period: BetaSpendLimitPeriod` - - `type: :spend_limit` + - `:daily` - Object type. Always `spend_limit`. + - `:monthly` + + - `:weekly` + +- `suppress_notification: bool` + +#### Returns + +- `class IncreaseRequestApproveResponse` + + - `type: :spend_limit_increase_request` - `id: String` - Unique tagged ID of the spend limit (`spl_...`). + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `amount: String` + - `class BetaSpendLimitUserActor` - Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `created_at: Time` + - `type: :user_actor` - RFC 3339 datetime at which the spend limit was created. + Actor type. Always `user_actor`. - format: date-time + - `deleted: bool` - - `currency: String` + True only when the underlying account has been deleted. - ISO 4217 code of the organization's billing currency; the unit for `amount`. + - `email_address: String` - - `is_enabled: bool` + The user's email address. Null when the account is unavailable or has been deleted. - Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. + - `name: String` - - `period: BetaSpendLimitPeriod` + The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - Length of the window the limit resets over. `amount` caps spend within each period. + - `user_id: String` - - `:daily` + Tagged ID of the user. - - `:monthly` + - `class BetaSpendLimitScopedAPIKeyActor` - - `:weekly` + A scoped Admin API key acting on behalf of the organization. - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + - `type: :scoped_api_key_actor` - What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. + - `scoped_api_key_id: String` - - `class BetaSpendLimitUserScope` + - `created_at: Time` - Scope selecting a single member of the organization. + format: date-time - - `type: :user` + - `period: BetaSpendLimitPeriod` - Scope type. Always `user` for this scope. + - `:daily` - - `user_id: String` + - `:monthly` - Tagged ID of the member the spend limit applies to. + - `:weekly` - - `class BetaSpendLimitSeatTierScope` + - `resolved_at: Time` - - `type: :seat_tier` + format: date-time - - `seat_tier: String` + - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `class BetaSpendLimitRBACGroupScope` + - `class BetaSpendLimitUserActor` - - `type: :rbac_group` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `rbac_group_id: String` + - `class BetaSpendLimitScopedAPIKeyActor` - - `class BetaSpendLimitOrganizationServiceScope` + A scoped Admin API key acting on behalf of the organization. - - `type: :organization_service` + - `spend_limit: BetaSpendLimit` - - `service: String` + A configured spend limit: a cap on metered spend for one scope and period. - - `class BetaSpendLimitOrganizationScope` + - `type: :spend_limit` - - `type: :organization` + Object type. Always `spend_limit`. - - `class BetaSpendLimitWorkspaceScope` + - `id: String` - Scope selecting one workspace of a Claude Console organization. + Unique tagged ID of the spend limit (`spl_...`). - - `type: :workspace` + - `amount: String` - Scope type. Always `workspace` for this scope. + Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. - - `workspace_id: String` + - `created_at: Time` - Tagged ID of the workspace the spend limit applies to. + RFC 3339 datetime at which the spend limit was created. - - `class BetaSpendLimitUsageTierScope` + format: date-time - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `currency: String` - - `type: :usage_tier` + ISO 4217 code of the organization's billing currency; the unit for `amount`. - Scope type. Always `usage_tier` for this scope. + - `is_enabled: bool` - - `updated_at: Time` + Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. - RFC 3339 datetime at which the spend limit was last modified. + - `period: BetaSpendLimitPeriod` - format: date-time + Length of the window the limit resets over. `amount` caps spend within each period. -#### Example + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` -```ruby -require "anthropic" + What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `class BetaSpendLimitUserScope` -beta_spend_limit = anthropic.beta.organization.spend_limits.retrieve("spend_limit_id") + Scope selecting a single member of the organization. -puts(beta_spend_limit) -``` + - `type: :user` -##### Response (200) + Scope type. Always `user` for this scope. -```json -{ - "id": "id", - "amount": "50000", - "created_at": "2019-12-27T18:11:19.117Z", - "currency": "USD", - "is_enabled": true, - "period": "daily", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "type": "spend_limit", - "updated_at": "2019-12-27T18:11:19.117Z" -} -``` + - `user_id: String` -### Delete Spend Limit + Tagged ID of the member the spend limit applies to. -`beta.organization.spend_limits.delete(spend_limit_id) -> SpendLimitDeleteResponse` + - `class BetaSpendLimitSeatTierScope` -**DELETE** `/v1/organizations/spend_limits/{spend_limit_id}` + - `type: :seat_tier` -Delete a spend limit. + - `seat_tier: String` -For a Claude Enterprise organization, this deletes a per-user override, and -the member falls back to any inherited spend limit at that period. Its -seat-tier, group, and organization-level rows cannot be deleted via this -endpoint. A Claude Console organization deletes its organization and -workspace limits, but not its `usage_tier` limit. Deleting organization and -workspace limits through the API is in an early access preview. + - `class BetaSpendLimitRBACGroupScope` -#### Parameters + - `type: :rbac_group` -- `spend_limit_id: String` (path parameter) + - `rbac_group_id: String` - ID of the Spend Limit. + - `class BetaSpendLimitOrganizationServiceScope` -#### Returns + - `type: :organization_service` -- `class SpendLimitDeleteResponse` + - `service: String` - - `type: :spend_limit_deleted` + - `class BetaSpendLimitOrganizationScope` - - `id: String` + - `type: :organization` -#### Example + - `class BetaSpendLimitWorkspaceScope` -```ruby -require "anthropic" + Scope selecting one workspace of a Claude Console organization. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :workspace` -spend_limit = anthropic.beta.organization.spend_limits.delete("spend_limit_id") + Scope type. Always `workspace` for this scope. -puts(spend_limit) -``` + - `workspace_id: String` -##### Response (200) + Tagged ID of the workspace the spend limit applies to. -```json -{ - "id": "id", - "type": "spend_limit_deleted" -} -``` + - `class BetaSpendLimitUsageTierScope` -### List Spend Limits + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. -`beta.organization.spend_limits.list(**kwargs) -> PageCursor` + - `type: :usage_tier` -**GET** `/v1/organizations/spend_limits` + Scope type. Always `usage_tier` for this scope. -List the organization's spend limits. + - `updated_at: Time` -Limits are grouped by scope type, in the order `organization`, `seat_tier`, -`rbac_group`, `organization_service`, `user`; within a type they come in a -fixed order that is not creation order. Supported for Claude Enterprise -organizations only, not for Claude Console organizations. + RFC 3339 datetime at which the spend limit was last modified. -#### Parameters + format: date-time -- `limit: Integer` (query parameter) + - `spend_summary: BetaSpendSummary` - Maximum number of limits per page. Defaults to `20`. + Per-member effective-limit report row (`GET /spend_limits/effective`). - minimum: 1, maximum: 1000 + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` -- `page: String` (query parameter) + - `class BetaSpendLimitUserActor` - Opaque cursor from a previous response's `next_page` field. + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. -- `scope_type: Array[:organization | :organization_service | :rbac_group | 3 more]` (query parameter) + - `class BetaSpendLimitScopedAPIKeyActor` - Return only limits with these scope types. Omit for all. + A scoped Admin API key acting on behalf of the organization. - maxItems: 100 + - `amount: String` - - `:organization` + Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. - - `:organization_service` + - `currency: String` - - `:rbac_group` + ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. - - `:seat_tier` + - `period: BetaSpendLimitPeriod` - - `:user` + Period this row's effective limit and spend are reported for. - - `:workspace` + - `period_to_date_spend: String` -- `betas: Array[AnthropicBeta]` (header parameter) + The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. - This endpoint is in beta: requests must send `spend-limit-reads-2026-09-26` in this header. + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `String = String` + - `class BetaSpendLimitUserScope` - - `:"message-batches-2024-09-24"` + Scope selecting a single member of the organization. - - `:"prompt-caching-2024-07-31"` + - `class BetaSpendLimitSeatTierScope` - - `:"computer-use-2024-10-22"` + - `class BetaSpendLimitRBACGroupScope` - - `:"computer-use-2025-01-24"` + - `class BetaSpendLimitOrganizationServiceScope` - - `:"pdfs-2024-09-25"` + - `class BetaSpendLimitOrganizationScope` - - `:"token-counting-2024-11-01"` + - `class BetaSpendLimitWorkspaceScope` - - `:"token-efficient-tools-2025-02-19"` + Scope selecting one workspace of a Claude Console organization. - - `:"output-128k-2025-02-19"` + - `class BetaSpendLimitUsageTierScope` - - `:"files-api-2025-04-14"` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:"mcp-client-2025-04-04"` + - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `:"mcp-client-2025-11-20"` + - `class BetaSpendLimitUserScope` - - `:"dev-full-thinking-2025-05-14"` + Scope selecting a single member of the organization. - - `:"interleaved-thinking-2025-05-14"` + - `class BetaSpendLimitSeatTierScope` - - `:"code-execution-2025-05-22"` + - `class BetaSpendLimitRBACGroupScope` - - `:"extended-cache-ttl-2025-04-11"` + - `class BetaSpendLimitOrganizationServiceScope` - - `:"context-1m-2025-08-07"` + - `class BetaSpendLimitOrganizationScope` - - `:"context-management-2025-06-27"` + - `class BetaSpendLimitWorkspaceScope` - - `:"model-context-window-exceeded-2025-08-26"` + Scope selecting one workspace of a Claude Console organization. - - `:"skills-2025-10-02"` + - `class BetaSpendLimitUsageTierScope` - - `:"fast-mode-2026-02-01"` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:"output-300k-2026-03-24"` + - `spend_limit_id: String` - - `:"user-profiles-2026-03-24"` + - `status: BetaSpendLimitIncreaseRequestStatus` - - `:"user-profiles-2026-08-18"` + - `:approved` - - `:"user-profiles-2026-09-04"` + - `:denied` - - `:"advisor-tool-2026-03-01"` + - `:pending` - - `:"managed-agents-2026-04-01"` +#### Example - - `:"cache-diagnosis-2026-04-07"` +```ruby +require "anthropic" - - `:"dreaming-2026-04-21"` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:"thinking-token-count-2026-05-13"` +response = anthropic.beta.organization.spend_limits.increase_requests.approve( + "spend_limit_increase_request_id", + amount: "50000" +) - - `:"server-side-fallback-2026-06-01"` +puts(response) +``` + +##### Response (200) + +```json +{ + "id": "id", + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "created_at": "2019-12-27T18:11:19.117Z", + "period": "daily", + "resolved_at": "2019-12-27T18:11:19.117Z", + "resolved_by": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit": { + "id": "id", + "amount": "50000", + "created_at": "2019-12-27T18:11:19.117Z", + "currency": "USD", + "is_enabled": true, + "period": "daily", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "type": "spend_limit", + "updated_at": "2019-12-27T18:11:19.117Z" + }, + "spend_summary": { + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "amount": "50000", + "currency": "USD", + "period": "daily", + "period_to_date_spend": "12050.5", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "source": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit_id": "spend_limit_id" + }, + "status": "approved", + "type": "spend_limit_increase_request" +} +``` - - `:"server-side-fallback-2026-07-01"` +### Deny Spend Limit Increase Request - - `:"fallback-credit-2026-06-01"` +`beta.organization.spend_limits.increase_requests.deny(spend_limit_increase_request_id, **kwargs) -> BetaSpendLimitIncreaseRequest` - - `:"fallback-credit-2026-07-01"` +**POST** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/deny` - - `:"agent-memory-2026-07-22"` +Deny a pending spend limit increase request. - - `:"mid-conversation-tool-changes-2026-07-01"` +Idempotent on `denied`; denying an already-`approved` request returns +400. Anthropic emails the requester unless `suppress_notification` is set. - - `:"compact-2026-01-12"` +#### Parameters - - `:"computer-use-2025-11-24"` +- `spend_limit_increase_request_id: String` (path parameter) - - `:"mcp-tunnels-2026-06-22"` + ID of the spend limit increase request. - - `:"structured-outputs-2025-11-13"` +- `suppress_notification: bool` - - `:"task-budgets-2026-03-13"` +#### Returns - - `:"thinking-display-updates-2026-08-18"` +- `class BetaSpendLimitIncreaseRequest` - - `:"ce-user-management-2026-07-13"` + - `type: :spend_limit_increase_request` - - `:"mid-conversation-output-config-2026-07-01"` + - `id: String` - - `:"thinking-binding-controls-2026-08-01"` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaSpendLimitUserActor` - - `:"compact-2026-09-04"` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. - - `:"inline-tools-2026-09-15"` + - `type: :user_actor` - - `:"mcp-client-2026-09-15"` + Actor type. Always `user_actor`. - - `:"ce-plugins-2026-09-01"` + - `deleted: bool` - - `:"spend-limit-reads-2026-09-26"` + True only when the underlying account has been deleted. - - `:"telemetry-destinations-2026-08-11"` + - `email_address: String` -#### Returns + The user's email address. Null when the account is unavailable or has been deleted. -- `class BetaSpendLimit` + - `name: String` - A configured spend limit: a cap on metered spend for one scope and period. + The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - - `type: :spend_limit` + - `user_id: String` - Object type. Always `spend_limit`. + Tagged ID of the user. - - `id: String` + - `class BetaSpendLimitScopedAPIKeyActor` - Unique tagged ID of the spend limit (`spl_...`). + A scoped Admin API key acting on behalf of the organization. - - `amount: String` + - `type: :scoped_api_key_actor` - Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. + - `scoped_api_key_id: String` - `created_at: Time` - RFC 3339 datetime at which the spend limit was created. - format: date-time - - `currency: String` - - ISO 4217 code of the organization's billing currency; the unit for `amount`. - - - `is_enabled: bool` - - Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. - - `period: BetaSpendLimitPeriod` - Length of the window the limit resets over. `amount` caps spend within each period. - - `:daily` - `:monthly` - `:weekly` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. - - - `class BetaSpendLimitUserScope` - - Scope selecting a single member of the organization. - - - `type: :user` - - Scope type. Always `user` for this scope. - - - `user_id: String` - - Tagged ID of the member the spend limit applies to. - - - `class BetaSpendLimitSeatTierScope` - - - `type: :seat_tier` - - - `seat_tier: String` - - - `class BetaSpendLimitRBACGroupScope` - - - `type: :rbac_group` - - - `rbac_group_id: String` - - - `class BetaSpendLimitOrganizationServiceScope` - - - `type: :organization_service` - - - `service: String` - - - `class BetaSpendLimitOrganizationScope` - - - `type: :organization` - - - `class BetaSpendLimitWorkspaceScope` - - Scope selecting one workspace of a Claude Console organization. - - - `type: :workspace` - - Scope type. Always `workspace` for this scope. - - - `workspace_id: String` - - Tagged ID of the workspace the spend limit applies to. - - - `class BetaSpendLimitUsageTierScope` - - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. - - - `type: :usage_tier` + - `resolved_at: Time` - Scope type. Always `usage_tier` for this scope. + format: date-time - - `updated_at: Time` + - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - RFC 3339 datetime at which the spend limit was last modified. + - `class BetaSpendLimitUserActor` - format: date-time + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. -#### Example + - `class BetaSpendLimitScopedAPIKeyActor` -```ruby -require "anthropic" + A scoped Admin API key acting on behalf of the organization. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `spend_summary: BetaSpendSummary` -page = anthropic.beta.organization.spend_limits.list + Per-member effective-limit report row (`GET /spend_limits/effective`). -puts(page) -``` + - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` -##### Response (200) + - `class BetaSpendLimitUserActor` -```json -{ - "data": [ - { - "id": "id", - "amount": "50000", - "created_at": "2019-12-27T18:11:19.117Z", - "currency": "USD", - "is_enabled": true, - "period": "daily", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "type": "spend_limit", - "updated_at": "2019-12-27T18:11:19.117Z" - } - ], - "next_page": "next_page" -} -``` + A user within the organization. `name` and `email_address` are + null when the underlying account is unavailable or has been deleted; + `deleted` is true only for deleted accounts. -## Beta › Organization › Spend Limits › Effective + - `class BetaSpendLimitScopedAPIKeyActor` -### List Effective Spend Limits + A scoped Admin API key acting on behalf of the organization. -`beta.organization.spend_limits.effective.list(**kwargs) -> PageCursor` + - `amount: String` -**GET** `/v1/organizations/spend_limits/effective` + Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. -List each member's effective spend limit and period-to-date spend. + - `currency: String` -Returns one row per (member, period) the member resolves a spend limit -for, with the `source` scope the spend limit was inherited from. -Paginates by member, so a member's periods never split across pages. -Supported for Claude Enterprise organizations only, not for Claude Console -organizations. + ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. -#### Parameters + - `period: BetaSpendLimitPeriod` -- `limit: Integer` (query parameter) + Period this row's effective limit and spend are reported for. - Maximum number of members per page. A member's period rows never split across pages, so a page may carry more rows than this. Defaults to `20`. + - `period_to_date_spend: String` - minimum: 1, maximum: 1000 + The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. -- `page: String` (query parameter) + - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - Opaque cursor from a previous response's `next_page` field. + - `class BetaSpendLimitUserScope` -- `period: Array[:daily | :monthly | :weekly]` (query parameter) + Scope selecting a single member of the organization. - Restrict the report to these limit periods. Omit to return one row per period each member resolves a spend limit for. + - `type: :user` - maxItems: 3 + Scope type. Always `user` for this scope. - - `:daily` + - `user_id: String` - - `:monthly` + Tagged ID of the member the spend limit applies to. - - `:weekly` + - `class BetaSpendLimitSeatTierScope` -- `user_ids: Array[String]` (query parameter) + - `type: :seat_tier` - Restrict the report to these members, by tagged user ID (`user_...`). At most 100 entries. + - `seat_tier: String` - maxItems: 100 + - `class BetaSpendLimitRBACGroupScope` -#### Returns + - `type: :rbac_group` -- `class BetaSpendSummary` + - `rbac_group_id: String` - Per-member effective-limit report row (`GET /spend_limits/effective`). + - `class BetaSpendLimitOrganizationServiceScope` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + - `type: :organization_service` - - `class BetaSpendLimitUserActor` + - `service: String` - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + - `class BetaSpendLimitOrganizationScope` - - `type: :user_actor` + - `type: :organization` - Actor type. Always `user_actor`. + - `class BetaSpendLimitWorkspaceScope` - - `deleted: bool` + Scope selecting one workspace of a Claude Console organization. - True only when the underlying account has been deleted. + - `type: :workspace` - - `email_address: String` + Scope type. Always `workspace` for this scope. - The user's email address. Null when the account is unavailable or has been deleted. + - `workspace_id: String` - - `name: String` + Tagged ID of the workspace the spend limit applies to. - The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. + - `class BetaSpendLimitUsageTierScope` - - `user_id: String` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - Tagged ID of the user. + - `type: :usage_tier` - - `class BetaSpendLimitScopedAPIKeyActor` + Scope type. Always `usage_tier` for this scope. - A scoped Admin API key acting on behalf of the organization. + - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` - - `type: :scoped_api_key_actor` + - `class BetaSpendLimitUserScope` - - `scoped_api_key_id: String` + Scope selecting a single member of the organization. - - `amount: String` + - `class BetaSpendLimitSeatTierScope` - Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. + - `class BetaSpendLimitRBACGroupScope` - - `currency: String` + - `class BetaSpendLimitOrganizationServiceScope` - ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. + - `class BetaSpendLimitOrganizationScope` - - `period: BetaSpendLimitPeriod` + - `class BetaSpendLimitWorkspaceScope` - Period this row's effective limit and spend are reported for. + Scope selecting one workspace of a Claude Console organization. - - `:daily` + - `class BetaSpendLimitUsageTierScope` - - `:monthly` + Scope of the monthly spend cap Anthropic sets for a Claude Console + organization from its usage tier, or a higher cap Anthropic granted the + organization. Read-only; its `created_at` and `updated_at` are the + organization's creation time, so `amount` can change while `updated_at` stays + the same. - - `:weekly` + - `spend_limit_id: String` - - `period_to_date_spend: String` + - `status: BetaSpendLimitIncreaseRequestStatus` - The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. + - `:approved` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + - `:denied` - - `class BetaSpendLimitUserScope` + - `:pending` - Scope selecting a single member of the organization. +#### Example - - `type: :user` +```ruby +require "anthropic" - Scope type. Always `user` for this scope. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `user_id: String` +beta_spend_limit_increase_request = anthropic.beta.organization.spend_limits.increase_requests.deny("spend_limit_increase_request_id") - Tagged ID of the member the spend limit applies to. +puts(beta_spend_limit_increase_request) +``` - - `class BetaSpendLimitSeatTierScope` +##### Response (200) - - `type: :seat_tier` +```json +{ + "id": "id", + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "created_at": "2019-12-27T18:11:19.117Z", + "period": "daily", + "resolved_at": "2019-12-27T18:11:19.117Z", + "resolved_by": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_summary": { + "actor": { + "deleted": true, + "email_address": "email_address", + "name": "name", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "amount": "50000", + "currency": "USD", + "period": "daily", + "period_to_date_spend": "12050.5", + "scope": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "source": { + "type": "user", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "spend_limit_id": "spend_limit_id" + }, + "status": "approved", + "type": "spend_limit_increase_request" +} +``` - - `seat_tier: String` +## Beta › Organization › RBAC Groups - - `class BetaSpendLimitRBACGroupScope` +### Create RBAC Group - - `type: :rbac_group` +`beta.organization.rbac_groups.create(**kwargs) -> BetaRBACGroup` - - `rbac_group_id: String` +**POST** `/v1/organizations/rbac_groups` - - `class BetaSpendLimitOrganizationServiceScope` +Create an RBAC Group in the Claude Enterprise tenant. Groups created via the API have source type `"direct"`. - - `type: :organization_service` +The RBAC Groups API is available to Claude Enterprise organizations only. - - `service: String` +#### Parameters - - `class BetaSpendLimitOrganizationScope` +- `name: String` - - `type: :organization` + Name of the RBAC Group. Not uniqueness-enforced. - - `class BetaSpendLimitWorkspaceScope` + minLength: 1, maxLength: 255 - Scope selecting one workspace of a Claude Console organization. +#### Returns - - `type: :workspace` +- `class BetaRBACGroup` - Scope type. Always `workspace` for this scope. + - `type: :rbac_group` - - `workspace_id: String` + Object type. - Tagged ID of the workspace the spend limit applies to. + For RBAC Groups, this is always `"rbac_group"`. - - `class BetaSpendLimitUsageTierScope` + - `id: String` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + ID of the RBAC Group. - - `type: :usage_tier` + - `created_at: Time` - Scope type. Always `usage_tier` for this scope. + RFC 3339 timestamp of when the RBAC Group was created. - - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + format: date-time - - `class BetaSpendLimitUserScope` + - `name: String` - Scope selecting a single member of the organization. + Name of the RBAC Group. Not uniqueness-enforced. - - `class BetaSpendLimitSeatTierScope` + - `role_ids: Array[String]` - - `class BetaSpendLimitRBACGroupScope` + RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. - - `class BetaSpendLimitOrganizationServiceScope` + - `source_type: :direct | :scim` - - `class BetaSpendLimitOrganizationScope` + How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. - - `class BetaSpendLimitWorkspaceScope` + - `:direct` - Scope selecting one workspace of a Claude Console organization. + - `:scim` - - `class BetaSpendLimitUsageTierScope` + - `updated_at: Time` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + RFC 3339 timestamp of when the RBAC Group was last updated. - - `spend_limit_id: String` + format: date-time #### Example @@ -100429,279 +107232,285 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.spend_limits.effective.list +beta_rbac_group = anthropic.beta.organization.rbac_groups.create(name: "Engineering") -puts(page) +puts(beta_rbac_group) ``` ##### Response (200) ```json { - "data": [ - { - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "amount": "50000", - "currency": "USD", - "period": "daily", - "period_to_date_spend": "12050.5", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "source": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit_id": "spend_limit_id" - } + "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "created_at": "2024-10-30T23:58:27.427722Z", + "name": "Engineering", + "role_ids": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" ], - "next_page": "next_page" + "roles": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "source_type": "direct", + "type": "rbac_group", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -## Beta › Organization › Spend Limits › Increase Requests - -### List Spend Limit Increase Requests +### List RBAC Groups -`beta.organization.spend_limits.increase_requests.list(**kwargs) -> PageCursor` +`beta.organization.rbac_groups.list(**kwargs) -> PageCursor` -**GET** `/v1/organizations/spend_limit_increase_requests` +**GET** `/v1/organizations/rbac_groups` -List spend limit increase requests, most recent first. +List RBAC Groups in the Claude Enterprise tenant. -Pending requests include a live `spend_summary` for the requester. -Requests whose requester is no longer a member are excluded. +The RBAC Groups API is available to Claude Enterprise organizations only. #### Parameters -- `actor_ids: Array[String]` (query parameter) - - Filter by requester, as `user_...` tagged IDs. - - `limit: Integer` (query parameter) - minimum: 1, maximum: 1000 - -- `page: String` (query parameter) - - Opaque cursor from a previous response's `next_page`. - -- `status: Array[BetaSpendLimitIncreaseRequestStatus]` (query parameter) + Number of items to return per page. - Filter by status. Omit to return all. + Defaults to `20`. Ranges from `1` to `1000`. - - `:approved` + minimum: 1, maximum: 1000 - - `:denied` +- `page: String` (query parameter) - - `:pending` + Optionally set to the `next_page` token from the previous response. #### Returns -- `class BetaSpendLimitIncreaseRequest` +- `class BetaRBACGroup` - - `type: :spend_limit_increase_request` + - `type: :rbac_group` + + Object type. + + For RBAC Groups, this is always `"rbac_group"`. - `id: String` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + ID of the RBAC Group. - - `class BetaSpendLimitUserActor` + - `created_at: Time` - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + RFC 3339 timestamp of when the RBAC Group was created. - - `type: :user_actor` + format: date-time - Actor type. Always `user_actor`. + - `name: String` - - `deleted: bool` + Name of the RBAC Group. Not uniqueness-enforced. - True only when the underlying account has been deleted. + - `role_ids: Array[String]` - - `email_address: String` + RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. - The user's email address. Null when the account is unavailable or has been deleted. + - `source_type: :direct | :scim` - - `name: String` + How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. - The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. + - `:direct` - - `user_id: String` + - `:scim` - Tagged ID of the user. + - `updated_at: Time` - - `class BetaSpendLimitScopedAPIKeyActor` + RFC 3339 timestamp of when the RBAC Group was last updated. - A scoped Admin API key acting on behalf of the organization. + format: date-time - - `type: :scoped_api_key_actor` +#### Example - - `scoped_api_key_id: String` +```ruby +require "anthropic" - - `created_at: Time` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - format: date-time +page = anthropic.beta.organization.rbac_groups.list - - `period: BetaSpendLimitPeriod` +puts(page) +``` - - `:daily` +##### Response (200) - - `:monthly` +```json +{ + "data": [ + { + "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "created_at": "2024-10-30T23:58:27.427722Z", + "name": "Engineering", + "role_ids": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "roles": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "source_type": "direct", + "type": "rbac_group", + "updated_at": "2024-10-30T23:58:27.427722Z" + } + ], + "has_more": false, + "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9" +} +``` - - `:weekly` +### Get RBAC Group - - `resolved_at: Time` +`beta.organization.rbac_groups.retrieve(rbac_group_id) -> BetaRBACGroup` - format: date-time +**GET** `/v1/organizations/rbac_groups/{rbac_group_id}` - - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` +Retrieve an RBAC Group by ID. - - `class BetaSpendLimitUserActor` +The RBAC Groups API is available to Claude Enterprise organizations only. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. +#### Parameters - - `class BetaSpendLimitScopedAPIKeyActor` +- `rbac_group_id: String` (path parameter) - A scoped Admin API key acting on behalf of the organization. + ID of the RBAC Group. - - `spend_summary: BetaSpendSummary` +#### Returns - Per-member effective-limit report row (`GET /spend_limits/effective`). +- `class BetaRBACGroup` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + - `type: :rbac_group` - - `class BetaSpendLimitUserActor` + Object type. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + For RBAC Groups, this is always `"rbac_group"`. - - `class BetaSpendLimitScopedAPIKeyActor` + - `id: String` - A scoped Admin API key acting on behalf of the organization. + ID of the RBAC Group. - - `amount: String` + - `created_at: Time` - Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. + RFC 3339 timestamp of when the RBAC Group was created. - - `currency: String` + format: date-time - ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. + - `name: String` - - `period: BetaSpendLimitPeriod` + Name of the RBAC Group. Not uniqueness-enforced. - Period this row's effective limit and spend are reported for. + - `role_ids: Array[String]` - - `period_to_date_spend: String` + RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. - The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. + - `source_type: :direct | :scim` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. - - `class BetaSpendLimitUserScope` + - `:direct` - Scope selecting a single member of the organization. + - `:scim` - - `type: :user` + - `updated_at: Time` - Scope type. Always `user` for this scope. + RFC 3339 timestamp of when the RBAC Group was last updated. - - `user_id: String` + format: date-time - Tagged ID of the member the spend limit applies to. +#### Example - - `class BetaSpendLimitSeatTierScope` +```ruby +require "anthropic" - - `type: :seat_tier` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `seat_tier: String` +beta_rbac_group = anthropic.beta.organization.rbac_groups.retrieve("rbac_group_id") - - `class BetaSpendLimitRBACGroupScope` +puts(beta_rbac_group) +``` - - `type: :rbac_group` +##### Response (200) - - `rbac_group_id: String` +```json +{ + "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "created_at": "2024-10-30T23:58:27.427722Z", + "name": "Engineering", + "role_ids": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "roles": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "source_type": "direct", + "type": "rbac_group", + "updated_at": "2024-10-30T23:58:27.427722Z" +} +``` - - `class BetaSpendLimitOrganizationServiceScope` +### Update RBAC Group - - `type: :organization_service` +`beta.organization.rbac_groups.update(rbac_group_id, **kwargs) -> BetaRBACGroup` - - `service: String` +**POST** `/v1/organizations/rbac_groups/{rbac_group_id}` - - `class BetaSpendLimitOrganizationScope` +Update an RBAC Group's name. Groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. - - `type: :organization` +The RBAC Groups API is available to Claude Enterprise organizations only. - - `class BetaSpendLimitWorkspaceScope` +#### Parameters - Scope selecting one workspace of a Claude Console organization. +- `rbac_group_id: String` (path parameter) - - `type: :workspace` + ID of the RBAC Group. - Scope type. Always `workspace` for this scope. +- `name: String` - - `workspace_id: String` + Name of the RBAC Group. Not uniqueness-enforced. - Tagged ID of the workspace the spend limit applies to. + minLength: 1, maxLength: 255 - - `class BetaSpendLimitUsageTierScope` +#### Returns - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. +- `class BetaRBACGroup` - - `type: :usage_tier` + - `type: :rbac_group` - Scope type. Always `usage_tier` for this scope. + Object type. - - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + For RBAC Groups, this is always `"rbac_group"`. - - `class BetaSpendLimitUserScope` + - `id: String` - Scope selecting a single member of the organization. + ID of the RBAC Group. - - `class BetaSpendLimitSeatTierScope` + - `created_at: Time` - - `class BetaSpendLimitRBACGroupScope` + RFC 3339 timestamp of when the RBAC Group was created. - - `class BetaSpendLimitOrganizationServiceScope` + format: date-time - - `class BetaSpendLimitOrganizationScope` + - `name: String` - - `class BetaSpendLimitWorkspaceScope` + Name of the RBAC Group. Not uniqueness-enforced. - Scope selecting one workspace of a Claude Console organization. + - `role_ids: Array[String]` - - `class BetaSpendLimitUsageTierScope` + RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `source_type: :direct | :scim` - - `spend_limit_id: String` + How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. - - `status: BetaSpendLimitIncreaseRequestStatus` + - `:direct` - - `:approved` + - `:scim` - - `:denied` + - `updated_at: Time` - - `:pending` + RFC 3339 timestamp of when the RBAC Group was last updated. + + format: date-time #### Example @@ -100710,281 +107519,217 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.spend_limits.increase_requests.list +beta_rbac_group = anthropic.beta.organization.rbac_groups.update("rbac_group_id") -puts(page) +puts(beta_rbac_group) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "created_at": "2019-12-27T18:11:19.117Z", - "period": "daily", - "resolved_at": "2019-12-27T18:11:19.117Z", - "resolved_by": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_summary": { - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "amount": "50000", - "currency": "USD", - "period": "daily", - "period_to_date_spend": "12050.5", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "source": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit_id": "spend_limit_id" - }, - "status": "approved", - "type": "spend_limit_increase_request" - } + "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "created_at": "2024-10-30T23:58:27.427722Z", + "name": "Engineering", + "role_ids": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" ], - "next_page": "next_page" + "roles": [ + "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" + ], + "source_type": "direct", + "type": "rbac_group", + "updated_at": "2024-10-30T23:58:27.427722Z" } ``` -### Get Spend Limit Increase Request +### Delete RBAC Group -`beta.organization.spend_limits.increase_requests.retrieve(spend_limit_increase_request_id) -> BetaSpendLimitIncreaseRequest` +`beta.organization.rbac_groups.delete(rbac_group_id) -> RBACGroupDeleteResponse` -**GET** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}` +**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}` -Retrieve a spend limit increase request. +Delete an RBAC Group. Groups provisioned by an identity provider (source type `"scim"`) cannot be deleted via the API while an organization in the tenant uses SCIM provisioning. -While `pending`, the response includes a live `spend_summary` for the -requester at the request's period. +The RBAC Groups API is available to Claude Enterprise organizations only. #### Parameters -- `spend_limit_increase_request_id: String` (path parameter) +- `rbac_group_id: String` (path parameter) - ID of the spend limit increase request. + ID of the RBAC Group. #### Returns -- `class BetaSpendLimitIncreaseRequest` - - - `type: :spend_limit_increase_request` - - - `id: String` - - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - - `class BetaSpendLimitUserActor` - - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. - - - `type: :user_actor` - - Actor type. Always `user_actor`. - - - `deleted: bool` - - True only when the underlying account has been deleted. - - - `email_address: String` - - The user's email address. Null when the account is unavailable or has been deleted. - - - `name: String` - - The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - - - `user_id: String` - - Tagged ID of the user. - - - `class BetaSpendLimitScopedAPIKeyActor` - - A scoped Admin API key acting on behalf of the organization. - - - `type: :scoped_api_key_actor` - - - `scoped_api_key_id: String` +- `class RBACGroupDeleteResponse` - - `created_at: Time` + - `type: :rbac_group_deleted` - format: date-time + Deleted object type. - - `period: BetaSpendLimitPeriod` + For RBAC Groups, this is always `"rbac_group_deleted"`. - - `:daily` + - `id: String` - - `:monthly` + ID of the RBAC Group. - - `:weekly` +#### Example - - `resolved_at: Time` +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` +rbac_group = anthropic.beta.organization.rbac_groups.delete("rbac_group_id") - - `class BetaSpendLimitUserActor` +puts(rbac_group) +``` - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. +##### Response (200) - - `class BetaSpendLimitScopedAPIKeyActor` +```json +{ + "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "type": "rbac_group_deleted" +} +``` - A scoped Admin API key acting on behalf of the organization. +## Beta › Organization › RBAC Groups › Members - - `spend_summary: BetaSpendSummary` +### List RBAC Group Members - Per-member effective-limit report row (`GET /spend_limits/effective`). +`beta.organization.rbac_groups.members.list(rbac_group_id, **kwargs) -> PageCursor` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` +**GET** `/v1/organizations/rbac_groups/{rbac_group_id}/members` - - `class BetaSpendLimitUserActor` +List members of an RBAC Group. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. +The RBAC Groups API is available to Claude Enterprise organizations only. - - `class BetaSpendLimitScopedAPIKeyActor` +#### Parameters - A scoped Admin API key acting on behalf of the organization. +- `rbac_group_id: String` (path parameter) - - `amount: String` + ID of the RBAC Group. - Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. +- `limit: Integer` (query parameter) - - `currency: String` + Number of items to return per page. - ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. + Defaults to `20`. Ranges from `1` to `1000`. - - `period: BetaSpendLimitPeriod` + minimum: 1, maximum: 1000 - Period this row's effective limit and spend are reported for. +- `page: String` (query parameter) - - `period_to_date_spend: String` + Optionally set to the `next_page` token from the previous response. - The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. +#### Returns - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` +- `class BetaRBACGroupMember` - - `class BetaSpendLimitUserScope` + - `type: :rbac_group_member` - Scope selecting a single member of the organization. + Object type. - - `type: :user` + For RBAC Group Members, this is always `"rbac_group_member"`. - Scope type. Always `user` for this scope. + - `created_at: Time` - - `user_id: String` + RFC 3339 timestamp of when the User was added to the RBAC Group. - Tagged ID of the member the spend limit applies to. + format: date-time - - `class BetaSpendLimitSeatTierScope` + - `email: String` - - `type: :seat_tier` + Email of the User. - - `seat_tier: String` + - `rbac_group_id: String` - - `class BetaSpendLimitRBACGroupScope` + ID of the RBAC Group. - - `type: :rbac_group` + - `user_id: String` - - `rbac_group_id: String` + ID of the User. - - `class BetaSpendLimitOrganizationServiceScope` +#### Example - - `type: :organization_service` +```ruby +require "anthropic" - - `service: String` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `class BetaSpendLimitOrganizationScope` +page = anthropic.beta.organization.rbac_groups.members.list("rbac_group_id") - - `type: :organization` +puts(page) +``` - - `class BetaSpendLimitWorkspaceScope` +##### Response (200) - Scope selecting one workspace of a Claude Console organization. +```json +{ + "data": [ + { + "created_at": "2024-10-30T23:58:27.427722Z", + "email": "user@emaildomain.com", + "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "type": "rbac_group_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + } + ], + "has_more": false, + "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9" +} +``` - - `type: :workspace` +### Add RBAC Group Member - Scope type. Always `workspace` for this scope. +`beta.organization.rbac_groups.members.add(rbac_group_id, **kwargs) -> BetaRBACGroupMember` - - `workspace_id: String` +**POST** `/v1/organizations/rbac_groups/{rbac_group_id}/members` - Tagged ID of the workspace the spend limit applies to. +Add a User to an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. - - `class BetaSpendLimitUsageTierScope` +The RBAC Groups API is available to Claude Enterprise organizations only. - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. +#### Parameters - - `type: :usage_tier` +- `rbac_group_id: String` (path parameter) - Scope type. Always `usage_tier` for this scope. + ID of the RBAC Group. - - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` +- `user_id: String` - - `class BetaSpendLimitUserScope` + ID of the User. - Scope selecting a single member of the organization. +#### Returns - - `class BetaSpendLimitSeatTierScope` +- `class BetaRBACGroupMember` - - `class BetaSpendLimitRBACGroupScope` + - `type: :rbac_group_member` - - `class BetaSpendLimitOrganizationServiceScope` + Object type. - - `class BetaSpendLimitOrganizationScope` + For RBAC Group Members, this is always `"rbac_group_member"`. - - `class BetaSpendLimitWorkspaceScope` + - `created_at: Time` - Scope selecting one workspace of a Claude Console organization. + RFC 3339 timestamp of when the User was added to the RBAC Group. - - `class BetaSpendLimitUsageTierScope` + format: date-time - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `email: String` - - `spend_limit_id: String` + Email of the User. - - `status: BetaSpendLimitIncreaseRequestStatus` + - `rbac_group_id: String` - - `:approved` + ID of the RBAC Group. - - `:denied` + - `user_id: String` - - `:pending` + ID of the User. #### Example @@ -100993,875 +107738,773 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_spend_limit_increase_request = anthropic.beta.organization.spend_limits.increase_requests.retrieve("spend_limit_increase_request_id") +beta_rbac_group_member = anthropic.beta.organization.rbac_groups.members.add( + "rbac_group_id", + user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q" +) -puts(beta_spend_limit_increase_request) +puts(beta_rbac_group_member) ``` ##### Response (200) ```json { - "id": "id", - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "created_at": "2019-12-27T18:11:19.117Z", - "period": "daily", - "resolved_at": "2019-12-27T18:11:19.117Z", - "resolved_by": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_summary": { - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "amount": "50000", - "currency": "USD", - "period": "daily", - "period_to_date_spend": "12050.5", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "source": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit_id": "spend_limit_id" - }, - "status": "approved", - "type": "spend_limit_increase_request" + "created_at": "2024-10-30T23:58:27.427722Z", + "email": "user@emaildomain.com", + "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "type": "rbac_group_member", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" } ``` -### Approve Spend Limit Increase Request +### Remove RBAC Group Member -`beta.organization.spend_limits.increase_requests.approve(spend_limit_increase_request_id, **kwargs) -> IncreaseRequestApproveResponse` +`beta.organization.rbac_groups.members.remove(user_id, **kwargs) -> MemberRemoveResponse` -**POST** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/approve` +**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}/members/{user_id}` -Approve a pending spend limit increase request. +Remove a User from an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. -Writes a per-user spend limit at `amount` for the requester and -transitions the request to `approved`. `period` defaults to the period -the member was blocked on. Anthropic emails the requester unless -`suppress_notification` is set. +The RBAC Groups API is available to Claude Enterprise organizations only. #### Parameters -- `spend_limit_increase_request_id: String` (path parameter) - - ID of the spend limit increase request. - -- `amount: String` - - New per-user spend limit as a non-negative integer decimal string (minor units). - -- `period: BetaSpendLimitPeriod` - - - `:daily` +- `rbac_group_id: String` (path parameter) - - `:monthly` + ID of the RBAC Group. - - `:weekly` +- `user_id: String` (path parameter) -- `suppress_notification: bool` + ID of the User. #### Returns -- `class IncreaseRequestApproveResponse` - - - `type: :spend_limit_increase_request` - - - `id: String` - - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` - - - `class BetaSpendLimitUserActor` - - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. - - - `type: :user_actor` - - Actor type. Always `user_actor`. - - - `deleted: bool` - - True only when the underlying account has been deleted. - - - `email_address: String` - - The user's email address. Null when the account is unavailable or has been deleted. - - - `name: String` - - The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. - - - `user_id: String` +- `class MemberRemoveResponse` - Tagged ID of the user. + - `type: :rbac_group_member_deleted` - - `class BetaSpendLimitScopedAPIKeyActor` + Deleted object type. For RBAC Group Members, this is always `"rbac_group_member_deleted"`. - A scoped Admin API key acting on behalf of the organization. + - `rbac_group_id: String` - - `type: :scoped_api_key_actor` + ID of the RBAC Group. - - `scoped_api_key_id: String` + - `user_id: String` - - `created_at: Time` + ID of the User. - format: date-time +#### Example - - `period: BetaSpendLimitPeriod` +```ruby +require "anthropic" - - `:daily` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `:monthly` +member = anthropic.beta.organization.rbac_groups.members.remove("user_id", rbac_group_id: "rbac_group_id") - - `:weekly` +puts(member) +``` - - `resolved_at: Time` +##### Response (200) - format: date-time +```json +{ + "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "type": "rbac_group_member_deleted", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" +} +``` - - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` +## Beta › Organization › RBAC Roles - - `class BetaSpendLimitUserActor` +### List RBAC Roles - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. +`beta.organization.rbac_roles.list(**kwargs) -> PageCursor` - - `class BetaSpendLimitScopedAPIKeyActor` +**GET** `/v1/organizations/rbac_roles` - A scoped Admin API key acting on behalf of the organization. +List RBAC Roles in the organization. - - `spend_limit: BetaSpendLimit` +The RBAC Roles API is available to Claude Enterprise organizations only. - A configured spend limit: a cap on metered spend for one scope and period. +#### Parameters - - `type: :spend_limit` +- `limit: Integer` (query parameter) - Object type. Always `spend_limit`. + Number of items to return per page. - - `id: String` + Defaults to `20`. Ranges from `1` to `1000`. - Unique tagged ID of the spend limit (`spl_...`). + minimum: 1, maximum: 1000 - - `amount: String` +- `page: String` (query parameter) - Limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD): "50000" is $500.00. `null` means no numeric cap is configured at this scope — see the effective report for whether a limit applies. + Optionally set to the `next_page` token from the previous response. - - `created_at: Time` +#### Returns - RFC 3339 datetime at which the spend limit was created. +- `class BetaRBACRole` - format: date-time + - `type: :rbac_role` - - `currency: String` + Object type. - ISO 4217 code of the organization's billing currency; the unit for `amount`. + For RBAC Roles, this is always `"rbac_role"`. - - `is_enabled: bool` + - `id: String` - Read-only. `false` when extra usage is switched off for this organization (`organization` limit); `amount` is kept and applies again when it's switched back on. Always `true` for other limits. + ID of the RBAC Role. - - `period: BetaSpendLimitPeriod` + - `created_at: Time` - Length of the window the limit resets over. `amount` caps spend within each period. + RFC 3339 datetime string indicating when the RBAC Role was created. - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + format: date-time - What the limit applies to. A tagged union on `type`; each variant carries the identifier for its scope. + - `display_name: String` - - `class BetaSpendLimitUserScope` + Name of the RBAC Role. For a role created by Anthropic, this name can differ from the label claude.ai shows, and Anthropic may change the name. To keep a lasting reference to a role, store its `id`. - Scope selecting a single member of the organization. + - `updated_at: Time` - - `type: :user` + RFC 3339 datetime string indicating when the RBAC Role was last updated. - Scope type. Always `user` for this scope. + format: date-time - - `user_id: String` + - `name: String` - Tagged ID of the member the spend limit applies to. + **Deprecated**: Use `display_name` instead; `name` always has the same value. - - `class BetaSpendLimitSeatTierScope` + Deprecated: use `display_name` instead. Name of the RBAC Role; always the same value as `display_name`. - - `type: :seat_tier` +#### Example - - `seat_tier: String` +```ruby +require "anthropic" - - `class BetaSpendLimitRBACGroupScope` +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `type: :rbac_group` +page = anthropic.beta.organization.rbac_roles.list - - `rbac_group_id: String` +puts(page) +``` - - `class BetaSpendLimitOrganizationServiceScope` +##### Response (200) - - `type: :organization_service` +```json +{ + "data": [ + { + "id": "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s", + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "Project Editor", + "name": "Project Editor", + "type": "rbac_role", + "updated_at": "2024-10-30T23:58:27.427722Z" + } + ], + "has_more": true, + "next_page": "eyJjdXJzb3IiOiAicmJhY19yb2xlXzAxIn0" +} +``` - - `service: String` +### Get RBAC Role - - `class BetaSpendLimitOrganizationScope` +`beta.organization.rbac_roles.retrieve(rbac_role_id) -> BetaRBACRole` - - `type: :organization` +**GET** `/v1/organizations/rbac_roles/{rbac_role_id}` - - `class BetaSpendLimitWorkspaceScope` +Retrieve an RBAC Role by ID. - Scope selecting one workspace of a Claude Console organization. +The RBAC Roles API is available to Claude Enterprise organizations only. - - `type: :workspace` +#### Parameters - Scope type. Always `workspace` for this scope. +- `rbac_role_id: String` (path parameter) - - `workspace_id: String` + ID of the RBAC Role. - Tagged ID of the workspace the spend limit applies to. +#### Returns - - `class BetaSpendLimitUsageTierScope` +- `class BetaRBACRole` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `type: :rbac_role` - - `type: :usage_tier` + Object type. - Scope type. Always `usage_tier` for this scope. + For RBAC Roles, this is always `"rbac_role"`. - - `updated_at: Time` + - `id: String` - RFC 3339 datetime at which the spend limit was last modified. + ID of the RBAC Role. - format: date-time + - `created_at: Time` - - `spend_summary: BetaSpendSummary` + RFC 3339 datetime string indicating when the RBAC Role was created. - Per-member effective-limit report row (`GET /spend_limits/effective`). + format: date-time - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + - `display_name: String` - - `class BetaSpendLimitUserActor` + Name of the RBAC Role. For a role created by Anthropic, this name can differ from the label claude.ai shows, and Anthropic may change the name. To keep a lasting reference to a role, store its `id`. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + - `updated_at: Time` - - `class BetaSpendLimitScopedAPIKeyActor` + RFC 3339 datetime string indicating when the RBAC Role was last updated. - A scoped Admin API key acting on behalf of the organization. + format: date-time - - `amount: String` + - `name: String` - Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. + **Deprecated**: Use `display_name` instead; `name` always has the same value. - - `currency: String` + Deprecated: use `display_name` instead. Name of the RBAC Role; always the same value as `display_name`. - ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. +#### Example - - `period: BetaSpendLimitPeriod` +```ruby +require "anthropic" - Period this row's effective limit and spend are reported for. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `period_to_date_spend: String` +beta_rbac_role = anthropic.beta.organization.rbac_roles.retrieve("rbac_role_id") - The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. +puts(beta_rbac_role) +``` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` +##### Response (200) - - `class BetaSpendLimitUserScope` +```json +{ + "id": "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s", + "created_at": "2024-10-30T23:58:27.427722Z", + "display_name": "Project Editor", + "name": "Project Editor", + "type": "rbac_role", + "updated_at": "2024-10-30T23:58:27.427722Z" +} +``` - Scope selecting a single member of the organization. +## Beta › Organization › RBAC Roles › Permissions - - `class BetaSpendLimitSeatTierScope` +### List RBAC Role Permissions - - `class BetaSpendLimitRBACGroupScope` +`beta.organization.rbac_roles.permissions.list(rbac_role_id, **kwargs) -> PageCursor` - - `class BetaSpendLimitOrganizationServiceScope` +**GET** `/v1/organizations/rbac_roles/{rbac_role_id}/permissions` - - `class BetaSpendLimitOrganizationScope` +List the permissions an RBAC Role grants. - - `class BetaSpendLimitWorkspaceScope` +The RBAC Roles API is available to Claude Enterprise organizations only. - Scope selecting one workspace of a Claude Console organization. +#### Parameters - - `class BetaSpendLimitUsageTierScope` +- `rbac_role_id: String` (path parameter) - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + ID of the RBAC Role. - - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` +- `limit: Integer` (query parameter) - - `class BetaSpendLimitUserScope` + Number of items to return per page. - Scope selecting a single member of the organization. + Defaults to `20`. Ranges from `1` to `1000`. - - `class BetaSpendLimitSeatTierScope` + minimum: 1, maximum: 1000 - - `class BetaSpendLimitRBACGroupScope` +- `page: String` (query parameter) - - `class BetaSpendLimitOrganizationServiceScope` + Optionally set to the `next_page` token from the previous response. - - `class BetaSpendLimitOrganizationScope` +#### Returns - - `class BetaSpendLimitWorkspaceScope` +- `class BetaRBACRolePermission` - Scope selecting one workspace of a Claude Console organization. + - `type: :rbac_role_permission` - - `class BetaSpendLimitUsageTierScope` + Object type. - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + For RBAC Role Permissions, this is always `"rbac_role_permission"`. - - `spend_limit_id: String` + - `action: String` - - `status: BetaSpendLimitIncreaseRequestStatus` + Action the permission grants on the resource. - - `:approved` + The vocabulary follows the resource: an `organization` grant carries a + product-feature entitlement (for example `chat`), an admin-panel + permission entitlement (`permission_*`), or a blanket capability-access + mode — `capability_access_all` grants every product-feature entitlement, + and `capability_access_all_ga` grants the generally-available subset as + it stands at permission-check time; neither mode grants model-access + entitlements. A consumer enumerating a role's per-feature grants should + treat a blanket row as granting every product-feature entitlement it + covers, or it will under-report the role's effective access. A `connector_tool` grant carries + a tool-access action (`use` or `always_allow`); a `connector_scope` grant + carries the scope action `grant` (the role may receive the named OAuth + scope when tokens are minted for the connector); `connector` and + `all_connectors` grants carry a tool-access action, the scope action, or + an authentication-method action (`interactive` or `managed`). - - `:denied` + - `resource: BetaRBACOrganizationPermissionResource | BetaRBACConnectorToolPermissionResource | BetaRBACConnectorScopePermissionResource | 2 more` - - `:pending` + What the permission applies to. -#### Example + A tagged union: `type` names the kind of resource and determines which + identifier fields are present. -```ruby -require "anthropic" + - `class BetaRBACOrganizationPermissionResource` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `type: :organization` -response = anthropic.beta.organization.spend_limits.increase_requests.approve( - "spend_limit_increase_request_id", - amount: "50000" -) + Kind of resource the permission applies to. -puts(response) -``` + - `organization_id: String` -##### Response (200) + UUID of the organization the permission applies to. -```json -{ - "id": "id", - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "created_at": "2019-12-27T18:11:19.117Z", - "period": "daily", - "resolved_at": "2019-12-27T18:11:19.117Z", - "resolved_by": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit": { - "id": "id", - "amount": "50000", - "created_at": "2019-12-27T18:11:19.117Z", - "currency": "USD", - "is_enabled": true, - "period": "daily", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "type": "spend_limit", - "updated_at": "2019-12-27T18:11:19.117Z" - }, - "spend_summary": { - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "amount": "50000", - "currency": "USD", - "period": "daily", - "period_to_date_spend": "12050.5", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "source": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit_id": "spend_limit_id" - }, - "status": "approved", - "type": "spend_limit_increase_request" -} -``` + - `class BetaRBACConnectorToolPermissionResource` -### Deny Spend Limit Increase Request + - `type: :connector_tool` -`beta.organization.spend_limits.increase_requests.deny(spend_limit_increase_request_id, **kwargs) -> BetaSpendLimitIncreaseRequest` + Kind of resource the permission applies to. -**POST** `/v1/organizations/spend_limit_increase_requests/{spend_limit_increase_request_id}/deny` + - `connector_id: String` -Deny a pending spend limit increase request. + ID of the connector the permission applies to. -Idempotent on `denied`; denying an already-`approved` request returns -400. Anthropic emails the requester unless `suppress_notification` is set. + - `tool_name: String` -#### Parameters + Published name of the connector tool the permission applies to. -- `spend_limit_increase_request_id: String` (path parameter) + When the published name contains characters outside `[a-zA-Z0-9_-]` (or + collides with a reserved form), it is server-encoded into a stable + `{prefix}_{32-hex}` form — a shortened readable prefix of the name plus + a hash — from which the published name is not recoverable. - ID of the spend limit increase request. + - `class BetaRBACConnectorScopePermissionResource` -- `suppress_notification: bool` + - `type: :connector_scope` -#### Returns + Kind of resource the permission applies to. -- `class BetaSpendLimitIncreaseRequest` + - `connector_id: String` - - `type: :spend_limit_increase_request` + ID of the connector the permission applies to. - - `id: String` + - `scope: String` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + OAuth scope the permission names — the role may receive this scope when + tokens are minted for the connector. - - `class BetaSpendLimitUserActor` + Subject to the same encoding rule as `tool_name`: a scope containing + characters outside `[a-zA-Z0-9_-]` (or colliding with a reserved form) + appears server-encoded in a stable `{prefix}_{32-hex}` form. OAuth + scopes routinely contain `:` and `/`, so most appear encoded. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + - `class BetaRBACConnectorPermissionResource` - - `type: :user_actor` + - `type: :connector` - Actor type. Always `user_actor`. + Kind of resource the permission applies to. - - `deleted: bool` + - `connector_id: String` - True only when the underlying account has been deleted. + ID of the connector the permission applies to. - - `email_address: String` + - `class BetaRBACAllConnectorsPermissionResource` - The user's email address. Null when the account is unavailable or has been deleted. + - `type: :all_connectors` - - `name: String` + Kind of resource the permission applies to. - The user's current display name. Null when the account is unavailable, has been deleted, or has no name set. +#### Example - - `user_id: String` +```ruby +require "anthropic" - Tagged ID of the user. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `class BetaSpendLimitScopedAPIKeyActor` +page = anthropic.beta.organization.rbac_roles.permissions.list("rbac_role_id") - A scoped Admin API key acting on behalf of the organization. +puts(page) +``` - - `type: :scoped_api_key_actor` +##### Response (200) - - `scoped_api_key_id: String` +```json +{ + "data": [ + { + "action": "use", + "resource": { + "organization_id": "3c4f5e6d-7a8b-49c0-9d1e-2f3a4b5c6d7e", + "type": "organization" + }, + "type": "rbac_role_permission" + } + ], + "has_more": true, + "next_page": "eyJjdXJzb3IiOiAicmJhY19yb2xlXzAxIn0" +} +``` - - `created_at: Time` +## Beta › Organization › Plugins - format: date-time +### Create Plugin - - `period: BetaSpendLimitPeriod` +`beta.organization.plugins.create(**kwargs) -> BetaPlugin` - - `:daily` +**POST** `/v1/organizations/plugins` - - `:monthly` +Create an organization-owned Plugin and its first version by uploading the +version's files. - - `:weekly` +The upload is `multipart/form-data`: the version's files (`files`, each part sent +as `files[]`), with an optional `marketplace_id` and `release_notes`. The manifest's `name` becomes the +Plugin's `name`, and `display_name`, `description` and `manifest_version` come +from the manifest too. - - `resolved_at: Time` +`name` may contain lowercase letters (from any alphabet), digits, and hyphens, up +to 64 characters. Uppercase letters, spaces, underscores, and other punctuation are +rejected. - format: date-time +The `name` must be unique within the marketplace: a name already taken +returns a 409 with `error_code` `plugin_name_taken` and, when a Plugin holds it, +that Plugin's ID in `details.plugin_id`. A Plugin going into the organization's +library marketplace is also refused with a 409 when one of its skills has the name of +an organization skill (a skill an administrator uploaded for the whole organization +in claude.ai): `error_code` `skill_name_taken`, with that name in +`details.skill_name`; rename the skill, or remove the organization skill in +claude.ai. A 503 with `error_code` +`registration_pending` means the Plugin and its version were stored (their IDs are +in `details`) but are not yet usable in claude.ai: do not retry the create (the +retry would return `plugin_name_taken`); create a version on the stored Plugin +instead, which completes it. - - `resolved_by: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` +For a worked example, see [Create a plugin](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#create-a-plugin) +in the Plugins API guide. - - `class BetaSpendLimitUserActor` +**Accepted credentials:** an Admin API key with the `write:plugins` scope. - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - - `class BetaSpendLimitScopedAPIKeyActor` +#### Parameters - A scoped Admin API key acting on behalf of the organization. +- `files: Array[String]` - - `spend_summary: BetaSpendSummary` + The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. - Per-member effective-limit report row (`GET /spend_limits/effective`). +- `marketplace_id: String` - - `actor: BetaSpendLimitUserActor | BetaSpendLimitScopedAPIKeyActor` + ID of the organization-owned plugin marketplace to create the Plugin in (prefixed `marketplace_`). It must be a `manual` marketplace, one whose Plugins are uploaded rather than synchronized from a repository. When omitted, the Plugin is created in the organization's library marketplace, an organization-owned `manual` marketplace created on first use. - - `class BetaSpendLimitUserActor` +- `release_notes: String` - A user within the organization. `name` and `email_address` are - null when the underlying account is unavailable or has been deleted; - `deleted` is true only for deleted accounts. + Release notes stored with the version and shown in its version history in claude.ai; up to 5,000 characters. - - `class BetaSpendLimitScopedAPIKeyActor` + maxLength: 5000 - A scoped Admin API key acting on behalf of the organization. +- `betas: Array[AnthropicBeta]` (header parameter) - - `amount: String` + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - Effective limit amount as a non-negative integer decimal string in the minor unit of `currency` (cents for USD). `null` means no limit applies for this row's `period` — each period resolves independently, so another period may still cap this member. + - `String = String` - - `currency: String` + - `:"message-batches-2024-09-24"` - ISO 4217 code of the organization's billing currency; the unit for `amount` and `period_to_date_spend`. + - `:"prompt-caching-2024-07-31"` - - `period: BetaSpendLimitPeriod` + - `:"computer-use-2024-10-22"` - Period this row's effective limit and spend are reported for. + - `:"computer-use-2025-01-24"` - - `period_to_date_spend: String` + - `:"pdfs-2024-09-25"` - The member's spend so far in the current period, as a non-negative decimal string in the minor unit of `currency` (cents for USD). May carry fractional minor units up to three decimal places (e.g. `"12050.5"`) — metered usage is not rounded to whole cents. Reads as `"0"` when the spend reading is temporarily unavailable. + - `:"token-counting-2024-11-01"` - - `scope: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + - `:"token-efficient-tools-2025-02-19"` - - `class BetaSpendLimitUserScope` + - `:"output-128k-2025-02-19"` - Scope selecting a single member of the organization. + - `:"files-api-2025-04-14"` - - `type: :user` + - `:"mcp-client-2025-04-04"` - Scope type. Always `user` for this scope. + - `:"mcp-client-2025-11-20"` - - `user_id: String` + - `:"dev-full-thinking-2025-05-14"` - Tagged ID of the member the spend limit applies to. + - `:"interleaved-thinking-2025-05-14"` - - `class BetaSpendLimitSeatTierScope` + - `:"code-execution-2025-05-22"` - - `type: :seat_tier` + - `:"extended-cache-ttl-2025-04-11"` - - `seat_tier: String` + - `:"context-1m-2025-08-07"` - - `class BetaSpendLimitRBACGroupScope` + - `:"context-management-2025-06-27"` - - `type: :rbac_group` + - `:"model-context-window-exceeded-2025-08-26"` - - `rbac_group_id: String` + - `:"skills-2025-10-02"` - - `class BetaSpendLimitOrganizationServiceScope` + - `:"fast-mode-2026-02-01"` - - `type: :organization_service` + - `:"output-300k-2026-03-24"` - - `service: String` + - `:"user-profiles-2026-03-24"` - - `class BetaSpendLimitOrganizationScope` + - `:"user-profiles-2026-08-18"` - - `type: :organization` + - `:"user-profiles-2026-09-04"` - - `class BetaSpendLimitWorkspaceScope` + - `:"advisor-tool-2026-03-01"` - Scope selecting one workspace of a Claude Console organization. + - `:"managed-agents-2026-04-01"` - - `type: :workspace` + - `:"cache-diagnosis-2026-04-07"` - Scope type. Always `workspace` for this scope. + - `:"dreaming-2026-04-21"` - - `workspace_id: String` + - `:"thinking-token-count-2026-05-13"` - Tagged ID of the workspace the spend limit applies to. + - `:"server-side-fallback-2026-06-01"` - - `class BetaSpendLimitUsageTierScope` + - `:"server-side-fallback-2026-07-01"` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `:"fallback-credit-2026-06-01"` - - `type: :usage_tier` + - `:"fallback-credit-2026-07-01"` - Scope type. Always `usage_tier` for this scope. + - `:"agent-memory-2026-07-22"` - - `source: BetaSpendLimitUserScope | BetaSpendLimitSeatTierScope | BetaSpendLimitRBACGroupScope | 4 more` + - `:"mid-conversation-tool-changes-2026-07-01"` - - `class BetaSpendLimitUserScope` + - `:"compact-2026-01-12"` - Scope selecting a single member of the organization. + - `:"computer-use-2025-11-24"` - - `class BetaSpendLimitSeatTierScope` + - `:"mcp-tunnels-2026-06-22"` - - `class BetaSpendLimitRBACGroupScope` + - `:"structured-outputs-2025-11-13"` - - `class BetaSpendLimitOrganizationServiceScope` + - `:"task-budgets-2026-03-13"` - - `class BetaSpendLimitOrganizationScope` + - `:"thinking-display-updates-2026-08-18"` - - `class BetaSpendLimitWorkspaceScope` + - `:"ce-user-management-2026-07-13"` - Scope selecting one workspace of a Claude Console organization. + - `:"mid-conversation-output-config-2026-07-01"` - - `class BetaSpendLimitUsageTierScope` + - `:"thinking-binding-controls-2026-08-01"` - Scope of the monthly spend cap Anthropic sets for a Claude Console - organization from its usage tier, or a higher cap Anthropic granted the - organization. Read-only; its `created_at` and `updated_at` are the - organization's creation time, so `amount` can change while `updated_at` stays - the same. + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `spend_limit_id: String` + - `:"compact-2026-09-04"` - - `status: BetaSpendLimitIncreaseRequestStatus` + - `:"inline-tools-2026-09-15"` - - `:approved` + - `:"mcp-client-2026-09-15"` - - `:denied` + - `:"ce-plugins-2026-09-01"` - - `:pending` + - `:"spend-limit-reads-2026-09-26"` -#### Example + - `:"telemetry-destinations-2026-08-11"` -```ruby -require "anthropic" + - `:"webhooks-2026-10-07"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") +#### Returns -beta_spend_limit_increase_request = anthropic.beta.organization.spend_limits.increase_requests.deny("spend_limit_increase_request_id") +- `class BetaPlugin` -puts(beta_spend_limit_increase_request) -``` + - `type: :plugin` -##### Response (200) + Always `plugin`. -```json -{ - "id": "id", - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "created_at": "2019-12-27T18:11:19.117Z", - "period": "daily", - "resolved_at": "2019-12-27T18:11:19.117Z", - "resolved_by": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_summary": { - "actor": { - "deleted": true, - "email_address": "email_address", - "name": "name", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "amount": "50000", - "currency": "USD", - "period": "daily", - "period_to_date_spend": "12050.5", - "scope": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "source": { - "type": "user", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "spend_limit_id": "spend_limit_id" - }, - "status": "approved", - "type": "spend_limit_increase_request" -} -``` + - `id: String` -## Beta › Organization › RBAC Groups + The Plugin's ID. -### Create RBAC Group + - `components: Array[BetaPluginComponent]` -`beta.organization.rbac_groups.create(**kwargs) -> BetaRBACGroup` + What the served version contains; null when not enumerated. -**POST** `/v1/organizations/rbac_groups` + - `type: :agent | :cli | :command | 3 more` -Create an RBAC Group in the Claude Enterprise tenant. Groups created via the API have source type `"direct"`. + The kind of component. -The RBAC Groups API is available to Claude Enterprise organizations only. + - `:agent` -#### Parameters + - `:cli` -- `name: String` + - `:command` - Name of the RBAC Group. Not uniqueness-enforced. + - `:hook` - minLength: 1, maxLength: 255 + - `:mcp_server` -#### Returns + - `:skill` -- `class BetaRBACGroup` + - `description: String` - - `type: :rbac_group` + What the component declares about itself; always null for MCP servers, hooks, and CLIs. - Object type. + - `name: String` - For RBAC Groups, this is always `"rbac_group"`. + The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - - `id: String` + - `content_scan: BetaPluginContentScan` - ID of the RBAC Group. + The served version's content scan; null when it has not been scanned. + + - `assessment: :fail | :pass | :unknown | :warn` + + The scan's verdict; set only when `status` is `completed`. + + - `:fail` + + - `:pass` + + - `:unknown` + + - `:warn` + + - `reason: String` + + The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. + + - `status: :completed | :errored | :processing` + + `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. + + - `:completed` + + - `:errored` + + - `:processing` - `created_at: Time` - RFC 3339 timestamp of when the RBAC Group was created. + RFC 3339. format: date-time - - `name: String` + - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - Name of the RBAC Group. Not uniqueness-enforced. + Who created the Plugin; null when no creator is recorded. - - `role_ids: Array[String]` + - `class BetaPluginUserActor` - RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. + - `type: :user_actor` - - `source_type: :direct | :scim` + A member of the organization. - How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. + - `email_address: String` - - `:direct` + The member's email address; may be null, for example when they are no longer a member of the organization. - - `:scim` + - `user_id: String` - - `updated_at: Time` + The member's User ID. - RFC 3339 timestamp of when the RBAC Group was last updated. + - `class BetaPluginAPIActor` - format: date-time + - `type: :api_actor` -#### Example + An Admin API key, in the same form the Compliance API activity feed uses for it. -```ruby -require "anthropic" + - `api_key_id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The key's ID. -beta_rbac_group = anthropic.beta.organization.rbac_groups.create(name: "Engineering") + - `description: String` -puts(beta_rbac_group) -``` + The served version's description. -##### Response (200) + - `display_name: String` -```json -{ - "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "created_at": "2024-10-30T23:58:27.427722Z", - "name": "Engineering", - "role_ids": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "roles": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "source_type": "direct", - "type": "rbac_group", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` + The served version's display name. -### List RBAC Groups + - `latest_version_id: String` -`beta.organization.rbac_groups.list(**kwargs) -> PageCursor` + The newest version. -**GET** `/v1/organizations/rbac_groups` + - `manifest_version: String` -List RBAC Groups in the Claude Enterprise tenant. + The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). -The RBAC Groups API is available to Claude Enterprise organizations only. + - `marketplace_id: String` -#### Parameters + The ID of the plugin marketplace the Plugin lives in. -- `limit: Integer` (query parameter) + - `name: String` - Number of items to return per page. + Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. - Defaults to `20`. Ranges from `1` to `1000`. + - `organization_installation_preference: :auto_install | :available | :not_available | :required` - minimum: 1, maximum: 1000 + Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. -- `page: String` (query parameter) + - `:auto_install` - Optionally set to the `next_page` token from the previous response. + - `:available` -#### Returns + - `:not_available` -- `class BetaRBACGroup` + - `:required` - - `type: :rbac_group` + - `organization_installation_preference_inherited: bool` - Object type. + Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. - For RBAC Groups, this is always `"rbac_group"`. + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - `id: String` + Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. - ID of the RBAC Group. + - `class BetaPluginOwnerOrganization` - - `created_at: Time` + - `type: :organization` - RFC 3339 timestamp of when the RBAC Group was created. + The Plugin lives in a plugin marketplace the organization owns. - format: date-time + - `class BetaPluginOwnerUser` - - `name: String` + - `type: :user` - Name of the RBAC Group. Not uniqueness-enforced. + The Plugin lives in one member's personal plugin marketplace. - - `role_ids: Array[String]` + - `user_id: String` - RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. + The member's User ID. - - `source_type: :direct | :scim` + - `reach: :contained | :privileged | :remote` - How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. + How far the served version reaches, or `null` if it is not classified. - - `:direct` + `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. - - `:scim` + If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. + + - `:contained` + + - `:privileged` + + - `:remote` + + - `served_version_id: String` + + The version claude.ai serves to members. + + - `served_version_pinned: bool` + + False while the served version follows each new version; true once it has been pinned to one. - `updated_at: Time` - RFC 3339 timestamp of when the RBAC Group was last updated. + RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. format: date-time @@ -101872,407 +108515,376 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.rbac_groups.list +beta_plugin = anthropic.beta.organization.plugins.create(files: [StringIO.new("Example data")]) -puts(page) +puts(beta_plugin) ``` ##### Response (200) ```json { - "data": [ + "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "components": [ { - "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "created_at": "2024-10-30T23:58:27.427722Z", - "name": "Engineering", - "role_ids": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "roles": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "source_type": "direct", - "type": "rbac_group", - "updated_at": "2024-10-30T23:58:27.427722Z" + "description": "description", + "name": "review-pr", + "type": "skill" } ], - "has_more": false, - "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9" + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "manifest_version": "1.2.0", + "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "name": "code-review-helper", + "organization_installation_preference": "available", + "organization_installation_preference_inherited": true, + "owner": { + "type": "organization" + }, + "reach": "contained", + "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", + "served_version_pinned": true, + "type": "plugin", + "updated_at": "2026-03-14T09:26:53.589793Z" } ``` -### Get RBAC Group +### Get Plugin -`beta.organization.rbac_groups.retrieve(rbac_group_id) -> BetaRBACGroup` +`beta.organization.plugins.retrieve(plugin_id, **kwargs) -> BetaPlugin` -**GET** `/v1/organizations/rbac_groups/{rbac_group_id}` +**GET** `/v1/organizations/plugins/{plugin_id}` -Retrieve an RBAC Group by ID. +Retrieve a Plugin by ID. -The RBAC Groups API is available to Claude Enterprise organizations only. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. #### Parameters -- `rbac_group_id: String` (path parameter) +- `plugin_id: String` (path parameter) - ID of the RBAC Group. + ID of the Plugin (prefixed `plugin_`). -#### Returns +- `organization_id: String` (query parameter) -- `class BetaRBACGroup` + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. - - `type: :rbac_group` +- `betas: Array[AnthropicBeta]` (header parameter) - Object type. + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - For RBAC Groups, this is always `"rbac_group"`. + - `String = String` - - `id: String` + - `:"message-batches-2024-09-24"` - ID of the RBAC Group. + - `:"prompt-caching-2024-07-31"` - - `created_at: Time` + - `:"computer-use-2024-10-22"` - RFC 3339 timestamp of when the RBAC Group was created. + - `:"computer-use-2025-01-24"` - format: date-time + - `:"pdfs-2024-09-25"` - - `name: String` + - `:"token-counting-2024-11-01"` - Name of the RBAC Group. Not uniqueness-enforced. + - `:"token-efficient-tools-2025-02-19"` - - `role_ids: Array[String]` + - `:"output-128k-2025-02-19"` - RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. + - `:"files-api-2025-04-14"` - - `source_type: :direct | :scim` + - `:"mcp-client-2025-04-04"` - How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. + - `:"mcp-client-2025-11-20"` - - `:direct` + - `:"dev-full-thinking-2025-05-14"` - - `:scim` + - `:"interleaved-thinking-2025-05-14"` - - `updated_at: Time` + - `:"code-execution-2025-05-22"` - RFC 3339 timestamp of when the RBAC Group was last updated. + - `:"extended-cache-ttl-2025-04-11"` - format: date-time + - `:"context-1m-2025-08-07"` -#### Example + - `:"context-management-2025-06-27"` -```ruby -require "anthropic" + - `:"model-context-window-exceeded-2025-08-26"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"skills-2025-10-02"` -beta_rbac_group = anthropic.beta.organization.rbac_groups.retrieve("rbac_group_id") + - `:"fast-mode-2026-02-01"` -puts(beta_rbac_group) -``` + - `:"output-300k-2026-03-24"` -##### Response (200) + - `:"user-profiles-2026-03-24"` -```json -{ - "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "created_at": "2024-10-30T23:58:27.427722Z", - "name": "Engineering", - "role_ids": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "roles": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "source_type": "direct", - "type": "rbac_group", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` + - `:"user-profiles-2026-08-18"` -### Update RBAC Group + - `:"user-profiles-2026-09-04"` -`beta.organization.rbac_groups.update(rbac_group_id, **kwargs) -> BetaRBACGroup` + - `:"advisor-tool-2026-03-01"` -**POST** `/v1/organizations/rbac_groups/{rbac_group_id}` + - `:"managed-agents-2026-04-01"` -Update an RBAC Group's name. Groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. + - `:"cache-diagnosis-2026-04-07"` -The RBAC Groups API is available to Claude Enterprise organizations only. + - `:"dreaming-2026-04-21"` -#### Parameters + - `:"thinking-token-count-2026-05-13"` -- `rbac_group_id: String` (path parameter) + - `:"server-side-fallback-2026-06-01"` - ID of the RBAC Group. + - `:"server-side-fallback-2026-07-01"` -- `name: String` + - `:"fallback-credit-2026-06-01"` - Name of the RBAC Group. Not uniqueness-enforced. + - `:"fallback-credit-2026-07-01"` - minLength: 1, maxLength: 255 + - `:"agent-memory-2026-07-22"` -#### Returns + - `:"mid-conversation-tool-changes-2026-07-01"` -- `class BetaRBACGroup` + - `:"compact-2026-01-12"` - - `type: :rbac_group` + - `:"computer-use-2025-11-24"` - Object type. + - `:"mcp-tunnels-2026-06-22"` - For RBAC Groups, this is always `"rbac_group"`. + - `:"structured-outputs-2025-11-13"` - - `id: String` + - `:"task-budgets-2026-03-13"` - ID of the RBAC Group. + - `:"thinking-display-updates-2026-08-18"` - - `created_at: Time` + - `:"ce-user-management-2026-07-13"` - RFC 3339 timestamp of when the RBAC Group was created. + - `:"mid-conversation-output-config-2026-07-01"` - format: date-time + - `:"thinking-binding-controls-2026-08-01"` - - `name: String` + - `:"mid-conversation-system-clear-at-2026-08-21"` - Name of the RBAC Group. Not uniqueness-enforced. + - `:"compact-2026-09-04"` - - `role_ids: Array[String]` + - `:"inline-tools-2026-09-15"` - RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list. + - `:"mcp-client-2026-09-15"` - - `source_type: :direct | :scim` + - `:"ce-plugins-2026-09-01"` - How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider. + - `:"spend-limit-reads-2026-09-26"` - - `:direct` + - `:"telemetry-destinations-2026-08-11"` - - `:scim` + - `:"webhooks-2026-10-07"` - - `updated_at: Time` +#### Returns - RFC 3339 timestamp of when the RBAC Group was last updated. +- `class BetaPlugin` - format: date-time + - `type: :plugin` -#### Example + Always `plugin`. -```ruby -require "anthropic" + - `id: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + The Plugin's ID. -beta_rbac_group = anthropic.beta.organization.rbac_groups.update("rbac_group_id") + - `components: Array[BetaPluginComponent]` -puts(beta_rbac_group) -``` + What the served version contains; null when not enumerated. -##### Response (200) + - `type: :agent | :cli | :command | 3 more` -```json -{ - "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "created_at": "2024-10-30T23:58:27.427722Z", - "name": "Engineering", - "role_ids": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "roles": [ - "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s" - ], - "source_type": "direct", - "type": "rbac_group", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` + The kind of component. -### Delete RBAC Group + - `:agent` -`beta.organization.rbac_groups.delete(rbac_group_id) -> RBACGroupDeleteResponse` + - `:cli` -**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}` + - `:command` -Delete an RBAC Group. Groups provisioned by an identity provider (source type `"scim"`) cannot be deleted via the API while an organization in the tenant uses SCIM provisioning. + - `:hook` -The RBAC Groups API is available to Claude Enterprise organizations only. + - `:mcp_server` -#### Parameters + - `:skill` -- `rbac_group_id: String` (path parameter) + - `description: String` - ID of the RBAC Group. + What the component declares about itself; always null for MCP servers, hooks, and CLIs. -#### Returns + - `name: String` -- `class RBACGroupDeleteResponse` + The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - - `type: :rbac_group_deleted` + - `content_scan: BetaPluginContentScan` - Deleted object type. + The served version's content scan; null when it has not been scanned. - For RBAC Groups, this is always `"rbac_group_deleted"`. + - `assessment: :fail | :pass | :unknown | :warn` - - `id: String` + The scan's verdict; set only when `status` is `completed`. - ID of the RBAC Group. + - `:fail` -#### Example + - `:pass` -```ruby -require "anthropic" + - `:unknown` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:warn` -rbac_group = anthropic.beta.organization.rbac_groups.delete("rbac_group_id") + - `reason: String` -puts(rbac_group) -``` + The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. -##### Response (200) + - `status: :completed | :errored | :processing` -```json -{ - "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "type": "rbac_group_deleted" -} -``` + `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. -## Beta › Organization › RBAC Groups › Members + - `:completed` -### List RBAC Group Members + - `:errored` -`beta.organization.rbac_groups.members.list(rbac_group_id, **kwargs) -> PageCursor` + - `:processing` -**GET** `/v1/organizations/rbac_groups/{rbac_group_id}/members` + - `created_at: Time` -List members of an RBAC Group. + RFC 3339. -The RBAC Groups API is available to Claude Enterprise organizations only. + format: date-time -#### Parameters + - `created_by: BetaPluginUserActor | BetaPluginAPIActor` -- `rbac_group_id: String` (path parameter) + Who created the Plugin; null when no creator is recorded. - ID of the RBAC Group. + - `class BetaPluginUserActor` -- `limit: Integer` (query parameter) + - `type: :user_actor` - Number of items to return per page. + A member of the organization. - Defaults to `20`. Ranges from `1` to `1000`. + - `email_address: String` - minimum: 1, maximum: 1000 + The member's email address; may be null, for example when they are no longer a member of the organization. -- `page: String` (query parameter) + - `user_id: String` - Optionally set to the `next_page` token from the previous response. + The member's User ID. -#### Returns + - `class BetaPluginAPIActor` -- `class BetaRBACGroupMember` + - `type: :api_actor` - - `type: :rbac_group_member` + An Admin API key, in the same form the Compliance API activity feed uses for it. - Object type. + - `api_key_id: String` - For RBAC Group Members, this is always `"rbac_group_member"`. + The key's ID. - - `created_at: Time` + - `description: String` - RFC 3339 timestamp of when the User was added to the RBAC Group. + The served version's description. - format: date-time + - `display_name: String` - - `email: String` + The served version's display name. - Email of the User. + - `latest_version_id: String` - - `rbac_group_id: String` + The newest version. - ID of the RBAC Group. + - `manifest_version: String` - - `user_id: String` + The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). - ID of the User. + - `marketplace_id: String` -#### Example + The ID of the plugin marketplace the Plugin lives in. -```ruby -require "anthropic" + - `name: String` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. -page = anthropic.beta.organization.rbac_groups.members.list("rbac_group_id") + - `organization_installation_preference: :auto_install | :available | :not_available | :required` -puts(page) -``` + Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. -##### Response (200) + - `:auto_install` -```json -{ - "data": [ - { - "created_at": "2024-10-30T23:58:27.427722Z", - "email": "user@emaildomain.com", - "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "type": "rbac_group_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - } - ], - "has_more": false, - "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9" -} -``` + - `:available` -### Add RBAC Group Member + - `:not_available` -`beta.organization.rbac_groups.members.add(rbac_group_id, **kwargs) -> BetaRBACGroupMember` + - `:required` -**POST** `/v1/organizations/rbac_groups/{rbac_group_id}/members` + - `organization_installation_preference_inherited: bool` -Add a User to an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. + Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. -The RBAC Groups API is available to Claude Enterprise organizations only. + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` -#### Parameters + Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. -- `rbac_group_id: String` (path parameter) + - `class BetaPluginOwnerOrganization` - ID of the RBAC Group. + - `type: :organization` -- `user_id: String` + The Plugin lives in a plugin marketplace the organization owns. - ID of the User. + - `class BetaPluginOwnerUser` -#### Returns + - `type: :user` -- `class BetaRBACGroupMember` + The Plugin lives in one member's personal plugin marketplace. - - `type: :rbac_group_member` + - `user_id: String` - Object type. + The member's User ID. - For RBAC Group Members, this is always `"rbac_group_member"`. + - `reach: :contained | :privileged | :remote` - - `created_at: Time` + How far the served version reaches, or `null` if it is not classified. - RFC 3339 timestamp of when the User was added to the RBAC Group. + `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. - format: date-time + If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. - - `email: String` + - `:contained` - Email of the User. + - `:privileged` - - `rbac_group_id: String` + - `:remote` - ID of the RBAC Group. + - `served_version_id: String` - - `user_id: String` + The version claude.ai serves to members. - ID of the User. + - `served_version_pinned: bool` + + False while the served version follows each new version; true once it has been pinned to one. + + - `updated_at: Time` + + RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. + + format: date-time #### Example @@ -102281,386 +108893,396 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_rbac_group_member = anthropic.beta.organization.rbac_groups.members.add( - "rbac_group_id", - user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q" -) +beta_plugin = anthropic.beta.organization.plugins.retrieve("plugin_id") -puts(beta_rbac_group_member) +puts(beta_plugin) ``` ##### Response (200) ```json { - "created_at": "2024-10-30T23:58:27.427722Z", - "email": "user@emaildomain.com", - "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "type": "rbac_group_member", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "components": [ + { + "description": "description", + "name": "review-pr", + "type": "skill" + } + ], + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "manifest_version": "1.2.0", + "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "name": "code-review-helper", + "organization_installation_preference": "available", + "organization_installation_preference_inherited": true, + "owner": { + "type": "organization" + }, + "reach": "contained", + "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", + "served_version_pinned": true, + "type": "plugin", + "updated_at": "2026-03-14T09:26:53.589793Z" } ``` -### Remove RBAC Group Member +### Update Plugin + +`beta.organization.plugins.update(plugin_id, **kwargs) -> BetaPlugin` + +**POST** `/v1/organizations/plugins/{plugin_id}` + +Change which stored version of an organization-owned Plugin is served to members, +for example to roll back to an earlier one. This pins the served version: later +uploads are stored but no longer change what is served, and pinning cannot currently +be undone, here or in claude.ai. + +Pass the version as `served_version_id`: an earlier one to roll back, a later one to +start serving a version that was stored without being served, or the one already +served to pin it without changing what is served. No new version is created. + +When the organization has content scanning enabled, a version whose scan is still +running is refused with a 409 (`error_code` `scan_pending`; retry once the scan +finishes) and one whose scan failed, errored or reached no verdict with a 400 +(`scan_failed`; a `warn` is accepted). When the Plugin is in the organization's +library marketplace, a version other than the one served is also refused with a 409 +when one of its skills has a name that an organization skill (one an administrator +uploaded for the whole organization in claude.ai) has since taken: `error_code` +`skill_name_taken`, with that name in `details.skill_name`. A member-owned Plugin +cannot be updated here (403). + +This endpoint does not write installation settings; they are written at +`/v1/organizations/plugins/{plugin_id}/installation_settings/{target}`. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `plugin_id: String` (path parameter) -`beta.organization.rbac_groups.members.remove(user_id, **kwargs) -> MemberRemoveResponse` + ID of the Plugin (prefixed `plugin_`). -**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}/members/{user_id}` +- `served_version_id: String` -Remove a User from an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning. + Serve this version of the Plugin (prefixed `pluginver_`) and pin the served version to it; `latest` is not accepted. -The RBAC Groups API is available to Claude Enterprise organizations only. +- `betas: Array[AnthropicBeta]` (header parameter) -#### Parameters + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. -- `rbac_group_id: String` (path parameter) + - `String = String` - ID of the RBAC Group. + - `:"message-batches-2024-09-24"` -- `user_id: String` (path parameter) + - `:"prompt-caching-2024-07-31"` - ID of the User. + - `:"computer-use-2024-10-22"` -#### Returns + - `:"computer-use-2025-01-24"` -- `class MemberRemoveResponse` + - `:"pdfs-2024-09-25"` - - `type: :rbac_group_member_deleted` + - `:"token-counting-2024-11-01"` - Deleted object type. For RBAC Group Members, this is always `"rbac_group_member_deleted"`. + - `:"token-efficient-tools-2025-02-19"` - - `rbac_group_id: String` + - `:"output-128k-2025-02-19"` - ID of the RBAC Group. + - `:"files-api-2025-04-14"` - - `user_id: String` + - `:"mcp-client-2025-04-04"` - ID of the User. + - `:"mcp-client-2025-11-20"` -#### Example + - `:"dev-full-thinking-2025-05-14"` -```ruby -require "anthropic" + - `:"interleaved-thinking-2025-05-14"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"code-execution-2025-05-22"` -member = anthropic.beta.organization.rbac_groups.members.remove("user_id", rbac_group_id: "rbac_group_id") + - `:"extended-cache-ttl-2025-04-11"` -puts(member) -``` + - `:"context-1m-2025-08-07"` -##### Response (200) + - `:"context-management-2025-06-27"` -```json -{ - "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "type": "rbac_group_member_deleted", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" -} -``` + - `:"model-context-window-exceeded-2025-08-26"` -## Beta › Organization › RBAC Roles + - `:"skills-2025-10-02"` -### List RBAC Roles + - `:"fast-mode-2026-02-01"` -`beta.organization.rbac_roles.list(**kwargs) -> PageCursor` + - `:"output-300k-2026-03-24"` -**GET** `/v1/organizations/rbac_roles` + - `:"user-profiles-2026-03-24"` -List RBAC Roles in the organization. + - `:"user-profiles-2026-08-18"` -The RBAC Roles API is available to Claude Enterprise organizations only. + - `:"user-profiles-2026-09-04"` -#### Parameters + - `:"advisor-tool-2026-03-01"` -- `limit: Integer` (query parameter) + - `:"managed-agents-2026-04-01"` - Number of items to return per page. + - `:"cache-diagnosis-2026-04-07"` - Defaults to `20`. Ranges from `1` to `1000`. + - `:"dreaming-2026-04-21"` - minimum: 1, maximum: 1000 + - `:"thinking-token-count-2026-05-13"` -- `page: String` (query parameter) + - `:"server-side-fallback-2026-06-01"` - Optionally set to the `next_page` token from the previous response. + - `:"server-side-fallback-2026-07-01"` -#### Returns + - `:"fallback-credit-2026-06-01"` -- `class BetaRBACRole` + - `:"fallback-credit-2026-07-01"` - - `type: :rbac_role` + - `:"agent-memory-2026-07-22"` - Object type. + - `:"mid-conversation-tool-changes-2026-07-01"` - For RBAC Roles, this is always `"rbac_role"`. + - `:"compact-2026-01-12"` - - `id: String` + - `:"computer-use-2025-11-24"` - ID of the RBAC Role. + - `:"mcp-tunnels-2026-06-22"` - - `created_at: Time` + - `:"structured-outputs-2025-11-13"` - RFC 3339 datetime string indicating when the RBAC Role was created. + - `:"task-budgets-2026-03-13"` - format: date-time + - `:"thinking-display-updates-2026-08-18"` - - `display_name: String` + - `:"ce-user-management-2026-07-13"` - Name of the RBAC Role. For a role created by Anthropic, this name can differ from the label claude.ai shows, and Anthropic may change the name. To keep a lasting reference to a role, store its `id`. + - `:"mid-conversation-output-config-2026-07-01"` - - `updated_at: Time` + - `:"thinking-binding-controls-2026-08-01"` - RFC 3339 datetime string indicating when the RBAC Role was last updated. + - `:"mid-conversation-system-clear-at-2026-08-21"` - format: date-time + - `:"compact-2026-09-04"` - - `name: String` + - `:"inline-tools-2026-09-15"` - **Deprecated**: Use `display_name` instead; `name` always has the same value. + - `:"mcp-client-2026-09-15"` - Deprecated: use `display_name` instead. Name of the RBAC Role; always the same value as `display_name`. + - `:"ce-plugins-2026-09-01"` -#### Example + - `:"spend-limit-reads-2026-09-26"` -```ruby -require "anthropic" + - `:"telemetry-destinations-2026-08-11"` -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:"webhooks-2026-10-07"` -page = anthropic.beta.organization.rbac_roles.list +#### Returns -puts(page) -``` +- `class BetaPlugin` -##### Response (200) + - `type: :plugin` -```json -{ - "data": [ - { - "id": "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s", - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "Project Editor", - "name": "Project Editor", - "type": "rbac_role", - "updated_at": "2024-10-30T23:58:27.427722Z" - } - ], - "has_more": true, - "next_page": "eyJjdXJzb3IiOiAicmJhY19yb2xlXzAxIn0" -} -``` + Always `plugin`. -### Get RBAC Role + - `id: String` -`beta.organization.rbac_roles.retrieve(rbac_role_id) -> BetaRBACRole` + The Plugin's ID. -**GET** `/v1/organizations/rbac_roles/{rbac_role_id}` + - `components: Array[BetaPluginComponent]` -Retrieve an RBAC Role by ID. + What the served version contains; null when not enumerated. -The RBAC Roles API is available to Claude Enterprise organizations only. + - `type: :agent | :cli | :command | 3 more` -#### Parameters + The kind of component. -- `rbac_role_id: String` (path parameter) + - `:agent` - ID of the RBAC Role. + - `:cli` -#### Returns + - `:command` -- `class BetaRBACRole` + - `:hook` - - `type: :rbac_role` + - `:mcp_server` - Object type. + - `:skill` - For RBAC Roles, this is always `"rbac_role"`. + - `description: String` - - `id: String` + What the component declares about itself; always null for MCP servers, hooks, and CLIs. - ID of the RBAC Role. + - `name: String` - - `created_at: Time` + The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - RFC 3339 datetime string indicating when the RBAC Role was created. + - `content_scan: BetaPluginContentScan` - format: date-time + The served version's content scan; null when it has not been scanned. - - `display_name: String` + - `assessment: :fail | :pass | :unknown | :warn` - Name of the RBAC Role. For a role created by Anthropic, this name can differ from the label claude.ai shows, and Anthropic may change the name. To keep a lasting reference to a role, store its `id`. + The scan's verdict; set only when `status` is `completed`. - - `updated_at: Time` + - `:fail` - RFC 3339 datetime string indicating when the RBAC Role was last updated. + - `:pass` - format: date-time + - `:unknown` - - `name: String` + - `:warn` - **Deprecated**: Use `display_name` instead; `name` always has the same value. + - `reason: String` - Deprecated: use `display_name` instead. Name of the RBAC Role; always the same value as `display_name`. + The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. -#### Example + - `status: :completed | :errored | :processing` -```ruby -require "anthropic" + `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:completed` -beta_rbac_role = anthropic.beta.organization.rbac_roles.retrieve("rbac_role_id") + - `:errored` -puts(beta_rbac_role) -``` + - `:processing` -##### Response (200) + - `created_at: Time` -```json -{ - "id": "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s", - "created_at": "2024-10-30T23:58:27.427722Z", - "display_name": "Project Editor", - "name": "Project Editor", - "type": "rbac_role", - "updated_at": "2024-10-30T23:58:27.427722Z" -} -``` + RFC 3339. -## Beta › Organization › RBAC Roles › Permissions + format: date-time -### List RBAC Role Permissions + - `created_by: BetaPluginUserActor | BetaPluginAPIActor` -`beta.organization.rbac_roles.permissions.list(rbac_role_id, **kwargs) -> PageCursor` + Who created the Plugin; null when no creator is recorded. -**GET** `/v1/organizations/rbac_roles/{rbac_role_id}/permissions` + - `class BetaPluginUserActor` -List the permissions an RBAC Role grants. + - `type: :user_actor` -The RBAC Roles API is available to Claude Enterprise organizations only. + A member of the organization. -#### Parameters + - `email_address: String` -- `rbac_role_id: String` (path parameter) + The member's email address; may be null, for example when they are no longer a member of the organization. - ID of the RBAC Role. + - `user_id: String` -- `limit: Integer` (query parameter) + The member's User ID. - Number of items to return per page. + - `class BetaPluginAPIActor` - Defaults to `20`. Ranges from `1` to `1000`. + - `type: :api_actor` - minimum: 1, maximum: 1000 + An Admin API key, in the same form the Compliance API activity feed uses for it. -- `page: String` (query parameter) + - `api_key_id: String` - Optionally set to the `next_page` token from the previous response. + The key's ID. -#### Returns + - `description: String` -- `class BetaRBACRolePermission` + The served version's description. - - `type: :rbac_role_permission` + - `display_name: String` - Object type. + The served version's display name. - For RBAC Role Permissions, this is always `"rbac_role_permission"`. + - `latest_version_id: String` - - `action: String` + The newest version. - Action the permission grants on the resource. + - `manifest_version: String` - The vocabulary follows the resource: an `organization` grant carries a - product-feature entitlement (for example `chat`), an admin-panel - permission entitlement (`permission_*`), or a blanket capability-access - mode — `capability_access_all` grants every product-feature entitlement, - and `capability_access_all_ga` grants the generally-available subset as - it stands at permission-check time; neither mode grants model-access - entitlements. A consumer enumerating a role's per-feature grants should - treat a blanket row as granting every product-feature entitlement it - covers, or it will under-report the role's effective access. A `connector_tool` grant carries - a tool-access action (`use` or `always_allow`); a `connector_scope` grant - carries the scope action `grant` (the role may receive the named OAuth - scope when tokens are minted for the connector); `connector` and - `all_connectors` grants carry a tool-access action, the scope action, or - an authentication-method action (`interactive` or `managed`). + The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). - - `resource: BetaRBACOrganizationPermissionResource | BetaRBACConnectorToolPermissionResource | BetaRBACConnectorScopePermissionResource | 2 more` + - `marketplace_id: String` - What the permission applies to. + The ID of the plugin marketplace the Plugin lives in. - A tagged union: `type` names the kind of resource and determines which - identifier fields are present. + - `name: String` - - `class BetaRBACOrganizationPermissionResource` + Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. - - `type: :organization` + - `organization_installation_preference: :auto_install | :available | :not_available | :required` - Kind of resource the permission applies to. + Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - `organization_id: String` + - `:auto_install` - UUID of the organization the permission applies to. + - `:available` - - `class BetaRBACConnectorToolPermissionResource` + - `:not_available` - - `type: :connector_tool` + - `:required` - Kind of resource the permission applies to. + - `organization_installation_preference_inherited: bool` - - `connector_id: String` + Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. - ID of the connector the permission applies to. + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - `tool_name: String` + Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. - Published name of the connector tool the permission applies to. + - `class BetaPluginOwnerOrganization` - When the published name contains characters outside `[a-zA-Z0-9_-]` (or - collides with a reserved form), it is server-encoded into a stable - `{prefix}_{32-hex}` form — a shortened readable prefix of the name plus - a hash — from which the published name is not recoverable. + - `type: :organization` - - `class BetaRBACConnectorScopePermissionResource` + The Plugin lives in a plugin marketplace the organization owns. - - `type: :connector_scope` + - `class BetaPluginOwnerUser` - Kind of resource the permission applies to. + - `type: :user` - - `connector_id: String` + The Plugin lives in one member's personal plugin marketplace. - ID of the connector the permission applies to. + - `user_id: String` - - `scope: String` + The member's User ID. - OAuth scope the permission names — the role may receive this scope when - tokens are minted for the connector. + - `reach: :contained | :privileged | :remote` - Subject to the same encoding rule as `tool_name`: a scope containing - characters outside `[a-zA-Z0-9_-]` (or colliding with a reserved form) - appears server-encoded in a stable `{prefix}_{32-hex}` form. OAuth - scopes routinely contain `:` and `/`, so most appear encoded. + How far the served version reaches, or `null` if it is not classified. - - `class BetaRBACConnectorPermissionResource` + `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. - - `type: :connector` + If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. - Kind of resource the permission applies to. + - `:contained` - - `connector_id: String` + - `:privileged` - ID of the connector the permission applies to. + - `:remote` - - `class BetaRBACAllConnectorsPermissionResource` + - `served_version_id: String` - - `type: :all_connectors` + The version claude.ai serves to members. - Kind of resource the permission applies to. + - `served_version_pinned: bool` + + False while the served version follows each new version; true once it has been pinned to one. + + - `updated_at: Time` + + RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. + + format: date-time #### Example @@ -102669,85 +109291,133 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.rbac_roles.permissions.list("rbac_role_id") +beta_plugin = anthropic.beta.organization.plugins.update( + "plugin_id", + served_version_id: "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8" +) -puts(page) +puts(beta_plugin) ``` ##### Response (200) ```json { - "data": [ + "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "components": [ { - "action": "use", - "resource": { - "organization_id": "3c4f5e6d-7a8b-49c0-9d1e-2f3a4b5c6d7e", - "type": "organization" - }, - "type": "rbac_role_permission" + "description": "description", + "name": "review-pr", + "type": "skill" } ], - "has_more": true, - "next_page": "eyJjdXJzb3IiOiAicmJhY19yb2xlXzAxIn0" + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "manifest_version": "1.2.0", + "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "name": "code-review-helper", + "organization_installation_preference": "available", + "organization_installation_preference_inherited": true, + "owner": { + "type": "organization" + }, + "reach": "contained", + "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", + "served_version_pinned": true, + "type": "plugin", + "updated_at": "2026-03-14T09:26:53.589793Z" } ``` -## Beta › Organization › Plugins +### List Plugins -### Create Plugin +`beta.organization.plugins.list(**kwargs) -> PageCursor` -`beta.organization.plugins.create(**kwargs) -> BetaPlugin` +**GET** `/v1/organizations/plugins` -**POST** `/v1/organizations/plugins` +List the Plugins created under the organization, newest first: those in the +organization's own plugin marketplaces and those in members' personal plugin +marketplaces. -Create an organization-owned Plugin and its first version by uploading the -version's files. +Plugins in members' personal marketplaces are listed with the same detail as the +organization's own, and their files can be downloaded through the version archive +endpoint, which records each such download on the Compliance API activity feed. -The upload is `multipart/form-data`: the version's files (`files`, each part sent -as `files[]`), with an optional `marketplace_id` and `release_notes`. The manifest's `name` becomes the -Plugin's `name`, and `display_name`, `description` and `manifest_version` come -from the manifest too. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. -`name` may contain lowercase letters (from any alphabet), digits, and hyphens, up -to 64 characters. Uppercase letters, spaces, underscores, and other punctuation are -rejected. +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. -The `name` must be unique within the marketplace: a name already taken -returns a 409 with `error_code` `plugin_name_taken` and, when a Plugin holds it, -that Plugin's ID in `details.plugin_id`. A Plugin going into the organization's -library marketplace is also refused with a 409 when one of its skills has the name of -an organization skill (a skill an administrator uploaded for the whole organization -in claude.ai): `error_code` `skill_name_taken`, with that name in -`details.skill_name`; rename the skill, or remove the organization skill in -claude.ai. A 503 with `error_code` -`registration_pending` means the Plugin and its version were stored (their IDs are -in `details`) but are not yet usable in claude.ai: do not retry the create (the -retry would return `plugin_name_taken`); create a version on the stored Plugin -instead, which completes it. +#### Parameters -For a worked example, see [Create a plugin](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#create-a-plugin) -in the Plugins API guide. +- `created_at_gt: Time` (query parameter) -**Accepted credentials:** an Admin API key with the `write:plugins` scope. + RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + format: date-time -#### Parameters +- `created_at_gte: Time` (query parameter) -- `files: Array[String]` + RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. - The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. + format: date-time -- `marketplace_id: String` +- `created_at_lt: Time` (query parameter) - ID of the organization-owned plugin marketplace to create the Plugin in (prefixed `marketplace_`). It must be a `manual` marketplace, one whose Plugins are uploaded rather than synchronized from a repository. When omitted, the Plugin is created in the organization's library marketplace, an organization-owned `manual` marketplace created on first use. + RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. -- `release_notes: String` + format: date-time - Release notes stored with the version and shown in its version history in claude.ai; up to 5,000 characters. +- `created_at_lte: Time` (query parameter) - maxLength: 5000 + RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. + + format: date-time + +- `limit: Integer` (query parameter) + + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `100`. + + minimum: 1, maximum: 100 + +- `marketplace_id: String` (query parameter) + + Only Plugins in this plugin marketplace (prefixed `marketplace_`). + +- `organization_id: String` (query parameter) + + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + +- `owner_type: :organization | :user` (query parameter) + + `organization` for Plugins in the organization's plugin marketplaces, `user` for Plugins in members' personal plugin marketplaces. + + - `:organization` + + - `:user` + +- `owner_user_id: String` (query parameter) + + Only Plugins in this member's personal plugin marketplaces (prefixed `user_`); a removed member's ID is accepted. + +- `page: String` (query parameter) + + Optionally set to the `next_page` token from the previous response. + + maxLength: 2048 - `betas: Array[AnthropicBeta]` (header parameter) @@ -102857,6 +109527,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns - `class BetaPlugin` @@ -103056,62 +109728,78 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin = anthropic.beta.organization.plugins.create(files: [StringIO.new("Example data")]) +page = anthropic.beta.organization.plugins.list -puts(beta_plugin) +puts(page) ``` ##### Response (200) ```json { - "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "components": [ + "data": [ { - "description": "description", - "name": "review-pr", - "type": "skill" + "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "components": [ + { + "description": "description", + "name": "review-pr", + "type": "skill" + } + ], + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "manifest_version": "1.2.0", + "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "name": "code-review-helper", + "organization_installation_preference": "available", + "organization_installation_preference_inherited": true, + "owner": { + "type": "organization" + }, + "reach": "contained", + "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", + "served_version_pinned": true, + "type": "plugin", + "updated_at": "2026-03-14T09:26:53.589793Z" } ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "manifest_version": "1.2.0", - "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "name": "code-review-helper", - "organization_installation_preference": "available", - "organization_installation_preference_inherited": true, - "owner": { - "type": "organization" - }, - "reach": "contained", - "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", - "served_version_pinned": true, - "type": "plugin", - "updated_at": "2026-03-14T09:26:53.589793Z" + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" } ``` -### Get Plugin +### Delete Plugin -`beta.organization.plugins.retrieve(plugin_id, **kwargs) -> BetaPlugin` +`beta.organization.plugins.delete(plugin_id, **kwargs) -> BetaDeletedPlugin` -**GET** `/v1/organizations/plugins/{plugin_id}` +**DELETE** `/v1/organizations/plugins/{plugin_id}` -Retrieve a Plugin by ID. +Permanently delete a Plugin and every version it holds, exactly as when an +administrator deletes it in claude.ai. The Plugin may belong to the organization or +to a member, including a member who has since left the organization. -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. +An organization-owned Plugin's installation settings go with it; a member-owned +Plugin's shares are withdrawn and its owner no longer has it. + +To take an organization-owned Plugin out of use reversibly, set its +organization-wide installation setting to `not_available` instead (and +remove or change any group settings, which override it for their members). Only a +Plugin in a `manual` marketplace can be deleted here; one synchronized from a +repository is removed by removing it from the repository (400). + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -103121,9 +109809,197 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `organization_id: String` (query parameter) +- `betas: Array[AnthropicBeta]` (header parameter) - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaDeletedPlugin` + + - `type: :plugin_deleted` + + Always `plugin_deleted`. + + - `id: String` + + The deleted Plugin's ID. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_deleted_plugin = anthropic.beta.organization.plugins.delete("plugin_id") + +puts(beta_deleted_plugin) +``` + +##### Response (200) + +```json +{ + "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "type": "plugin_deleted" +} +``` + +## Beta › Organization › Plugins › Versions + +### Create Plugin Version + +`beta.organization.plugins.versions.create(plugin_id, **kwargs) -> BetaPluginVersion` + +**POST** `/v1/organizations/plugins/{plugin_id}/versions` + +Add a version to an organization-owned Plugin by uploading the new version's +files; it becomes the version served to members unless the Plugin's served version +has been pinned. + +The upload is the same `multipart/form-data` as creating a Plugin: the version's +files (`files`, each part sent as `files[]`) and optional `release_notes`. The uploaded manifest's `name` +must equal the Plugin's `name`. Returns the stored version; read the Plugin back to +see which version it serves. + +Only a Plugin in a `manual` marketplace takes uploads; a Plugin synchronized from +a repository gets its versions from the repository. When the Plugin is in the +organization's library marketplace, a version that adds a skill with the name of an +organization skill (a skill an administrator uploaded for the whole organization in +claude.ai) is refused with a 409: `error_code` `skill_name_taken`, with that name in +`details.skill_name`. A 503 with `error_code` +`registration_pending` means the version was stored but is not yet usable; a later +version create on the Plugin completes it. + +For a worked example, see [Create a version](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#create-a-version) +in the Plugins API guide. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `plugin_id: String` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + +- `files: Array[String]` + + The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. + +- `release_notes: String` + + Release notes stored with the version and shown in its version history in claude.ai; up to 5,000 characters. + + maxLength: 5000 - `betas: Array[AnthropicBeta]` (header parameter) @@ -103233,21 +110109,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPlugin` +- `class BetaPluginVersion` - - `type: :plugin` + - `type: :plugin_version` - Always `plugin`. + Always `plugin_version`. - `id: String` - The Plugin's ID. + The version's ID. - `components: Array[BetaPluginComponent]` - What the served version contains; null when not enumerated. + What the version contains; null when not enumerated. - `type: :agent | :cli | :command | 3 more` @@ -103275,7 +110153,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `content_scan: BetaPluginContentScan` - The served version's content scan; null when it has not been scanned. + This version's content scan; null when it has not been scanned. - `assessment: :fail | :pass | :unknown | :warn` @@ -103311,7 +110189,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - Who created the Plugin; null when no creator is recorded. + Who uploaded this version; null when not recorded. - `class BetaPluginUserActor` @@ -103339,71 +110217,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `description: String` - The served version's description. + The manifest's description; null when it declares none. - `display_name: String` - The served version's display name. - - - `latest_version_id: String` - - The newest version. + The manifest's display name; null when it declares none. - `manifest_version: String` - The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). - - - `marketplace_id: String` - - The ID of the plugin marketplace the Plugin lives in. - - - `name: String` - - Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. - - - `organization_installation_preference: :auto_install | :available | :not_available | :required` - - Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `:auto_install` - - - `:available` - - - `:not_available` - - - `:required` - - - `organization_installation_preference_inherited: bool` - - Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. - - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. - - - `class BetaPluginOwnerOrganization` - - - `type: :organization` - - The Plugin lives in a plugin marketplace the organization owns. - - - `class BetaPluginOwnerUser` - - - `type: :user` - - The Plugin lives in one member's personal plugin marketplace. + The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). - - `user_id: String` + - `plugin_id: String` - The member's User ID. + The Plugin's ID. - `reach: :contained | :privileged | :remote` - How far the served version reaches, or `null` if it is not classified. - - `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. - - If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. + How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. - `:contained` @@ -103411,19 +110241,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:remote` - - `served_version_id: String` - - The version claude.ai serves to members. - - - `served_version_pinned: bool` - - False while the served version follows each new version; true once it has been pinned to one. - - - `updated_at: Time` - - RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. + - `release_notes: String` - format: date-time + As supplied with the upload; null when none were supplied. #### Example @@ -103432,16 +110252,16 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin = anthropic.beta.organization.plugins.retrieve("plugin_id") +beta_plugin_version = anthropic.beta.organization.plugins.versions.create("plugin_id", files: [StringIO.new("Example data")]) -puts(beta_plugin) +puts(beta_plugin_version) ``` ##### Response (200) ```json { - "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", "components": [ { "description": "description", @@ -103462,52 +110282,26 @@ puts(beta_plugin) }, "description": "Reviews pull requests against your team's conventions.", "display_name": "Code Review Helper", - "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", "manifest_version": "1.2.0", - "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "name": "code-review-helper", - "organization_installation_preference": "available", - "organization_installation_preference_inherited": true, - "owner": { - "type": "organization" - }, + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", "reach": "contained", - "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", - "served_version_pinned": true, - "type": "plugin", - "updated_at": "2026-03-14T09:26:53.589793Z" + "release_notes": "Adds a review checklist for database migrations.", + "type": "plugin_version" } ``` -### Update Plugin - -`beta.organization.plugins.update(plugin_id, **kwargs) -> BetaPlugin` - -**POST** `/v1/organizations/plugins/{plugin_id}` +### List Plugin Versions -Change which stored version of an organization-owned Plugin is served to members, -for example to roll back to an earlier one. This pins the served version: later -uploads are stored but no longer change what is served, and pinning cannot currently -be undone, here or in claude.ai. +`beta.organization.plugins.versions.list(plugin_id, **kwargs) -> PageCursor` -Pass the version as `served_version_id`: an earlier one to roll back, a later one to -start serving a version that was stored without being served, or the one already -served to pin it without changing what is served. No new version is created. +**GET** `/v1/organizations/plugins/{plugin_id}/versions` -When the organization has content scanning enabled, a version whose scan is still -running is refused with a 409 (`error_code` `scan_pending`; retry once the scan -finishes) and one whose scan failed, errored or reached no verdict with a 400 -(`scan_failed`; a `warn` is accepted). When the Plugin is in the organization's -library marketplace, a version other than the one served is also refused with a 409 -when one of its skills has a name that an organization skill (one an administrator -uploaded for the whole organization in claude.ai) has since taken: `error_code` -`skill_name_taken`, with that name in `details.skill_name`. A member-owned Plugin -cannot be updated here (403). +List a Plugin's versions, newest first. -This endpoint does not write installation settings; they are written at -`/v1/organizations/plugins/{plugin_id}/installation_settings/{target}`. +The first item of the first page is the version the Plugin's `latest_version_id` +refers to. -**Accepted credentials:** an Admin API key with the `write:plugins` scope. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -103517,9 +110311,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `served_version_id: String` +- `limit: Integer` (query parameter) - Serve this version of the Plugin (prefixed `pluginver_`) and pin the served version to it; `latest` is not accepted. + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `1000`. + + minimum: 1, maximum: 1000 + +- `organization_id: String` (query parameter) + + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + +- `page: String` (query parameter) + + Optionally set to the `next_page` token from the previous response. + + maxLength: 2048 - `betas: Array[AnthropicBeta]` (header parameter) @@ -103629,21 +110437,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPlugin` +- `class BetaPluginVersion` - - `type: :plugin` + - `type: :plugin_version` - Always `plugin`. + Always `plugin_version`. - `id: String` - The Plugin's ID. + The version's ID. - `components: Array[BetaPluginComponent]` - What the served version contains; null when not enumerated. + What the version contains; null when not enumerated. - `type: :agent | :cli | :command | 3 more` @@ -103671,7 +110481,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `content_scan: BetaPluginContentScan` - The served version's content scan; null when it has not been scanned. + This version's content scan; null when it has not been scanned. - `assessment: :fail | :pass | :unknown | :warn` @@ -103707,7 +110517,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - Who created the Plugin; null when no creator is recorded. + Who uploaded this version; null when not recorded. - `class BetaPluginUserActor` @@ -103735,71 +110545,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `description: String` - The served version's description. - - - `display_name: String` - - The served version's display name. - - - `latest_version_id: String` - - The newest version. - - - `manifest_version: String` - - The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). - - - `marketplace_id: String` - - The ID of the plugin marketplace the Plugin lives in. - - - `name: String` - - Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. - - - `organization_installation_preference: :auto_install | :available | :not_available | :required` - - Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `:auto_install` - - - `:available` - - - `:not_available` - - - `:required` - - - `organization_installation_preference_inherited: bool` - - Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. - - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. - - - `class BetaPluginOwnerOrganization` - - - `type: :organization` - - The Plugin lives in a plugin marketplace the organization owns. - - - `class BetaPluginOwnerUser` + The manifest's description; null when it declares none. - - `type: :user` + - `display_name: String` - The Plugin lives in one member's personal plugin marketplace. + The manifest's display name; null when it declares none. - - `user_id: String` + - `manifest_version: String` - The member's User ID. + The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). - - `reach: :contained | :privileged | :remote` + - `plugin_id: String` - How far the served version reaches, or `null` if it is not classified. + The Plugin's ID. - `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. + - `reach: :contained | :privileged | :remote` - If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. + How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. - `:contained` @@ -103807,19 +110569,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:remote` - - `served_version_id: String` - - The version claude.ai serves to members. - - - `served_version_pinned: bool` - - False while the served version follows each new version; true once it has been pinned to one. - - - `updated_at: Time` - - RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. + - `release_notes: String` - format: date-time + As supplied with the upload; null when none were supplied. #### Example @@ -103828,69 +110580,56 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin = anthropic.beta.organization.plugins.update( - "plugin_id", - served_version_id: "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8" -) +page = anthropic.beta.organization.plugins.versions.list("plugin_id") -puts(beta_plugin) +puts(page) ``` ##### Response (200) ```json { - "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "components": [ + "data": [ { - "description": "description", - "name": "review-pr", - "type": "skill" + "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "components": [ + { + "description": "description", + "name": "review-pr", + "type": "skill" + } + ], + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "manifest_version": "1.2.0", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "reach": "contained", + "release_notes": "Adds a review checklist for database migrations.", + "type": "plugin_version" } ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "manifest_version": "1.2.0", - "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "name": "code-review-helper", - "organization_installation_preference": "available", - "organization_installation_preference_inherited": true, - "owner": { - "type": "organization" - }, - "reach": "contained", - "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", - "served_version_pinned": true, - "type": "plugin", - "updated_at": "2026-03-14T09:26:53.589793Z" + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" } ``` -### List Plugins - -`beta.organization.plugins.list(**kwargs) -> PageCursor` +### Get Plugin Version -**GET** `/v1/organizations/plugins` +`beta.organization.plugins.versions.retrieve(version, **kwargs) -> BetaPluginVersion` -List the Plugins created under the organization, newest first: those in the -organization's own plugin marketplaces and those in members' personal plugin -marketplaces. +**GET** `/v1/organizations/plugins/{plugin_id}/versions/{version}` -Plugins in members' personal marketplaces are listed with the same detail as the -organization's own, and their files can be downloaded through the version archive -endpoint, which records each such download on the Compliance API activity feed. +Retrieve one version of a Plugin by its ID, or the Plugin's newest version. **Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. @@ -103898,64 +110637,18 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Parameters -- `created_at_gt: Time` (query parameter) - - RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. - - format: date-time - -- `created_at_gte: Time` (query parameter) - - RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. - - format: date-time - -- `created_at_lt: Time` (query parameter) - - RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. - - format: date-time - -- `created_at_lte: Time` (query parameter) - - RFC 3339 timestamp bound; combine [gte], [gt], [lte], [lt]. - - format: date-time - -- `limit: Integer` (query parameter) - - Number of items to return per page. - - Defaults to `20`. Ranges from `1` to `100`. +- `plugin_id: String` (path parameter) - minimum: 1, maximum: 100 + ID of the Plugin (prefixed `plugin_`). -- `marketplace_id: String` (query parameter) +- `version: String` (path parameter) - Only Plugins in this plugin marketplace (prefixed `marketplace_`). + ID of the Plugin Version (prefixed `pluginver_`), or `latest` for the newest one. - `organization_id: String` (query parameter) For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. -- `owner_type: :organization | :user` (query parameter) - - `organization` for Plugins in the organization's plugin marketplaces, `user` for Plugins in members' personal plugin marketplaces. - - - `:organization` - - - `:user` - -- `owner_user_id: String` (query parameter) - - Only Plugins in this member's personal plugin marketplaces (prefixed `user_`); a removed member's ID is accepted. - -- `page: String` (query parameter) - - Optionally set to the `next_page` token from the previous response. - - maxLength: 2048 - - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. @@ -104064,21 +110757,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPlugin` +- `class BetaPluginVersion` - - `type: :plugin` + - `type: :plugin_version` - Always `plugin`. + Always `plugin_version`. - `id: String` - The Plugin's ID. + The version's ID. - `components: Array[BetaPluginComponent]` - What the served version contains; null when not enumerated. + What the version contains; null when not enumerated. - `type: :agent | :cli | :command | 3 more` @@ -104106,7 +110801,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `content_scan: BetaPluginContentScan` - The served version's content scan; null when it has not been scanned. + This version's content scan; null when it has not been scanned. - `assessment: :fail | :pass | :unknown | :warn` @@ -104142,7 +110837,7 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - Who created the Plugin; null when no creator is recorded. + Who uploaded this version; null when not recorded. - `class BetaPluginUserActor` @@ -104170,71 +110865,23 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `description: String` - The served version's description. + The manifest's description; null when it declares none. - `display_name: String` - The served version's display name. - - - `latest_version_id: String` - - The newest version. + The manifest's display name; null when it declares none. - `manifest_version: String` - The served version's manifest `version`, normalized for display, or `null` (the Plugin Version's `manifest_version` says how and when). - - - `marketplace_id: String` - - The ID of the plugin marketplace the Plugin lives in. - - - `name: String` - - Lowercase identifier, unique within its plugin marketplace. Fixed for an organization-owned Plugin's lifetime; a member-owned Plugin's changes when its owner renames it in claude.ai, while its `id` stays the same. - - - `organization_installation_preference: :auto_install | :available | :not_available | :required` - - Organization-owned Plugin: the organization-wide installation setting every member gets unless an RBAC Group they belong to holds its own — the Plugin's own setting, or its plugin marketplace's default. Null for a member-owned Plugin, which has shares instead. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `:auto_install` - - - `:available` - - - `:not_available` - - - `:required` - - - `organization_installation_preference_inherited: bool` - - Organization-owned Plugin: true while it has no organization-wide setting of its own and `organization_installation_preference` is its plugin marketplace's default. Null for a member-owned Plugin. - - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - Who owns the Plugin: the organization, or the member whose personal plugin marketplace it lives in. - - - `class BetaPluginOwnerOrganization` - - - `type: :organization` - - The Plugin lives in a plugin marketplace the organization owns. - - - `class BetaPluginOwnerUser` - - - `type: :user` - - The Plugin lives in one member's personal plugin marketplace. + The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). - - `user_id: String` + - `plugin_id: String` - The member's User ID. + The Plugin's ID. - `reach: :contained | :privileged | :remote` - How far the served version reaches, or `null` if it is not classified. - - `remote` means it declares an MCP server or a CLI. `privileged` means it declares no MCP server or CLI, but declares a hook, monitor, language server, or settings, or has a skill, command, or other Markdown file whose frontmatter pre-approves tools (`allowed-tools` with any value other than an empty one or one that names only `AskUserQuestion`, `TodoWrite`, and `ToolSearch`). Otherwise it is `contained`. - - If the frontmatter of a skill, command, or other Markdown file that could change the value could not be read, or was past a size limit, the version is `null` or `privileged` (or `remote`, if it declares an MCP server or a CLI), not `contained`. The value is normally worked out when a version is stored, under the rules of that time, so an older version can be `null`, or `contained` where the same files stored today would be `privileged` or `null`. + How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. - `:contained` @@ -104242,19 +110889,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:remote` - - `served_version_id: String` - - The version claude.ai serves to members. - - - `served_version_pinned: bool` - - False while the served version follows each new version; true once it has been pinned to one. - - - `updated_at: Time` - - RFC 3339. Moves on a new version and on a served-version change; a change to the Plugin's installation settings or shares does not move it. + - `release_notes: String` - format: date-time + As supplied with the upload; null when none were supplied. #### Example @@ -104263,78 +110900,69 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.plugins.list +beta_plugin_version = anthropic.beta.organization.plugins.versions.retrieve("version", plugin_id: "plugin_id") -puts(page) +puts(beta_plugin_version) ``` ##### Response (200) ```json { - "data": [ + "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", + "components": [ { - "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "components": [ - { - "description": "description", - "name": "review-pr", - "type": "skill" - } - ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "latest_version_id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "manifest_version": "1.2.0", - "marketplace_id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "name": "code-review-helper", - "organization_installation_preference": "available", - "organization_installation_preference_inherited": true, - "owner": { - "type": "organization" - }, - "reach": "contained", - "served_version_id": "pluginver_01K9wPcHd4Rm2Tx8Vq6Ln3Sb", - "served_version_pinned": true, - "type": "plugin", - "updated_at": "2026-03-14T09:26:53.589793Z" + "description": "description", + "name": "review-pr", + "type": "skill" } ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" + "content_scan": { + "assessment": "warn", + "reason": "credential-exposure", + "status": "completed" + }, + "created_at": "2026-03-14T09:26:53.589793Z", + "created_by": { + "email_address": "user@example.com", + "type": "user_actor", + "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" + }, + "description": "Reviews pull requests against your team's conventions.", + "display_name": "Code Review Helper", + "manifest_version": "1.2.0", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "reach": "contained", + "release_notes": "Adds a review checklist for database migrations.", + "type": "plugin_version" } ``` -### Delete Plugin +### Download Plugin Version Archive -`beta.organization.plugins.delete(plugin_id, **kwargs) -> BetaDeletedPlugin` +`beta.organization.plugins.versions.download(version, **kwargs) -> StringIO` -**DELETE** `/v1/organizations/plugins/{plugin_id}` +**GET** `/v1/organizations/plugins/{plugin_id}/versions/{version}/content` -Permanently delete a Plugin and every version it holds, exactly as when an -administrator deletes it in claude.ai. The Plugin may belong to the organization or -to a member, including a member who has since left the organization. +Download one version's `.zip` archive, exactly as stored. Each download of a +Plugin from a member's personal plugin marketplace is recorded on the Compliance API +activity feed. -An organization-owned Plugin's installation settings go with it; a member-owned -Plugin's shares are withdrawn and its owner no longer has it. +The response body is the archive (`Content-Type: application/zip`), sent as an +attachment whose filename is derived from the Plugin's name; name saved files from +the IDs in the request path, since that filename is not unique. -To take an organization-owned Plugin out of use reversibly, set its -organization-wide installation setting to `not_available` instead (and -remove or change any group settings, which override it for their members). Only a -Plugin in a `manual` marketplace can be deleted here; one synchronized from a -repository is removed by removing it from the repository (400). +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. -**Accepted credentials:** an Admin API key with the `write:plugins` scope. +Every read scope above (`read:plugins`, `read:org_audit`, and +`read:compliance_org_data`) can download the files of plugins in members' personal +marketplaces, including files that claude.ai's admin settings do not show, and a +`read:org_audit` or `read:compliance_org_data` key created for all of your parent +organization's linked organizations can do this in any organization under it that has +access to this API, by passing `organization_id`. Each such download records a +`claude_plugin_archive_accessed` event on the Compliance API activity feed, +identifying the key, the plugin, the version, and the member. Downloads of +organization-owned plugins are not recorded. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -104344,6 +110972,14 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). +- `version: String` (path parameter) + + ID of the Plugin Version (prefixed `pluginver_`). `latest` is not accepted here. + +- `organization_id: String` (query parameter) + + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. @@ -104452,17 +111088,11 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaDeletedPlugin` - - - `type: :plugin_deleted` - - Always `plugin_deleted`. + - `:"webhooks-2026-10-07"` - - `id: String` +#### Returns - The deleted Plugin's ID. +- `StringIO` #### Example @@ -104471,50 +111101,27 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_plugin = anthropic.beta.organization.plugins.delete("plugin_id") - -puts(beta_deleted_plugin) -``` - -##### Response (200) +response = anthropic.beta.organization.plugins.versions.download("version", plugin_id: "plugin_id") -```json -{ - "id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "type": "plugin_deleted" -} +puts(response) ``` -## Beta › Organization › Plugins › Versions - -### Create Plugin Version - -`beta.organization.plugins.versions.create(plugin_id, **kwargs) -> BetaPluginVersion` +## Beta › Organization › Plugins › Installation Settings -**POST** `/v1/organizations/plugins/{plugin_id}/versions` +### List Plugin Installation Settings -Add a version to an organization-owned Plugin by uploading the new version's -files; it becomes the version served to members unless the Plugin's served version -has been pinned. +`beta.organization.plugins.installation_settings.list(plugin_id, **kwargs) -> PageCursor` -The upload is the same `multipart/form-data` as creating a Plugin: the version's -files (`files`, each part sent as `files[]`) and optional `release_notes`. The uploaded manifest's `name` -must equal the Plugin's `name`. Returns the stored version; read the Plugin back to -see which version it serves. +**GET** `/v1/organizations/plugins/{plugin_id}/installation_settings` -Only a Plugin in a `manual` marketplace takes uploads; a Plugin synchronized from -a repository gets its versions from the repository. When the Plugin is in the -organization's library marketplace, a version that adds a skill with the name of an -organization skill (a skill an administrator uploaded for the whole organization in -claude.ai) is refused with a 409: `error_code` `skill_name_taken`, with that name in -`details.skill_name`. A 503 with `error_code` -`registration_pending` means the version was stored but is not yet usable; a later -version create on the Plugin completes it. +List an organization-owned Plugin's installation settings, which say which +members it is for, most recently created first. -For a worked example, see [Create a version](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#create-a-version) -in the Plugins API guide. +The list holds the Plugin's own organization-wide setting (absent while the Plugin +inherits its marketplace's default) and each RBAC Group's own setting. A +member-owned Plugin has shares instead, so this path returns 404 for one. -**Accepted credentials:** an Admin API key with the `write:plugins` scope. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -104524,15 +111131,31 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `files: Array[String]` +- `limit: Integer` (query parameter) - The version's files: one part per file, the part's filename being the file's path within the Plugin (for example `skills/review-pr/SKILL.md`), or a single `.zip` or `.plugin` archive holding them all. On the wire each part is named `files[]`, and a part named plain `files` is not read; with cURL, `-F 'files[]=@SKILL.md;filename=skills/review-pr/SKILL.md'`. The files must include the manifest, `.claude-plugin/plugin.json`. + Number of items to return per page. -- `release_notes: String` + Defaults to `20`. Ranges from `1` to `100`. - Release notes stored with the version and shown in its version history in claude.ai; up to 5,000 characters. + minimum: 1, maximum: 100 - maxLength: 5000 +- `organization_id: String` (query parameter) + + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + +- `page: String` (query parameter) + + Optionally set to the `next_page` token from the previous response. + + maxLength: 2048 + +- `target_type: :organization | :rbac_group` (query parameter) + + Only settings for this kind of target: `organization` (the organization-wide setting) or `rbac_group` (an RBAC Group's). + + - `:organization` + + - `:rbac_group` - `betas: Array[AnthropicBeta]` (header parameter) @@ -104642,139 +111265,77 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaPluginVersion` - - - `type: :plugin_version` - - Always `plugin_version`. - - - `id: String` - - The version's ID. - - - `components: Array[BetaPluginComponent]` - - What the version contains; null when not enumerated. - - - `type: :agent | :cli | :command | 3 more` - - The kind of component. - - - `:agent` - - - `:cli` - - - `:command` - - - `:hook` - - - `:mcp_server` - - - `:skill` - - - `description: String` - - What the component declares about itself; always null for MCP servers, hooks, and CLIs. - - - `name: String` - - The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - - - `content_scan: BetaPluginContentScan` - - This version's content scan; null when it has not been scanned. - - - `assessment: :fail | :pass | :unknown | :warn` - - The scan's verdict; set only when `status` is `completed`. - - - `:fail` - - - `:pass` - - - `:unknown` - - - `:warn` - - - `reason: String` - - The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. + - `:"webhooks-2026-10-07"` - - `status: :completed | :errored | :processing` +#### Returns - `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. +- `class BetaPluginInstallationSetting` - - `:completed` + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. - - `:errored` + - `type: :plugin_installation_setting` - - `:processing` + Always `plugin_installation_setting`. - `created_at: Time` - RFC 3339. + When the target was first given a setting for this Plugin. format: date-time - - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - - Who uploaded this version; null when not recorded. - - - `class BetaPluginUserActor` - - - `type: :user_actor` + - `installation_preference: :auto_install | :available | :not_available | :required` - A member of the organization. + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - `email_address: String` + - `:auto_install` - The member's email address; may be null, for example when they are no longer a member of the organization. + - `:available` - - `user_id: String` + - `:not_available` - The member's User ID. + - `:required` - - `class BetaPluginAPIActor` + - `plugin_id: String` - - `type: :api_actor` + The Plugin's ID. - An Admin API key, in the same form the Compliance API activity feed uses for it. + - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` - - `api_key_id: String` + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - The key's ID. + - `class BetaPluginTargetOrganization` - - `description: String` + - `type: :organization` - The manifest's description; null when it declares none. + Every member of the organization. - - `display_name: String` + - `class BetaPluginTargetRBACGroup` - The manifest's display name; null when it declares none. + - `type: :rbac_group` - - `manifest_version: String` + An RBAC Group. - The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). + - `rbac_group_id: String` - - `plugin_id: String` + The RBAC Group's ID. - The Plugin's ID. + - `class BetaPluginTargetOrganizationMember` - - `reach: :contained | :privileged | :remote` + - `type: :organization_member` - How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. + One member of the organization. - - `:contained` + - `user_id: String` - - `:privileged` + The member's User ID. - - `:remote` + - `updated_at: Time` - - `release_notes: String` + When its setting last changed. - As supplied with the upload; null when none were supplied. + format: date-time #### Example @@ -104783,56 +111344,52 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_version = anthropic.beta.organization.plugins.versions.create("plugin_id", files: [StringIO.new("Example data")]) +page = anthropic.beta.organization.plugins.installation_settings.list("plugin_id") -puts(beta_plugin_version) +puts(page) ``` ##### Response (200) ```json { - "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "components": [ + "data": [ { - "description": "description", - "name": "review-pr", - "type": "skill" + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" } ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "manifest_version": "1.2.0", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "reach": "contained", - "release_notes": "Adds a review checklist for database migrations.", - "type": "plugin_version" + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" } ``` -### List Plugin Versions +### Set Plugin Installation Setting -`beta.organization.plugins.versions.list(plugin_id, **kwargs) -> PageCursor` +`beta.organization.plugins.installation_settings.set(target, **kwargs) -> BetaPluginInstallationSetting` -**GET** `/v1/organizations/plugins/{plugin_id}/versions` +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` -List a Plugin's versions, newest first. +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. -The first item of the first page is the version the Plugin's `latest_version_id` -refers to. +Writing the value a target already holds of its own changes nothing. -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -104842,23 +111399,21 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `limit: Integer` (query parameter) - - Number of items to return per page. +- `target: String` (path parameter) - Defaults to `20`. Ranges from `1` to `1000`. + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - minimum: 1, maximum: 1000 +- `installation_preference: :auto_install | :available | :not_available | :required` -- `organization_id: String` (query parameter) + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + - `:auto_install` -- `page: String` (query parameter) + - `:available` - Optionally set to the `next_page` token from the previous response. + - `:not_available` - maxLength: 2048 + - `:required` - `betas: Array[AnthropicBeta]` (header parameter) @@ -104968,139 +111523,77 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaPluginVersion` - - - `type: :plugin_version` - - Always `plugin_version`. - - - `id: String` - - The version's ID. - - - `components: Array[BetaPluginComponent]` - - What the version contains; null when not enumerated. - - - `type: :agent | :cli | :command | 3 more` - - The kind of component. - - - `:agent` - - - `:cli` - - - `:command` - - - `:hook` - - - `:mcp_server` - - - `:skill` - - - `description: String` - - What the component declares about itself; always null for MCP servers, hooks, and CLIs. - - - `name: String` - - The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - - - `content_scan: BetaPluginContentScan` - - This version's content scan; null when it has not been scanned. - - - `assessment: :fail | :pass | :unknown | :warn` - - The scan's verdict; set only when `status` is `completed`. - - - `:fail` - - - `:pass` - - - `:unknown` - - - `:warn` - - - `reason: String` - - The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. + - `:"webhooks-2026-10-07"` - - `status: :completed | :errored | :processing` +#### Returns - `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. +- `class BetaPluginInstallationSetting` - - `:completed` + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. - - `:errored` + - `type: :plugin_installation_setting` - - `:processing` + Always `plugin_installation_setting`. - `created_at: Time` - RFC 3339. + When the target was first given a setting for this Plugin. format: date-time - - `created_by: BetaPluginUserActor | BetaPluginAPIActor` - - Who uploaded this version; null when not recorded. - - - `class BetaPluginUserActor` - - - `type: :user_actor` + - `installation_preference: :auto_install | :available | :not_available | :required` - A member of the organization. + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - `email_address: String` + - `:auto_install` - The member's email address; may be null, for example when they are no longer a member of the organization. + - `:available` - - `user_id: String` + - `:not_available` - The member's User ID. + - `:required` - - `class BetaPluginAPIActor` + - `plugin_id: String` - - `type: :api_actor` + The Plugin's ID. - An Admin API key, in the same form the Compliance API activity feed uses for it. + - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` - - `api_key_id: String` + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - The key's ID. + - `class BetaPluginTargetOrganization` - - `description: String` + - `type: :organization` - The manifest's description; null when it declares none. + Every member of the organization. - - `display_name: String` + - `class BetaPluginTargetRBACGroup` - The manifest's display name; null when it declares none. + - `type: :rbac_group` - - `manifest_version: String` + An RBAC Group. - The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). + - `rbac_group_id: String` - - `plugin_id: String` + The RBAC Group's ID. - The Plugin's ID. + - `class BetaPluginTargetOrganizationMember` - - `reach: :contained | :privileged | :remote` + - `type: :organization_member` - How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. + One member of the organization. - - `:contained` + - `user_id: String` - - `:privileged` + The member's User ID. - - `:remote` + - `updated_at: Time` - - `release_notes: String` + When its setting last changed. - As supplied with the upload; null when none were supplied. + format: date-time #### Example @@ -105109,58 +111602,55 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.plugins.versions.list("plugin_id") +beta_plugin_installation_setting = anthropic.beta.organization.plugins.installation_settings.set( + "target", + plugin_id: "plugin_id", + installation_preference: :required +) -puts(page) +puts(beta_plugin_installation_setting) ``` ##### Response (200) ```json { - "data": [ - { - "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "components": [ - { - "description": "description", - "name": "review-pr", - "type": "skill" - } - ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "manifest_version": "1.2.0", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "reach": "contained", - "release_notes": "Adds a review checklist for database migrations.", - "type": "plugin_version" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" } ``` -### Get Plugin Version +### Remove Plugin Installation Setting -`beta.organization.plugins.versions.retrieve(version, **kwargs) -> BetaPluginVersion` +`beta.organization.plugins.installation_settings.remove(target, **kwargs) -> BetaDeletedPluginInstallationSetting` -**GET** `/v1/organizations/plugins/{plugin_id}/versions/{version}` +**DELETE** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` -Retrieve one version of a Plugin by its ID, or the Plugin's newest version. +Remove an organization-owned Plugin's own installation setting for the whole +organization or for one RBAC Group. -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. +Removing the `organization` target returns the Plugin to its marketplace's default +installation setting and leaves the groups' settings in place. Removing a group's +setting makes the group's members fall back to the Plugin's organization-wide setting +or to the settings of their other groups. + +A target that holds no setting of its own returns 404 (a Plugin that already inherits +its marketplace's default holds no `organization` setting), and so does a member-owned +Plugin. + +A removal counts as one of the Plugin's installation-setting writes: send all of those +writes one at a time. If several arrive for the same Plugin at the same time, the server +handles them one after another and can answer some of them with `503` and +`x-should-retry: true` instead of applying them; wait a second or two and send the +removal again. A `404` on the repeat means the setting is already gone. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -105170,13 +111660,9 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `version: String` (path parameter) - - ID of the Plugin Version (prefixed `pluginver_`), or `latest` for the newest one. - -- `organization_id: String` (query parameter) +- `target: String` (path parameter) - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + The target whose own setting is removed: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Removing the `organization` setting returns the Plugin to its marketplace's default. - `betas: Array[AnthropicBeta]` (header parameter) @@ -105286,140 +111772,53 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaPluginVersion` - - - `type: :plugin_version` - - Always `plugin_version`. - - - `id: String` - - The version's ID. - - - `components: Array[BetaPluginComponent]` - - What the version contains; null when not enumerated. - - - `type: :agent | :cli | :command | 3 more` - - The kind of component. - - - `:agent` - - - `:cli` - - - `:command` - - - `:hook` - - - `:mcp_server` - - - `:skill` - - - `description: String` - - What the component declares about itself; always null for MCP servers, hooks, and CLIs. - - - `name: String` - - The component's name: a skill's, command's or agent's name, an MCP server's key in the manifest, the event a hook runs on, or a CLI's executable. - - - `content_scan: BetaPluginContentScan` - - This version's content scan; null when it has not been scanned. - - - `assessment: :fail | :pass | :unknown | :warn` - - The scan's verdict; set only when `status` is `completed`. - - - `:fail` + - `:"webhooks-2026-10-07"` - - `:pass` +#### Returns - - `:unknown` +- `class BetaDeletedPluginInstallationSetting` - - `:warn` + Confirmation that one target's installation setting was removed, naming + the Plugin and the target in place of an ID. - - `reason: String` + - `type: :plugin_installation_setting_deleted` - The primary mechanism behind a `warn` or `fail`, such as `credential-exposure` or `guardrail-tampering`; a mechanism this API does not yet name reads as `other`. Null on a `pass`, whenever `assessment` is null, and when no mechanism is reported for the verdict. + Always `plugin_installation_setting_deleted`. - - `status: :completed | :errored | :processing` + - `plugin_id: String` - `processing` while a scan runs, `completed` when it ran to completion, `errored` when it could not run or its outcome cannot be read. + The Plugin's ID. - - `:completed` + - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` - - `:errored` + Whose setting was removed. - - `:processing` + - `class BetaPluginTargetOrganization` - - `created_at: Time` + - `type: :organization` - RFC 3339. + Every member of the organization. - format: date-time + - `class BetaPluginTargetRBACGroup` - - `created_by: BetaPluginUserActor | BetaPluginAPIActor` + - `type: :rbac_group` - Who uploaded this version; null when not recorded. + An RBAC Group. - - `class BetaPluginUserActor` + - `rbac_group_id: String` - - `type: :user_actor` + The RBAC Group's ID. - A member of the organization. + - `class BetaPluginTargetOrganizationMember` - - `email_address: String` + - `type: :organization_member` - The member's email address; may be null, for example when they are no longer a member of the organization. + One member of the organization. - `user_id: String` The member's User ID. - - `class BetaPluginAPIActor` - - - `type: :api_actor` - - An Admin API key, in the same form the Compliance API activity feed uses for it. - - - `api_key_id: String` - - The key's ID. - - - `description: String` - - The manifest's description; null when it declares none. - - - `display_name: String` - - The manifest's display name; null when it declares none. - - - `manifest_version: String` - - The manifest's `version`, normalized for display: one leading `v` or `V` is dropped, and the result is returned only if it is 1 to 64 characters, starts with a digit, and uses only ASCII letters, digits, `.`, `+`, and `-`; otherwise `null`. For example, `"v1.4.0"` is returned as `"1.4.0"`, and `"latest"` as `null`. For a synchronized plugin, the `version` of its `marketplace.json` entry can take the place of the manifest's `version`. It is also `null` for a version stored before claude.ai began recording this field (August 2026). - - - `plugin_id: String` - - The Plugin's ID. - - - `reach: :contained | :privileged | :remote` - - How far the version reaches: `remote`, `privileged`, `contained`, or `null`, as defined on the Plugin's `reach`. - - - `:contained` - - - `:privileged` - - - `:remote` - - - `release_notes: String` - - As supplied with the upload; null when none were supplied. - #### Example ```ruby @@ -105427,69 +111826,41 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_version = anthropic.beta.organization.plugins.versions.retrieve("version", plugin_id: "plugin_id") +beta_deleted_plugin_installation_setting = anthropic.beta.organization.plugins.installation_settings.remove("target", plugin_id: "plugin_id") -puts(beta_plugin_version) +puts(beta_deleted_plugin_installation_setting) ``` ##### Response (200) ```json { - "id": "pluginver_01KaZmQpRsTuVwXyZ2b4c6d8", - "components": [ - { - "description": "description", - "name": "review-pr", - "type": "skill" - } - ], - "content_scan": { - "assessment": "warn", - "reason": "credential-exposure", - "status": "completed" - }, - "created_at": "2026-03-14T09:26:53.589793Z", - "created_by": { - "email_address": "user@example.com", - "type": "user_actor", - "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q" - }, - "description": "Reviews pull requests against your team's conventions.", - "display_name": "Code Review Helper", - "manifest_version": "1.2.0", "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "reach": "contained", - "release_notes": "Adds a review checklist for database migrations.", - "type": "plugin_version" + "target": { + "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", + "type": "rbac_group" + }, + "type": "plugin_installation_setting_deleted" } ``` -### Download Plugin Version Archive +## Beta › Organization › Plugins › Shares -`beta.organization.plugins.versions.download(version, **kwargs) -> StringIO` +### List Plugin Shares -**GET** `/v1/organizations/plugins/{plugin_id}/versions/{version}/content` +`beta.organization.plugins.shares.list(plugin_id, **kwargs) -> PageCursor` -Download one version's `.zip` archive, exactly as stored. Each download of a -Plugin from a member's personal plugin marketplace is recorded on the Compliance API -activity feed. +**GET** `/v1/organizations/plugins/{plugin_id}/shares` -The response body is the archive (`Content-Type: application/zip`), sent as an -attachment whose filename is derived from the Plugin's name; name saved files from -the IDs in the request path, since that filename is not unique. +List the shares the owner of a member-owned Plugin has given — to every member of +the organization, to an RBAC Group, or to one member — most recently granted first. -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. +Shares are read-only in this API: members give and withdraw them in claude.ai, and +who gave a share is recorded on the Compliance API activity feed rather than on the +share. An organization-owned Plugin has installation settings instead, so this path +returns 404 for one. -Every read scope above (`read:plugins`, `read:org_audit`, and -`read:compliance_org_data`) can download the files of plugins in members' personal -marketplaces, including files that claude.ai's admin settings do not show, and a -`read:org_audit` or `read:compliance_org_data` key created for all of your parent -organization's linked organizations can do this in any organization under it that has -access to this API, by passing `organization_id`. Each such download records a -`claude_plugin_archive_accessed` event on the Compliance API activity feed, -identifying the key, the plugin, the version, and the member. Downloads of -organization-owned plugins are not recorded. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. @@ -105499,14 +111870,34 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 ID of the Plugin (prefixed `plugin_`). -- `version: String` (path parameter) +- `limit: Integer` (query parameter) - ID of the Plugin Version (prefixed `pluginver_`). `latest` is not accepted here. + Number of items to return per page. + + Defaults to `20`. Ranges from `1` to `100`. + + minimum: 1, maximum: 100 - `organization_id: String` (query parameter) For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. +- `page: String` (query parameter) + + Optionally set to the `next_page` token from the previous response. + + maxLength: 2048 + +- `target_type: :organization | :organization_member | :rbac_group` (query parameter) + + Only shares with this kind of target: `organization` (every member), `rbac_group` (one RBAC Group), or `organization_member` (one member). + + - `:organization` + + - `:organization_member` + + - `:rbac_group` + - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. @@ -105615,9 +112006,59 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `StringIO` +- `class BetaPluginShare` + + One share the owner of a member-owned Plugin has given. Shares are + read-only in this API and have no ID of their own; who gave a share is + recorded on the Compliance API activity feed, not here. + + - `type: :plugin_share` + + Always `plugin_share`. + + - `granted_at: Time` + + When the share was given; a share whose role is later changed in claude.ai is re-granted and carries the time of that change. + + format: date-time + + - `plugin_id: String` + + The Plugin's ID. + + - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + + Who the Plugin is shared with: `organization` (every member), `rbac_group` (one RBAC Group), or `organization_member` (one member). + + - `class BetaPluginTargetOrganization` + + - `type: :organization` + + Every member of the organization. + + - `class BetaPluginTargetRBACGroup` + + - `type: :rbac_group` + + An RBAC Group. + + - `rbac_group_id: String` + + The RBAC Group's ID. + + - `class BetaPluginTargetOrganizationMember` + + - `type: :organization_member` + + One member of the organization. + + - `user_id: String` + + The member's User ID. #### Example @@ -105626,25 +112067,44 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -response = anthropic.beta.organization.plugins.versions.download("version", plugin_id: "plugin_id") +page = anthropic.beta.organization.plugins.shares.list("plugin_id") -puts(response) +puts(page) ``` -## Beta › Organization › Plugins › Installation Settings +##### Response (200) -### List Plugin Installation Settings +```json +{ + "data": [ + { + "granted_at": "2026-03-14T09:26:53.589793Z", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_share" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` -`beta.organization.plugins.installation_settings.list(plugin_id, **kwargs) -> PageCursor` +## Beta › Organization › Plugin Marketplaces -**GET** `/v1/organizations/plugins/{plugin_id}/installation_settings` +### List Plugin Marketplaces -List an organization-owned Plugin's installation settings, which say which -members it is for, most recently created first. +`beta.organization.plugin_marketplaces.list(**kwargs) -> PageCursor` -The list holds the Plugin's own organization-wide setting (absent while the Plugin -inherits its marketplace's default) and each RBAC Group's own setting. A -member-owned Plugin has shares instead, so this path returns 404 for one. +**GET** `/v1/organizations/plugin_marketplaces` + +List the plugin marketplaces Plugins live in, newest first: the organization's own +and its members' personal ones. + +Plugin marketplaces are created, connected to a repository and deleted in +claude.ai, not through this API. The organization's library marketplace, the +organization-owned `manual` marketplace that uploads go to when no marketplace is +named, is created the first time something is put in it and is listed from then on. **Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. @@ -105652,35 +112112,45 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Parameters -- `plugin_id: String` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - - `limit: Integer` (query parameter) Number of items to return per page. - Defaults to `20`. Ranges from `1` to `100`. + Defaults to `20`. Ranges from `1` to `1000`. - minimum: 1, maximum: 100 + minimum: 1, maximum: 1000 - `organization_id: String` (query parameter) For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. +- `owner_type: :organization | :user` (query parameter) + + `organization` for the organization's plugin marketplaces, `user` for members' personal plugin marketplaces. + + - `:organization` + + - `:user` + - `page: String` (query parameter) Optionally set to the `next_page` token from the previous response. maxLength: 2048 -- `target_type: :organization | :rbac_group` (query parameter) +- `source: :directory | :github | :gitlab | 2 more` (query parameter) - Only settings for this kind of target: `organization` (the organization-wide setting) or `rbac_group` (an RBAC Group's). + Only plugin marketplaces with this `source`: `manual` for those whose Plugins are uploaded; `github`, `gitlab` or `public_git` for those synchronized from a Git repository. `directory` (Anthropic's catalog) is never listed here. - - `:organization` + - `:directory` - - `:rbac_group` + - `:github` + + - `:gitlab` + + - `:manual` + + - `:public_git` - `betas: Array[AnthropicBeta]` (header parameter) @@ -105790,27 +112260,29 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginInstallationSetting` +- `class BetaPluginMarketplace` - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. + - `type: :plugin_marketplace` - - `type: :plugin_installation_setting` + Always `plugin_marketplace`. - Always `plugin_installation_setting`. + - `id: String` + + The plugin marketplace's ID, prefixed `marketplace_`. - `created_at: Time` - When the target was first given a setting for this Plugin. + RFC 3339. format: date-time - - `installation_preference: :auto_install | :available | :not_available | :required` + - `default_installation_preference: :auto_install | :available | :not_available | :required` - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - `:auto_install` @@ -105820,45 +112292,69 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:required` - - `plugin_id: String` + - `last_sync_ended_at: Time` - The Plugin's ID. + RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. - - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + format: date-time - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + - `last_sync_read_sha: String` - - `class BetaPluginTargetOrganization` + The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. - - `type: :organization` + - `name: String` - Every member of the organization. + Fixed for the plugin marketplace's lifetime. - - `class BetaPluginTargetRBACGroup` + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - `type: :rbac_group` + The organization, or the member whose personal plugin marketplace it is. - An RBAC Group. + - `class BetaPluginOwnerOrganization` - - `rbac_group_id: String` + - `type: :organization` - The RBAC Group's ID. + The Plugin lives in a plugin marketplace the organization owns. - - `class BetaPluginTargetOrganizationMember` + - `class BetaPluginOwnerUser` - - `type: :organization_member` + - `type: :user` - One member of the organization. + The Plugin lives in one member's personal plugin marketplace. - `user_id: String` The member's User ID. - - `updated_at: Time` + - `source: :directory | :github | :gitlab | 2 more` - When its setting last changed. + Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. - format: date-time + - `:directory` + + - `:github` + + - `:gitlab` + + - `:manual` + + - `:public_git` + + - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` + + Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. + + - `:failed_auth` + + - `:failed_content` + + - `:failed_limits` + + - `:failed_transient` + + - `:in_progress` + + - `:success` #### Example @@ -105867,7 +112363,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.plugins.installation_settings.list("plugin_id") +page = anthropic.beta.organization.plugin_marketplaces.list puts(page) ``` @@ -105878,65 +112374,45 @@ puts(page) { "data": [ { + "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { + "default_installation_preference": "available", + "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", + "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "name": "engineering-tools", + "owner": { "type": "organization" }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" + "source": "github", + "sync_status": "success", + "type": "plugin_marketplace" } ], "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" } ``` -### Set Plugin Installation Setting - -`beta.organization.plugins.installation_settings.set(target, **kwargs) -> BetaPluginInstallationSetting` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. +### Get Plugin Marketplace -Writing the value a target already holds of its own changes nothing. +`beta.organization.plugin_marketplaces.retrieve(marketplace_id, **kwargs) -> BetaPluginMarketplace` -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. +**GET** `/v1/organizations/plugin_marketplaces/{marketplace_id}` -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. +Retrieve a plugin marketplace by ID. -**Accepted credentials:** an Admin API key with the `write:plugins` scope. +**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. #### Parameters -- `plugin_id: String` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - -- `target: String` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - -- `installation_preference: :auto_install | :available | :not_available | :required` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `:auto_install` +- `marketplace_id: String` (path parameter) - - `:available` + ID of the plugin marketplace (prefixed `marketplace_`). - - `:not_available` +- `organization_id: String` (query parameter) - - `:required` + For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. - `betas: Array[AnthropicBeta]` (header parameter) @@ -106046,27 +112522,29 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginInstallationSetting` +- `class BetaPluginMarketplace` - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. + - `type: :plugin_marketplace` - - `type: :plugin_installation_setting` + Always `plugin_marketplace`. - Always `plugin_installation_setting`. + - `id: String` + + The plugin marketplace's ID, prefixed `marketplace_`. - `created_at: Time` - When the target was first given a setting for this Plugin. + RFC 3339. format: date-time - - `installation_preference: :auto_install | :available | :not_available | :required` + - `default_installation_preference: :auto_install | :available | :not_available | :required` - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - `:auto_install` @@ -106076,45 +112554,69 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:required` - - `plugin_id: String` + - `last_sync_ended_at: Time` - The Plugin's ID. + RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. - - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + format: date-time - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + - `last_sync_read_sha: String` - - `class BetaPluginTargetOrganization` + The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. - - `type: :organization` + - `name: String` - Every member of the organization. + Fixed for the plugin marketplace's lifetime. - - `class BetaPluginTargetRBACGroup` + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - `type: :rbac_group` + The organization, or the member whose personal plugin marketplace it is. - An RBAC Group. + - `class BetaPluginOwnerOrganization` - - `rbac_group_id: String` + - `type: :organization` - The RBAC Group's ID. + The Plugin lives in a plugin marketplace the organization owns. - - `class BetaPluginTargetOrganizationMember` + - `class BetaPluginOwnerUser` - - `type: :organization_member` + - `type: :user` - One member of the organization. + The Plugin lives in one member's personal plugin marketplace. - `user_id: String` The member's User ID. - - `updated_at: Time` + - `source: :directory | :github | :gitlab | 2 more` - When its setting last changed. + Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. - format: date-time + - `:directory` + + - `:github` + + - `:gitlab` + + - `:manual` + + - `:public_git` + + - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` + + Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. + + - `:failed_auth` + + - `:failed_content` + + - `:failed_limits` + + - `:failed_transient` + + - `:in_progress` + + - `:success` #### Example @@ -106123,53 +112625,42 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_installation_setting = anthropic.beta.organization.plugins.installation_settings.set( - "target", - plugin_id: "plugin_id", - installation_preference: :required -) +beta_plugin_marketplace = anthropic.beta.organization.plugin_marketplaces.retrieve("marketplace_id") -puts(beta_plugin_installation_setting) +puts(beta_plugin_marketplace) ``` ##### Response (200) ```json { + "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { + "default_installation_preference": "available", + "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", + "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "name": "engineering-tools", + "owner": { "type": "organization" }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" + "source": "github", + "sync_status": "success", + "type": "plugin_marketplace" } ``` -### Remove Plugin Installation Setting - -`beta.organization.plugins.installation_settings.remove(target, **kwargs) -> BetaDeletedPluginInstallationSetting` - -**DELETE** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` +### Update Plugin Marketplace -Remove an organization-owned Plugin's own installation setting for the whole -organization or for one RBAC Group. +`beta.organization.plugin_marketplaces.update(marketplace_id, **kwargs) -> BetaPluginMarketplace` -Removing the `organization` target returns the Plugin to its marketplace's default -installation setting and leaves the groups' settings in place. Removing a group's -setting makes the group's members fall back to the Plugin's organization-wide setting -or to the settings of their other groups. +**POST** `/v1/organizations/plugin_marketplaces/{marketplace_id}` -A target that holds no setting of its own returns 404 (a Plugin that already inherits -its marketplace's default holds no `organization` setting), and so does a member-owned -Plugin. +Set the default installation setting of one of the organization's own plugin +marketplaces. Every Plugin in it without a setting of its own gets this default as +its organization-wide setting, including Plugins added later. -A removal counts as one of the Plugin's installation-setting writes: send all of those -writes one at a time. If several arrive for the same Plugin at the same time, the server -handles them one after another and can answer some of them with `503` and -`x-should-retry: true` instead of applying them; wait a second or two and send the -removal again. A `404` on the repeat means the setting is already gone. +Pass it as `default_installation_preference`. A member's personal marketplace +cannot be updated here (403). **Accepted credentials:** an Admin API key with the `write:plugins` scope. @@ -106177,13 +112668,21 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 #### Parameters -- `plugin_id: String` (path parameter) +- `marketplace_id: String` (path parameter) - ID of the Plugin (prefixed `plugin_`). + ID of the plugin marketplace (prefixed `marketplace_`). -- `target: String` (path parameter) +- `default_installation_preference: :auto_install | :available | :not_available | :required` - The target whose own setting is removed: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Removing the `organization` setting returns the Plugin to its marketplace's default. + The organization-wide installation setting every Plugin in the marketplace without one of its own gets: one of `required`, `auto_install`, `available`, `not_available`. Once set it can be changed but not removed. + + - `:auto_install` + + - `:available` + + - `:not_available` + + - `:required` - `betas: Array[AnthropicBeta]` (header parameter) @@ -106271,72 +112770,123 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"task-budgets-2026-03-13"` - - `:"thinking-display-updates-2026-08-18"` + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaPluginMarketplace` + + - `type: :plugin_marketplace` + + Always `plugin_marketplace`. + + - `id: String` + + The plugin marketplace's ID, prefixed `marketplace_`. + + - `created_at: Time` + + RFC 3339. + + format: date-time + + - `default_installation_preference: :auto_install | :available | :not_available | :required` + + Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `:auto_install` + + - `:available` + + - `:not_available` + + - `:required` - - `:"ce-user-management-2026-07-13"` + - `last_sync_ended_at: Time` - - `:"mid-conversation-output-config-2026-07-01"` + RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. - - `:"thinking-binding-controls-2026-08-01"` + format: date-time - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `last_sync_read_sha: String` - - `:"compact-2026-09-04"` + The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. - - `:"inline-tools-2026-09-15"` + - `name: String` - - `:"mcp-client-2026-09-15"` + Fixed for the plugin marketplace's lifetime. - - `:"ce-plugins-2026-09-01"` + - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - `:"spend-limit-reads-2026-09-26"` + The organization, or the member whose personal plugin marketplace it is. - - `:"telemetry-destinations-2026-08-11"` + - `class BetaPluginOwnerOrganization` -#### Returns + - `type: :organization` -- `class BetaDeletedPluginInstallationSetting` + The Plugin lives in a plugin marketplace the organization owns. - Confirmation that one target's installation setting was removed, naming - the Plugin and the target in place of an ID. + - `class BetaPluginOwnerUser` - - `type: :plugin_installation_setting_deleted` + - `type: :user` - Always `plugin_installation_setting_deleted`. + The Plugin lives in one member's personal plugin marketplace. - - `plugin_id: String` + - `user_id: String` - The Plugin's ID. + The member's User ID. - - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + - `source: :directory | :github | :gitlab | 2 more` - Whose setting was removed. + Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. - - `class BetaPluginTargetOrganization` + - `:directory` - - `type: :organization` + - `:github` - Every member of the organization. + - `:gitlab` - - `class BetaPluginTargetRBACGroup` + - `:manual` - - `type: :rbac_group` + - `:public_git` - An RBAC Group. + - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` - - `rbac_group_id: String` + Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. - The RBAC Group's ID. + - `:failed_auth` - - `class BetaPluginTargetOrganizationMember` + - `:failed_content` - - `type: :organization_member` + - `:failed_limits` - One member of the organization. + - `:failed_transient` - - `user_id: String` + - `:in_progress` - The member's User ID. + - `:success` #### Example @@ -106345,77 +112895,73 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_plugin_installation_setting = anthropic.beta.organization.plugins.installation_settings.remove("target", plugin_id: "plugin_id") +beta_plugin_marketplace = anthropic.beta.organization.plugin_marketplaces.update( + "marketplace_id", + default_installation_preference: :available +) -puts(beta_deleted_plugin_installation_setting) +puts(beta_plugin_marketplace) ``` ##### Response (200) ```json { - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF", - "type": "rbac_group" + "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", + "created_at": "2026-03-14T09:26:53.589793Z", + "default_installation_preference": "available", + "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", + "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "name": "engineering-tools", + "owner": { + "type": "organization" }, - "type": "plugin_installation_setting_deleted" + "source": "github", + "sync_status": "success", + "type": "plugin_marketplace" } ``` -## Beta › Organization › Plugins › Shares - -### List Plugin Shares - -`beta.organization.plugins.shares.list(plugin_id, **kwargs) -> PageCursor` - -**GET** `/v1/organizations/plugins/{plugin_id}/shares` - -List the shares the owner of a member-owned Plugin has given — to every member of -the organization, to an RBAC Group, or to one member — most recently granted first. - -Shares are read-only in this API: members give and withdraw them in claude.ai, and -who gave a share is recorded on the Compliance API activity feed rather than on the -share. An organization-owned Plugin has installation settings instead, so this path -returns 404 for one. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters +### Validate Plugin Marketplace Repository -- `plugin_id: String` (path parameter) +`beta.organization.plugin_marketplaces.validate_repository(**kwargs) -> BetaPluginMarketplaceValidationReport` - ID of the Plugin (prefixed `plugin_`). +**POST** `/v1/organizations/plugin_marketplaces/validate_repository` -- `limit: Integer` (query parameter) +Check whether a plugin marketplace held in a public GitHub repository would +synchronize into claude.ai, without connecting or storing it. - Number of items to return per page. +To check a `.zip` of the marketplace directory instead, use Validate Plugin Marketplace Archive. - Defaults to `20`. Ranges from `1` to `100`. +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. A repository that is missing, private, or has no such branch or commit is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. - minimum: 1, maximum: 100 +Nothing is recorded on the Compliance API activity feed. -- `organization_id: String` (query parameter) +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#validate-marketplace-content) +in the Plugins API guide. - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. -- `page: String` (query parameter) +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - Optionally set to the `next_page` token from the previous response. +#### Parameters - maxLength: 2048 +- `repository_url: String` -- `target_type: :organization | :organization_member | :rbac_group` (query parameter) + The `https://` URL of a public repository on github.com that holds the marketplace. A URL longer than 2,048 characters, on any other host or scheme, with a port other than 443 or 80, with credentials in it, or that does not name exactly `owner/repo` (a trailing `.git` or `/` is accepted) is a 400. A private or missing repository is reported in the response, not refused. - Only shares with this kind of target: `organization` (every member), `rbac_group` (one RBAC Group), or `organization_member` (one member). + minLength: 1 - - `:organization` +- `ref: String` - - `:organization_member` + The branch to validate the tip of, or the full 40-character SHA of the commit to validate. When omitted, the branch a synchronization would read (usually the repository's default branch); if that is not the default branch, the report's `ref` says which branch was read. An empty string, a value longer than 255 characters, or one that contains `..` or a character other than ASCII letters, digits, `.`, `_`, `-`, `+`, and `/`, is a 400. Any other value that is not a 40-character SHA is read as a branch name; if the repository has no such branch, the response is a report with `valid: false`, not a 400. - - `:rbac_group` + minLength: 1 - `betas: Array[AnthropicBeta]` (header parameter) @@ -106525,57 +113071,78 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginShare` +- `class BetaPluginMarketplaceValidationReport` - One share the owner of a member-owned Plugin has given. Shares are - read-only in this API and have no ID of their own; who gave a share is - recorded on the Compliance API activity feed, not here. + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. - - `type: :plugin_share` + - `type: :plugin_marketplace_validation_report` - Always `plugin_share`. + Always `plugin_marketplace_validation_report`. - - `granted_at: Time` + - `commit_sha: String` - When the share was given; a share whose role is later changed in claude.ai is re-granted and carries the time of that change. + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - format: date-time + - `manifest_error: String` - - `plugin_id: String` + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - The Plugin's ID. + - `manifest_error_code: String` - - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + A stable identifier for `manifest_error`; null when that is. - Who the Plugin is shared with: `organization` (every member), `rbac_group` (one RBAC Group), or `organization_member` (one member). + - `plugin_errors: Array[BetaPluginMarketplaceValidationPluginError]` - - `class BetaPluginTargetOrganization` + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - `type: :organization` + - `error: String` - Every member of the organization. + Why the plugin would be skipped by a synchronization. - - `class BetaPluginTargetRBACGroup` + - `error_code: String` - - `type: :rbac_group` + A stable identifier for the reason — the value to branch on. - An RBAC Group. + - `name: String` - - `rbac_group_id: String` + The plugin's name, as its entry in marketplace.json declares it. - The RBAC Group's ID. + - `plugin_warnings: Array[BetaPluginMarketplaceValidationPluginWarnings]` - - `class BetaPluginTargetOrganizationMember` + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - - `type: :organization_member` + - `name: String` - One member of the organization. + The plugin's name, as its entry in marketplace.json declares it. - - `user_id: String` + - `warnings: Array[BetaPluginMarketplaceValidationPluginWarning]` - The member's User ID. + The parts of the plugin a synchronization would leave out. + + - `error_code: String` + + A stable identifier for the kind of warning. + + - `message: String` + + What would be left out, and why. + + - `ref: String` + + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + + - `total_plugin_count: Integer` + + How many plugins marketplace.json declares; 0 when it could not be read. + + - `valid: bool` + + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. #### Example @@ -106584,90 +113151,79 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.plugins.shares.list("plugin_id") +beta_plugin_marketplace_validation_report = anthropic.beta.organization.plugin_marketplaces.validate_repository( + repository_url: "https://github.com/example-org/example-marketplace" +) -puts(page) +puts(beta_plugin_marketplace_validation_report) ``` ##### Response (200) ```json { - "data": [ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ { - "granted_at": "2026-03-14T09:26:53.589793Z", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_share" + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" } ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false } ``` -## Beta › Organization › Plugin Marketplaces - -### List Plugin Marketplaces - -`beta.organization.plugin_marketplaces.list(**kwargs) -> PageCursor` - -**GET** `/v1/organizations/plugin_marketplaces` - -List the plugin marketplaces Plugins live in, newest first: the organization's own -and its members' personal ones. - -Plugin marketplaces are created, connected to a repository and deleted in -claude.ai, not through this API. The organization's library marketplace, the -organization-owned `manual` marketplace that uploads go to when no marketplace is -named, is created the first time something is put in it and is listed from then on. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `limit: Integer` (query parameter) - - Number of items to return per page. - - Defaults to `20`. Ranges from `1` to `1000`. - - minimum: 1, maximum: 1000 - -- `organization_id: String` (query parameter) - - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. - -- `owner_type: :organization | :user` (query parameter) +### Validate Plugin Marketplace Archive - `organization` for the organization's plugin marketplaces, `user` for members' personal plugin marketplaces. +`beta.organization.plugin_marketplaces.validate_archive(**kwargs) -> BetaPluginMarketplaceValidationReport` - - `:organization` +**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - - `:user` +Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace +directory, would synchronize into claude.ai, without connecting or storing it. -- `page: String` (query parameter) +To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - Optionally set to the `next_page` token from the previous response. +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. - maxLength: 2048 +Nothing is recorded on the Compliance API activity feed. -- `source: :directory | :github | :gitlab | 2 more` (query parameter) +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#validate-marketplace-content) +in the Plugins API guide. - Only plugin marketplaces with this `source`: `manual` for those whose Plugins are uploaded; `github`, `gitlab` or `public_git` for those synchronized from a Git repository. `directory` (Anthropic's catalog) is never listed here. +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - - `:directory` +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - - `:github` +#### Parameters - - `:gitlab` +- `archive: String` - - `:manual` + A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. - - `:public_git` + format: binary - `betas: Array[AnthropicBeta]` (header parameter) @@ -106777,161 +113333,252 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginMarketplace` +- `class BetaPluginMarketplaceValidationReport` - - `type: :plugin_marketplace` + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. - Always `plugin_marketplace`. + - `type: :plugin_marketplace_validation_report` - - `id: String` + Always `plugin_marketplace_validation_report`. - The plugin marketplace's ID, prefixed `marketplace_`. + - `commit_sha: String` - - `created_at: Time` + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - RFC 3339. + - `manifest_error: String` - format: date-time + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - - `default_installation_preference: :auto_install | :available | :not_available | :required` + - `manifest_error_code: String` - Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + A stable identifier for `manifest_error`; null when that is. - - `:auto_install` + - `plugin_errors: Array[BetaPluginMarketplaceValidationPluginError]` - - `:available` + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - `:not_available` + - `error: String` - - `:required` + Why the plugin would be skipped by a synchronization. - - `last_sync_ended_at: Time` + - `error_code: String` - RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. + A stable identifier for the reason — the value to branch on. - format: date-time + - `name: String` - - `last_sync_read_sha: String` + The plugin's name, as its entry in marketplace.json declares it. - The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. + - `plugin_warnings: Array[BetaPluginMarketplaceValidationPluginWarnings]` - - `name: String` + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - Fixed for the plugin marketplace's lifetime. + - `name: String` - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` + The plugin's name, as its entry in marketplace.json declares it. - The organization, or the member whose personal plugin marketplace it is. + - `warnings: Array[BetaPluginMarketplaceValidationPluginWarning]` - - `class BetaPluginOwnerOrganization` + The parts of the plugin a synchronization would leave out. - - `type: :organization` + - `error_code: String` - The Plugin lives in a plugin marketplace the organization owns. + A stable identifier for the kind of warning. - - `class BetaPluginOwnerUser` + - `message: String` - - `type: :user` + What would be left out, and why. - The Plugin lives in one member's personal plugin marketplace. + - `ref: String` - - `user_id: String` + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. - The member's User ID. + - `total_plugin_count: Integer` - - `source: :directory | :github | :gitlab | 2 more` + How many plugins marketplace.json declares; 0 when it could not be read. - Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. + - `valid: bool` - - `:directory` + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. - - `:github` +#### Example - - `:gitlab` +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_plugin_marketplace_validation_report = anthropic.beta.organization.plugin_marketplaces.validate_archive(archive: StringIO.new("Example data")) + +puts(beta_plugin_marketplace_validation_report) +``` + +##### Response (200) + +```json +{ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ + { + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" + } + ], + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false +} +``` + +## Beta › Organization › Telemetry Destinations + +### Create a Telemetry Destination + +`beta.organization.telemetry_destinations.create(**kwargs) -> BetaTelemetryDestination` + +**POST** `/v1/organizations/telemetry_destinations` + +Register an OpenTelemetry destination for the organization. + +The destination starts in state `enabled`. An organization can have at most 10 destinations, including disabled ones. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#add-a-destination) to learn more about adding a destination. + +#### Parameters + +- `endpoint_url: String` + + The base URL of your collector's OTLP/HTTP endpoint, for example `https://gateway.example.com`. + + The URL must use `https` and a hostname, not an IP address. The port, if given, must be 443. The URL must not contain a query string, a fragment, or a username and password. At most 2,048 characters. + + A path prefix, such as `/otlp`, is allowed. Don't include the per-signal path (`/v1/traces`), because the API appends it on delivery. If your collector takes traces on another path, also set `traces.endpoint_url`. + + minLength: 1, maxLength: 2048 + +- `workspaces: BetaTelemetryDestinationWorkspacesParams` + + Which of the organization's workspaces the destination covers. + + - `class BetaTelemetryDestinationWorkspacesAllParams` + + Cover every workspace of the organization. Doesn't take `workspace_ids`. + + An update that sets `all` empties the destination's workspace list. + + - `type: :all` + + - `class BetaTelemetryDestinationWorkspacesIncludeParams` + + Cover only the workspaces on the list. + + - `type: :include` + + - `workspace_ids: Array[String]` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + + - `class BetaTelemetryDestinationWorkspacesExcludeParams` + + Cover every workspace of the organization except the workspaces on the list. + + - `type: :exclude` + + - `workspace_ids: Array[String]` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. - - `:manual` +- `display_name: String` - - `:public_git` + Human-readable name for the destination. Optional. 1 to 255 characters. - - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` +- `headers: Hash[Symbol, String]` - Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. + Request headers that the API sends with every delivery, typically your collector's authentication header (for example `authorization`). - - `:failed_auth` + The API stores the values encrypted and never returns them. Reads show only `header_names`. - - `:failed_content` + At most 20 headers. Names are at most 128 characters. Two names can't differ only in case. Values are printable ASCII, at most 4,096 characters, and can't begin or end with a space. Names and values together are at most 16,384 bytes. - - `:failed_limits` + Reserved names are rejected, for example `host`, `cookie`, `user-agent`, and names that start with `content-`, `proxy-`, `x-forwarded-`, or `anthropic-`. For this check, `_` in a name counts as `-`. - - `:failed_transient` +- `traces: BetaTelemetryDestinationTracesParams` - - `:in_progress` + The settings for the traces that the destination receives. If you leave it out, every setting takes its default. - - `:success` + - `content_mode: BetaTelemetryDestinationContentMode` -#### Example + What the exported spans contain. Defaults to `metadata_only` on create. -```ruby -require "anthropic" + On update, `null` sets `metadata_only`. -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + - `:metadata_only` -page = anthropic.beta.organization.plugin_marketplaces.list + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. -puts(page) -``` + - `:content` -##### Response (200) + The spans contain the same metadata as `metadata_only`, plus message and tool content. -```json -{ - "data": [ - { - "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "created_at": "2026-03-14T09:26:53.589793Z", - "default_installation_preference": "available", - "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", - "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "name": "engineering-tools", - "owner": { - "type": "organization" - }, - "source": "github", - "sync_status": "success", - "type": "plugin_marketplace" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. -### Get Plugin Marketplace + - `enabled: bool` -`beta.organization.plugin_marketplaces.retrieve(marketplace_id, **kwargs) -> BetaPluginMarketplace` + Whether the destination receives traces. Defaults to true on create. It cannot be null. -**GET** `/v1/organizations/plugin_marketplaces/{marketplace_id}` + - `endpoint_url: String` -Retrieve a plugin marketplace by ID. + The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than `/v1/traces`. The API posts traces to it exactly as given and appends nothing. -**Accepted credentials:** an Admin API key with the `read:plugins` or `read:org_audit` scope, or a Compliance Access Key with the `read:compliance_org_data` scope. + The same rules as for `endpoint_url` apply, except that any path is allowed. It must have the same scheme, host, and port as `endpoint_url`. At most 2,048 characters. -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + On create, `null` is the same as leaving it out. On update, `null` removes it. The API then posts traces to `endpoint_url` with `/v1/traces` appended. A change of this URL alone keeps the registered headers. -#### Parameters + maxLength: 2048 -- `marketplace_id: String` (path parameter) + - `max_content_bytes: Integer` - ID of the plugin marketplace (prefixed `marketplace_`). + The most bytes of content that one exported span can contain, from 1 up to the API's maximum. `null` sets no bound, so only the API's maximum applies. -- `organization_id: String` (query parameter) + On create, leaving it out is the same as `null`. The error for a value above the maximum states the maximum. - For a `read:org_audit` or `read:compliance_org_data` key created for all of a parent organization's linked organizations: a child organization of that parent to read instead of the organization the key was created in, given as the organization's UUID or its `org_`-prefixed ID. A value that is neither returns a 400; an organization that is not a child of the key's parent, or where the Plugins API is not available, returns a 404. Any other key may pass only its own organization's ID here; another organization returns a 404. + format: int32 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - `String = String` @@ -107037,99 +113684,177 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginMarketplace` +- `class BetaTelemetryDestination` - - `type: :plugin_marketplace` + An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - Always `plugin_marketplace`. + - `type: :telemetry_destination` - `id: String` - The plugin marketplace's ID, prefixed `marketplace_`. + The unique ID of the destination (`tdst_...`). - `created_at: Time` - RFC 3339. + Time the destination was created. format: date-time - - `default_installation_preference: :auto_install | :available | :not_available | :required` + - `delivery_health: BetaTelemetryDestinationDeliveryHealth` - Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + The most recent delivery results for this destination. - - `:auto_install` + - `last_error: String` - - `:available` + A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - `:not_available` + Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - - `:required` + `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - `last_sync_ended_at: Time` + See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. - RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. + - `last_error_at: Time` - format: date-time + Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - - `last_sync_read_sha: String` + format: date-time - The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. + - `last_success_at: Time` - - `name: String` + Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - Fixed for the plugin marketplace's lifetime. + format: date-time - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` + - `display_name: String` - The organization, or the member whose personal plugin marketplace it is. + Human-readable name for the destination. Null when none was set. - - `class BetaPluginOwnerOrganization` + - `endpoint_url: String` - - `type: :organization` + The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - The Plugin lives in a plugin marketplace the organization owns. + The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - `class BetaPluginOwnerUser` + - `header_names: Array[String]` - - `type: :user` + Names of the registered request headers. Header values are write-only and are never returned. - The Plugin lives in one member's personal plugin marketplace. + - `state: BetaTelemetryDestinationState` - - `user_id: String` + Whether the destination receives deliveries. - The member's User ID. + - `class BetaTelemetryDestinationStateEnabled` - - `source: :directory | :github | :gitlab | 2 more` + The telemetry destination receives the spans of the workspaces that it covers. - Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. + - `type: :enabled` - - `:directory` + - `class BetaTelemetryDestinationStateDisabled` - - `:github` + The API doesn't deliver anything to the telemetry destination. - - `:gitlab` + Spans produced while it is disabled aren't delivered later. - - `:manual` + - `type: :disabled` - - `:public_git` + - `reason: BetaTelemetryDestinationDisabledReason` - - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` + Whether a caller or the API disabled the destination and, when the API did, why. Read-only. - Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. + - `class BetaTelemetryDestinationDisabledReasonCaller` - - `:failed_auth` + A caller disabled the destination with an update that set `state` to `disabled`. - - `:failed_content` + - `type: :caller` - - `:failed_limits` + - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` - - `:failed_transient` + The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. - - `:in_progress` + - `type: :sustained_failure` - - `:success` + - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` + + The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + + - `type: :invalid_address` + + - `class BetaTelemetryDestinationDisabledReasonRedirect` + + The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + + - `type: :redirect` + + - `traces: BetaTelemetryDestinationTraces` + + The destination's settings for the traces it receives. + + - `content_mode: BetaTelemetryDestinationContentMode` + + What the exported spans contain. + + - `:metadata_only` + + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + + - `:content` + + The spans contain the same metadata as `metadata_only`, plus message and tool content. + + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + + - `enabled: bool` + + Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + + - `endpoint_url: String` + + The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + + When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + + - `max_content_bytes: Integer` + + The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + + Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + + format: int32 + + - `updated_at: Time` + + Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + + An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + + format: date-time + + - `workspaces: BetaTelemetryDestinationWorkspaces` + + Which of the organization's workspaces the destination covers. + + - `class BetaTelemetryDestinationWorkspacesAll` + + The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + + - `type: :all` + + - `class BetaTelemetryDestinationWorkspacesInclude` + + The destination covers the workspaces on its list, and no others. + + - `type: :include` + + - `class BetaTelemetryDestinationWorkspacesExclude` + + The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + + - `type: :exclude` #### Example @@ -107138,68 +113863,75 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_marketplace = anthropic.beta.organization.plugin_marketplaces.retrieve("marketplace_id") +beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.create(endpoint_url: "x", workspaces: {type: :all}) -puts(beta_plugin_marketplace) +puts(beta_telemetry_destination) ``` ##### Response (200) ```json { - "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "created_at": "2026-03-14T09:26:53.589793Z", - "default_installation_preference": "available", - "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", - "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "name": "engineering-tools", - "owner": { - "type": "organization" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "delivery_health": { + "last_error": "last_error", + "last_error_at": "2019-12-27T18:11:19.117Z", + "last_success_at": "2019-12-27T18:11:19.117Z" }, - "source": "github", - "sync_status": "success", - "type": "plugin_marketplace" + "display_name": "display_name", + "endpoint_url": "endpoint_url", + "header_names": [ + "string" + ], + "state": { + "type": "enabled" + }, + "traces": { + "content_mode": "metadata_only", + "enabled": true, + "endpoint_url": "endpoint_url", + "max_content_bytes": 0 + }, + "type": "telemetry_destination", + "updated_at": "2019-12-27T18:11:19.117Z", + "workspaces": { + "type": "all" + } } ``` -### Update Plugin Marketplace - -`beta.organization.plugin_marketplaces.update(marketplace_id, **kwargs) -> BetaPluginMarketplace` - -**POST** `/v1/organizations/plugin_marketplaces/{marketplace_id}` +### List Telemetry Destinations -Set the default installation setting of one of the organization's own plugin -marketplaces. Every Plugin in it without a setting of its own gets this default as -its organization-wide setting, including Plugins added later. +`beta.organization.telemetry_destinations.list(**kwargs) -> PageCursor` -Pass it as `default_installation_preference`. A member's personal marketplace -cannot be updated here (403). +**GET** `/v1/organizations/telemetry_destinations` -**Accepted credentials:** an Admin API key with the `write:plugins` scope. +List the organization's destinations, newest first, optionally only those that cover given workspaces. -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#set-up-api-tracing) to learn more about destinations. #### Parameters -- `marketplace_id: String` (path parameter) +- `limit: Integer` (query parameter) - ID of the plugin marketplace (prefixed `marketplace_`). + Number of destinations to return per page, between 1 and 1,000. Defaults to 20. -- `default_installation_preference: :auto_install | :available | :not_available | :required` + format: int32 - The organization-wide installation setting every Plugin in the marketplace without one of its own gets: one of `required`, `auto_install`, `available`, `not_available`. Once set it can be changed but not removed. +- `page: String` (query parameter) - - `:auto_install` + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. - - `:available` +- `workspace_ids: Array[String]` (query parameter) - - `:not_available` + Return only the destinations that cover at least one of these workspaces (`wrkspc_...`). - - `:required` + Send at most 100 IDs, as `workspace_ids[]`. A destination covers a workspace when its `workspaces.type` is `all`, when its `include` list has the workspace, or when its `exclude` list doesn't have it. Destinations in either state can match. An ID that isn't the ID of one of the organization's workspaces doesn't match any destination, not even one whose type is `all`. - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - `String = String` @@ -107305,353 +114037,177 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginMarketplace` +- `class BetaTelemetryDestination` - - `type: :plugin_marketplace` + An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - Always `plugin_marketplace`. + - `type: :telemetry_destination` - `id: String` - The plugin marketplace's ID, prefixed `marketplace_`. + The unique ID of the destination (`tdst_...`). - `created_at: Time` - RFC 3339. - - format: date-time - - - `default_installation_preference: :auto_install | :available | :not_available | :required` - - Organization plugin marketplace: the organization-wide setting every Plugin in it with no setting of its own gets. Null for a member's personal plugin marketplace. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `:auto_install` - - - `:available` - - - `:not_available` - - - `:required` - - - `last_sync_ended_at: Time` - - RFC 3339. When the most recent synchronization attempt to finish did so, whatever its outcome; for a repository plugin marketplace no synchronization has run on yet, when it was created. Null for a plugin marketplace that is not synchronized from a repository. + Time the destination was created. format: date-time - - `last_sync_read_sha: String` - - The commit the last synchronization attempt that reached the repository read, whether or not its content was then accepted (see `sync_status`); an attempt that ends `failed_auth` or `failed_transient` leaves it unchanged. Null until an attempt has first read the repository, and for a plugin marketplace that is not synchronized from a repository. - - - `name: String` - - Fixed for the plugin marketplace's lifetime. - - - `owner: BetaPluginOwnerOrganization | BetaPluginOwnerUser` - - The organization, or the member whose personal plugin marketplace it is. - - - `class BetaPluginOwnerOrganization` - - - `type: :organization` - - The Plugin lives in a plugin marketplace the organization owns. - - - `class BetaPluginOwnerUser` - - - `type: :user` - - The Plugin lives in one member's personal plugin marketplace. - - - `user_id: String` - - The member's User ID. - - - `source: :directory | :github | :gitlab | 2 more` - - Where the plugin marketplace's Plugins come from: `manual` when they are uploaded; `github`, `gitlab` or `public_git` when they are synchronized from the Git repository the owner connected, into which nothing can be uploaded; `directory` is Anthropic's own catalog, which this API does not list. A value this API does not yet name is returned as stored. - - - `:directory` - - - `:github` - - - `:gitlab` - - - `:manual` - - - `:public_git` - - - `sync_status: :failed_auth | :failed_content | :failed_limits | 3 more` - - Outcome of the plugin marketplace's most recent synchronization: one of `success`, `in_progress`, `failed_content`, `failed_transient`, `failed_auth`, `failed_limits`; a value this API does not yet name is returned as stored. Null until a synchronization is first attempted — so always for a `manual` plugin marketplace. - - - `:failed_auth` - - - `:failed_content` - - - `:failed_limits` - - - `:failed_transient` - - - `:in_progress` - - - `:success` - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_plugin_marketplace = anthropic.beta.organization.plugin_marketplaces.update( - "marketplace_id", - default_installation_preference: :available -) - -puts(beta_plugin_marketplace) -``` - -##### Response (200) - -```json -{ - "id": "marketplace_01HxQ3v9KpZ2mTn8RwLc4Ys7", - "created_at": "2026-03-14T09:26:53.589793Z", - "default_installation_preference": "available", - "last_sync_ended_at": "2026-03-14T09:26:53.589793Z", - "last_sync_read_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "name": "engineering-tools", - "owner": { - "type": "organization" - }, - "source": "github", - "sync_status": "success", - "type": "plugin_marketplace" -} -``` - -### Validate Plugin Marketplace Repository - -`beta.organization.plugin_marketplaces.validate_repository(**kwargs) -> BetaPluginMarketplaceValidationReport` - -**POST** `/v1/organizations/plugin_marketplaces/validate_repository` - -Check whether a plugin marketplace held in a public GitHub repository would -synchronize into claude.ai, without connecting or storing it. - -To check a `.zip` of the marketplace directory instead, use Validate Plugin Marketplace Archive. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. A repository that is missing, private, or has no such branch or commit is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. - -Nothing is recorded on the Compliance API activity feed. - -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#validate-marketplace-content) -in the Plugins API guide. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `repository_url: String` - - The `https://` URL of a public repository on github.com that holds the marketplace. A URL longer than 2,048 characters, on any other host or scheme, with a port other than 443 or 80, with credentials in it, or that does not name exactly `owner/repo` (a trailing `.git` or `/` is accepted) is a 400. A private or missing repository is reported in the response, not refused. - - minLength: 1 - -- `ref: String` - - The branch to validate the tip of, or the full 40-character SHA of the commit to validate. When omitted, the branch a synchronization would read (usually the repository's default branch); if that is not the default branch, the report's `ref` says which branch was read. An empty string, a value longer than 255 characters, or one that contains `..` or a character other than ASCII letters, digits, `.`, `_`, `-`, `+`, and `/`, is a 400. Any other value that is not a 40-character SHA is read as a branch name; if the repository has no such branch, the response is a report with `valid: false`, not a 400. - - minLength: 1 - -- `betas: Array[AnthropicBeta]` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `String = String` - - - `:"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"` + - `delivery_health: BetaTelemetryDestinationDeliveryHealth` - - `:"dev-full-thinking-2025-05-14"` + The most recent delivery results for this destination. - - `:"interleaved-thinking-2025-05-14"` + - `last_error: String` - - `:"code-execution-2025-05-22"` + A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - `:"extended-cache-ttl-2025-04-11"` + Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - - `:"context-1m-2025-08-07"` + `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - `:"context-management-2025-06-27"` + See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. - - `:"model-context-window-exceeded-2025-08-26"` + - `last_error_at: Time` - - `:"skills-2025-10-02"` + Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - - `:"fast-mode-2026-02-01"` + format: date-time - - `:"output-300k-2026-03-24"` + - `last_success_at: Time` - - `:"user-profiles-2026-03-24"` + Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - - `:"user-profiles-2026-08-18"` + format: date-time - - `:"user-profiles-2026-09-04"` + - `display_name: String` - - `:"advisor-tool-2026-03-01"` + Human-readable name for the destination. Null when none was set. - - `:"managed-agents-2026-04-01"` + - `endpoint_url: String` - - `:"cache-diagnosis-2026-04-07"` + The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - - `:"dreaming-2026-04-21"` + The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - `:"thinking-token-count-2026-05-13"` + - `header_names: Array[String]` - - `:"server-side-fallback-2026-06-01"` + Names of the registered request headers. Header values are write-only and are never returned. - - `:"server-side-fallback-2026-07-01"` + - `state: BetaTelemetryDestinationState` - - `:"fallback-credit-2026-06-01"` + Whether the destination receives deliveries. - - `:"fallback-credit-2026-07-01"` + - `class BetaTelemetryDestinationStateEnabled` - - `:"agent-memory-2026-07-22"` + The telemetry destination receives the spans of the workspaces that it covers. - - `:"mid-conversation-tool-changes-2026-07-01"` + - `type: :enabled` - - `:"compact-2026-01-12"` + - `class BetaTelemetryDestinationStateDisabled` - - `:"computer-use-2025-11-24"` + The API doesn't deliver anything to the telemetry destination. - - `:"mcp-tunnels-2026-06-22"` + Spans produced while it is disabled aren't delivered later. - - `:"structured-outputs-2025-11-13"` + - `type: :disabled` - - `:"task-budgets-2026-03-13"` + - `reason: BetaTelemetryDestinationDisabledReason` - - `:"thinking-display-updates-2026-08-18"` + Whether a caller or the API disabled the destination and, when the API did, why. Read-only. - - `:"ce-user-management-2026-07-13"` + - `class BetaTelemetryDestinationDisabledReasonCaller` - - `:"mid-conversation-output-config-2026-07-01"` + A caller disabled the destination with an update that set `state` to `disabled`. - - `:"thinking-binding-controls-2026-08-01"` + - `type: :caller` - - `:"mid-conversation-system-clear-at-2026-08-21"` + - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` - - `:"compact-2026-09-04"` + The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. - - `:"inline-tools-2026-09-15"` + - `type: :sustained_failure` - - `:"mcp-client-2026-09-15"` + - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` - - `:"ce-plugins-2026-09-01"` + The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. - - `:"spend-limit-reads-2026-09-26"` + - `type: :invalid_address` - - `:"telemetry-destinations-2026-08-11"` + - `class BetaTelemetryDestinationDisabledReasonRedirect` -#### Returns + The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. -- `class BetaPluginMarketplaceValidationReport` + - `type: :redirect` - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. + - `traces: BetaTelemetryDestinationTraces` - - `type: :plugin_marketplace_validation_report` + The destination's settings for the traces it receives. - Always `plugin_marketplace_validation_report`. + - `content_mode: BetaTelemetryDestinationContentMode` - - `commit_sha: String` + What the exported spans contain. - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + - `:metadata_only` - - `manifest_error: String` + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + - `:content` - - `manifest_error_code: String` + The spans contain the same metadata as `metadata_only`, plus message and tool content. - A stable identifier for `manifest_error`; null when that is. + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. - - `plugin_errors: Array[BetaPluginMarketplaceValidationPluginError]` + - `enabled: bool` - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. - - `error: String` + - `endpoint_url: String` - Why the plugin would be skipped by a synchronization. + The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. - - `error_code: String` + When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. - A stable identifier for the reason — the value to branch on. + - `max_content_bytes: Integer` - - `name: String` + The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. - The plugin's name, as its entry in marketplace.json declares it. + Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. - - `plugin_warnings: Array[BetaPluginMarketplaceValidationPluginWarnings]` + format: int32 - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + - `updated_at: Time` - - `name: String` + Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. - The plugin's name, as its entry in marketplace.json declares it. + An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. - - `warnings: Array[BetaPluginMarketplaceValidationPluginWarning]` + format: date-time - The parts of the plugin a synchronization would leave out. + - `workspaces: BetaTelemetryDestinationWorkspaces` - - `error_code: String` + Which of the organization's workspaces the destination covers. - A stable identifier for the kind of warning. + - `class BetaTelemetryDestinationWorkspacesAll` - - `message: String` + The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. - What would be left out, and why. + - `type: :all` - - `ref: String` + - `class BetaTelemetryDestinationWorkspacesInclude` - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + The destination covers the workspaces on its list, and no others. - - `total_plugin_count: Integer` + - `type: :include` - How many plugins marketplace.json declares; 0 when it could not be read. + - `class BetaTelemetryDestinationWorkspacesExclude` - - `valid: bool` + The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + - `type: :exclude` #### Example @@ -107660,83 +114216,68 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_marketplace_validation_report = anthropic.beta.organization.plugin_marketplaces.validate_repository( - repository_url: "https://github.com/example-org/example-marketplace" -) +page = anthropic.beta.organization.telemetry_destinations.list -puts(beta_plugin_marketplace_validation_report) +puts(page) ``` ##### Response (200) ```json { - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ + "data": [ { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "delivery_health": { + "last_error": "last_error", + "last_error_at": "2019-12-27T18:11:19.117Z", + "last_success_at": "2019-12-27T18:11:19.117Z" + }, + "display_name": "display_name", + "endpoint_url": "endpoint_url", + "header_names": [ + "string" + ], + "state": { + "type": "enabled" + }, + "traces": { + "content_mode": "metadata_only", + "enabled": true, + "endpoint_url": "endpoint_url", + "max_content_bytes": 0 + }, + "type": "telemetry_destination", + "updated_at": "2019-12-27T18:11:19.117Z", + "workspaces": { + "type": "all" + } } ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false + "next_page": "next_page" } ``` -### Validate Plugin Marketplace Archive - -`beta.organization.plugin_marketplaces.validate_archive(**kwargs) -> BetaPluginMarketplaceValidationReport` - -**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - -Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace -directory, would synchronize into claude.ai, without connecting or storing it. - -To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. +### Retrieve a Telemetry Destination -Nothing is recorded on the Compliance API activity feed. +`beta.organization.telemetry_destinations.retrieve(destination_id, **kwargs) -> BetaTelemetryDestination` -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=ruby#validate-marketplace-content) -in the Plugins API guide. +**GET** `/v1/organizations/telemetry_destinations/{destination_id}` -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. +Read a destination's configuration, state, and most recent delivery results. -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn how the API delivers spans and when it disables a destination. #### Parameters -- `archive: String` - - A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. +- `destination_id: String` (path parameter) - format: binary + ID of the destination (`tdst_...`). - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - `String = String` @@ -107842,76 +114383,177 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaPluginMarketplaceValidationReport` +- `class BetaTelemetryDestination` - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. + An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - - `type: :plugin_marketplace_validation_report` + - `type: :telemetry_destination` - Always `plugin_marketplace_validation_report`. + - `id: String` - - `commit_sha: String` + The unique ID of the destination (`tdst_...`). - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + - `created_at: Time` - - `manifest_error: String` + Time the destination was created. - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + format: date-time - - `manifest_error_code: String` + - `delivery_health: BetaTelemetryDestinationDeliveryHealth` - A stable identifier for `manifest_error`; null when that is. + The most recent delivery results for this destination. - - `plugin_errors: Array[BetaPluginMarketplaceValidationPluginError]` + - `last_error: String` - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - `error: String` + Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - Why the plugin would be skipped by a synchronization. + `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - `error_code: String` + See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. - A stable identifier for the reason — the value to branch on. + - `last_error_at: Time` - - `name: String` + Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - The plugin's name, as its entry in marketplace.json declares it. + format: date-time - - `plugin_warnings: Array[BetaPluginMarketplaceValidationPluginWarnings]` + - `last_success_at: Time` - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - - `name: String` + format: date-time - The plugin's name, as its entry in marketplace.json declares it. + - `display_name: String` - - `warnings: Array[BetaPluginMarketplaceValidationPluginWarning]` + Human-readable name for the destination. Null when none was set. - The parts of the plugin a synchronization would leave out. + - `endpoint_url: String` - - `error_code: String` + The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - A stable identifier for the kind of warning. + The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - `message: String` + - `header_names: Array[String]` - What would be left out, and why. + Names of the registered request headers. Header values are write-only and are never returned. - - `ref: String` + - `state: BetaTelemetryDestinationState` - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + Whether the destination receives deliveries. - - `total_plugin_count: Integer` + - `class BetaTelemetryDestinationStateEnabled` - How many plugins marketplace.json declares; 0 when it could not be read. + The telemetry destination receives the spans of the workspaces that it covers. - - `valid: bool` + - `type: :enabled` - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + - `class BetaTelemetryDestinationStateDisabled` + + The API doesn't deliver anything to the telemetry destination. + + Spans produced while it is disabled aren't delivered later. + + - `type: :disabled` + + - `reason: BetaTelemetryDestinationDisabledReason` + + Whether a caller or the API disabled the destination and, when the API did, why. Read-only. + + - `class BetaTelemetryDestinationDisabledReasonCaller` + + A caller disabled the destination with an update that set `state` to `disabled`. + + - `type: :caller` + + - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` + + The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. + + - `type: :sustained_failure` + + - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` + + The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + + - `type: :invalid_address` + + - `class BetaTelemetryDestinationDisabledReasonRedirect` + + The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + + - `type: :redirect` + + - `traces: BetaTelemetryDestinationTraces` + + The destination's settings for the traces it receives. + + - `content_mode: BetaTelemetryDestinationContentMode` + + What the exported spans contain. + + - `:metadata_only` + + The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + + - `:content` + + The spans contain the same metadata as `metadata_only`, plus message and tool content. + + An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + + - `enabled: bool` + + Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + + - `endpoint_url: String` + + The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + + When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + + - `max_content_bytes: Integer` + + The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + + Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + + format: int32 + + - `updated_at: Time` + + Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + + An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + + format: date-time + + - `workspaces: BetaTelemetryDestinationWorkspaces` + + Which of the organization's workspaces the destination covers. + + - `class BetaTelemetryDestinationWorkspacesAll` + + The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + + - `type: :all` + + - `class BetaTelemetryDestinationWorkspacesInclude` + + The destination covers the workspaces on its list, and no others. + + - `type: :include` + + - `class BetaTelemetryDestinationWorkspacesExclude` + + The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + + - `type: :exclude` #### Example @@ -107920,130 +114562,111 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_plugin_marketplace_validation_report = anthropic.beta.organization.plugin_marketplaces.validate_archive(archive: StringIO.new("Example data")) +beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.retrieve("destination_id") -puts(beta_plugin_marketplace_validation_report) +puts(beta_telemetry_destination) ``` ##### Response (200) ```json { - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ - { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "delivery_health": { + "last_error": "last_error", + "last_error_at": "2019-12-27T18:11:19.117Z", + "last_success_at": "2019-12-27T18:11:19.117Z" + }, + "display_name": "display_name", + "endpoint_url": "endpoint_url", + "header_names": [ + "string" ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false + "state": { + "type": "enabled" + }, + "traces": { + "content_mode": "metadata_only", + "enabled": true, + "endpoint_url": "endpoint_url", + "max_content_bytes": 0 + }, + "type": "telemetry_destination", + "updated_at": "2019-12-27T18:11:19.117Z", + "workspaces": { + "type": "all" + } } ``` -## Beta › Organization › Telemetry Destinations +### Update a Telemetry Destination -### Create a Telemetry Destination +`beta.organization.telemetry_destinations.update(destination_id, **kwargs) -> BetaTelemetryDestination` -`beta.organization.telemetry_destinations.create(**kwargs) -> BetaTelemetryDestination` +**POST** `/v1/organizations/telemetry_destinations/{destination_id}` -**POST** `/v1/organizations/telemetry_destinations` +Change a telemetry destination's settings, its state, or which workspaces it covers. -Register an OpenTelemetry destination for the organization. +Send at least one field. Omitted fields keep their stored values, except the registered headers, which a change of the endpoint's hostname or port removes. Only `display_name`, `traces`, `traces.endpoint_url`, `traces.content_mode`, `traces.max_content_bytes`, and individual `headers` values accept `null`. -The destination starts in state `enabled`. An organization can have at most 10 destinations, including disabled ones. +If another request changes the destination while the update runs, the API returns a 409 `conflict_error`. Read the destination again, then retry the update. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#add-a-destination) to learn more about adding a destination. +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn more about changing a destination. #### Parameters -- `endpoint_url: String` - - The base URL of your collector's OTLP/HTTP endpoint, for example `https://gateway.example.com`. - - The URL must use `https` and a hostname, not an IP address. The port, if given, must be 443. The URL must not contain a query string, a fragment, or a username and password. At most 2,048 characters. - - A path prefix, such as `/otlp`, is allowed. Don't include the per-signal path (`/v1/traces`), because the API appends it on delivery. If your collector takes traces on another path, also set `traces.endpoint_url`. - - minLength: 1, maxLength: 2048 - -- `workspaces: BetaTelemetryDestinationWorkspacesParams` - - Which of the organization's workspaces the destination covers. - - - `class BetaTelemetryDestinationWorkspacesAllParams` - - Cover every workspace of the organization. Doesn't take `workspace_ids`. - - An update that sets `all` empties the destination's workspace list. - - - `type: :all` - - - `class BetaTelemetryDestinationWorkspacesIncludeParams` +- `destination_id: String` (path parameter) - Cover only the workspaces on the list. + ID of the destination (`tdst_...`). - - `type: :include` +- `display_name: String` - - `workspace_ids: Array[String]` + New human-readable name, 1 to 255 characters. Null clears it. - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. +- `endpoint_url: String` - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + The new base URL of the destination's OTLP/HTTP endpoint. The same rules as on create apply. - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + A change of hostname or port first removes every registered header, so send the headers for the new endpoint in the same request. When the destination has a `traces.endpoint_url`, such a change must also set `traces.endpoint_url` to a URL with the new hostname and port, or to `null`. A change of the path alone keeps the headers. - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + maxLength: 2048 - - `class BetaTelemetryDestinationWorkspacesExcludeParams` +- `headers: Hash[Symbol, String]` - Cover every workspace of the organization except the workspaces on the list. + Headers to set or remove. The API merges them into the destination's headers by name. - - `type: :exclude` + Names compare case-insensitively. A string value sets or replaces that header. A `null` value removes it. Headers that you omit don't change. The field itself can't be `null`. - - `workspace_ids: Array[String]` + A request that sets a header value must also include `endpoint_url`. The current URL is accepted. - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + The resulting set must stay within the same limits as on create. When the request sets a value, each stored value that it doesn't set counts as 4,096 bytes toward the 16,384-byte limit, because you can't read its real length. So to change one header of a destination that has four or more other headers, send the values of the others again in the same request. - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. +- `state: BetaTelemetryDestinationStateParams` - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + Whether the destination receives deliveries after the update. The field can't be `null`. - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + - `class BetaTelemetryDestinationStateEnabledParams` -- `display_name: String` + Start deliveries to the telemetry destination again. - Human-readable name for the destination. Optional. 1 to 255 characters. + This doesn't reset `delivery_health`. -- `headers: Hash[Symbol, String]` + - `type: :enabled` - Request headers that the API sends with every delivery, typically your collector's authentication header (for example `authorization`). + - `class BetaTelemetryDestinationStateDisabledParams` - The API stores the values encrypted and never returns them. Reads show only `header_names`. + Stop deliveries to the telemetry destination. - At most 20 headers. Names are at most 128 characters. Two names can't differ only in case. Values are printable ASCII, at most 4,096 characters, and can't begin or end with a space. Names and values together are at most 16,384 bytes. + Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its `reason`. - Reserved names are rejected, for example `host`, `cookie`, `user-agent`, and names that start with `content-`, `proxy-`, `x-forwarded-`, or `anthropic-`. For this check, `_` in a name counts as `-`. + - `type: :disabled` - `traces: BetaTelemetryDestinationTracesParams` - The settings for the traces that the destination receives. If you leave it out, every setting takes its default. + The traces settings to change. Omitted settings keep their stored values. + + `null` sets every traces setting to its create default. - `content_mode: BetaTelemetryDestinationContentMode` @@ -108083,6 +114706,52 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- format: int32 +- `workspaces: BetaTelemetryDestinationWorkspacesParams` + + The new workspace scope, in the same form as on create. The field can't be `null`. + + The API refuses an update that changes the type or sends `workspace_ids` while the destination's list has more than 750 workspaces. Remove workspaces one at a time until 750 or fewer remain, then send the update again. + + - `class BetaTelemetryDestinationWorkspacesAllParams` + + Cover every workspace of the organization. Doesn't take `workspace_ids`. + + An update that sets `all` empties the destination's workspace list. + + - `type: :all` + + - `class BetaTelemetryDestinationWorkspacesIncludeParams` + + Cover only the workspaces on the list. + + - `type: :include` + + - `workspace_ids: Array[String]` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + + - `class BetaTelemetryDestinationWorkspacesExcludeParams` + + Cover every workspace of the organization except the workspaces on the list. + + - `type: :exclude` + + - `workspace_ids: Array[String]` + + The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + + On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + + On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + + An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. @@ -108191,6 +114860,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns - `class BetaTelemetryDestination` @@ -108368,7 +115039,7 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.create(endpoint_url: "x", workspaces: {type: :all}) +beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.update("destination_id") puts(beta_telemetry_destination) ``` @@ -108406,33 +115077,23 @@ puts(beta_telemetry_destination) } ``` -### List Telemetry Destinations - -`beta.organization.telemetry_destinations.list(**kwargs) -> PageCursor` - -**GET** `/v1/organizations/telemetry_destinations` - -List the organization's destinations, newest first, optionally only those that cover given workspaces. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#set-up-api-tracing) to learn more about destinations. - -#### Parameters +### Delete a Telemetry Destination -- `limit: Integer` (query parameter) +`beta.organization.telemetry_destinations.delete(destination_id, **kwargs) -> BetaDeletedTelemetryDestination` - Number of destinations to return per page, between 1 and 1,000. Defaults to 20. +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}` - format: int32 +Delete a destination and its workspace list. -- `page: String` (query parameter) +The API stops sending spans to the destination. The spans of the workspaces it covered still go to the other destinations that cover them. A deleted destination can't be read, listed, or restored. - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn more about managing a destination. -- `workspace_ids: Array[String]` (query parameter) +#### Parameters - Return only the destinations that cover at least one of these workspaces (`wrkspc_...`). +- `destination_id: String` (path parameter) - Send at most 100 IDs, as `workspace_ids[]`. A destination covers a workspace when its `workspaces.type` is `all`, when its `include` list has the workspace, or when its `exclude` list doesn't have it. Destinations in either state can match. An ID that isn't the ID of one of the organization's workspaces doesn't match any destination, not even one whose type is `all`. + ID of the destination (`tdst_...`). - `betas: Array[AnthropicBeta]` (header parameter) @@ -108542,175 +115203,192 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestination` +- `class BetaDeletedTelemetryDestination` - An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. + Confirmation that a destination was deleted. - - `type: :telemetry_destination` + - `type: :telemetry_destination_deleted` - `id: String` - The unique ID of the destination (`tdst_...`). + ID of the deleted destination (`tdst_...`). - - `created_at: Time` +#### Example - Time the destination was created. +```ruby +require "anthropic" - format: date-time +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `delivery_health: BetaTelemetryDestinationDeliveryHealth` +beta_deleted_telemetry_destination = anthropic.beta.organization.telemetry_destinations.delete("destination_id") - The most recent delivery results for this destination. +puts(beta_deleted_telemetry_destination) +``` - - `last_error: String` +##### Response (200) - A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` - Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. +### Test a Telemetry Destination - `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. +`beta.organization.telemetry_destinations.test_(destination_id, **kwargs) -> BetaTelemetryDestinationTestResponse` - See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` - - `last_error_at: Time` +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. - Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. +#### Parameters - format: date-time +- `destination_id: String` (path parameter) - - `last_success_at: Time` + ID of the destination to test (starts with `tdst_`). - Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. +- `betas: Array[AnthropicBeta]` (header parameter) - format: date-time + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - - `display_name: String` + - `String = String` - Human-readable name for the destination. Null when none was set. + - `:"message-batches-2024-09-24"` - - `endpoint_url: String` + - `:"prompt-caching-2024-07-31"` - The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. + - `:"computer-use-2024-10-22"` - The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. + - `:"computer-use-2025-01-24"` - - `header_names: Array[String]` + - `:"pdfs-2024-09-25"` - Names of the registered request headers. Header values are write-only and are never returned. + - `:"token-counting-2024-11-01"` - - `state: BetaTelemetryDestinationState` + - `:"token-efficient-tools-2025-02-19"` - Whether the destination receives deliveries. + - `:"output-128k-2025-02-19"` - - `class BetaTelemetryDestinationStateEnabled` + - `:"files-api-2025-04-14"` - The telemetry destination receives the spans of the workspaces that it covers. + - `:"mcp-client-2025-04-04"` - - `type: :enabled` + - `:"mcp-client-2025-11-20"` - - `class BetaTelemetryDestinationStateDisabled` + - `:"dev-full-thinking-2025-05-14"` - The API doesn't deliver anything to the telemetry destination. + - `:"interleaved-thinking-2025-05-14"` - Spans produced while it is disabled aren't delivered later. + - `:"code-execution-2025-05-22"` - - `type: :disabled` + - `:"extended-cache-ttl-2025-04-11"` - - `reason: BetaTelemetryDestinationDisabledReason` + - `:"context-1m-2025-08-07"` - Whether a caller or the API disabled the destination and, when the API did, why. Read-only. + - `:"context-management-2025-06-27"` - - `class BetaTelemetryDestinationDisabledReasonCaller` + - `:"model-context-window-exceeded-2025-08-26"` - A caller disabled the destination with an update that set `state` to `disabled`. + - `:"skills-2025-10-02"` - - `type: :caller` + - `:"fast-mode-2026-02-01"` - - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` + - `:"output-300k-2026-03-24"` - The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. + - `:"user-profiles-2026-03-24"` - - `type: :sustained_failure` + - `:"user-profiles-2026-08-18"` - - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` + - `:"user-profiles-2026-09-04"` - The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + - `:"advisor-tool-2026-03-01"` - - `type: :invalid_address` + - `:"managed-agents-2026-04-01"` - - `class BetaTelemetryDestinationDisabledReasonRedirect` + - `:"cache-diagnosis-2026-04-07"` - The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + - `:"dreaming-2026-04-21"` - - `type: :redirect` + - `:"thinking-token-count-2026-05-13"` - - `traces: BetaTelemetryDestinationTraces` + - `:"server-side-fallback-2026-06-01"` - The destination's settings for the traces it receives. + - `:"server-side-fallback-2026-07-01"` - - `content_mode: BetaTelemetryDestinationContentMode` + - `:"fallback-credit-2026-06-01"` - What the exported spans contain. + - `:"fallback-credit-2026-07-01"` - - `:metadata_only` + - `:"agent-memory-2026-07-22"` - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + - `:"mid-conversation-tool-changes-2026-07-01"` - - `:content` + - `:"compact-2026-01-12"` - The spans contain the same metadata as `metadata_only`, plus message and tool content. + - `:"computer-use-2025-11-24"` - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + - `:"mcp-tunnels-2026-06-22"` - - `enabled: bool` + - `:"structured-outputs-2025-11-13"` - Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + - `:"task-budgets-2026-03-13"` - - `endpoint_url: String` + - `:"thinking-display-updates-2026-08-18"` - The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + - `:"ce-user-management-2026-07-13"` - When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + - `:"mid-conversation-output-config-2026-07-01"` - - `max_content_bytes: Integer` + - `:"thinking-binding-controls-2026-08-01"` - The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + - `:"mid-conversation-system-clear-at-2026-08-21"` - Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + - `:"compact-2026-09-04"` - format: int32 + - `:"inline-tools-2026-09-15"` - - `updated_at: Time` + - `:"mcp-client-2026-09-15"` - Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + - `:"ce-plugins-2026-09-01"` - An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + - `:"spend-limit-reads-2026-09-26"` - format: date-time + - `:"telemetry-destinations-2026-08-11"` - - `workspaces: BetaTelemetryDestinationWorkspaces` + - `:"webhooks-2026-10-07"` - Which of the organization's workspaces the destination covers. +#### Returns - - `class BetaTelemetryDestinationWorkspacesAll` +- `class BetaTelemetryDestinationTestResponse` - The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + The result of one test span sent to a destination. - - `type: :all` + - `type: :telemetry_destination_test` - - `class BetaTelemetryDestinationWorkspacesInclude` + - `result: BetaTelemetryDestinationTestResult` - The destination covers the workspaces on its list, and no others. + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. - - `type: :include` + - `class BetaTelemetryDestinationTestSuccess` - - `class BetaTelemetryDestinationWorkspacesExclude` + The destination answered the test span with a 2xx status. - The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + - `type: :success` - - `type: :exclude` + - `class BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `type: :failure` + + - `error: String` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. #### Example @@ -108719,58 +115397,35 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.telemetry_destinations.list +beta_telemetry_destination_test_response = anthropic.beta.organization.telemetry_destinations.test_("destination_id") -puts(page) +puts(beta_telemetry_destination_test_response) ``` ##### Response (200) ```json { - "data": [ - { - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "delivery_health": { - "last_error": "last_error", - "last_error_at": "2019-12-27T18:11:19.117Z", - "last_success_at": "2019-12-27T18:11:19.117Z" - }, - "display_name": "display_name", - "endpoint_url": "endpoint_url", - "header_names": [ - "string" - ], - "state": { - "type": "enabled" - }, - "traces": { - "content_mode": "metadata_only", - "enabled": true, - "endpoint_url": "endpoint_url", - "max_content_bytes": 0 - }, - "type": "telemetry_destination", - "updated_at": "2019-12-27T18:11:19.117Z", - "workspaces": { - "type": "all" - } - } - ], - "next_page": "next_page" + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" } ``` -### Retrieve a Telemetry Destination +## Beta › Organization › Telemetry Destinations › Workspaces -`beta.organization.telemetry_destinations.retrieve(destination_id, **kwargs) -> BetaTelemetryDestination` +### List Telemetry Destination Workspaces -**GET** `/v1/organizations/telemetry_destinations/{destination_id}` +`beta.organization.telemetry_destinations.workspaces.list(destination_id, **kwargs) -> PageCursor` -Read a destination's configuration, state, and most recent delivery results. +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn how the API delivers spans and when it disables a destination. +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. #### Parameters @@ -108778,6 +115433,16 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- ID of the destination (`tdst_...`). +- `limit: Integer` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + +- `page: String` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `betas: Array[AnthropicBeta]` (header parameter) This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. @@ -108886,175 +115551,31 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaTelemetryDestination` - - An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. - - - `type: :telemetry_destination` - - - `id: String` - - The unique ID of the destination (`tdst_...`). - - - `created_at: Time` - - Time the destination was created. - - format: date-time - - - `delivery_health: BetaTelemetryDestinationDeliveryHealth` - - The most recent delivery results for this destination. - - - `last_error: String` - - A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. - - Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. - - `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. - - See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. - - - `last_error_at: Time` - - Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. - - format: date-time - - - `last_success_at: Time` - - Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. - - format: date-time - - - `display_name: String` - - Human-readable name for the destination. Null when none was set. - - - `endpoint_url: String` - - The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. - - The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. - - - `header_names: Array[String]` - - Names of the registered request headers. Header values are write-only and are never returned. - - - `state: BetaTelemetryDestinationState` - - Whether the destination receives deliveries. - - - `class BetaTelemetryDestinationStateEnabled` - - The telemetry destination receives the spans of the workspaces that it covers. - - - `type: :enabled` - - - `class BetaTelemetryDestinationStateDisabled` - - The API doesn't deliver anything to the telemetry destination. - - Spans produced while it is disabled aren't delivered later. - - - `type: :disabled` - - - `reason: BetaTelemetryDestinationDisabledReason` - - Whether a caller or the API disabled the destination and, when the API did, why. Read-only. - - - `class BetaTelemetryDestinationDisabledReasonCaller` - - A caller disabled the destination with an update that set `state` to `disabled`. - - - `type: :caller` - - - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` - - The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. - - - `type: :sustained_failure` - - - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` - - The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. - - - `type: :invalid_address` - - - `class BetaTelemetryDestinationDisabledReasonRedirect` - - The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. - - - `type: :redirect` - - - `traces: BetaTelemetryDestinationTraces` - - The destination's settings for the traces it receives. - - - `content_mode: BetaTelemetryDestinationContentMode` - - What the exported spans contain. - - - `:metadata_only` - - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. - - - `:content` - - The spans contain the same metadata as `metadata_only`, plus message and tool content. - - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. - - - `enabled: bool` - - Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. - - - `endpoint_url: String` - - The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. - - When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. - - - `max_content_bytes: Integer` - - The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. - - Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. - - format: int32 - - - `updated_at: Time` - - Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. - - An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + - `:"webhooks-2026-10-07"` - format: date-time +#### Returns - - `workspaces: BetaTelemetryDestinationWorkspaces` +- `class BetaTelemetryDestinationWorkspace` - Which of the organization's workspaces the destination covers. + A workspace on a telemetry destination's workspace list. - - `class BetaTelemetryDestinationWorkspacesAll` + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. - The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + - `type: :telemetry_destination_workspace` - - `type: :all` + - `created_at: Time` - - `class BetaTelemetryDestinationWorkspacesInclude` + Time the workspace was added to the list. - The destination covers the workspaces on its list, and no others. + format: date-time - - `type: :include` + - `telemetry_destination_id: String` - - `class BetaTelemetryDestinationWorkspacesExclude` + ID of the telemetry destination (`tdst_...`). - The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + - `workspace_id: String` - - `type: :exclude` + ID of the workspace (`wrkspc_...`). #### Example @@ -109063,57 +115584,40 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.retrieve("destination_id") +page = anthropic.beta.organization.telemetry_destinations.workspaces.list("destination_id") -puts(beta_telemetry_destination) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "created_at": "2019-12-27T18:11:19.117Z", - "delivery_health": { - "last_error": "last_error", - "last_error_at": "2019-12-27T18:11:19.117Z", - "last_success_at": "2019-12-27T18:11:19.117Z" - }, - "display_name": "display_name", - "endpoint_url": "endpoint_url", - "header_names": [ - "string" + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } ], - "state": { - "type": "enabled" - }, - "traces": { - "content_mode": "metadata_only", - "enabled": true, - "endpoint_url": "endpoint_url", - "max_content_bytes": 0 - }, - "type": "telemetry_destination", - "updated_at": "2019-12-27T18:11:19.117Z", - "workspaces": { - "type": "all" - } + "next_page": "next_page" } ``` -### Update a Telemetry Destination +### Add a Telemetry Destination Workspace -`beta.organization.telemetry_destinations.update(destination_id, **kwargs) -> BetaTelemetryDestination` +`beta.organization.telemetry_destinations.workspaces.add(workspace_id, **kwargs) -> BetaTelemetryDestinationWorkspace` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}` +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` -Change a telemetry destination's settings, its state, or which workspaces it covers. +Add one workspace to a destination's workspace list. -Send at least one field. Omitted fields keep their stored values, except the registered headers, which a change of the endpoint's hostname or port removes. Only `display_name`, `traces`, `traces.endpoint_url`, `traces.content_mode`, `traces.max_content_bytes`, and individual `headers` values accept `null`. +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. -If another request changes the destination while the update runs, the API returns a 409 `conflict_error`. Read the destination again, then retry the update. +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn more about changing a destination. +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. #### Parameters @@ -109121,137 +115625,193 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- ID of the destination (`tdst_...`). -- `display_name: String` +- `workspace_id: String` (path parameter) - New human-readable name, 1 to 255 characters. Null clears it. + ID of the workspace to add (`wrkspc_...`). -- `endpoint_url: String` +- `betas: Array[AnthropicBeta]` (header parameter) - The new base URL of the destination's OTLP/HTTP endpoint. The same rules as on create apply. + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. - A change of hostname or port first removes every registered header, so send the headers for the new endpoint in the same request. When the destination has a `traces.endpoint_url`, such a change must also set `traces.endpoint_url` to a URL with the new hostname and port, or to `null`. A change of the path alone keeps the headers. + - `String = String` - maxLength: 2048 + - `:"message-batches-2024-09-24"` -- `headers: Hash[Symbol, String]` + - `:"prompt-caching-2024-07-31"` - Headers to set or remove. The API merges them into the destination's headers by name. + - `:"computer-use-2024-10-22"` - Names compare case-insensitively. A string value sets or replaces that header. A `null` value removes it. Headers that you omit don't change. The field itself can't be `null`. + - `:"computer-use-2025-01-24"` - A request that sets a header value must also include `endpoint_url`. The current URL is accepted. + - `:"pdfs-2024-09-25"` - The resulting set must stay within the same limits as on create. When the request sets a value, each stored value that it doesn't set counts as 4,096 bytes toward the 16,384-byte limit, because you can't read its real length. So to change one header of a destination that has four or more other headers, send the values of the others again in the same request. + - `:"token-counting-2024-11-01"` -- `state: BetaTelemetryDestinationStateParams` + - `:"token-efficient-tools-2025-02-19"` - Whether the destination receives deliveries after the update. The field can't be `null`. + - `:"output-128k-2025-02-19"` - - `class BetaTelemetryDestinationStateEnabledParams` + - `:"files-api-2025-04-14"` - Start deliveries to the telemetry destination again. + - `:"mcp-client-2025-04-04"` - This doesn't reset `delivery_health`. + - `:"mcp-client-2025-11-20"` - - `type: :enabled` + - `:"dev-full-thinking-2025-05-14"` - - `class BetaTelemetryDestinationStateDisabledParams` + - `:"interleaved-thinking-2025-05-14"` - Stop deliveries to the telemetry destination. + - `:"code-execution-2025-05-22"` - Spans produced while it is disabled aren't delivered later. A destination that is already disabled keeps its `reason`. + - `:"extended-cache-ttl-2025-04-11"` - - `type: :disabled` + - `:"context-1m-2025-08-07"` -- `traces: BetaTelemetryDestinationTracesParams` + - `:"context-management-2025-06-27"` - The traces settings to change. Omitted settings keep their stored values. + - `:"model-context-window-exceeded-2025-08-26"` - `null` sets every traces setting to its create default. + - `:"skills-2025-10-02"` - - `content_mode: BetaTelemetryDestinationContentMode` + - `:"fast-mode-2026-02-01"` - What the exported spans contain. Defaults to `metadata_only` on create. + - `:"output-300k-2026-03-24"` - On update, `null` sets `metadata_only`. + - `:"user-profiles-2026-03-24"` - - `:metadata_only` + - `:"user-profiles-2026-08-18"` - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + - `:"user-profiles-2026-09-04"` - - `:content` + - `:"advisor-tool-2026-03-01"` - The spans contain the same metadata as `metadata_only`, plus message and tool content. + - `:"managed-agents-2026-04-01"` - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + - `:"cache-diagnosis-2026-04-07"` - - `enabled: bool` + - `:"dreaming-2026-04-21"` - Whether the destination receives traces. Defaults to true on create. It cannot be null. + - `:"thinking-token-count-2026-05-13"` - - `endpoint_url: String` + - `:"server-side-fallback-2026-06-01"` - The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than `/v1/traces`. The API posts traces to it exactly as given and appends nothing. + - `:"server-side-fallback-2026-07-01"` - The same rules as for `endpoint_url` apply, except that any path is allowed. It must have the same scheme, host, and port as `endpoint_url`. At most 2,048 characters. + - `:"fallback-credit-2026-06-01"` - On create, `null` is the same as leaving it out. On update, `null` removes it. The API then posts traces to `endpoint_url` with `/v1/traces` appended. A change of this URL alone keeps the registered headers. + - `:"fallback-credit-2026-07-01"` - maxLength: 2048 + - `:"agent-memory-2026-07-22"` - - `max_content_bytes: Integer` + - `:"mid-conversation-tool-changes-2026-07-01"` - The most bytes of content that one exported span can contain, from 1 up to the API's maximum. `null` sets no bound, so only the API's maximum applies. + - `:"compact-2026-01-12"` - On create, leaving it out is the same as `null`. The error for a value above the maximum states the maximum. + - `:"computer-use-2025-11-24"` - format: int32 + - `:"mcp-tunnels-2026-06-22"` -- `workspaces: BetaTelemetryDestinationWorkspacesParams` + - `:"structured-outputs-2025-11-13"` - The new workspace scope, in the same form as on create. The field can't be `null`. + - `:"task-budgets-2026-03-13"` - The API refuses an update that changes the type or sends `workspace_ids` while the destination's list has more than 750 workspaces. Remove workspaces one at a time until 750 or fewer remain, then send the update again. + - `:"thinking-display-updates-2026-08-18"` - - `class BetaTelemetryDestinationWorkspacesAllParams` + - `:"ce-user-management-2026-07-13"` - Cover every workspace of the organization. Doesn't take `workspace_ids`. + - `:"mid-conversation-output-config-2026-07-01"` - An update that sets `all` empties the destination's workspace list. + - `:"thinking-binding-controls-2026-08-01"` - - `type: :all` + - `:"mid-conversation-system-clear-at-2026-08-21"` - - `class BetaTelemetryDestinationWorkspacesIncludeParams` + - `:"compact-2026-09-04"` - Cover only the workspaces on the list. + - `:"inline-tools-2026-09-15"` - - `type: :include` + - `:"mcp-client-2026-09-15"` - - `workspace_ids: Array[String]` + - `:"ce-plugins-2026-09-01"` - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + - `:"spend-limit-reads-2026-09-26"` - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + - `:"telemetry-destinations-2026-08-11"` - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + - `:"webhooks-2026-10-07"` - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. +#### Returns - - `class BetaTelemetryDestinationWorkspacesExcludeParams` +- `class BetaTelemetryDestinationWorkspace` - Cover every workspace of the organization except the workspaces on the list. + A workspace on a telemetry destination's workspace list. - - `type: :exclude` + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. - - `workspace_ids: Array[String]` + - `type: :telemetry_destination_workspace` - The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request. + - `created_at: Time` - On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination. + Time the workspace was added to the list. - On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace. + format: date-time - An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list. + - `telemetry_destination_id: String` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: String` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_telemetry_destination_workspace = anthropic.beta.organization.telemetry_destinations.workspaces.add( + "workspace_id", + destination_id: "destination_id" +) + +puts(beta_telemetry_destination_workspace) +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`beta.organization.telemetry_destinations.workspaces.remove(workspace_id, **kwargs) -> BetaDeletedTelemetryDestinationWorkspace` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destination_id: String` (path parameter) + + ID of the destination (`tdst_...`). + +- `workspace_id: String` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). - `betas: Array[AnthropicBeta]` (header parameter) @@ -109361,175 +115921,258 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestination` +- `class BetaDeletedTelemetryDestinationWorkspace` - An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it. + Confirmation that a workspace was removed from a destination's list. - - `type: :telemetry_destination` + - `type: :telemetry_destination_workspace_deleted` - - `id: String` + - `telemetry_destination_id: String` - The unique ID of the destination (`tdst_...`). + ID of the telemetry destination (`tdst_...`). - - `created_at: Time` + - `workspace_id: String` - Time the destination was created. + ID of the workspace that was removed (`wrkspc_...`). - format: date-time +#### Example - - `delivery_health: BetaTelemetryDestinationDeliveryHealth` +```ruby +require "anthropic" - The most recent delivery results for this destination. +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - - `last_error: String` +beta_deleted_telemetry_destination_workspace = anthropic.beta.organization.telemetry_destinations.workspaces.remove( + "workspace_id", + destination_id: "destination_id" +) - A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet. +puts(beta_deleted_telemetry_destination_workspace) +``` - Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details. +##### Response (200) - `last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure. +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` - See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-errors) to learn the likely cause of each error. +## Beta › Organization › Webhooks - - `last_error_at: Time` +### Create Organization Webhook Endpoint - Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails. +`beta.organization.webhooks.create(**kwargs) -> BetaNewOrganizationWebhookEndpoint` - format: date-time +**POST** `/v1/organizations/webhooks` - - `last_success_at: Time` +Create an organization webhook endpoint. - Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet. +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. - format: date-time +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. - - `display_name: String` +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. - Human-readable name for the destination. Null when none was set. +#### Parameters - - `endpoint_url: String` +- `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` - The base URL of the destination's OTLP/HTTP endpoint, exactly as registered. + The event types to deliver to the endpoint. Must list at least one. - The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set. + - `:"user_profile.enforcement_action_opened"` - - `header_names: Array[String]` + - `:"user_profile.enforcement_action_resolved"` - Names of the registered request headers. Header values are write-only and are never returned. +- `url: String` - - `state: BetaTelemetryDestinationState` + The HTTPS URL that deliveries are sent to. - Whether the destination receives deliveries. + minLength: 1 - - `class BetaTelemetryDestinationStateEnabled` +- `description: String` - The telemetry destination receives the spans of the workspaces that it covers. + Notes about the endpoint. - - `type: :enabled` +- `name: String` - - `class BetaTelemetryDestinationStateDisabled` + A short label for the endpoint. - The API doesn't deliver anything to the telemetry destination. +- `betas: Array[AnthropicBeta]` (header parameter) - Spans produced while it is disabled aren't delivered later. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - - `type: :disabled` + - `String = String` - - `reason: BetaTelemetryDestinationDisabledReason` + - `:"message-batches-2024-09-24"` - Whether a caller or the API disabled the destination and, when the API did, why. Read-only. + - `:"prompt-caching-2024-07-31"` - - `class BetaTelemetryDestinationDisabledReasonCaller` + - `:"computer-use-2024-10-22"` - A caller disabled the destination with an update that set `state` to `disabled`. + - `:"computer-use-2025-01-24"` - - `type: :caller` + - `:"pdfs-2024-09-25"` - - `class BetaTelemetryDestinationDisabledReasonSustainedFailure` + - `:"token-counting-2024-11-01"` - The API disabled the destination because deliveries to it failed, with no successful delivery in between, for longer than a threshold that Anthropic configures and that is not part of this contract. The reason is `invalid_address` instead when the most recent failed delivery failed with an invalid address. + - `:"token-efficient-tools-2025-02-19"` - - `type: :sustained_failure` + - `:"output-128k-2025-02-19"` - - `class BetaTelemetryDestinationDisabledReasonInvalidAddress` + - `:"files-api-2025-04-14"` - The API disabled the destination because deliveries to it failed for longer than the same threshold as for `sustained_failure`, and the most recent failed delivery failed with an invalid address: the DNS answer says that the endpoint's hostname doesn't exist or doesn't have an address, or the address that the API would connect to isn't publicly routable or is reserved, for example a loopback, link-local, private-network, or cloud-metadata address. The API doesn't connect to such an address, and retries the delivery a bounded number of times as it does after a timeout. A timeout or a server failure of the DNS lookup is a temporary DNS failure instead, not an invalid address. + - `:"mcp-client-2025-04-04"` - - `type: :invalid_address` + - `:"mcp-client-2025-11-20"` - - `class BetaTelemetryDestinationDisabledReasonRedirect` + - `:"dev-full-thinking-2025-05-14"` - The API disabled the destination because the endpoint answered a delivery with a 3xx status. Redirects are never followed, and one such answer disables the destination at once. + - `:"interleaved-thinking-2025-05-14"` - - `type: :redirect` + - `:"code-execution-2025-05-22"` - - `traces: BetaTelemetryDestinationTraces` + - `:"extended-cache-ttl-2025-04-11"` - The destination's settings for the traces it receives. + - `:"context-1m-2025-08-07"` - - `content_mode: BetaTelemetryDestinationContentMode` + - `:"context-management-2025-06-27"` - What the exported spans contain. + - `:"model-context-window-exceeded-2025-08-26"` - - `:metadata_only` + - `:"skills-2025-10-02"` - The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs. + - `:"fast-mode-2026-02-01"` - - `:content` + - `:"output-300k-2026-03-24"` - The spans contain the same metadata as `metadata_only`, plus message and tool content. + - `:"user-profiles-2026-03-24"` - An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`. + - `:"user-profiles-2026-08-18"` - - `enabled: bool` + - `:"user-profiles-2026-09-04"` - Whether the destination receives traces. A destination whose `enabled` is false keeps its other settings. + - `:"advisor-tool-2026-03-01"` - - `endpoint_url: String` + - `:"managed-agents-2026-04-01"` - The full URL that the API posts traces to, exactly as registered, or `null` if the destination doesn't have one. + - `:"cache-diagnosis-2026-04-07"` - When it is `null`, the API posts traces to `endpoint_url` with `/v1/traces` appended. + - `:"dreaming-2026-04-21"` - - `max_content_bytes: Integer` + - `:"thinking-token-count-2026-05-13"` - The most bytes of content that one exported span can contain, or `null` if only the API's maximum applies. + - `:"server-side-fallback-2026-06-01"` - Content means model prompts and responses, and tool inputs and outputs. The API shortens longer content to this size before it delivers the span. A destination whose `content_mode` is `metadata_only` keeps this value. It applies once `content_mode` is `content`. + - `:"server-side-fallback-2026-07-01"` - format: int32 + - `:"fallback-credit-2026-06-01"` - - `updated_at: Time` + - `:"fallback-credit-2026-07-01"` - Time of the last change to the destination's configuration or state. Changes to `delivery_health` don't change it. + - `:"agent-memory-2026-07-22"` - An update that sets a header value always changes it, even when the value is the same as before. Adding or removing a single workspace on the destination's list doesn't change it. An update that changes the list does. + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +#### Returns + +- `class BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `id: String` + + ID of the webhook endpoint. + + - `created_at: Time` + + When the endpoint was created, in RFC 3339 format. format: date-time - - `workspaces: BetaTelemetryDestinationWorkspaces` + - `description: String` - Which of the organization's workspaces the destination covers. + Notes about the endpoint. An empty string when none were given. - - `class BetaTelemetryDestinationWorkspacesAll` + - `disabled_reason: String` - The destination covers every workspace of the organization, including the default workspace, archived workspaces, and workspaces created later. It doesn't have a list. + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `type: :all` + - `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` - - `class BetaTelemetryDestinationWorkspacesInclude` + The event types delivered to the endpoint. - The destination covers the workspaces on its list, and no others. + - `:"user_profile.enforcement_action_opened"` - - `type: :include` + - `:"user_profile.enforcement_action_resolved"` - - `class BetaTelemetryDestinationWorkspacesExclude` + - `name: String` - The destination covers every workspace of the organization except the workspaces on its list. A workspace created later is covered until it is added to the list. + A short label for the endpoint. An empty string when none was given. - - `type: :exclude` + - `signing_secret: String` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `:disabled` + + - `:enabled` + + - `updated_at: Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: String` + + The HTTPS URL that deliveries are sent to. #### Example @@ -109538,9 +116181,12 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_telemetry_destination = anthropic.beta.organization.telemetry_destinations.update("destination_id") +beta_new_organization_webhook_endpoint = anthropic.beta.organization.webhooks.create( + enabled_events: [:"user_profile.enforcement_action_opened"], + url: "x" +) -puts(beta_telemetry_destination) +puts(beta_new_organization_webhook_endpoint) ``` ##### Response (200) @@ -109549,54 +116195,59 @@ puts(beta_telemetry_destination) { "id": "id", "created_at": "2019-12-27T18:11:19.117Z", - "delivery_health": { - "last_error": "last_error", - "last_error_at": "2019-12-27T18:11:19.117Z", - "last_success_at": "2019-12-27T18:11:19.117Z" - }, - "display_name": "display_name", - "endpoint_url": "endpoint_url", - "header_names": [ - "string" + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "state": { - "type": "enabled" - }, - "traces": { - "content_mode": "metadata_only", - "enabled": true, - "endpoint_url": "endpoint_url", - "max_content_bytes": 0 - }, - "type": "telemetry_destination", + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", "updated_at": "2019-12-27T18:11:19.117Z", - "workspaces": { - "type": "all" - } + "url": "url" } ``` -### Delete a Telemetry Destination +### List Organization Webhook Endpoints -`beta.organization.telemetry_destinations.delete(destination_id, **kwargs) -> BetaDeletedTelemetryDestination` +`beta.organization.webhooks.list(**kwargs) -> Page` -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}` +**GET** `/v1/organizations/webhooks` -Delete a destination and its workspace list. +List the organization's webhook endpoints. -The API stops sending spans to the destination. The spans of the workspaces it covered still go to the other destinations that cover them. A deleted destination can't be read, listed, or restored. +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#delivery-and-health) to learn more about managing a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: String` (path parameter) +- `after_id: String` (query parameter) - ID of the destination (`tdst_...`). + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + +- `before_id: String` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + +- `limit: Integer` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + +- `order: :asc | :desc` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `:asc` + + - `:desc` - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `String = String` @@ -109702,17 +116353,62 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaDeletedTelemetryDestination` +- `class BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `type: :telemetry_destination_deleted` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `id: String` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `created_at: Time` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: String` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: String` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` + + The event types delivered to the endpoint. + + - `:"user_profile.enforcement_action_opened"` + + - `:"user_profile.enforcement_action_resolved"` + + - `name: String` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `:disabled` + + - `:enabled` + + - `updated_at: Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: String` + + The HTTPS URL that deliveries are sent to. #### Example @@ -109721,37 +116417,57 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_telemetry_destination = anthropic.beta.organization.telemetry_destinations.delete("destination_id") +page = anthropic.beta.organization.webhooks.list -puts(beta_deleted_telemetry_destination) +puts(page) ``` ##### Response (200) ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`beta.organization.telemetry_destinations.test_(destination_id, **kwargs) -> BetaTelemetryDestinationTestResponse` +`beta.organization.webhooks.retrieve(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpoint` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: String` (path parameter) +- `webhook_endpoint_id: String` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. + + maxLength: 2048 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `String = String` @@ -109857,33 +116573,62 @@ Send one test span, named `anthropic.test`, to the destination with its register - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestinationTestResponse` +- `class BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `type: :telemetry_destination_test` + - `id: String` - - `result: BetaTelemetryDestinationTestResult` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `created_at: Time` - - `class BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `type: :success` + - `description: String` - - `class BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `disabled_reason: String` - - `type: :failure` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `error: String` + - `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `:"user_profile.enforcement_action_opened"` + + - `:"user_profile.enforcement_action_resolved"` + + - `name: String` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `:disabled` + + - `:enabled` + + - `updated_at: Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: String` + + The HTTPS URL that deliveries are sent to. #### Example @@ -109892,55 +116637,80 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_telemetry_destination_test_response = anthropic.beta.organization.telemetry_destinations.test_("destination_id") +beta_organization_webhook_endpoint = anthropic.beta.organization.webhooks.retrieve("webhook_endpoint_id") -puts(beta_telemetry_destination_test_response) +puts(beta_organization_webhook_endpoint) ``` ##### Response (200) ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +`beta.organization.webhooks.update(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpoint` -`beta.organization.telemetry_destinations.workspaces.list(destination_id, **kwargs) -> PageCursor` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +#### Parameters -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +- `webhook_endpoint_id: String` (path parameter) -#### Parameters + ID of the webhook endpoint. -- `destination_id: String` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `description: String` -- `limit: Integer` (query parameter) + Notes about the endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. +- `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` - format: int32 + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. -- `page: String` (query parameter) + - `:"user_profile.enforcement_action_opened"` - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `:"user_profile.enforcement_action_resolved"` + +- `name: String` + + A short label for the endpoint. + +- `state: :disabled | :enabled` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `:disabled` + + - `:enabled` + +- `url: String` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `String = String` @@ -110046,29 +116816,62 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns -- `class BetaTelemetryDestinationWorkspace` +- `class BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `id: String` - - `type: :telemetry_destination_workspace` + ID of the webhook endpoint. - `created_at: Time` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `telemetry_destination_id: String` + - `description: String` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `workspace_id: String` + - `disabled_reason: String` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: Array[:"user_profile.enforcement_action_opened" | :"user_profile.enforcement_action_resolved"]` + + The event types delivered to the endpoint. + + - `:"user_profile.enforcement_action_opened"` + + - `:"user_profile.enforcement_action_resolved"` + + - `name: String` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `:disabled` + + - `:enabled` + + - `updated_at: Time` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: String` + + The HTTPS URL that deliveries are sent to. #### Example @@ -110077,54 +116880,50 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -page = anthropic.beta.organization.telemetry_destinations.workspaces.list("destination_id") +beta_organization_webhook_endpoint = anthropic.beta.organization.webhooks.update("webhook_endpoint_id") -puts(page) +puts(beta_organization_webhook_endpoint) ``` ##### Response (200) ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace - -`beta.organization.telemetry_destinations.workspaces.add(workspace_id, **kwargs) -> BetaTelemetryDestinationWorkspace` - -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +### Delete Organization Webhook Endpoint -Add one workspace to a destination's workspace list. +`beta.organization.webhooks.delete(webhook_endpoint_id, **kwargs) -> BetaDeletedOrganizationWebhookEndpoint` -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. +Delete an organization webhook endpoint. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: String` (path parameter) - - ID of the destination (`tdst_...`). +- `webhook_endpoint_id: String` (path parameter) -- `workspace_id: String` (path parameter) + ID of the webhook endpoint. - ID of the workspace to add (`wrkspc_...`). + maxLength: 2048 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `String = String` @@ -110230,29 +117029,21 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` -#### Returns + - `:"webhooks-2026-10-07"` -- `class BetaTelemetryDestinationWorkspace` - - A workspace on a telemetry destination's workspace list. - - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. - - - `type: :telemetry_destination_workspace` +#### Returns - - `created_at: Time` +- `class BetaDeletedOrganizationWebhookEndpoint` - Time the workspace was added to the list. + A deleted organization webhook endpoint. - format: date-time + - `type: :webhook_endpoint_deleted` - - `telemetry_destination_id: String` + Always `webhook_endpoint_deleted`. - ID of the telemetry destination (`tdst_...`). - - - `workspace_id: String` + - `id: String` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example @@ -110261,52 +117052,42 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_telemetry_destination_workspace = anthropic.beta.organization.telemetry_destinations.workspaces.add( - "workspace_id", - destination_id: "destination_id" -) +beta_deleted_organization_webhook_endpoint = anthropic.beta.organization.webhooks.delete("webhook_endpoint_id") -puts(beta_telemetry_destination_workspace) +puts(beta_deleted_organization_webhook_endpoint) ``` ##### Response (200) ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace - -`beta.organization.telemetry_destinations.workspaces.remove(workspace_id, **kwargs) -> BetaDeletedTelemetryDestinationWorkspace` +### Regenerate Organization Webhook Endpoint Signing Secret -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +`beta.organization.webhooks.regenerate_signing_secret(webhook_endpoint_id, **kwargs) -> BetaOrganizationWebhookEndpointSigningSecret` -Remove one workspace from a destination's workspace list. +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=ruby#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destination_id: String` (path parameter) +- `webhook_endpoint_id: String` (path parameter) - ID of the destination (`tdst_...`). + ID of the webhook endpoint. -- `workspace_id: String` (path parameter) - - ID of the workspace to remove (`wrkspc_...`). + maxLength: 2048 - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `String = String` @@ -110412,21 +117193,17 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `:"telemetry-destinations-2026-08-11"` -#### Returns - -- `class BetaDeletedTelemetryDestinationWorkspace` + - `:"webhooks-2026-10-07"` - Confirmation that a workspace was removed from a destination's list. - - - `type: :telemetry_destination_workspace_deleted` +#### Returns - - `telemetry_destination_id: String` +- `class BetaOrganizationWebhookEndpointSigningSecret` - ID of the telemetry destination (`tdst_...`). + An organization webhook endpoint's new signing secret. - - `workspace_id: String` + - `signing_secret: String` - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example @@ -110435,20 +117212,15 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_deleted_telemetry_destination_workspace = anthropic.beta.organization.telemetry_destinations.workspaces.remove( - "workspace_id", - destination_id: "destination_id" -) +beta_organization_webhook_endpoint_signing_secret = anthropic.beta.organization.webhooks.regenerate_signing_secret("webhook_endpoint_id") -puts(beta_deleted_telemetry_destination_workspace) +puts(beta_organization_webhook_endpoint_signing_secret) ``` ##### Response (200) ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/ruby/beta/agents.md b/content/en/api/ruby/beta/agents.md index 2c93386508..851a9cae11 100644 --- a/content/en/api/ruby/beta/agents.md +++ b/content/en/api/ruby/beta/agents.md @@ -1071,6 +1071,8 @@ Create Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2126,6 +2128,8 @@ List Agents - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3167,6 +3171,8 @@ Get Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5151,6 +5157,8 @@ Update Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6181,6 +6189,8 @@ Archive Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13609,6 +13619,8 @@ List Agent Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/archive.md b/content/en/api/ruby/beta/agents/archive.md index d9d1729a0c..6a3d638044 100644 --- a/content/en/api/ruby/beta/agents/archive.md +++ b/content/en/api/ruby/beta/agents/archive.md @@ -125,6 +125,8 @@ Archive Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/create.md b/content/en/api/ruby/beta/agents/create.md index 2d433ec705..e395803bbe 100644 --- a/content/en/api/ruby/beta/agents/create.md +++ b/content/en/api/ruby/beta/agents/create.md @@ -1069,6 +1069,8 @@ Create Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/list.md b/content/en/api/ruby/beta/agents/list.md index 5a717596f4..94d15991f5 100644 --- a/content/en/api/ruby/beta/agents/list.md +++ b/content/en/api/ruby/beta/agents/list.md @@ -147,6 +147,8 @@ List Agents - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/retrieve.md b/content/en/api/ruby/beta/agents/retrieve.md index c031c250fb..fd3ea0a18d 100644 --- a/content/en/api/ruby/beta/agents/retrieve.md +++ b/content/en/api/ruby/beta/agents/retrieve.md @@ -131,6 +131,8 @@ Get Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/update.md b/content/en/api/ruby/beta/agents/update.md index 973130f27a..51755c088f 100644 --- a/content/en/api/ruby/beta/agents/update.md +++ b/content/en/api/ruby/beta/agents/update.md @@ -1079,6 +1079,8 @@ Update Agent - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/versions.md b/content/en/api/ruby/beta/agents/versions.md index 29e731b093..da21f25cc4 100644 --- a/content/en/api/ruby/beta/agents/versions.md +++ b/content/en/api/ruby/beta/agents/versions.md @@ -137,6 +137,8 @@ List Agent Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/agents/versions/list.md b/content/en/api/ruby/beta/agents/versions/list.md index f48aab880c..5aaa4cb7be 100644 --- a/content/en/api/ruby/beta/agents/versions/list.md +++ b/content/en/api/ruby/beta/agents/versions/list.md @@ -135,6 +135,8 @@ List Agent Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployment_runs.md b/content/en/api/ruby/beta/deployment_runs.md index 7eda594ee3..2868659559 100644 --- a/content/en/api/ruby/beta/deployment_runs.md +++ b/content/en/api/ruby/beta/deployment_runs.md @@ -177,6 +177,8 @@ List Deployment Runs - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -571,6 +573,8 @@ Get Deployment Run - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployment_runs/list.md b/content/en/api/ruby/beta/deployment_runs/list.md index eb464dcbfe..efd9b5b4ea 100644 --- a/content/en/api/ruby/beta/deployment_runs/list.md +++ b/content/en/api/ruby/beta/deployment_runs/list.md @@ -175,6 +175,8 @@ List Deployment Runs - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployment_runs/retrieve.md b/content/en/api/ruby/beta/deployment_runs/retrieve.md index 19cf80761a..19491c0e1a 100644 --- a/content/en/api/ruby/beta/deployment_runs/retrieve.md +++ b/content/en/api/ruby/beta/deployment_runs/retrieve.md @@ -125,6 +125,8 @@ Get Deployment Run - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments.md b/content/en/api/ruby/beta/deployments.md index 2e71eb8e0f..68239738d3 100644 --- a/content/en/api/ruby/beta/deployments.md +++ b/content/en/api/ruby/beta/deployments.md @@ -523,6 +523,8 @@ Create Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1293,6 +1295,8 @@ List Deployments - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2025,6 +2029,8 @@ Get Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3152,6 +3158,8 @@ Update Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3879,6 +3887,8 @@ Archive Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4606,6 +4616,8 @@ Run Deployment Now - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4995,6 +5007,8 @@ Pause Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5722,6 +5736,8 @@ Unpause Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/archive.md b/content/en/api/ruby/beta/deployments/archive.md index ad7a37de91..1f62dd3233 100644 --- a/content/en/api/ruby/beta/deployments/archive.md +++ b/content/en/api/ruby/beta/deployments/archive.md @@ -125,6 +125,8 @@ Archive Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/create.md b/content/en/api/ruby/beta/deployments/create.md index 2d3082f095..a4be197fff 100644 --- a/content/en/api/ruby/beta/deployments/create.md +++ b/content/en/api/ruby/beta/deployments/create.md @@ -521,6 +521,8 @@ Create Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/list.md b/content/en/api/ruby/beta/deployments/list.md index e43546d9f7..65ab5b3720 100644 --- a/content/en/api/ruby/beta/deployments/list.md +++ b/content/en/api/ruby/beta/deployments/list.md @@ -163,6 +163,8 @@ List Deployments - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/pause.md b/content/en/api/ruby/beta/deployments/pause.md index 6c6db26465..e71a8eb5b9 100644 --- a/content/en/api/ruby/beta/deployments/pause.md +++ b/content/en/api/ruby/beta/deployments/pause.md @@ -125,6 +125,8 @@ Pause Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/retrieve.md b/content/en/api/ruby/beta/deployments/retrieve.md index 78fbab6ee2..2ac3322692 100644 --- a/content/en/api/ruby/beta/deployments/retrieve.md +++ b/content/en/api/ruby/beta/deployments/retrieve.md @@ -125,6 +125,8 @@ Get Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/run.md b/content/en/api/ruby/beta/deployments/run.md index 59c7a6e8bb..9d77494806 100644 --- a/content/en/api/ruby/beta/deployments/run.md +++ b/content/en/api/ruby/beta/deployments/run.md @@ -125,6 +125,8 @@ Run Deployment Now - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/unpause.md b/content/en/api/ruby/beta/deployments/unpause.md index 5ae98d6f56..2267387a0a 100644 --- a/content/en/api/ruby/beta/deployments/unpause.md +++ b/content/en/api/ruby/beta/deployments/unpause.md @@ -125,6 +125,8 @@ Unpause Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/deployments/update.md b/content/en/api/ruby/beta/deployments/update.md index d495da195c..ba89676292 100644 --- a/content/en/api/ruby/beta/deployments/update.md +++ b/content/en/api/ruby/beta/deployments/update.md @@ -525,6 +525,8 @@ Update Deployment - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments.md b/content/en/api/ruby/beta/environments.md index ab1a965be1..2be6076fde 100644 --- a/content/en/api/ruby/beta/environments.md +++ b/content/en/api/ruby/beta/environments.md @@ -237,6 +237,8 @@ Create a new environment with the specified configuration. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -566,6 +568,8 @@ List environments with pagination support. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -888,6 +892,8 @@ Retrieve a specific environment by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1319,6 +1325,8 @@ Update an existing environment's configuration. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1636,6 +1644,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1797,6 +1807,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2569,6 +2581,8 @@ Retrieve detailed information about a specific work item. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2826,6 +2840,8 @@ Long poll for work items in the queue. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `anthropic_worker_id: String` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3071,6 +3087,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -3320,6 +3338,8 @@ Record a heartbeat for a work item to maintain the lease. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -3508,6 +3528,8 @@ Stop a work item, initiating graceful or forced shutdown. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3763,6 +3785,8 @@ List work items in an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + #### Returns - `class BetaSelfHostedWork` @@ -4013,6 +4037,8 @@ Update work item metadata with merge semantics. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4260,6 +4286,8 @@ Get statistics about the work queue for an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/archive.md b/content/en/api/ruby/beta/environments/archive.md index 6fd62e94a6..f91c3c3406 100644 --- a/content/en/api/ruby/beta/environments/archive.md +++ b/content/en/api/ruby/beta/environments/archive.md @@ -123,6 +123,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/create.md b/content/en/api/ruby/beta/environments/create.md index e6d3d32245..820bea59da 100644 --- a/content/en/api/ruby/beta/environments/create.md +++ b/content/en/api/ruby/beta/environments/create.md @@ -235,6 +235,8 @@ Create a new environment with the specified configuration. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/delete.md b/content/en/api/ruby/beta/environments/delete.md index 5bd97af2f9..9b9ae1267b 100644 --- a/content/en/api/ruby/beta/environments/delete.md +++ b/content/en/api/ruby/beta/environments/delete.md @@ -123,6 +123,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/list.md b/content/en/api/ruby/beta/environments/list.md index 4388d7eb73..4a434f875d 100644 --- a/content/en/api/ruby/beta/environments/list.md +++ b/content/en/api/ruby/beta/environments/list.md @@ -135,6 +135,8 @@ List environments with pagination support. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/retrieve.md b/content/en/api/ruby/beta/environments/retrieve.md index 73aa596f61..e9ae65b0ce 100644 --- a/content/en/api/ruby/beta/environments/retrieve.md +++ b/content/en/api/ruby/beta/environments/retrieve.md @@ -123,6 +123,8 @@ Retrieve a specific environment by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/update.md b/content/en/api/ruby/beta/environments/update.md index a0aa4aed22..82499e03c9 100644 --- a/content/en/api/ruby/beta/environments/update.md +++ b/content/en/api/ruby/beta/environments/update.md @@ -237,6 +237,8 @@ Update an existing environment's configuration. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/work.md b/content/en/api/ruby/beta/environments/work.md index 53bc7c6777..6cd9008e7b 100644 --- a/content/en/api/ruby/beta/environments/work.md +++ b/content/en/api/ruby/beta/environments/work.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -386,6 +388,8 @@ Long poll for work items in the queue. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `anthropic_worker_id: String` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -631,6 +635,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWork` @@ -880,6 +886,8 @@ Record a heartbeat for a work item to maintain the lease. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWorkHeartbeatResponse` @@ -1068,6 +1076,8 @@ Stop a work item, initiating graceful or forced shutdown. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1323,6 +1333,8 @@ List work items in an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class BetaSelfHostedWork` @@ -1573,6 +1585,8 @@ Update work item metadata with merge semantics. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1820,6 +1834,8 @@ Get statistics about the work queue for an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/work/ack.md b/content/en/api/ruby/beta/environments/work/ack.md index eb02f021e6..121bb8c99f 100644 --- a/content/en/api/ruby/beta/environments/work/ack.md +++ b/content/en/api/ruby/beta/environments/work/ack.md @@ -127,6 +127,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/ruby/beta/environments/work/heartbeat.md b/content/en/api/ruby/beta/environments/work/heartbeat.md index 0094ac8920..d33df957eb 100644 --- a/content/en/api/ruby/beta/environments/work/heartbeat.md +++ b/content/en/api/ruby/beta/environments/work/heartbeat.md @@ -135,6 +135,8 @@ Record a heartbeat for a work item to maintain the lease. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWorkHeartbeatResponse` diff --git a/content/en/api/ruby/beta/environments/work/list.md b/content/en/api/ruby/beta/environments/work/list.md index dbd403c8b5..f80ee4065d 100644 --- a/content/en/api/ruby/beta/environments/work/list.md +++ b/content/en/api/ruby/beta/environments/work/list.md @@ -135,6 +135,8 @@ List work items in an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class BetaSelfHostedWork` diff --git a/content/en/api/ruby/beta/environments/work/poll.md b/content/en/api/ruby/beta/environments/work/poll.md index bb99882a00..7493062227 100644 --- a/content/en/api/ruby/beta/environments/work/poll.md +++ b/content/en/api/ruby/beta/environments/work/poll.md @@ -137,6 +137,8 @@ Long poll for work items in the queue. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `anthropic_worker_id: String` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/ruby/beta/environments/work/retrieve.md b/content/en/api/ruby/beta/environments/work/retrieve.md index 0533031c34..d2b7630e86 100644 --- a/content/en/api/ruby/beta/environments/work/retrieve.md +++ b/content/en/api/ruby/beta/environments/work/retrieve.md @@ -127,6 +127,8 @@ Retrieve detailed information about a specific work item. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/work/stats.md b/content/en/api/ruby/beta/environments/work/stats.md index 3271791cc1..e7eba2b024 100644 --- a/content/en/api/ruby/beta/environments/work/stats.md +++ b/content/en/api/ruby/beta/environments/work/stats.md @@ -123,6 +123,8 @@ Get statistics about the work queue for an environment. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/work/stop.md b/content/en/api/ruby/beta/environments/work/stop.md index 91cc10d928..f4c8a3ad01 100644 --- a/content/en/api/ruby/beta/environments/work/stop.md +++ b/content/en/api/ruby/beta/environments/work/stop.md @@ -131,6 +131,8 @@ Stop a work item, initiating graceful or forced shutdown. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/environments/work/update.md b/content/en/api/ruby/beta/environments/work/update.md index 333a9a02d7..2c71e774f5 100644 --- a/content/en/api/ruby/beta/environments/work/update.md +++ b/content/en/api/ruby/beta/environments/work/update.md @@ -131,6 +131,8 @@ Update work item metadata with merge semantics. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files.md b/content/en/api/ruby/beta/files.md index d70f2f901a..8d9b7fcbbc 100644 --- a/content/en/api/ruby/beta/files.md +++ b/content/en/api/ruby/beta/files.md @@ -135,6 +135,8 @@ Upload File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -372,6 +374,8 @@ List Files - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -598,6 +602,8 @@ Download File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -742,6 +748,8 @@ Get File Metadata - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -963,6 +971,8 @@ Delete File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files/delete.md b/content/en/api/ruby/beta/files/delete.md index 55f65900e0..aa7bcd8c2e 100644 --- a/content/en/api/ruby/beta/files/delete.md +++ b/content/en/api/ruby/beta/files/delete.md @@ -125,6 +125,8 @@ Delete File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files/download.md b/content/en/api/ruby/beta/files/download.md index fc867ff249..cc61853285 100644 --- a/content/en/api/ruby/beta/files/download.md +++ b/content/en/api/ruby/beta/files/download.md @@ -125,6 +125,8 @@ Download File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files/list.md b/content/en/api/ruby/beta/files/list.md index d0e2472c2b..f60e09e827 100644 --- a/content/en/api/ruby/beta/files/list.md +++ b/content/en/api/ruby/beta/files/list.md @@ -141,6 +141,8 @@ List Files - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files/retrieve_metadata.md b/content/en/api/ruby/beta/files/retrieve_metadata.md index 39d931b96c..f4b26ebe95 100644 --- a/content/en/api/ruby/beta/files/retrieve_metadata.md +++ b/content/en/api/ruby/beta/files/retrieve_metadata.md @@ -125,6 +125,8 @@ Get File Metadata - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/files/upload.md b/content/en/api/ruby/beta/files/upload.md index b259c9e133..4aabd8f565 100644 --- a/content/en/api/ruby/beta/files/upload.md +++ b/content/en/api/ruby/beta/files/upload.md @@ -133,6 +133,8 @@ Upload File - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/memory_stores.md b/content/en/api/ruby/beta/memory_stores.md index eb6c28ad1b..4ddf6e2a76 100644 --- a/content/en/api/ruby/beta/memory_stores.md +++ b/content/en/api/ruby/beta/memory_stores.md @@ -5,31 +5,37 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters - `name: String` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Array[AnthropicBeta]` (header parameter) @@ -139,6 +145,8 @@ Create a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,27 +163,33 @@ Create a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -183,7 +197,9 @@ Create a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -216,25 +232,25 @@ puts(beta_managed_agents_memory_store) } ``` -## List memory stores +## List Memory Stores `beta.memory_stores.list(**kwargs) -> PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters - `created_at_gte: Time` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `created_at_lte: Time` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -250,7 +266,7 @@ List memory stores - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas: Array[AnthropicBeta]` (header parameter) @@ -360,6 +376,8 @@ List memory stores - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -376,27 +394,33 @@ List memory stores - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -404,7 +428,9 @@ List memory stores - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -440,19 +466,19 @@ puts(page) } ``` -## Retrieve a memory store +## Retrieve a Memory Store `beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Array[AnthropicBeta]` (header parameter) @@ -562,6 +588,8 @@ Retrieve a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -578,27 +606,33 @@ Retrieve a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -606,7 +640,9 @@ Retrieve a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -639,33 +675,39 @@ puts(beta_managed_agents_memory_store) } ``` -## Update a memory store +## Update a Memory Store `beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description: String` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: Hash[Symbol, String]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: String` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -777,6 +819,8 @@ Update a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -793,27 +837,33 @@ Update a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -821,7 +871,9 @@ Update a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -854,19 +906,21 @@ puts(beta_managed_agents_memory_store) } ``` -## Delete a memory store +## Delete a Memory Store `beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Array[AnthropicBeta]` (header parameter) @@ -976,6 +1030,8 @@ Delete a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1015,19 +1071,21 @@ puts(beta_managed_agents_deleted_memory_store) } ``` -## Archive a memory store +## Archive a Memory Store `beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Array[AnthropicBeta]` (header parameter) @@ -1137,6 +1195,8 @@ Archive a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1153,27 +1213,33 @@ Archive a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -1181,7 +1247,9 @@ Archive a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1238,27 +1306,33 @@ puts(beta_managed_agents_memory_store) - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -1266,19 +1340,21 @@ puts(beta_managed_agents_memory_store) - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1288,17 +1364,23 @@ Create a memory - `content: String` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: String` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -1416,6 +1498,8 @@ Create a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1426,13 +1510,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -1440,7 +1530,7 @@ Create a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1456,7 +1546,11 @@ Create a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -1464,13 +1558,17 @@ Create a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1501,13 +1599,13 @@ puts(beta_managed_agents_memory) } ``` -### List memories +### List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1517,27 +1615,35 @@ List memories - `depth: Integer` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Integer` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: String` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `:basic` @@ -1655,6 +1761,8 @@ List memories - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1665,17 +1773,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -1683,7 +1797,7 @@ List memories - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1699,7 +1813,11 @@ List memories - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -1707,17 +1825,23 @@ List memories - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: :memory_prefix` @@ -1759,13 +1883,13 @@ puts(page) } ``` -### Retrieve a memory +### Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1779,7 +1903,9 @@ Retrieve a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -1897,6 +2023,8 @@ Retrieve a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1907,13 +2035,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -1921,7 +2055,7 @@ Retrieve a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1937,7 +2071,11 @@ Retrieve a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -1945,13 +2083,17 @@ Retrieve a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1982,13 +2124,13 @@ puts(beta_managed_agents_memory) } ``` -### Update a memory +### Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -2002,7 +2144,9 @@ Update a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -2018,13 +2162,17 @@ Update a memory - `path: String` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: :content_sha256` @@ -2140,6 +2288,8 @@ Update a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2150,13 +2300,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -2164,7 +2320,7 @@ Update a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2180,7 +2336,11 @@ Update a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -2188,13 +2348,17 @@ Update a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2225,13 +2389,13 @@ puts(beta_managed_agents_memory) } ``` -### Delete a memory +### Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2357,6 +2521,8 @@ Delete a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2367,7 +2533,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about how long versions are kept. - `type: :memory_deleted` @@ -2398,13 +2568,13 @@ puts(beta_managed_agents_deleted_memory) ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2430,7 +2600,9 @@ List memory versions - `limit: Integer` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2438,7 +2610,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -2470,7 +2642,9 @@ List memory versions - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -2588,6 +2762,8 @@ List memory versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2598,7 +2774,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -2614,7 +2796,9 @@ List memory versions - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -2652,7 +2836,11 @@ List memory versions - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -2708,7 +2896,11 @@ List memory versions - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -2759,13 +2951,13 @@ puts(page) } ``` -### Retrieve a memory version +### Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2779,7 +2971,9 @@ Retrieve a memory version - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -2897,6 +3091,8 @@ Retrieve a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2907,7 +3103,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -2923,7 +3125,9 @@ Retrieve a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -2961,7 +3165,11 @@ Retrieve a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3017,7 +3225,11 @@ Retrieve a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -3066,13 +3278,13 @@ puts(beta_managed_agents_memory_version) } ``` -### Redact a memory version +### Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3192,6 +3404,8 @@ Redact a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3202,7 +3416,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -3218,7 +3438,9 @@ Redact a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -3256,7 +3478,11 @@ Redact a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -3312,7 +3538,11 @@ Redact a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/archive.md b/content/en/api/ruby/beta/memory_stores/archive.md index 93fdde58cd..549db832b5 100644 --- a/content/en/api/ruby/beta/memory_stores/archive.md +++ b/content/en/api/ruby/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `beta.memory_stores.archive(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `betas: Array[AnthropicBeta]` (header parameter) @@ -125,6 +127,8 @@ Archive a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +145,33 @@ Archive a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -169,7 +179,9 @@ Archive a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/create.md b/content/en/api/ruby/beta/memory_stores/create.md index 960bc97abb..6e4c259e75 100644 --- a/content/en/api/ruby/beta/memory_stores/create.md +++ b/content/en/api/ruby/beta/memory_stores/create.md @@ -1,33 +1,39 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `beta.memory_stores.create(**kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters - `name: String` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas: Array[AnthropicBeta]` (header parameter) @@ -137,6 +143,8 @@ Create a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,27 +161,33 @@ Create a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -181,7 +195,9 @@ Create a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/delete.md b/content/en/api/ruby/beta/memory_stores/delete.md index 871d9df65f..bc04c72022 100644 --- a/content/en/api/ruby/beta/memory_stores/delete.md +++ b/content/en/api/ruby/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `beta.memory_stores.delete(memory_store_id, **kwargs) -> BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `betas: Array[AnthropicBeta]` (header parameter) @@ -125,6 +127,8 @@ Delete a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/memory_stores/list.md b/content/en/api/ruby/beta/memory_stores/list.md index 5ef644005b..c37b6264c0 100644 --- a/content/en/api/ruby/beta/memory_stores/list.md +++ b/content/en/api/ruby/beta/memory_stores/list.md @@ -1,27 +1,27 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `beta.memory_stores.list(**kwargs) -> PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters - `created_at_gte: Time` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `created_at_lte: Time` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -37,7 +37,7 @@ List memory stores - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas: Array[AnthropicBeta]` (header parameter) @@ -147,6 +147,8 @@ List memory stores - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -163,27 +165,33 @@ List memory stores - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -191,7 +199,9 @@ List memory stores - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/memories.md b/content/en/api/ruby/beta/memory_stores/memories.md index b3c758b444..03f654f32b 100644 --- a/content/en/api/ruby/beta/memory_stores/memories.md +++ b/content/en/api/ruby/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories # Memories -## Create a memory +## Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -21,17 +21,23 @@ Create a memory - `content: String` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: String` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -149,6 +155,8 @@ Create a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,13 +167,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -173,7 +187,7 @@ Create a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -189,7 +203,11 @@ Create a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -197,13 +215,17 @@ Create a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -234,13 +256,13 @@ puts(beta_managed_agents_memory) } ``` -## List memories +## List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -250,27 +272,35 @@ List memories - `depth: Integer` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Integer` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: String` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `:basic` @@ -388,6 +418,8 @@ List memories - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -398,17 +430,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -416,7 +454,7 @@ List memories - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -432,7 +470,11 @@ List memories - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -440,17 +482,23 @@ List memories - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: :memory_prefix` @@ -492,13 +540,13 @@ puts(page) } ``` -## Retrieve a memory +## Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -512,7 +560,9 @@ Retrieve a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -630,6 +680,8 @@ Retrieve a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -640,13 +692,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -654,7 +712,7 @@ Retrieve a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -670,7 +728,11 @@ Retrieve a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -678,13 +740,17 @@ Retrieve a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -715,13 +781,13 @@ puts(beta_managed_agents_memory) } ``` -## Update a memory +## Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -735,7 +801,9 @@ Update a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -751,13 +819,17 @@ Update a memory - `path: String` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: :content_sha256` @@ -873,6 +945,8 @@ Update a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -883,13 +957,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -897,7 +977,7 @@ Update a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -913,7 +993,11 @@ Update a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -921,13 +1005,17 @@ Update a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -958,13 +1046,13 @@ puts(beta_managed_agents_memory) } ``` -## Delete a memory +## Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1090,6 +1178,8 @@ Delete a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1100,7 +1190,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about how long versions are kept. - `type: :memory_deleted` @@ -1143,7 +1237,9 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `type: :content_sha256` @@ -1155,7 +1251,11 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about how long versions are kept. - `type: :memory_deleted` @@ -1237,7 +1337,7 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1267,13 +1367,19 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -1281,7 +1387,7 @@ puts(beta_managed_agents_deleted_memory) - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1297,7 +1403,11 @@ puts(beta_managed_agents_deleted_memory) - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -1305,29 +1415,39 @@ puts(beta_managed_agents_deleted_memory) - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -1335,7 +1455,7 @@ puts(beta_managed_agents_deleted_memory) - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1351,7 +1471,11 @@ puts(beta_managed_agents_deleted_memory) - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -1359,17 +1483,23 @@ puts(beta_managed_agents_deleted_memory) - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: :memory_prefix` @@ -1381,7 +1511,7 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1421,7 +1551,9 @@ puts(beta_managed_agents_deleted_memory) - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: :memory_prefix` @@ -1433,7 +1565,9 @@ puts(beta_managed_agents_deleted_memory) - `type BetaManagedAgentsMemoryView = :basic | :full` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` diff --git a/content/en/api/ruby/beta/memory_stores/memories/create.md b/content/en/api/ruby/beta/memory_stores/memories/create.md index cfb0bcfca3..910c2229b1 100644 --- a/content/en/api/ruby/beta/memory_stores/memories/create.md +++ b/content/en/api/ruby/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `beta.memory_stores.memories.create(memory_store_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -19,17 +19,23 @@ Create a memory - `content: String` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: String` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -147,6 +153,8 @@ Create a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,13 +165,19 @@ Create a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -171,7 +185,7 @@ Create a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -187,7 +201,11 @@ Create a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -195,13 +213,17 @@ Create a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/ruby/beta/memory_stores/memories/delete.md b/content/en/api/ruby/beta/memory_stores/memories/delete.md index b6f5df1570..3d56f44cbd 100644 --- a/content/en/api/ruby/beta/memory_stores/memories/delete.md +++ b/content/en/api/ruby/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `beta.memory_stores.memories.delete(memory_id, **kwargs) -> BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -135,6 +135,8 @@ Delete a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -145,7 +147,11 @@ Delete a memory - `class BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=ruby) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about how long versions are kept. - `type: :memory_deleted` diff --git a/content/en/api/ruby/beta/memory_stores/memories/list.md b/content/en/api/ruby/beta/memory_stores/memories/list.md index a7c84bd37f..09665520ab 100644 --- a/content/en/api/ruby/beta/memory_stores/memories/list.md +++ b/content/en/api/ruby/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/list --- -# List memories +# List Memories `beta.memory_stores.memories.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -19,27 +19,35 @@ List memories - `depth: Integer` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit: Integer` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page: String` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix: String` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `:basic` @@ -157,6 +165,8 @@ List memories - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -167,17 +177,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -185,7 +201,7 @@ List memories - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -201,7 +217,11 @@ List memories - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -209,17 +229,23 @@ List memories - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `class BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=ruby) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: :memory_prefix` diff --git a/content/en/api/ruby/beta/memory_stores/memories/retrieve.md b/content/en/api/ruby/beta/memory_stores/memories/retrieve.md index e5c329d464..087e4d259f 100644 --- a/content/en/api/ruby/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/ruby/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `beta.memory_stores.memories.retrieve(memory_id, **kwargs) -> BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -141,6 +143,8 @@ Retrieve a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,13 +155,19 @@ Retrieve a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -165,7 +175,7 @@ Retrieve a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -181,7 +191,11 @@ Retrieve a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -189,13 +203,17 @@ Retrieve a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/ruby/beta/memory_stores/memories/update.md b/content/en/api/ruby/beta/memory_stores/memories/update.md index a14d452027..6692f01163 100644 --- a/content/en/api/ruby/beta/memory_stores/memories/update.md +++ b/content/en/api/ruby/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `beta.memory_stores.memories.update(memory_id, **kwargs) -> BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -23,7 +23,9 @@ Update a memory - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -39,13 +41,17 @@ Update a memory - `path: String` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: :content_sha256` @@ -161,6 +167,8 @@ Update a memory - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -171,13 +179,19 @@ Update a memory - `class BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#view-and-edit-memories) to learn more about working with memories. - `type: :memory` - `id: String` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: String` @@ -185,7 +199,7 @@ Update a memory - `content_size_bytes: Integer` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -201,7 +215,11 @@ Update a memory - `memory_version_id: String` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `path: String` @@ -209,13 +227,17 @@ Update a memory - `updated_at: Time` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content: String` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/ruby/beta/memory_stores/memory_versions.md b/content/en/api/ruby/beta/memory_stores/memory_versions.md index f9c83e3e26..ca68e7a0e9 100644 --- a/content/en/api/ruby/beta/memory_stores/memory_versions.md +++ b/content/en/api/ruby/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_vers # Memory Versions -## List memory versions +## List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -37,7 +37,9 @@ List memory versions - `limit: Integer` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -77,7 +79,9 @@ List memory versions - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -195,6 +199,8 @@ List memory versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -205,7 +211,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -221,7 +233,9 @@ List memory versions - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -259,7 +273,11 @@ List memory versions - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -315,7 +333,11 @@ List memory versions - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -366,13 +388,13 @@ puts(page) } ``` -## Retrieve a memory version +## Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -386,7 +408,9 @@ Retrieve a memory version - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -504,6 +528,8 @@ Retrieve a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -514,7 +540,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -530,7 +562,9 @@ Retrieve a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -568,7 +602,11 @@ Retrieve a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -624,7 +662,11 @@ Retrieve a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -673,13 +715,13 @@ puts(beta_managed_agents_memory_version) } ``` -## Redact a memory version +## Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -799,6 +841,8 @@ Redact a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -809,7 +853,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -825,7 +875,9 @@ Redact a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -863,7 +915,11 @@ Redact a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -919,7 +975,11 @@ Redact a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -1042,7 +1102,13 @@ puts(beta_managed_agents_memory_version) - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -1058,7 +1124,9 @@ puts(beta_managed_agents_memory_version) - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -1096,7 +1164,11 @@ puts(beta_managed_agents_memory_version) - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -1152,7 +1224,11 @@ puts(beta_managed_agents_memory_version) - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time @@ -1164,7 +1240,9 @@ puts(beta_managed_agents_memory_version) - `type BetaManagedAgentsMemoryVersionOperation = :created | :modified | :deleted` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `:created` diff --git a/content/en/api/ruby/beta/memory_stores/memory_versions/list.md b/content/en/api/ruby/beta/memory_stores/memory_versions/list.md index cd80fa9072..6d7d1f793e 100644 --- a/content/en/api/ruby/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/ruby/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `beta.memory_stores.memory_versions.list(memory_store_id, **kwargs) -> PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -35,7 +35,9 @@ List memory versions - `limit: Integer` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -43,7 +45,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -75,7 +77,9 @@ List memory versions - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -193,6 +197,8 @@ List memory versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -203,7 +209,13 @@ List memory versions - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -219,7 +231,9 @@ List memory versions - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -257,7 +271,11 @@ List memory versions - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -313,7 +331,11 @@ List memory versions - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/memory_versions/redact.md b/content/en/api/ruby/beta/memory_stores/memory_versions/redact.md index cb20db0622..0d8a5a3952 100644 --- a/content/en/api/ruby/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/ruby/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `beta.memory_stores.memory_versions.redact(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -129,6 +129,8 @@ Redact a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -139,7 +141,13 @@ Redact a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -155,7 +163,9 @@ Redact a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -193,7 +203,11 @@ Redact a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -249,7 +263,11 @@ Redact a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/ruby/beta/memory_stores/memory_versions/retrieve.md index 24efae3410..e753a68494 100644 --- a/content/en/api/ruby/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/ruby/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `beta.memory_stores.memory_versions.retrieve(memory_version_id, **kwargs) -> BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -23,7 +23,9 @@ Retrieve a memory version - `view: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `:basic` @@ -141,6 +143,8 @@ Retrieve a memory version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -151,7 +155,13 @@ Retrieve a memory version - `class BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#audit-memory-changes) to learn more about memory versions. - `type: :memory_version` @@ -167,7 +177,9 @@ Retrieve a memory version - `memory_id: String` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=ruby) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: String` @@ -205,7 +217,11 @@ Retrieve a memory version - `created_by: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=ruby) to learn more about where the change came from. - `class BetaManagedAgentsSessionActor` @@ -261,7 +277,11 @@ Retrieve a memory version - `redacted_at: Time` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=ruby). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/retrieve.md b/content/en/api/ruby/beta/memory_stores/retrieve.md index dfeb0d6447..610e321b7c 100644 --- a/content/en/api/ruby/beta/memory_stores/retrieve.md +++ b/content/en/api/ruby/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `beta.memory_stores.retrieve(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `betas: Array[AnthropicBeta]` (header parameter) @@ -125,6 +125,8 @@ Retrieve a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,27 +143,33 @@ Retrieve a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -169,7 +177,9 @@ Retrieve a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/ruby/beta/memory_stores/update.md b/content/en/api/ruby/beta/memory_stores/update.md index f5883e744a..b6f730eef1 100644 --- a/content/en/api/ruby/beta/memory_stores/update.md +++ b/content/en/api/ruby/beta/memory_stores/update.md @@ -1,35 +1,41 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/ruby/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `beta.memory_stores.update(memory_store_id, **kwargs) -> BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `memory_store_id: String` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `description: String` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata: Hash[Symbol, String]` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name: String` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -141,6 +147,8 @@ Update a memory store - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,27 +165,33 @@ Update a memory store - `id: String` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: Time` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=ruby#archive-a-store) to learn more about archiving. format: date-time - `created_at: Time` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: String` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Hash[Symbol, String]` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: String` @@ -185,7 +199,9 @@ Update a memory store - `updated_at: Time` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/ruby/beta/messages.md b/content/en/api/ruby/beta/messages.md index 9447a3932a..3aabf65d80 100644 --- a/content/en/api/ruby/beta/messages.md +++ b/content/en/api/ruby/beta/messages.md @@ -3652,8 +3652,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3702,7 +3716,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -3710,6 +3728,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -4189,9 +4213,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -7289,6 +7315,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -7297,6 +7327,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -7305,6 +7339,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -7313,6 +7351,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -7321,10 +7363,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -11843,177 +11897,4435 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ When to trigger compaction. Defaults to 150000 input tokens. -- `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` +- `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` + + MCP servers to be utilized in this request + + maxItems: 20 + + - `type: :url` + + - `name: String` + + - `url: String` + + - `authorization_token: String` + + - `tool_configuration: BetaRequestMCPServerToolConfiguration` + + - `allowed_tools: Array[String]` + + - `enabled: bool` + +- `output_config: BetaOutputConfig` + + Configuration options for the model's output, such as the output format. + + - `effort: :low | :medium | :high | 2 more` + + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + + - `:low` + + - `:medium` + + - `:high` + + - `:xhigh` + + - `:max` + + - `format_: BetaJSONOutputFormat` + + A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + + - `type: :json_schema` + + - `schema: Hash[Symbol, untyped]` + + The JSON schema of the format + + - `task_budget: BetaTokenTaskBudget` + + Configuration for token budget tracking across contexts. + + - `type: :tokens` + + The budget type. Currently only 'tokens' is supported. + + - `total: Integer` + + Total token budget across all contexts in the session. + + minimum: 1024 + + - `remaining: Integer` + + Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. + + minimum: 0 + +- `speed: :standard | :fast` + + The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. + + Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. + + - `:standard` + + - `:fast` + +- `system_: String | Array[BetaTextBlockParam]` + + System prompt. + + A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). + + - `String = String` + + - `UnionMember1 = Array[BetaTextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[BetaTextCitationParam]` + +- `thinking: BetaThinkingConfigParam` + + Configuration for Claude's thinking. + + With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. + + Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. + + - `class BetaThinkingConfigEnabled` + + - `type: :enabled` + + - `budget_tokens: Integer` + + Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. + + Must be ≥1024 and less than `max_tokens`. + + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. + + minimum: 1024 + + - `block_binding: BetaThinkingBlockBinding` + + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + + - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` + + "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. + + - `:error` + + - `:drop_block` + + - `display_: :summarized | :omitted | :updates` + + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + + - `:summarized` + + - `:omitted` + + - `:updates` + + - `class BetaThinkingConfigDisabled` + + - `type: :disabled` + + - `class BetaThinkingConfigBetweenTools` + + - `type: :between_tools` + + - `class BetaThinkingConfigAdaptive` + + - `type: :adaptive` + + - `block_binding: BetaThinkingBlockBinding` + + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + + - `display_: :summarized | :omitted | :updates` + + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + + - `:summarized` + + - `:omitted` + + - `:updates` + +- `tool_choice: BetaToolChoice` + + How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all. + + - `class BetaToolChoiceAuto` + + The model will automatically decide whether to use tools. + + - `type: :auto` + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output at most one tool use. + + - `class BetaToolChoiceAny` + + The model will use any available tools. + + - `type: :any` + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output exactly one tool use. + + - `class BetaToolChoiceTool` + + The model will use the specified tool with `tool_choice.name`. + + - `type: :tool` + + - `name: String` + + The name of the tool to use. + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output exactly one tool use. + + - `class BetaToolChoiceNone` + + The model will not be allowed to use tools. + + - `type: :none` + +- `tools: Array[BetaTool | BetaToolBash20241022 | BetaToolBash20250124 | 25 more]` + + Definitions of tools that the model may use. + + If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks. + + There are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools?sdk_languages=ruby), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool?sdk_languages=ruby)). + + Each tool definition includes: + + * `name`: Name of the tool. + * `description`: Optional, but strongly-recommended description of the tool. + * `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks. + + For example, if you defined `tools` as: + + ```json + [ + { + "name": "get_stock_price", + "description": "Get the current stock price for a given ticker symbol.", + "input_schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string", + "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." + } + }, + "required": ["ticker"] + } + } + ] + ``` + + And then asked the model "What's the S&P 500 at today?", the model might produce `tool_use` content blocks in the response like this: + + ```json + [ + { + "type": "tool_use", + "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "name": "get_stock_price", + "input": { "ticker": "^GSPC" } + } + ] + ``` + + You might then run your `get_stock_price` tool with `{"ticker": "^GSPC"}` as an input, and return the following back to the model in a subsequent `user` message: + + ```json + [ + { + "type": "tool_result", + "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "content": "259.75 USD" + } + ] + ``` + + Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output. + + See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview?sdk_languages=ruby) for more details. + + - `class BetaTool` + + - `class BetaToolBash20241022` + + - `class BetaToolBash20250124` + + - `class BetaCodeExecutionTool20250522` + + - `class BetaCodeExecutionTool20250825` + + - `class BetaCodeExecutionTool20260120` + + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). + + - `class BetaCodeExecutionTool20260521` + + Code execution tool with REPL state persistence. + + - `class BetaBrowserToolset20260801` + + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. + + - `class BetaToolComputerUse20241022` + + - `class BetaMemoryTool20250818` + + - `class BetaToolComputerUse20250124` + + - `class BetaToolTextEditor20241022` + + - `class BetaToolComputerUse20251124` + + - `class BetaComputerToolset20260801` + + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. + + - `class BetaToolTextEditor20250124` + + - `class BetaToolTextEditor20250429` + + - `class BetaToolTextEditor20250728` + + - `class BetaWebSearchTool20250305` + + - `class BetaWebFetchTool20250910` + + - `class BetaWebSearchTool20260209` + + - `class BetaWebFetchTool20260209` + + - `class BetaWebFetchTool20260309` + + Web fetch tool with use_cache parameter for bypassing cached content. + + - `class BetaWebSearchTool20260318` + + - `class BetaWebFetchTool20260318` + + - `class BetaAdvisorTool20260301` + + - `class BetaToolSearchToolBm25_20251119` + + - `class BetaToolSearchToolRegex20251119` + + - `class BetaMCPToolset` + + Configuration for a group of tools from an MCP server. + + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `user_profile_id: String` (header parameter) + + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +- `output_format: BetaJSONOutputFormat` + + **Deprecated** + + Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + + A schema to specify Claude's output format in responses. This parameter will be removed in a future release. + +### Returns + +- `class BetaMessageTokensCount` + + - `context_management: BetaCountTokensContextManagementResponse` + + Information about context management applied to the message. + + - `original_input_tokens: Integer` + + The original token count before context management was applied + + - `input_tokens: Integer` + + The total number of tokens across the provided list of messages, system prompt, and tools. + +### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_message_tokens_count = anthropic.beta.messages.count_tokens( + messages: [{content: "Hello, world", role: :user}], + model: Anthropic::Model::CLAUDE_OPUS_5_5 +) + +puts(beta_message_tokens_count) +``` + +#### Response (200) + +```json +{ + "context_management": { + "original_input_tokens": 0 + }, + "input_tokens": 2095 +} +``` + +## Stream + +`beta.messages.stream(**kwargs) -> Anthropic::Helpers::Streaming::MessageStream` + +Streams a message like `stream_raw` and returns a MessageStream, which accumulates the streamed events and parses tool inputs and structured output. + +### Parameters + +- `max_tokens: Integer` + + The maximum number of tokens to generate before stopping. + + Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. + + Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby#pre-warming-the-cache) without generating a response. + + Different models have different maximum values for this parameter. See [models](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby) for details. + + minimum: 0 + +- `messages: Array[BetaMessageParam]` + + Input messages. + + Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn. + + Each input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages. + + If the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response. This is called prefill. On models that don't support prefill, creating a message that ends with a partial `assistant` response returns a 400 error. See [Prefill not supported](https://platform.claude.com/docs/en/api/errors?sdk_languages=ruby#prefill-not-supported). + + Example with a single `user` message: + + ```json + [{"role": "user", "content": "Hello, Claude"}] + ``` + + Example with multiple conversational turns: + + ```json + [ + {"role": "user", "content": "Hello there."}, + {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, + {"role": "user", "content": "Can you explain LLMs in plain English?"}, + ] + ``` + + Example with a partially-filled response from Claude, for models that support prefill: + + ```json + [ + {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, + {"role": "assistant", "content": "The best answer is ("}, + ] + ``` + + Each input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `"text"`. The following input messages are equivalent: + + ```json + {"role": "user", "content": "Hello, Claude"} + ``` + + ```json + {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]} + ``` + + See [input examples](https://platform.claude.com/docs/en/build-with-claude/working-with-messages?sdk_languages=ruby). + + Note that if you want to include a [system prompt](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role), you can use the top-level `system` parameter — there is no `"system"` role for input messages in the Messages API. + + There is a limit of 100,000 messages in a single request. + + - `content: String | Array[BetaContentBlockParam]` + + - `String = String` + + - `UnionMember1 = Array[BetaContentBlockParam]` + + - `class BetaTextBlockParam` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `type: :ephemeral` + + - `ttl: :"5m" | :"1h"` + + The time-to-live for the cache control breakpoint. + + This may be one the following values: + + - `5m`: 5 minutes + - `1h`: 1 hour + + Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. + + - `:"5m"` + + - `:"1h"` + + - `citations: Array[BetaTextCitationParam]` + + - `class BetaCitationCharLocationParam` + + - `type: :char_location` + + - `cited_text: String` + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_char_index: Integer` + + - `start_char_index: Integer` + + minimum: 0 + + - `class BetaCitationPageLocationParam` + + - `type: :page_location` + + - `cited_text: String` + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_page_number: Integer` + + - `start_page_number: Integer` + + minimum: 1 + + - `class BetaCitationContentBlockLocationParam` + + - `type: :content_block_location` + + - `cited_text: String` + + The full text of the cited block range, concatenated. + + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_block_index: Integer` + + Exclusive 0-based end index of the cited block range in the source's `content` array. + + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + + - `start_block_index: Integer` + + 0-based index of the first cited block in the source's `content` array. + + minimum: 0 + + - `class BetaCitationWebSearchResultLocationParam` + + - `type: :web_search_result_location` + + - `cited_text: String` + + - `encrypted_index: String` + + - `title: String` + + minLength: 1, maxLength: 512 + + - `url: String` + + minLength: 1 + + - `class BetaCitationSearchResultLocationParam` + + - `type: :search_result_location` + + - `cited_text: String` + + The full text of the cited block range, concatenated. + + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + + - `end_block_index: Integer` + + Exclusive 0-based end index of the cited block range in the source's `content` array. + + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + + - `search_result_index: Integer` + + 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. + + Counted separately from `document_index`; server-side web search results are not included in this count. + + minimum: 0 + + - `source: String` + + - `start_block_index: Integer` + + 0-based index of the first cited block in the source's `content` array. + + minimum: 0 + + - `title: String` + + - `class BetaImageBlockParam` + + - `type: :image` + + - `source: BetaBase64ImageSource | BetaURLImageSource | BetaFileImageSource` + + - `class BetaBase64ImageSource` + + - `type: :base64` + + - `data: String` + + format: byte + + - `media_type: :"image/jpeg" | :"image/png" | :"image/gif" | :"image/webp"` + + - `:"image/jpeg"` + + - `:"image/png"` + + - `:"image/gif"` + + - `:"image/webp"` + + - `class BetaURLImageSource` + + - `type: :url` + + - `url: String` + + - `class BetaFileImageSource` + + - `type: :file` + + - `file_id: String` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `transformations: BetaImageTransformationsParam` + + Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field. + + - `oversized_image: :downsize | :error` + + What the server does when this image exceeds the model's maximum image size. `"downsize"` (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. `"error"` instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down. + + - `:downsize` + + - `:error` + + - `class BetaRequestDocumentBlock` + + - `type: :document` + + - `source: BetaBase64PDFSource | BetaPlainTextSource | BetaContentBlockSource | 2 more` + + - `class BetaBase64PDFSource` + + - `type: :base64` + + - `data: String` + + format: byte + + - `media_type: :"application/pdf"` + + - `class BetaPlainTextSource` + + - `type: :text` + + - `data: String` + + - `media_type: :"text/plain"` + + - `class BetaContentBlockSource` + + - `type: :content` + + - `content: String | Array[BetaContentBlockSourceContent]` + + - `String = String` + + - `BetaContentBlockSourceContent = Array[BetaContentBlockSourceContent]` + + - `class BetaTextBlockParam` + + - `class BetaImageBlockParam` + + - `class BetaURLPDFSource` + + - `type: :url` + + - `url: String` + + - `class BetaFileDocumentSource` + + - `type: :file` + + - `file_id: String` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + - `enabled: bool` + + - `context: String` + + minLength: 1 + + - `title: String` + + minLength: 1, maxLength: 500 + + - `class BetaSearchResultBlockParam` + + - `type: :search_result` + + - `content: Array[BetaTextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[BetaTextCitationParam]` + + - `source: String` + + - `title: String` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + - `class BetaThinkingBlockParam` + + - `type: :thinking` + + - `signature: String` + + The `signature` value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude. + + Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 `invalid_request_error`. + + - `thinking: String` + + The `thinking` text of this block as returned by the API. + + - `class BetaRedactedThinkingBlockParam` + + - `type: :redacted_thinking` + + - `data: String` + + The `data` value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged. + + - `class BetaToolUseBlockParam` + + - `type: :tool_use` + + - `id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `input: Hash[Symbol, untyped]` + + - `name: String` + + minLength: 1, maxLength: 200 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + + - `class BetaDirectCaller` + + Tool invocation directly from the model. + + - `type: :direct` + + - `class BetaServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `type: :code_execution_20250825` + + - `tool_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `class BetaServerToolCaller20260120` + + - `type: :code_execution_20260120` + + - `tool_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `toolset_name: String` + + For a toolset member tool_use, the toolset family this member belongs to. + + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + + - `class BetaToolResultBlockParam` + + - `type: :tool_result` + + - `tool_use_id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `content: String | Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` + + - `String = String` + + - `Content = Array[BetaTextBlockParam | BetaImageBlockParam | BetaSearchResultBlockParam | 3 more]` + + - `class BetaTextBlockParam` + + - `class BetaImageBlockParam` + + - `class BetaSearchResultBlockParam` + + - `class BetaRequestDocumentBlock` + + - `class BetaToolReferenceBlockParam` + + Tool reference block that can be included in tool_result content. + + - `type: :tool_reference` + + - `tool_name: String` + + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaBrowserStateBlockParam` + + The caller's browser state after a browser toolset member call — + the full inventory of open tabs, which tab is active, and any side + effects (tabs opened, download state changes) the call produced. + + At most one per `tool_result`, only on a non-error result answering a + browser toolset member `tool_use`. The server renders the + model-visible text from it; the model never sees the raw fields. + + - `type: :browser_state` + + - `tabs: Array[BetaBrowserStateTabEntry]` + + All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`. + + maxItems: 100 + + - `tab_id: String` + + The caller-assigned identifier for this tab, unique within the inventory. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `title: String` + + The title of the page the tab is showing. May be empty. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The URL of the page the tab is showing. May be empty. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `active: bool` + + Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `state_changes: Array[BetaBrowserStateChange]` + + Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list. + + minItems: 1, maxItems: 200 + + - `class BetaBrowserStateChangeTabOpened` + + A tab this call's execution opened that remains open at its end — + the creation delta of the `tabs` inventory, not an event log. + + Carries only the `tab_id`; the tab's `title` and `url` live on its + `tabs` entry, which must include the same `tab_id`. A tab opened + during a failed call gets no deferred `tab_opened`; it simply appears + in the next result's `tabs` inventory. + + - `type: :tab_opened` + + - `tab_id: String` + + The `tab_id` of the opened tab, present in `tabs`. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `class BetaBrowserStateChangeDownloadStarted` + + A file download that started during this call. + + - `type: :download_started` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `class BetaBrowserStateChangeDownloadCompleted` + + A file download that finished during this call, reported with the + same `download_id` as its `download_started` — or without a prior + `download_started`, when the download finished during the call that + started it (at most one state change per `download_id` per result). + + - `type: :download_completed` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `path: String` + + Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `size_bytes: Integer` + + The completed download's size. + + minimum: 0 + + - `class BetaBrowserStateChangeDownloadFailed` + + A file download that failed — or was cancelled — during this call. + + - `type: :download_failed` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `error: String` + + The failure or cancellation detail, when known. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `is_error: bool` + + - `toolset_name: String` + + For a toolset member tool_result, the toolset family of the paired tool_use. + + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + + - `class BetaServerToolUseBlockParam` + + - `type: :server_tool_use` + + - `id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `input: Hash[Symbol, untyped]` + + - `name: :advisor | :web_search | :web_fetch | 5 more` + + - `:advisor` + + - `:web_search` + + - `:web_fetch` + + - `:code_execution` + + - `:bash_code_execution` + + - `:text_editor_code_execution` + + - `:tool_search_tool_regex` + + - `:tool_search_tool_bm25` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + + - `class BetaDirectCaller` + + Tool invocation directly from the model. + + - `class BetaServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class BetaServerToolCaller20260120` + + - `class BetaWebSearchToolResultBlockParam` + + - `type: :web_search_tool_result` + + - `content: BetaWebSearchToolResultBlockParamContent` + + - `ResultBlock = Array[BetaWebSearchResultBlockParam]` + + - `type: :web_search_result` + + - `encrypted_content: String` + + - `title: String` + + - `url: String` + + - `page_age: String` + + - `class BetaWebSearchToolRequestError` + + - `type: :web_search_tool_result_error` + + - `error_code: BetaWebSearchToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:max_uses_exceeded` + + - `:too_many_requests` + + - `:query_too_long` + + - `:request_too_large` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + + - `class BetaDirectCaller` + + Tool invocation directly from the model. + + - `class BetaServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class BetaServerToolCaller20260120` + + - `class BetaWebFetchToolResultBlockParam` + + - `type: :web_fetch_tool_result` + + - `content: BetaWebFetchToolResultErrorBlockParam | BetaWebFetchBlockParam` + + - `class BetaWebFetchToolResultErrorBlockParam` + + - `type: :web_fetch_tool_result_error` + + - `error_code: BetaWebFetchToolResultErrorCode` + + - `:invalid_tool_input` + + - `:url_too_long` + + - `:url_not_allowed` + + - `:url_not_in_prior_context` + + - `:url_not_accessible` + + - `:unsupported_content_type` + + - `:too_many_requests` + + - `:max_uses_exceeded` + + - `:unavailable` + + - `:content_too_large` + + - `class BetaWebFetchBlockParam` + + - `type: :web_fetch_result` + + - `content: BetaRequestDocumentBlock` + + - `url: String` + + Fetched content URL + + - `retrieved_at: String` + + ISO 8601 timestamp when the content was retrieved + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: BetaDirectCaller | BetaServerToolCaller | BetaServerToolCaller20260120` + + - `class BetaDirectCaller` + + Tool invocation directly from the model. + + - `class BetaServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class BetaServerToolCaller20260120` + + - `class BetaAdvisorToolResultBlockParam` + + - `type: :advisor_tool_result` + + - `content: BetaAdvisorToolResultErrorParam | BetaAdvisorResultBlockParam | BetaAdvisorRedactedResultBlockParam` + + - `class BetaAdvisorToolResultErrorParam` + + - `type: :advisor_tool_result_error` + + - `error_code: :max_uses_exceeded | :prompt_too_long | :too_many_requests | 4 more` + + - `:max_uses_exceeded` + + - `:prompt_too_long` + + - `:too_many_requests` + + - `:overloaded` + + - `:unavailable` + + - `:execution_time_exceeded` + + - `:model_not_found` + + - `class BetaAdvisorResultBlockParam` + + - `type: :advisor_result` + + - `text: String` + + - `stop_reason: String` + + - `class BetaAdvisorRedactedResultBlockParam` + + - `type: :advisor_redacted_result` + + - `encrypted_content: String` + + Opaque blob produced by a prior response; must be round-tripped verbatim. + + - `stop_reason: String` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaCodeExecutionToolResultBlockParam` + + - `type: :code_execution_tool_result` + + - `content: BetaCodeExecutionToolResultBlockParamContent` + + - `class BetaCodeExecutionToolResultErrorParam` + + - `type: :code_execution_tool_result_error` + + - `error_code: BetaCodeExecutionToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `class BetaCodeExecutionResultBlockParam` + + - `type: :code_execution_result` + + - `content: Array[BetaCodeExecutionOutputBlockParam]` + + - `type: :code_execution_output` + + - `file_id: String` + + - `return_code: Integer` + + - `stderr: String` + + - `stdout: String` + + - `class BetaEncryptedCodeExecutionResultBlockParam` + + Code execution result with encrypted stdout for PFC + web_search results. + + - `type: :encrypted_code_execution_result` + + - `content: Array[BetaCodeExecutionOutputBlockParam]` + + - `type: :code_execution_output` + + - `file_id: String` + + - `encrypted_stdout: String` + + - `return_code: Integer` + + - `stderr: String` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaBashCodeExecutionToolResultBlockParam` + + - `type: :bash_code_execution_tool_result` + + - `content: BetaBashCodeExecutionToolResultErrorParam | BetaBashCodeExecutionResultBlockParam` + + - `class BetaBashCodeExecutionToolResultErrorParam` + + - `type: :bash_code_execution_tool_result_error` + + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `:output_file_too_large` + + - `class BetaBashCodeExecutionResultBlockParam` + + - `type: :bash_code_execution_result` + + - `content: Array[BetaBashCodeExecutionOutputBlockParam]` + + - `type: :bash_code_execution_output` + + - `file_id: String` + + - `return_code: Integer` + + - `stderr: String` + + - `stdout: String` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaTextEditorCodeExecutionToolResultBlockParam` + + - `type: :text_editor_code_execution_tool_result` + + - `content: BetaTextEditorCodeExecutionToolResultErrorParam | BetaTextEditorCodeExecutionViewResultBlockParam | BetaTextEditorCodeExecutionCreateResultBlockParam | BetaTextEditorCodeExecutionStrReplaceResultBlockParam` + + - `class BetaTextEditorCodeExecutionToolResultErrorParam` + + - `type: :text_editor_code_execution_tool_result_error` + + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | 2 more` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `:file_not_found` + + - `error_message: String` + + - `class BetaTextEditorCodeExecutionViewResultBlockParam` + + - `type: :text_editor_code_execution_view_result` + + - `content: String` + + - `file_type: :text | :image | :pdf` + + - `:text` + + - `:image` + + - `:pdf` + + - `num_lines: Integer` + + - `start_line: Integer` + + - `total_lines: Integer` + + - `class BetaTextEditorCodeExecutionCreateResultBlockParam` + + - `type: :text_editor_code_execution_create_result` + + - `is_file_update: bool` + + - `class BetaTextEditorCodeExecutionStrReplaceResultBlockParam` + + - `type: :text_editor_code_execution_str_replace_result` + + - `lines: Array[String]` + + - `new_lines: Integer` + + - `new_start: Integer` + + - `old_lines: Integer` + + - `old_start: Integer` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaToolSearchToolResultBlockParam` + + - `type: :tool_search_tool_result` + + - `content: BetaToolSearchToolResultErrorParam | BetaToolSearchToolSearchResultBlockParam` + + - `class BetaToolSearchToolResultErrorParam` + + - `type: :tool_search_tool_result_error` + + - `error_code: :invalid_tool_input | :unavailable | :too_many_requests | :execution_time_exceeded` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `error_message: String` + + - `class BetaToolSearchToolSearchResultBlockParam` + + - `type: :tool_search_tool_search_result` + + - `tool_references: Array[BetaToolReferenceBlockParam]` + + - `type: :tool_reference` + + - `tool_name: String` + + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaMCPToolUseBlockParam` + + - `type: :mcp_tool_use` + + - `id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `input: Hash[Symbol, untyped]` + + - `name: String` + + - `server_name: String` + + The name of the MCP server + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaRequestMCPToolResultBlockParam` + + - `type: :mcp_tool_result` + + - `tool_use_id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `content: String | Array[BetaTextBlockParam]` + + - `String = String` + + - `BetaMCPToolResultBlockParamContent = Array[BetaTextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[BetaTextCitationParam]` + + - `is_error: bool` + + - `class BetaContainerUploadBlockParam` + + A content block that represents a file to be uploaded to the container + Files uploaded via this block will be available in the container's input directory. + + - `type: :container_upload` + + - `file_id: String` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaCompactionBlockParam` + + A compaction block containing summary of previous context. + + Users should round-trip these blocks from responses to subsequent requests + to maintain context across compaction boundaries. + + When content is None, the block represents a failed compaction. The server + treats these as no-ops. Empty string content is not allowed. + + - `type: :compaction` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `content: String` + + Summary of previously compacted content, or null if compaction failed + + - `encrypted_content: String` + + Opaque metadata from prior compaction, to be round-tripped verbatim + + - `signature: String` + + The block's signature as returned, to be sent back verbatim + + - `tool_changes: Array[BetaRequestToolAdditionBlock | BetaRequestToolRemovalBlock]` + + The tool changes of the compacted range, as the server returned them on this block: the `tool_addition` and `tool_removal` entries that take the request's `tools` to the tool set in effect at the end of the range. Send them back unchanged with the block. + + - `class BetaRequestToolAdditionBlock` + + Mid-conversation directive to make a tool available. + + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. + + - `type: :tool_addition` + + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference | BetaToolChangeToolDefinitionParam` + + - `class BetaToolChangeToolReference` + + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. + + - `type: :tool_reference` + + - `name: String` + + pattern: ^[a-zA-Z0-9_-]{1,128}$ + + - `class BetaToolChangeMCPToolReference` + + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. + + - `type: :mcp_tool_reference` + + - `name: String` + + - `server_name: String` + + - `class BetaToolChangeMCPToolsetReference` + + Reference to every tool in the named MCP server's toolset. + + - `type: :mcp_toolset_reference` + + - `server_name: String` + + - `class BetaToolChangeToolDefinitionParam` + + A tool defined by value: `definition` is a `tools` entry (any kind + `tools` accepts, an MCP toolset included). An `mcp_toolset` given here + also requires the `mcp-client-2026-09-15` beta. + + - `type: :tool_definition` + + - `definition: BetaToolUnion` + + - `class BetaTool` + + - `type: :custom` + + - `input_schema: InputSchema` + + [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. + + This defines the shape of the `input` that your tool accepts and that the model will produce. + + - `type: :object` + + - `properties: Hash[Symbol, untyped]` + + - `required: Array[String]` + + - `name: String` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `description: String` + + Description of what this tool does. + + Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. + + - `eager_input_streaming: bool` + + Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolBash20241022` + + - `type: :bash_20241022` + + - `name: :bash` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolBash20250124` + + - `type: :bash_20250124` + + - `name: :bash` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaCodeExecutionTool20250522` + + - `type: :code_execution_20250522` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaCodeExecutionTool20250825` + + - `type: :code_execution_20250825` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaCodeExecutionTool20260120` + + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). + + - `type: :code_execution_20260120` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaCodeExecutionTool20260521` + + Code execution tool with REPL state persistence. + + - `type: :code_execution_20260521` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaBrowserToolset20260801` + + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. + + - `type: :browser_toolset_20260801` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `configs: BetaBrowserToolsetConfigs` + + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + + - `type: BetaBrowserTypeConfig` + + `type`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `close_tab: BetaBrowserCloseTabConfig` + + `close_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `double_click: BetaBrowserDoubleClickConfig` + + `double_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `file_upload: BetaBrowserFileUploadConfig` + + `file_upload`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `find: BetaBrowserFindConfig` + + `find`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `form_input: BetaBrowserFormInputConfig` + + `form_input`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `get_page_text: BetaBrowserGetPageTextConfig` + + `get_page_text`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hold_key: BetaBrowserHoldKeyConfig` + + `hold_key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hover: BetaBrowserHoverConfig` + + `hover`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `javascript_exec: BetaBrowserJavascriptExecConfig` + + `javascript_exec`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `key: BetaBrowserKeyConfig` + + `key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click: BetaBrowserLeftClickConfig` + + `left_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click_drag: BetaBrowserLeftClickDragConfig` + + `left_click_drag`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_down: BetaBrowserLeftMouseDownConfig` + + `left_mouse_down`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_up: BetaBrowserLeftMouseUpConfig` + + `left_mouse_up`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `list_tabs: BetaBrowserListTabsConfig` + + `list_tabs`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `middle_click: BetaBrowserMiddleClickConfig` + + `middle_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `mouse_move: BetaBrowserMouseMoveConfig` + + `mouse_move`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `navigate: BetaBrowserNavigateConfig` + + `navigate`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `new_tab: BetaBrowserNewTabConfig` + + `new_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_console: BetaBrowserReadConsoleConfig` + + `read_console`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_network: BetaBrowserReadNetworkConfig` + + `read_network`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_page: BetaBrowserReadPageConfig` + + `read_page`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `right_click: BetaBrowserRightClickConfig` + + `right_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `screenshot: BetaBrowserScreenshotConfig` + + `screenshot`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll: BetaBrowserScrollConfig` + + `scroll`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll_to: BetaBrowserScrollToConfig` + + `scroll_to`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `switch_tab: BetaBrowserSwitchTabConfig` + + `switch_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `triple_click: BetaBrowserTripleClickConfig` + + `triple_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `wait: BetaBrowserWaitConfig` + + `wait`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `zoom: BetaBrowserZoomConfig` + + `zoom`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `class BetaToolComputerUse20241022` + + - `type: :computer_20241022` + + - `display_height_px: Integer` + + The height of the display in pixels. + + minimum: 1 + + - `display_width_px: Integer` + + The width of the display in pixels. + + minimum: 1 + + - `name: :computer` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `display_number: Integer` + + The X11 display number (e.g. 0, 1) for the display. + + minimum: 0 + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaMemoryTool20250818` + + - `type: :memory_20250818` + + - `name: :memory` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolComputerUse20250124` + + - `type: :computer_20250124` + + - `display_height_px: Integer` + + The height of the display in pixels. + + minimum: 1 + + - `display_width_px: Integer` + + The width of the display in pixels. + + minimum: 1 + + - `name: :computer` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `display_number: Integer` + + The X11 display number (e.g. 0, 1) for the display. + + minimum: 0 + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolTextEditor20241022` + + - `type: :text_editor_20241022` + + - `name: :str_replace_editor` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolComputerUse20251124` + + - `type: :computer_20251124` + + - `display_height_px: Integer` + + The height of the display in pixels. + + minimum: 1 + + - `display_width_px: Integer` + + The width of the display in pixels. + + minimum: 1 + + - `name: :computer` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `display_number: Integer` + + The X11 display number (e.g. 0, 1) for the display. + + minimum: 0 + + - `enable_zoom: bool` + + Whether to enable an action to take a zoomed-in screenshot of the screen. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaComputerToolset20260801` + + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. + + - `type: :computer_toolset_20260801` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `configs: BetaComputerToolsetConfigs` + + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + + - `type: BetaComputerTypeConfig` + + `type`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `cursor_position: BetaComputerCursorPositionConfig` + + `cursor_position`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `double_click: BetaComputerDoubleClickConfig` + + `double_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hold_key: BetaComputerHoldKeyConfig` + + `hold_key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `key: BetaComputerKeyConfig` + + `key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click: BetaComputerLeftClickConfig` + + `left_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click_drag: BetaComputerLeftClickDragConfig` + + `left_click_drag`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_down: BetaComputerLeftMouseDownConfig` + + `left_mouse_down`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_up: BetaComputerLeftMouseUpConfig` + + `left_mouse_up`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `middle_click: BetaComputerMiddleClickConfig` + + `middle_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `mouse_move: BetaComputerMouseMoveConfig` + + `mouse_move`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `right_click: BetaComputerRightClickConfig` + + `right_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `screenshot: BetaComputerScreenshotConfig` + + `screenshot`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll: BetaComputerScrollConfig` + + `scroll`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `triple_click: BetaComputerTripleClickConfig` + + `triple_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `wait: BetaComputerWaitConfig` + + `wait`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `zoom: BetaComputerZoomConfig` + + `zoom`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `class BetaToolTextEditor20250124` + + - `type: :text_editor_20250124` + + - `name: :str_replace_editor` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolTextEditor20250429` + + - `type: :text_editor_20250429` + + - `name: :str_replace_based_edit_tool` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolTextEditor20250728` + + - `type: :text_editor_20250728` + + - `name: :str_replace_based_edit_tool` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `max_characters: Integer` + + Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaWebSearchTool20250305` + + - `type: :web_search_20250305` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `user_location: BetaUserLocation` + + Parameters for the user's location. Used to provide more relevant search results. + + - `type: :approximate` + + - `city: String` + + The city of the user. + + minLength: 1, maxLength: 255 + + - `country: String` + + The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. + + minLength: 2, maxLength: 2 + + - `region: String` + + The region of the user. + + minLength: 1, maxLength: 255 + + - `timezone: String` + + The [IANA timezone](https://nodatime.org/TimeZones) of the user. + + minLength: 1, maxLength: 255 + + - `class BetaWebFetchTool20250910` + + - `type: :web_fetch_20250910` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: BetaWebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `client_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + + Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. + + - `class BetaWebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `type: :all` + + - `class BetaWebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `type: :none` + + - `class BetaWebFetchURLSourceOnly` + + The tool filter variant under which only the named tools' results + contribute. + + - `type: :only` + + - `tools: Array[BetaWebFetchURLSourceToolReference]` + + - `type: :tool_reference` + + - `name: String` + + - `class BetaWebFetchURLSourceExcept` + + The tool filter variant under which every result but the named + tools' contributes. + + - `type: :except` + + - `tools: Array[BetaWebFetchURLSourceToolReference]` + + - `type: :tool_reference` + + - `name: String` + + - `server_tool_results: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone | BetaWebFetchURLSourceOnly | BetaWebFetchURLSourceExcept` + + Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. + + - `class BetaWebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class BetaWebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class BetaWebFetchURLSourceOnly` + + The tool filter variant under which only the named tools' results + contribute. + + - `class BetaWebFetchURLSourceExcept` + + The tool filter variant under which every result but the named + tools' contributes. + + - `user_input: BetaWebFetchURLSourceAll | BetaWebFetchURLSourceNone` + + Whether URLs in user messages are fetchable: "all" or "none". + + - `class BetaWebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class BetaWebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class BetaWebSearchTool20260209` + + - `type: :web_search_20260209` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `user_location: BetaUserLocation` + + Parameters for the user's location. Used to provide more relevant search results. + + - `class BetaWebFetchTool20260209` + + - `type: :web_fetch_20260209` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: BetaWebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `class BetaWebFetchTool20260309` + + Web fetch tool with use_cache parameter for bypassing cached content. + + - `type: :web_fetch_20260309` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: BetaWebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `use_cache: bool` + + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + + - `class BetaWebSearchTool20260318` + + - `type: :web_search_20260318` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `response_inclusion: :full | :excluded` + + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + + - `:full` + + - `:excluded` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `user_location: BetaUserLocation` + + Parameters for the user's location. Used to provide more relevant search results. + + - `class BetaWebFetchTool20260318` + + - `type: :web_fetch_20260318` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: BetaCitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `response_inclusion: :full | :excluded` + + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. + + - `:full` + + - `:excluded` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: BetaWebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `use_cache: bool` + + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + + - `class BetaAdvisorTool20260301` + + - `type: :advisor_20260301` + + - `model: Model` + + The model that will complete your prompt. + + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + + - `:"claude-haiku-5-5"` + + Fastest model for high-volume, real-time tasks + + - `:"claude-sonnet-5-5"` + + Efficient model for coding and agents + + - `:"claude-fable-5-1"` + + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + + - `:"claude-opus-5-5"` + + Powerful intelligence for coding, knowledge work, and long-running agents + + - `:"claude-mythos-5-1"` + + Our most capable model for cybersecurity and biology research, available through trusted access programs + + - `:"claude-sonnet-5"` + + Efficient model for coding and agents + + - `:"claude-fable-5"` + + Next generation of intelligence for the hardest knowledge work and coding problems + + - `:"claude-mythos-5"` + + Most capable model for cybersecurity and biology research + + - `:"claude-opus-5"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-8"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-7"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-6"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-sonnet-4-6"` + + Best combination of speed and intelligence + + - `:"claude-haiku-4-5"` + + - `:"claude-haiku-4-5-20251001"` + + - `:"claude-opus-4-5"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-5-20251101"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-mythos-preview"` + + **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + New class of intelligence, strongest in coding and cybersecurity + + - `:"claude-sonnet-4-5"` + + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + High-performance model for agents and coding + + - `:"claude-sonnet-4-5-20250929"` + + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + High-performance model for agents and coding + + - `String = String` + + - `name: :advisor` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caching: BetaCacheControlEphemeral` + + Caching for the advisor's own prompt. When set, each advisor call writes a cache entry at the given TTL so subsequent calls in the same conversation read the stable prefix. When omitted, the advisor prompt is not cached. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_tokens: Integer` + + Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted. + + minimum: 1024 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolSearchToolBm25_20251119` + + - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` + + - `:tool_search_tool_bm25_20251119` + + - `:tool_search_tool_bm25` + + - `name: :tool_search_tool_bm25` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaToolSearchToolRegex20251119` + + - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` + + - `:tool_search_tool_regex_20251119` + + - `:tool_search_tool_regex` + + - `name: :tool_search_tool_regex` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BetaMCPToolset` + + Configuration for a group of tools from an MCP server. + + Allows configuring enabled status and defer_loading for all tools + from an MCP server, with optional per-tool overrides. + + - `type: :mcp_toolset` + + - `mcp_server_name: String` + + Name of the MCP server to configure tools for + + minLength: 1, maxLength: 255 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `configs: Hash[Symbol, BetaMCPToolConfig]` + + Configuration overrides for specific tools, keyed by tool name + + - `defer_loading: bool` + + - `enabled: bool` + + - `default_config: BetaMCPToolDefaultConfig` + + Default configuration applied to all tools from this server + + - `defer_loading: bool` + + - `enabled: bool` + + - `tools: Array[BetaMCPToolParam]` + + The server's tool listing, pinned: when present, the server is not asked for its tools before sampling and exactly these entries, with `default_config` and `configs` applied, are the toolset's tools. Copy it from the `mcp_tool_listing` block of an earlier response. + + - `input_schema: Hash[Symbol, untyped]` + + The tool's input schema as the MCP server lists it, verbatim. + + - `name: String` + + The tool's name as the MCP server lists it (not prefixed with the server name). + + minLength: 1 + + - `description: String` + + The tool's description as the MCP server lists it. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaRequestToolRemovalBlock` + + Mid-conversation directive to withdraw a tool. + + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. + + - `type: :tool_removal` + + - `tool: BetaToolChangeToolReference | BetaToolChangeMCPToolReference | BetaToolChangeMCPToolsetReference` + + - `class BetaToolChangeToolReference` + + Reference to a single tool, by the name the model uses to call it: a + tool declared in `tools` or defined by an earlier `tool_addition` + block. Does not accept the composed `{server}_{name}` form the server + assigns to MCP-resolved tools; use `mcp_tool_reference` or + `mcp_toolset_reference` for those. + + - `class BetaToolChangeMCPToolReference` + + Reference to a single MCP tool by its server and remote name; the + same `server_name`/`name` pair `mcp_tool_use` carries. + + - `class BetaToolChangeMCPToolsetReference` + + Reference to every tool in the named MCP server's toolset. + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BetaRequestToolAdditionBlock` + + Mid-conversation directive to make a tool available. + + `tool` is a reference to a tool (or MCP toolset) declared in the + request's `tools`. Under the `inline-tools-2026-09-15` beta it may + instead be a reference to a tool defined earlier in `messages`, or a + `tool_definition` object that carries an inline tool definition in + `definition` (the same object a `tools` entry holds). An `mcp_toolset` + definition also requires the `mcp-client-2026-09-15` beta. The tool is + offered to the model from this point in the conversation onward. + + - `class BetaRequestToolRemovalBlock` + + Mid-conversation directive to withdraw a tool. + + `tool` references a tool (or MCP toolset) by name: one declared in the + request's `tools` or defined earlier in `messages`. It is no longer + offered to the model from this point in the conversation onward. + + - `class BetaMCPToolListingBlockParam` + + The tool listing an MCP server returned while an earlier response was + produced, as that response carried it. Send the assistant message back + unchanged, this block included, and the server uses this listing for the + matching `mcp_toolset` instead of asking the MCP server again. + + - `type: :mcp_tool_listing` + + - `mcp_server_name: String` + + The name of the MCP server this listing came from, as `mcp_servers` declares it. + + minLength: 1, maxLength: 255 + + - `tools: Array[BetaMCPToolParam]` + + The server's tools, exactly as the response listed them. + + - `input_schema: Hash[Symbol, untyped]` + + The tool's input schema as the MCP server lists it, verbatim. + + - `name: String` + + The tool's name as the MCP server lists it (not prefixed with the server name). + + minLength: 1 + + - `description: String` + + The tool's description as the MCP server lists it. + + - `class BetaFallbackBlockParam` + + A `fallback` block echoed back from a prior response. + + Accepted in `messages[].content` and not rendered into the prompt; not + validated against the request's `fallbacks` chain or top-level `model`. + + Echo the assistant turn back verbatim, including this block in its + original position. The block marks the boundary between content produced + before and after a fallback hop, and the server relies on that boundary + to validate the turn: when thinking runs flank the boundary, omitting + the block merges them into one span the server cannot validate (the + request is rejected), and moving it into the middle of a single run is + likewise rejected; between non-thinking blocks the block's placement has + no validation effect. + + - `type: :fallback` + + - `from: BetaFallbackInfoParam` + + Identifies one hop of a fallback transition. + + - `model: Model` + + The model that will complete your prompt. + + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + + - `to: BetaFallbackInfoParam` + + Identifies one hop of a fallback transition. + + - `trigger: untyped` + + The response block's `trigger`, echoed verbatim. Accepted and ignored by the server; any object or `null` is allowed. + + - `role: :user | :assistant | :system` + + - `:user` + + - `:assistant` + + - `:system` + + - `clear_at: :next_user_message | :never` + + How long this system message's text stays in front of the model. `"never"` (the default) renders it on every request that includes it. `"next_user_message"` renders it only for the user turn it follows: once a later `role: "user"` message exists in `messages` the message stays in the array (send it unchanged) but is no longer shown to the model. Only permitted on `role: "system"` messages. + + - `:next_user_message` + + - `:never` + + - `output_config: BetaSystemMessageOutputConfig` + + Per-message output configuration on a role:"system" input message. + + Fields here apply per-turn; `format` remains top-level only. An + empty `{}` is accepted on a message that carries content; a message + with neither content nor output_config fields is rejected. + + - `effort: :low | :medium | :high | 2 more` + + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + + - `:low` + + - `:medium` + + - `:high` + + - `:xhigh` + + - `:max` + +- `model: Model` + + The model that will complete your prompt. + + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + +- `cache_control: BetaCacheControlEphemeral` + + Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. + +- `compaction: BetaCompactionConfig` + + Compaction configuration. + + When set on `POST /v1/messages`, the request is a compaction request: the conversation in `messages` is summarized and the response holds only the resulting `compaction` block (`stop_reason` `"compaction"`), which later requests send first in `messages` in place of the messages it summarizes. `POST /v1/messages/count_tokens` accepts this parameter and ignores it: the count it returns is for the conversation in `messages` as sent. Cannot be combined with `context_management`. + + - `type: :summarize` + + - `instructions: String` + + Replaces the server's default summarization prompt for this request. An empty or whitespace-only value counts as absent. + + maxLength: 16384 + +- `container: BetaContainerParams | String` + + Container identifier for reuse across requests. + + - `class BetaContainerParams` + + Container parameters with skills to be loaded. + + - `id: String` + + Container id + + - `skills: Array[BetaSkillParams]` + + List of skills to load in the container + + maxItems: 20 + + - `type: :anthropic | :custom` + + Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) + + - `:anthropic` + + - `:custom` + + - `skill_id: String` + + Skill ID + + minLength: 1, maxLength: 64 + + - `version: String` + + Skill version or 'latest' for most recent version + + minLength: 1, maxLength: 64 + + - `String = String` + +- `context_management: BetaContextManagementConfig` + + Context management configuration. + + This allows you to control how Claude manages context across multiple requests, such as whether to clear function results or not. + + - `edits: Array[BetaClearToolUses20250919Edit | BetaClearThinking20251015Edit | BetaCompact20260112Edit]` + + List of context management edits to apply + + - `class BetaClearToolUses20250919Edit` + + - `type: :clear_tool_uses_20250919` + + - `clear_at_least: BetaInputTokensClearAtLeast` + + Minimum number of tokens that must be cleared when triggered. Context will only be modified if at least this many tokens can be removed. + + - `type: :input_tokens` + + - `value: Integer` + + minimum: 0 + + - `clear_tool_inputs: bool | Array[String]` + + Whether to clear all tool inputs (bool) or specific tool inputs to clear (list) + + - `UnionMember0 = bool` + + - `UnionMember1 = Array[String]` + + - `exclude_tools: Array[String]` + + Tool names whose uses are preserved from clearing + + - `keep: BetaToolUsesKeep` + + Number of tool uses to retain in the conversation + + - `type: :tool_uses` + + - `value: Integer` + + minimum: 0 + + - `trigger: BetaInputTokensTrigger | BetaToolUsesTrigger` + + Condition that triggers the context management strategy + + - `class BetaInputTokensTrigger` + + - `type: :input_tokens` + + - `value: Integer` + + minimum: 1 + + - `class BetaToolUsesTrigger` + + - `type: :tool_uses` + + - `value: Integer` + + minimum: 1 + + - `class BetaClearThinking20251015Edit` + + - `type: :clear_thinking_20251015` + + - `keep: BetaThinkingTurns | BetaAllThinkingTurns | :all` + + Number of most recent assistant turns to keep thinking blocks for. Older turns will have their thinking blocks removed. + + - `class BetaThinkingTurns` + + - `type: :thinking_turns` + + - `value: Integer` + + minimum: 1 + + - `class BetaAllThinkingTurns` + + - `type: :all` + + - `:all` + + - `class BetaCompact20260112Edit` + + Automatically compact older context when reaching the configured trigger threshold. + + - `type: :compact_20260112` + + - `instructions: String` + + Additional instructions for summarization. + + - `pause_after_compaction: bool` + + Whether to pause after compaction and return the compaction block to the user. + + - `trigger: BetaInputTokensTrigger` + + When to trigger compaction. Defaults to 150000 input tokens. + +- `diagnostics: BetaDiagnosticsParam` - MCP servers to be utilized in this request + Request-level diagnostics. Supply `previous_message_id` to have the response include `diagnostics.cache_miss_reason` explaining any prompt-cache divergence from that prior request. - maxItems: 20 + - `previous_message_id: String` - - `type: :url` + The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare. - - `name: String` + maxLength: 256 - - `url: String` +- `fallback_credit_token: String | BetaFallbackCreditTokenParam` - - `authorization_token: String` + The `fallback_credit_token` from a prior refusal's `stop_details`. - - `tool_configuration: BetaRequestMCPServerToolConfiguration` + When a preceding request was refused and returned a `fallback_credit_token`, + pass that code here on the retry to have the retry's cache-creation tokens + for the prefix that was warm on the refused model billed at the cache-read + rate. Must be redeemed by the same organization and workspace, with the same + request body (optionally extended by one appended `assistant` message whose + content is the partial text — with any trailing whitespace stripped from + the final text block — and paired server-tool blocks streamed before the + refusal; the appended-assistant form is not available for requests with + `output_format` set or forced `tool_choice`), on an eligible fallback + model, on the same platform, + and within 5 minutes of the refusal; a mismatch is a 400. A token minted + mid-server-tool-loop whose partial content was continuable may only be + redeemed with the appended-assistant form — if an exact-body retry is + rejected with a 400 saying the token must be redeemed by continuing the + partial response, retry with the appended-assistant form instead. - - `allowed_tools: Array[String]` + When the appended-assistant form is used on a model that otherwise disallows + assistant-turn prefill, this token also authorizes that one prefill. - - `enabled: bool` + - `String = String` -- `output_config: BetaOutputConfig` + - `class BetaFallbackCreditTokenParam` - Configuration options for the model's output, such as the output format. + Object form of `fallback_credit_token`: the token plus a redemption + mode. - - `effort: :low | :medium | :high | 2 more` + Requires `anthropic-beta: fallback-credit-2026-07-01`; without that + header the field accepts the bare string only. The bare string and the + mode-less object are equivalent (both select `strict`), so wrapping + an existing token changes nothing by itself. - How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + - `token: String` - Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + The opaque `fallback_credit_token` from a prior refusal's `stop_details` — the same string the bare-string form carries. - - `:low` + minLength: 1, maxLength: 2048 - - `:medium` + - `mode: :strict | :best_effort` - - `:high` + How a failing token affects the retry. `strict` (the default, and the bare-string behavior): a failing redemption is a 400 and the retry is not served. `best_effort`: the retry is served either way — a token-layer failure no longer rejects the request; the retry proceeds at normal price and the outcome is reported on the response's `usage.fallback_credit`. Two failures stay hard in both modes: a malformed token, and combining `fallback_credit_token` with `fallbacks`. - - `:xhigh` + - `:strict` - - `:max` + - `:best_effort` - - `format_: BetaJSONOutputFormat` +- `fallbacks: BetaFallbacksParam` - A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + Opt-in server-side retry on one or more substitute models when the requested model declines for policy reasons. Tried in order: if the first entry also declines, the second is tried, and so on. Some models don't support fallbacks; on those models, a list of fallback models returns a 400 error. See [Server-side fallback](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#server-side-fallback). The string "default" requests the requested model's server-defined default fallback configuration. On a model that doesn't support fallbacks, the request runs on the requested model alone, so a declined request stays declined. - - `type: :json_schema` + - `UnionMember0 = Array[BetaFallbackParam]` - - `schema: Hash[Symbol, untyped]` + - `model: Model` - The JSON schema of the format + The model that will complete your prompt. - - `task_budget: BetaTokenTaskBudget` + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. - Configuration for token budget tracking across contexts. + - `max_tokens: Integer` - - `type: :tokens` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. - The budget type. Currently only 'tokens' is supported. + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. - - `total: Integer` + - `output_config: BetaOutputConfig` - Total token budget across all contexts in the session. + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. - minimum: 1024 + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. - - `remaining: Integer` + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. - Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. + These rules apply with the `server-side-fallback-2026-07-01` beta header. - minimum: 0 + - `effort: :low | :medium | :high | 2 more` -- `speed: :standard | :fast` + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. - The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. + - `:low` - - `:standard` + - `:medium` - - `:fast` + - `:high` -- `system_: String | Array[BetaTextBlockParam]` + - `:xhigh` - System prompt. + - `:max` - A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). + - `format_: BetaJSONOutputFormat` - - `String = String` + A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) - - `UnionMember1 = Array[BetaTextBlockParam]` + - `type: :json_schema` - - `type: :text` + - `schema: Hash[Symbol, untyped]` - - `text: String` + The JSON schema of the format - minLength: 1 + - `task_budget: BetaTokenTaskBudget` - - `cache_control: BetaCacheControlEphemeral` + Configuration for token budget tracking across contexts. - Create a cache control breakpoint at this content block. + - `type: :tokens` - - `citations: Array[BetaTextCitationParam]` + The budget type. Currently only 'tokens' is supported. -- `thinking: BetaThinkingConfigParam` + - `total: Integer` - Configuration for Claude's thinking. + Total token budget across all contexts in the session. - With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. + minimum: 1024 - Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. + - `remaining: Integer` - - `class BetaThinkingConfigEnabled` + Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided. - - `type: :enabled` + minimum: 0 - - `budget_tokens: Integer` + - `speed: :standard | :fast` - Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. - Must be ≥1024 and less than `max_tokens`. + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. - See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. + These rules apply with the `server-side-fallback-2026-07-01` beta header. - minimum: 1024 + - `:standard` - - `block_binding: BetaThinkingBlockBinding` + - `:fast` - Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` - - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. - "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. - - `:error` + These rules apply with the `server-side-fallback-2026-07-01` beta header. - - `:drop_block` + - `class BetaThinkingConfigEnabled` - - `display_: :summarized | :omitted | :updates` + - `type: :enabled` - Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + - `budget_tokens: Integer` - - `:summarized` + Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. - - `:omitted` + Must be ≥1024 and less than `max_tokens`. - - `:updates` + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. - - `class BetaThinkingConfigDisabled` + minimum: 1024 - - `type: :disabled` + - `block_binding: BetaThinkingBlockBinding` - - `class BetaThinkingConfigBetweenTools` + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. - - `type: :between_tools` + - `prefix_mismatch_behavior: BetaThinkingPrefixMismatchBehavior` - - `class BetaThinkingConfigAdaptive` + "error" (default) | "drop_block". What happens when a thinking block in `messages` fails the conversation check (it was created in a different conversation, or the messages before it have changed since). "error" fails the request with a 400 error. "drop_block" removes the failing blocks and the request proceeds; each removal is reported in `input_transformations`. - - `type: :adaptive` + - `:error` - - `block_binding: BetaThinkingBlockBinding` + - `:drop_block` - Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + - `display_: :summarized | :omitted | :updates` - - `display_: :summarized | :omitted | :updates` + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). - Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + - `:summarized` - - `:summarized` + - `:omitted` - - `:omitted` + - `:updates` - - `:updates` + - `class BetaThinkingConfigDisabled` + + - `type: :disabled` + + - `class BetaThinkingConfigBetweenTools` + + - `type: :between_tools` + + - `class BetaThinkingConfigAdaptive` + + - `type: :adaptive` + + - `block_binding: BetaThinkingBlockBinding` + + Controls for block binding: what happens when a thinking block this request sends back fails the conversation check. `null`, absent or an empty object means every default. + + - `display_: :summarized | :omitted | :updates` + + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + + - `:summarized` + + - `:omitted` + + - `:updates` + + - `:default` + +- `inference_geo: String` + + Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used. + +- `mcp_servers: Array[BetaRequestMCPServerURLDefinition]` + + MCP servers to be utilized in this request + + maxItems: 20 + + - `type: :url` + + - `name: String` + + - `url: String` + + - `authorization_token: String` + + - `tool_configuration: BetaRequestMCPServerToolConfiguration` + + - `allowed_tools: Array[String]` + + - `enabled: bool` + +- `metadata: BetaMetadata` + + An object describing metadata about the request. + + - `user_id: String` + + An external identifier for the user who is associated with the request. + + This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number. + + maxLength: 512 + +- `output_config: BetaOutputConfig` + + Configuration options for the model's output, such as the output format. + +- `service_tier: :auto | :standard_only` + + Determines whether to use priority capacity (if available) or standard capacity for this request. + + Anthropic offers different levels of service for your API requests. See [service-tiers](https://platform.claude.com/docs/en/api/service-tiers?sdk_languages=ruby) for details. + + - `:auto` + + - `:standard_only` + +- `speed: :standard | :fast` + + The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. + + Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. + + - `:standard` + + - `:fast` + +- `stop_sequences: Array[String]` + + Custom text sequences that will cause the model to stop generating. + + Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_turn"`. + + If you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `"stop_sequence"` and the response `stop_sequence` value will contain the matched stop sequence. + +- `system_: String | Array[BetaTextBlockParam]` + + System prompt. + + A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). + + - `String = String` + + - `UnionMember1 = Array[BetaTextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: BetaCacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[BetaTextCitationParam]` + +- `thinking: BetaThinkingConfigParam` + + Configuration for Claude's thinking. + + With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. + + Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. + + - `class BetaThinkingConfigEnabled` + + - `class BetaThinkingConfigDisabled` + + - `class BetaThinkingConfigBetweenTools` + + - `class BetaThinkingConfigAdaptive` - `tool_choice: BetaToolChoice` @@ -12065,7 +16377,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `type: :none` -- `tools: Array[BetaTool | BetaToolBash20241022 | BetaToolBash20250124 | 25 more]` +- `tools: Array[BetaToolUnion]` Definitions of tools that the model may use. @@ -12318,9 +16630,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -12336,21 +16650,41 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ A schema to specify Claude's output format in responses. This parameter will be removed in a future release. -### Returns +- `temperature: Float` -- `class BetaMessageTokensCount` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - - `context_management: BetaCountTokensContextManagementResponse` + Amount of randomness injected into the response. - Information about context management applied to the message. + Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. - - `original_input_tokens: Integer` + Note that even with `temperature` of `0.0`, the results will not be fully deterministic. - The original token count before context management was applied + minimum: 0, maximum: 1 - - `input_tokens: Integer` +- `top_k: Integer` - The total number of tokens across the provided list of messages, system prompt, and tools. + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error. + + Only sample from the top K options for each subsequent token. + + Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277). + + Recommended for advanced use cases only. + + minimum: 0 + +- `top_p: Float` + + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. + + Use nucleus sampling. + + In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. + + Recommended for advanced use cases only. + + minimum: 0, maximum: 1 ### Example @@ -12359,23 +16693,13 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -beta_message_tokens_count = anthropic.beta.messages.count_tokens( +result = anthropic.beta.messages.stream( + max_tokens: 1024, messages: [{content: "Hello, world", role: :user}], model: Anthropic::Model::CLAUDE_OPUS_5_5 ) -puts(beta_message_tokens_count) -``` - -#### Response (200) - -```json -{ - "context_management": { - "original_input_tokens": 0 - }, - "input_tokens": 2095 -} +puts(result) ``` ## Domain types @@ -18733,6 +23057,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -18743,6 +23071,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -18753,6 +23085,12 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` ### Beta Cache Miss Reason @@ -18761,6 +23099,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -18769,6 +23111,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -18777,6 +23123,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -18785,6 +23135,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -18793,16 +23147,32 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Beta Cache Miss System Changed - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -18813,6 +23183,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -18823,6 +23197,12 @@ puts(beta_message_tokens_count) - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Beta Citation Char Location @@ -33601,6 +37981,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -33609,6 +37993,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -33617,6 +38005,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -33625,6 +38017,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -33633,10 +38029,22 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Beta Diagnostics Param @@ -34601,8 +39009,22 @@ puts(beta_message_tokens_count) - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34651,7 +39073,11 @@ puts(beta_message_tokens_count) - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -34659,6 +39085,12 @@ puts(beta_message_tokens_count) - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -34853,8 +39285,22 @@ puts(beta_message_tokens_count) - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -34903,7 +39349,11 @@ puts(beta_message_tokens_count) - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -34911,6 +39361,12 @@ puts(beta_message_tokens_count) - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -39155,6 +43611,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -39163,6 +43623,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -39171,6 +43635,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -39179,6 +43647,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -39187,10 +43659,22 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -50808,6 +55292,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -50816,6 +55304,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -50824,6 +55316,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -50832,6 +55328,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -50840,10 +55340,22 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -54499,6 +59011,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -54507,6 +59023,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -54515,6 +59035,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -54523,6 +59047,10 @@ puts(beta_message_tokens_count) - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -54531,10 +59059,22 @@ puts(beta_message_tokens_count) - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -79773,8 +84313,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -79823,7 +84377,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -79831,6 +84389,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -80354,9 +84918,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) @@ -80628,6 +85194,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80903,6 +85471,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81175,270 +85745,274 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` -- `workspace_id: String` (header parameter) - - Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - - Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - -#### Returns - -- `class BetaMessageBatch` - - - `type: :message_batch` - - Object type. - - For Message Batches, this is always `"message_batch"`. - - - `id: String` - - Unique object identifier. - - The format and length of IDs may change over time. - - - `archived_at: Time` - - RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. - - format: date-time - - - `cancel_initiated_at: Time` - - RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. - - format: date-time - - - `created_at: Time` - - RFC 3339 datetime string representing the time at which the Message Batch was created. - - format: date-time - - - `ended_at: Time` - - RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. - - Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. - - format: date-time - - - `expires_at: Time` - - RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. - - format: date-time - - - `processing_status: :in_progress | :canceling | :ended` - - Processing status of the Message Batch. - - - `:in_progress` - - - `:canceling` - - - `:ended` - - - `request_counts: BetaMessageBatchRequestCounts` - - Tallies requests within the Message Batch, categorized by their status. - - Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. - - - `canceled: Integer` - - Number of requests in the Message Batch that have been canceled. - - This is zero until processing of the entire Message Batch has ended. - - - `errored: Integer` - - Number of requests in the Message Batch that encountered an error. - - This is zero until processing of the entire Message Batch has ended. - - - `expired: Integer` - - Number of requests in the Message Batch that have expired. - - This is zero until processing of the entire Message Batch has ended. - - - `processing: Integer` - - Number of requests in the Message Batch that are processing. - - - `succeeded: Integer` - - Number of requests in the Message Batch that have completed successfully. - - This is zero until processing of the entire Message Batch has ended. - - - `results_url: String` - - URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. - - Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. - -#### Example - -```ruby -require "anthropic" - -anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") - -beta_message_batch = anthropic.beta.messages.batches.cancel("message_batch_id") - -puts(beta_message_batch) -``` - -##### Response (200) - -```json -{ - "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", - "archived_at": "2024-08-20T18:37:24.100435Z", - "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", - "created_at": "2024-08-20T18:37:24.100435Z", - "ended_at": "2024-08-20T18:37:24.100435Z", - "expires_at": "2024-08-20T18:37:24.100435Z", - "processing_status": "in_progress", - "request_counts": { - "canceled": 10, - "errored": 30, - "expired": 10, - "processing": 100, - "succeeded": 50 - }, - "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", - "type": "message_batch" -} -``` - -### Delete a Message Batch - -`beta.messages.batches.delete(message_batch_id, **kwargs) -> BetaDeletedMessageBatch` - -**DELETE** `/v1/messages/batches/{message_batch_id}` - -Delete a Message Batch. - -Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it. - -Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) - -#### Parameters - -- `message_batch_id: String` (path parameter) - - ID of the Message Batch. - -- `betas: Array[AnthropicBeta]` (header parameter) - - Optional header to specify the beta version(s) you want to use. - - - `String = String` - - - `:"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"` - - - `:"inline-tools-2026-09-15"` - - - `:"mcp-client-2026-09-15"` - - - `:"ce-plugins-2026-09-01"` - - - `:"spend-limit-reads-2026-09-26"` - - - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaMessageBatch` + + - `type: :message_batch` + + Object type. + + For Message Batches, this is always `"message_batch"`. + + - `id: String` + + Unique object identifier. + + The format and length of IDs may change over time. + + - `archived_at: Time` + + RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable. + + format: date-time + + - `cancel_initiated_at: Time` + + RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated. + + format: date-time + + - `created_at: Time` + + RFC 3339 datetime string representing the time at which the Message Batch was created. + + format: date-time + + - `ended_at: Time` + + RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends. + + Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired. + + format: date-time + + - `expires_at: Time` + + RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation. + + format: date-time + + - `processing_status: :in_progress | :canceling | :ended` + + Processing status of the Message Batch. + + - `:in_progress` + + - `:canceling` + + - `:ended` + + - `request_counts: BetaMessageBatchRequestCounts` + + Tallies requests within the Message Batch, categorized by their status. + + Requests start as `processing` and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch. + + - `canceled: Integer` + + Number of requests in the Message Batch that have been canceled. + + This is zero until processing of the entire Message Batch has ended. + + - `errored: Integer` + + Number of requests in the Message Batch that encountered an error. + + This is zero until processing of the entire Message Batch has ended. + + - `expired: Integer` + + Number of requests in the Message Batch that have expired. + + This is zero until processing of the entire Message Batch has ended. + + - `processing: Integer` + + Number of requests in the Message Batch that are processing. + + - `succeeded: Integer` + + Number of requests in the Message Batch that have completed successfully. + + This is zero until processing of the entire Message Batch has ended. + + - `results_url: String` + + URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends. + + Results in the file are not guaranteed to be in the same order as requests. Use the `custom_id` field to match results to requests. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_message_batch = anthropic.beta.messages.batches.cancel("message_batch_id") + +puts(beta_message_batch) +``` + +##### Response (200) + +```json +{ + "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF", + "archived_at": "2024-08-20T18:37:24.100435Z", + "cancel_initiated_at": "2024-08-20T18:37:24.100435Z", + "created_at": "2024-08-20T18:37:24.100435Z", + "ended_at": "2024-08-20T18:37:24.100435Z", + "expires_at": "2024-08-20T18:37:24.100435Z", + "processing_status": "in_progress", + "request_counts": { + "canceled": 10, + "errored": 30, + "expired": 10, + "processing": 100, + "succeeded": 50 + }, + "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results", + "type": "message_batch" +} +``` + +### Delete a Message Batch + +`beta.messages.batches.delete(message_batch_id, **kwargs) -> BetaDeletedMessageBatch` + +**DELETE** `/v1/messages/batches/{message_batch_id}` + +Delete a Message Batch. + +Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it. + +Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing?sdk_languages=ruby) + +#### Parameters + +- `message_batch_id: String` (path parameter) + + ID of the Message Batch. + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` - `workspace_id: String` (header parameter) @@ -81607,6 +86181,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84679,6 +89255,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -84687,6 +89267,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -84695,6 +89279,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -84703,6 +89291,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -84711,10 +89303,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/beta/messages/batches.md b/content/en/api/ruby/beta/messages/batches.md index 0e0edde3a5..3ce98db6d5 100644 --- a/content/en/api/ruby/beta/messages/batches.md +++ b/content/en/api/ruby/beta/messages/batches.md @@ -3672,8 +3672,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3722,7 +3736,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -3730,6 +3748,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -4253,9 +4277,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) @@ -4527,6 +4553,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4802,6 +4830,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5074,6 +5104,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5339,6 +5371,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5506,6 +5540,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8578,6 +8614,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -8586,6 +8626,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -8594,6 +8638,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -8602,6 +8650,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -8610,10 +8662,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -12559,6 +12623,10 @@ end - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -12567,6 +12635,10 @@ end - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -12575,6 +12647,10 @@ end - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -12583,6 +12659,10 @@ end - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -12591,10 +12671,22 @@ end - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -16354,6 +16446,10 @@ end - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -16362,6 +16458,10 @@ end - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -16370,6 +16470,10 @@ end - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -16378,6 +16482,10 @@ end - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -16386,10 +16494,22 @@ end - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -20111,6 +20231,10 @@ end - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -20119,6 +20243,10 @@ end - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -20127,6 +20255,10 @@ end - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -20135,6 +20267,10 @@ end - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -20143,10 +20279,22 @@ end - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/beta/messages/batches/cancel.md b/content/en/api/ruby/beta/messages/batches/cancel.md index 54e685616a..76d809a83e 100644 --- a/content/en/api/ruby/beta/messages/batches/cancel.md +++ b/content/en/api/ruby/beta/messages/batches/cancel.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/messages/batches/create.md b/content/en/api/ruby/beta/messages/batches/create.md index bca0808f69..de65b7129f 100644 --- a/content/en/api/ruby/beta/messages/batches/create.md +++ b/content/en/api/ruby/beta/messages/batches/create.md @@ -3670,8 +3670,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3720,7 +3734,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -3728,6 +3746,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -4251,9 +4275,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) diff --git a/content/en/api/ruby/beta/messages/batches/delete.md b/content/en/api/ruby/beta/messages/batches/delete.md index 51377c162e..c64fa920f9 100644 --- a/content/en/api/ruby/beta/messages/batches/delete.md +++ b/content/en/api/ruby/beta/messages/batches/delete.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/messages/batches/list.md b/content/en/api/ruby/beta/messages/batches/list.md index 1b83ad73cd..768d189bc4 100644 --- a/content/en/api/ruby/beta/messages/batches/list.md +++ b/content/en/api/ruby/beta/messages/batches/list.md @@ -139,6 +139,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/messages/batches/results.md b/content/en/api/ruby/beta/messages/batches/results.md index a62d486f10..39716a95c6 100644 --- a/content/en/api/ruby/beta/messages/batches/results.md +++ b/content/en/api/ruby/beta/messages/batches/results.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3201,6 +3203,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -3209,6 +3215,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -3217,6 +3227,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -3225,6 +3239,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -3233,10 +3251,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/beta/messages/batches/retrieve.md b/content/en/api/ruby/beta/messages/batches/retrieve.md index 0dc6020811..ba6ce113f7 100644 --- a/content/en/api/ruby/beta/messages/batches/retrieve.md +++ b/content/en/api/ruby/beta/messages/batches/retrieve.md @@ -127,6 +127,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/messages/count_tokens.md b/content/en/api/ruby/beta/messages/count_tokens.md index de848967c5..ccc9040f5d 100644 --- a/content/en/api/ruby/beta/messages/count_tokens.md +++ b/content/en/api/ruby/beta/messages/count_tokens.md @@ -4000,9 +4000,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) diff --git a/content/en/api/ruby/beta/messages/create.md b/content/en/api/ruby/beta/messages/create.md index 9daeba101f..ad3c03cd2d 100644 --- a/content/en/api/ruby/beta/messages/create.md +++ b/content/en/api/ruby/beta/messages/create.md @@ -3650,8 +3650,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens: Integer` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=ruby#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config: BetaOutputConfig` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort: :low | :medium | :high | 2 more` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3700,7 +3714,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed: :standard | :fast` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `:standard` @@ -3708,6 +3726,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `class BetaThinkingConfigEnabled` - `type: :enabled` @@ -4187,9 +4211,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -7287,6 +7313,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -7295,6 +7325,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -7303,6 +7337,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -7311,6 +7349,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -7319,10 +7361,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/beta/models.md b/content/en/api/ruby/beta/models.md index f9e86b9d8f..b13424e415 100644 --- a/content/en/api/ruby/beta/models.md +++ b/content/en/api/ruby/beta/models.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -616,6 +618,8 @@ The Models API response can be used to determine information about a specific mo - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/models/list.md b/content/en/api/ruby/beta/models/list.md index 805adb57c4..93d7138f07 100644 --- a/content/en/api/ruby/beta/models/list.md +++ b/content/en/api/ruby/beta/models/list.md @@ -151,6 +151,8 @@ The Models API response can be used to determine which models are available for - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/models/retrieve.md b/content/en/api/ruby/beta/models/retrieve.md index 2143e678a7..f4db0ae14a 100644 --- a/content/en/api/ruby/beta/models/retrieve.md +++ b/content/en/api/ruby/beta/models/retrieve.md @@ -127,6 +127,8 @@ The Models API response can be used to determine information about a specific mo - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions.md b/content/en/api/ruby/beta/sessions.md index 74a06cb626..7e0b912f70 100644 --- a/content/en/api/ruby/beta/sessions.md +++ b/content/en/api/ruby/beta/sessions.md @@ -1249,6 +1249,8 @@ Create Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2814,6 +2816,8 @@ List Sessions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4300,6 +4304,8 @@ Get Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6360,6 +6366,8 @@ Update Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7840,6 +7848,8 @@ Delete Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7997,6 +8007,8 @@ Archive Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19789,6 +19801,8 @@ List Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23247,6 +23261,8 @@ Send Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23862,6 +23878,8 @@ Stream Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27010,6 +27028,8 @@ Add Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27199,6 +27219,8 @@ List Session Resources - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27475,6 +27497,8 @@ Get Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27749,6 +27773,8 @@ Update Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28018,6 +28044,8 @@ Delete Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28204,6 +28232,8 @@ List Session Threads - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29280,6 +29310,8 @@ Get Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30354,6 +30386,8 @@ Archive Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31436,6 +31470,8 @@ List Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34545,6 +34581,8 @@ Stream Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/archive.md b/content/en/api/ruby/beta/sessions/archive.md index ce63b1b713..32be65a784 100644 --- a/content/en/api/ruby/beta/sessions/archive.md +++ b/content/en/api/ruby/beta/sessions/archive.md @@ -123,6 +123,8 @@ Archive Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/create.md b/content/en/api/ruby/beta/sessions/create.md index 9875c5e712..518a788673 100644 --- a/content/en/api/ruby/beta/sessions/create.md +++ b/content/en/api/ruby/beta/sessions/create.md @@ -1247,6 +1247,8 @@ Create Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/delete.md b/content/en/api/ruby/beta/sessions/delete.md index d57f26c55c..ba9637f427 100644 --- a/content/en/api/ruby/beta/sessions/delete.md +++ b/content/en/api/ruby/beta/sessions/delete.md @@ -123,6 +123,8 @@ Delete Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/events.md b/content/en/api/ruby/beta/sessions/events.md index 5223529614..af6ee72449 100644 --- a/content/en/api/ruby/beta/sessions/events.md +++ b/content/en/api/ruby/beta/sessions/events.md @@ -251,6 +251,8 @@ List Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3709,6 +3711,8 @@ Send Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4324,6 +4328,8 @@ Stream Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/events/list.md b/content/en/api/ruby/beta/sessions/events/list.md index 4d903478d0..9327a7bf46 100644 --- a/content/en/api/ruby/beta/sessions/events/list.md +++ b/content/en/api/ruby/beta/sessions/events/list.md @@ -249,6 +249,8 @@ List Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/events/send.md b/content/en/api/ruby/beta/sessions/events/send.md index 69c3958f03..d1711d89a7 100644 --- a/content/en/api/ruby/beta/sessions/events/send.md +++ b/content/en/api/ruby/beta/sessions/events/send.md @@ -485,6 +485,8 @@ Send Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/events/stream.md b/content/en/api/ruby/beta/sessions/events/stream.md index a237dfb433..2c4faa3c87 100644 --- a/content/en/api/ruby/beta/sessions/events/stream.md +++ b/content/en/api/ruby/beta/sessions/events/stream.md @@ -131,6 +131,8 @@ Stream Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/list.md b/content/en/api/ruby/beta/sessions/list.md index 296dfb6d82..5a9aeefd69 100644 --- a/content/en/api/ruby/beta/sessions/list.md +++ b/content/en/api/ruby/beta/sessions/list.md @@ -205,6 +205,8 @@ List Sessions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources.md b/content/en/api/ruby/beta/sessions/resources.md index dde715d02b..1de3e7598b 100644 --- a/content/en/api/ruby/beta/sessions/resources.md +++ b/content/en/api/ruby/beta/sessions/resources.md @@ -139,6 +139,8 @@ Add Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -328,6 +330,8 @@ List Session Resources - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -604,6 +608,8 @@ Get Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -878,6 +884,8 @@ Update Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1147,6 +1155,8 @@ Delete Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources/add.md b/content/en/api/ruby/beta/sessions/resources/add.md index 5fd5b0fa0e..6c52a903af 100644 --- a/content/en/api/ruby/beta/sessions/resources/add.md +++ b/content/en/api/ruby/beta/sessions/resources/add.md @@ -137,6 +137,8 @@ Add Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources/delete.md b/content/en/api/ruby/beta/sessions/resources/delete.md index f9c96c159b..e140fee0b1 100644 --- a/content/en/api/ruby/beta/sessions/resources/delete.md +++ b/content/en/api/ruby/beta/sessions/resources/delete.md @@ -125,6 +125,8 @@ Delete Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources/list.md b/content/en/api/ruby/beta/sessions/resources/list.md index 6b022fd17c..0266b6aac2 100644 --- a/content/en/api/ruby/beta/sessions/resources/list.md +++ b/content/en/api/ruby/beta/sessions/resources/list.md @@ -133,6 +133,8 @@ List Session Resources - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources/retrieve.md b/content/en/api/ruby/beta/sessions/resources/retrieve.md index e6089aa25e..54731b871e 100644 --- a/content/en/api/ruby/beta/sessions/resources/retrieve.md +++ b/content/en/api/ruby/beta/sessions/resources/retrieve.md @@ -125,6 +125,8 @@ Get Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/resources/update.md b/content/en/api/ruby/beta/sessions/resources/update.md index c7c0361181..d7dd91354d 100644 --- a/content/en/api/ruby/beta/sessions/resources/update.md +++ b/content/en/api/ruby/beta/sessions/resources/update.md @@ -131,6 +131,8 @@ Update Session Resource - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/retrieve.md b/content/en/api/ruby/beta/sessions/retrieve.md index a76fc7bfae..3793021b62 100644 --- a/content/en/api/ruby/beta/sessions/retrieve.md +++ b/content/en/api/ruby/beta/sessions/retrieve.md @@ -123,6 +123,8 @@ Get Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads.md b/content/en/api/ruby/beta/sessions/threads.md index 845ff8edee..214c1b7606 100644 --- a/content/en/api/ruby/beta/sessions/threads.md +++ b/content/en/api/ruby/beta/sessions/threads.md @@ -149,6 +149,8 @@ List Session Threads - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1225,6 +1227,8 @@ Get Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2299,6 +2303,8 @@ Archive Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7931,6 +7937,8 @@ List Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11040,6 +11048,8 @@ Stream Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/archive.md b/content/en/api/ruby/beta/sessions/threads/archive.md index ffccd3a93e..deb0472297 100644 --- a/content/en/api/ruby/beta/sessions/threads/archive.md +++ b/content/en/api/ruby/beta/sessions/threads/archive.md @@ -125,6 +125,8 @@ Archive Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/events.md b/content/en/api/ruby/beta/sessions/threads/events.md index 74502bf37c..1e28c01e25 100644 --- a/content/en/api/ruby/beta/sessions/threads/events.md +++ b/content/en/api/ruby/beta/sessions/threads/events.md @@ -133,6 +133,8 @@ List Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3242,6 +3244,8 @@ Stream Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/events/list.md b/content/en/api/ruby/beta/sessions/threads/events/list.md index 5506843102..3edf94a822 100644 --- a/content/en/api/ruby/beta/sessions/threads/events/list.md +++ b/content/en/api/ruby/beta/sessions/threads/events/list.md @@ -131,6 +131,8 @@ List Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/events/stream.md b/content/en/api/ruby/beta/sessions/threads/events/stream.md index c7ab638aff..91640bccc1 100644 --- a/content/en/api/ruby/beta/sessions/threads/events/stream.md +++ b/content/en/api/ruby/beta/sessions/threads/events/stream.md @@ -133,6 +133,8 @@ Stream Session Thread Events - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/list.md b/content/en/api/ruby/beta/sessions/threads/list.md index 0f98ef2e94..9eb1ea9bf8 100644 --- a/content/en/api/ruby/beta/sessions/threads/list.md +++ b/content/en/api/ruby/beta/sessions/threads/list.md @@ -147,6 +147,8 @@ List Session Threads - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/threads/retrieve.md b/content/en/api/ruby/beta/sessions/threads/retrieve.md index 65619952dd..5207b0523d 100644 --- a/content/en/api/ruby/beta/sessions/threads/retrieve.md +++ b/content/en/api/ruby/beta/sessions/threads/retrieve.md @@ -125,6 +125,8 @@ Get Session Thread - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/sessions/update.md b/content/en/api/ruby/beta/sessions/update.md index 9bd649fdde..4fdffdbd34 100644 --- a/content/en/api/ruby/beta/sessions/update.md +++ b/content/en/api/ruby/beta/sessions/update.md @@ -703,6 +703,8 @@ Update Session - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills.md b/content/en/api/ruby/beta/skills.md index 081e9a20fe..b0cf7784a8 100644 --- a/content/en/api/ruby/beta/skills.md +++ b/content/en/api/ruby/beta/skills.md @@ -135,6 +135,8 @@ Create Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -378,6 +380,8 @@ List Skills - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -609,6 +613,8 @@ Get Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -835,6 +841,8 @@ Delete Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1119,6 +1127,8 @@ Create Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1326,6 +1336,8 @@ List Skill Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1532,6 +1544,8 @@ Download a skill version's content as a zip archive. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1684,6 +1698,8 @@ Get Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1885,6 +1901,8 @@ Delete Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/create.md b/content/en/api/ruby/beta/skills/create.md index 52f38e7110..44697498b5 100644 --- a/content/en/api/ruby/beta/skills/create.md +++ b/content/en/api/ruby/beta/skills/create.md @@ -133,6 +133,8 @@ Create Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/delete.md b/content/en/api/ruby/beta/skills/delete.md index 7ab602ff09..d5026e5301 100644 --- a/content/en/api/ruby/beta/skills/delete.md +++ b/content/en/api/ruby/beta/skills/delete.md @@ -127,6 +127,8 @@ Delete Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/list.md b/content/en/api/ruby/beta/skills/list.md index 237667f128..78a0a9f0b9 100644 --- a/content/en/api/ruby/beta/skills/list.md +++ b/content/en/api/ruby/beta/skills/list.md @@ -144,6 +144,8 @@ List Skills - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/retrieve.md b/content/en/api/ruby/beta/skills/retrieve.md index 6dda0c196d..a5f4bfe569 100644 --- a/content/en/api/ruby/beta/skills/retrieve.md +++ b/content/en/api/ruby/beta/skills/retrieve.md @@ -127,6 +127,8 @@ Get Skill - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions.md b/content/en/api/ruby/beta/skills/versions.md index 07c3d4e779..cd232db588 100644 --- a/content/en/api/ruby/beta/skills/versions.md +++ b/content/en/api/ruby/beta/skills/versions.md @@ -135,6 +135,8 @@ Create Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -342,6 +344,8 @@ List Skill Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -548,6 +552,8 @@ Download a skill version's content as a zip archive. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -700,6 +706,8 @@ Get Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -901,6 +909,8 @@ Delete Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions/create.md b/content/en/api/ruby/beta/skills/versions/create.md index 43eef771ad..0d3c5236a3 100644 --- a/content/en/api/ruby/beta/skills/versions/create.md +++ b/content/en/api/ruby/beta/skills/versions/create.md @@ -133,6 +133,8 @@ Create Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions/delete.md b/content/en/api/ruby/beta/skills/versions/delete.md index ce953a6e3a..2b5e1bd150 100644 --- a/content/en/api/ruby/beta/skills/versions/delete.md +++ b/content/en/api/ruby/beta/skills/versions/delete.md @@ -133,6 +133,8 @@ Delete Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions/download.md b/content/en/api/ruby/beta/skills/versions/download.md index 5e9fac9302..9ea669a698 100644 --- a/content/en/api/ruby/beta/skills/versions/download.md +++ b/content/en/api/ruby/beta/skills/versions/download.md @@ -133,6 +133,8 @@ Download a skill version's content as a zip archive. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions/list.md b/content/en/api/ruby/beta/skills/versions/list.md index 1257c723a3..4c53addba8 100644 --- a/content/en/api/ruby/beta/skills/versions/list.md +++ b/content/en/api/ruby/beta/skills/versions/list.md @@ -139,6 +139,8 @@ List Skill Versions - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/skills/versions/retrieve.md b/content/en/api/ruby/beta/skills/versions/retrieve.md index b4e322621f..9e367b470e 100644 --- a/content/en/api/ruby/beta/skills/versions/retrieve.md +++ b/content/en/api/ruby/beta/skills/versions/retrieve.md @@ -133,6 +133,8 @@ Get Skill Version - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels.md b/content/en/api/ruby/beta/tunnels.md index cf536ab176..0105ab950f 100644 --- a/content/en/api/ruby/beta/tunnels.md +++ b/content/en/api/ruby/beta/tunnels.md @@ -131,6 +131,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -318,6 +320,8 @@ Fetches a tunnel by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -515,6 +519,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -707,6 +713,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -894,6 +902,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1068,6 +1078,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1294,6 +1306,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1492,6 +1506,8 @@ Fetches a tunnel certificate by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1700,6 +1716,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1903,6 +1921,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/archive.md b/content/en/api/ruby/beta/tunnels/archive.md index ed72212419..45b54dac73 100644 --- a/content/en/api/ruby/beta/tunnels/archive.md +++ b/content/en/api/ruby/beta/tunnels/archive.md @@ -127,6 +127,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/certificates.md b/content/en/api/ruby/beta/tunnels/certificates.md index 08bcd24aac..ea880e7159 100644 --- a/content/en/api/ruby/beta/tunnels/certificates.md +++ b/content/en/api/ruby/beta/tunnels/certificates.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -333,6 +335,8 @@ Fetches a tunnel certificate by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -541,6 +545,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -744,6 +750,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/certificates/archive.md b/content/en/api/ruby/beta/tunnels/certificates/archive.md index a02939e2cc..8381bfdd3d 100644 --- a/content/en/api/ruby/beta/tunnels/certificates/archive.md +++ b/content/en/api/ruby/beta/tunnels/certificates/archive.md @@ -131,6 +131,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/certificates/create.md b/content/en/api/ruby/beta/tunnels/certificates/create.md index e95a72b94c..217ed2995b 100644 --- a/content/en/api/ruby/beta/tunnels/certificates/create.md +++ b/content/en/api/ruby/beta/tunnels/certificates/create.md @@ -133,6 +133,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/certificates/list.md b/content/en/api/ruby/beta/tunnels/certificates/list.md index d31f123e6d..21b00194ec 100644 --- a/content/en/api/ruby/beta/tunnels/certificates/list.md +++ b/content/en/api/ruby/beta/tunnels/certificates/list.md @@ -141,6 +141,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/certificates/retrieve.md b/content/en/api/ruby/beta/tunnels/certificates/retrieve.md index 91666114a2..124363f4a1 100644 --- a/content/en/api/ruby/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/ruby/beta/tunnels/certificates/retrieve.md @@ -131,6 +131,8 @@ Fetches a tunnel certificate by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/create.md b/content/en/api/ruby/beta/tunnels/create.md index 91ac422504..1a6974ef17 100644 --- a/content/en/api/ruby/beta/tunnels/create.md +++ b/content/en/api/ruby/beta/tunnels/create.md @@ -129,6 +129,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/list.md b/content/en/api/ruby/beta/tunnels/list.md index dddaaf5dbc..9c73f1d996 100644 --- a/content/en/api/ruby/beta/tunnels/list.md +++ b/content/en/api/ruby/beta/tunnels/list.md @@ -137,6 +137,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/retrieve.md b/content/en/api/ruby/beta/tunnels/retrieve.md index 915361d8af..90491bbe86 100644 --- a/content/en/api/ruby/beta/tunnels/retrieve.md +++ b/content/en/api/ruby/beta/tunnels/retrieve.md @@ -127,6 +127,8 @@ Fetches a tunnel by ID. - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/reveal_token.md b/content/en/api/ruby/beta/tunnels/reveal_token.md index 34a3e8ecd1..cc25068610 100644 --- a/content/en/api/ruby/beta/tunnels/reveal_token.md +++ b/content/en/api/ruby/beta/tunnels/reveal_token.md @@ -127,6 +127,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/tunnels/rotate_token.md b/content/en/api/ruby/beta/tunnels/rotate_token.md index 06cf42c784..711f5de051 100644 --- a/content/en/api/ruby/beta/tunnels/rotate_token.md +++ b/content/en/api/ruby/beta/tunnels/rotate_token.md @@ -133,6 +133,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/user_profiles.md b/content/en/api/ruby/beta/user_profiles.md index e1b05a0760..11939fd047 100644 --- a/content/en/api/ruby/beta/user_profiles.md +++ b/content/en/api/ruby/beta/user_profiles.md @@ -29,13 +29,13 @@ Create User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: :active | :suspended | :blocked` @@ -95,7 +95,7 @@ Create User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -111,7 +111,7 @@ Create User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -217,6 +217,8 @@ Create User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -249,6 +251,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -265,13 +271,13 @@ Create User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -283,11 +289,11 @@ Create User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -341,14 +347,10 @@ Create User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```ruby @@ -368,6 +370,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -379,15 +382,14 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -439,7 +441,7 @@ List User Profiles - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -545,6 +547,8 @@ List User Profiles - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -577,6 +581,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -593,13 +601,13 @@ List User Profiles - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -611,11 +619,11 @@ List User Profiles - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -669,14 +677,10 @@ List User Profiles - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```ruby @@ -698,6 +702,7 @@ puts(page) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -709,15 +714,14 @@ puts(page) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -740,7 +744,7 @@ Get User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -846,6 +850,8 @@ Get User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -878,6 +884,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -894,13 +904,13 @@ Get User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -912,11 +922,11 @@ Get User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -970,14 +980,10 @@ Get User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```ruby @@ -997,6 +1003,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1008,15 +1015,14 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1048,13 +1054,13 @@ Update User Profile - `external_id: String` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: :active | :suspended | :blocked` @@ -1114,7 +1120,7 @@ Update User Profile - `external_user_onboarded_at: Time` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1130,7 +1136,7 @@ Update User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -1236,6 +1242,8 @@ Update User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1268,6 +1276,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1284,13 +1296,13 @@ Update User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -1302,11 +1314,11 @@ Update User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -1360,14 +1372,10 @@ Update User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```ruby @@ -1387,6 +1395,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1398,15 +1407,177 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`beta.user_profiles.delete(user_profile_id, **kwargs) -> BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `user_profile_id: String` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `class BetaDeletedUserProfile` + + - `type: :user_profile_deleted` + + Object type. Always `user_profile_deleted`. + + - `id: String` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_deleted_user_profile = anthropic.beta.user_profiles.delete("uprof_011CZkZCu8hGbp5mYRQgUmz9") + +puts(beta_deleted_user_profile) +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1426,7 +1597,7 @@ Create Enrollment URL - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -1532,6 +1703,8 @@ Create Enrollment URL - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1542,7 +1715,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: :enrollment_url` @@ -1582,6 +1755,18 @@ puts(beta_user_profile_enrollment_url) ## Domain types +### Beta Deleted User Profile + +- `class BetaDeletedUserProfile` + + - `type: :user_profile_deleted` + + Object type. Always `user_profile_deleted`. + + - `id: String` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `class BetaUserProfile` @@ -1608,6 +1793,10 @@ puts(beta_user_profile_enrollment_url) Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1624,13 +1813,13 @@ puts(beta_user_profile_enrollment_url) - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -1642,11 +1831,11 @@ puts(beta_user_profile_enrollment_url) - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -1700,19 +1889,15 @@ puts(beta_user_profile_enrollment_url) - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: :enrollment_url` @@ -1859,3 +2044,186 @@ puts(beta_user_profile_enrollment_url) - `:pending` - `:rejected` + +## User Profiles › Action URLs + +### Create Action URL + +`beta.user_profiles.action_urls.create(user_profile_id, **kwargs) -> BetaUserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `user_profile_id: String` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `action: BetaUserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes. + + - `type: :enroll_end_user` + +- `betas: Array[AnthropicBeta]` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `String = String` + + - `:"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"` + + - `:"inline-tools-2026-09-15"` + + - `:"mcp-client-2026-09-15"` + + - `:"ce-plugins-2026-09-01"` + + - `:"spend-limit-reads-2026-09-26"` + + - `:"telemetry-destinations-2026-08-11"` + + - `:"webhooks-2026-10-07"` + +- `workspace_id: String` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `class BetaUserProfileActionURL` + + A URL to give to the person who takes the requested action. + + - `type: :user_profile_action_url` + + Object type. Always `user_profile_action_url`. + + - `expires_at: Time` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: String` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +beta_user_profile_action_url = anthropic.beta.user_profiles.action_urls.create( + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + action: {type: :enroll_end_user} +) + +puts(beta_user_profile_action_url) +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/ruby/beta/user_profiles/create.md b/content/en/api/ruby/beta/user_profiles/create.md index 80ac537fca..0f1909c64e 100644 --- a/content/en/api/ruby/beta/user_profiles/create.md +++ b/content/en/api/ruby/beta/user_profiles/create.md @@ -27,13 +27,13 @@ Create User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status: :active | :suspended | :blocked` @@ -93,7 +93,7 @@ Create User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -109,7 +109,7 @@ Create User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -215,6 +215,8 @@ Create User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -247,6 +249,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -263,13 +269,13 @@ Create User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -281,11 +287,11 @@ Create User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -339,14 +345,10 @@ Create User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```ruby @@ -366,6 +368,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -377,14 +380,13 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/ruby/beta/user_profiles/create_enrollment_url.md b/content/en/api/ruby/beta/user_profiles/create_enrollment_url.md index 09884e3ee7..5755e9a3d3 100644 --- a/content/en/api/ruby/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/ruby/beta/user_profiles/create_enrollment_url.md @@ -19,7 +19,7 @@ Create Enrollment URL - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -125,6 +125,8 @@ Create Enrollment URL - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -135,7 +137,7 @@ Create Enrollment URL - `class BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: :enrollment_url` diff --git a/content/en/api/ruby/beta/user_profiles/list.md b/content/en/api/ruby/beta/user_profiles/list.md index 974bba6478..b6eff932f2 100644 --- a/content/en/api/ruby/beta/user_profiles/list.md +++ b/content/en/api/ruby/beta/user_profiles/list.md @@ -51,7 +51,7 @@ List User Profiles - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -157,6 +157,8 @@ List User Profiles - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -189,6 +191,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -205,13 +211,13 @@ List User Profiles - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -223,11 +229,11 @@ List User Profiles - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -281,14 +287,10 @@ List User Profiles - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```ruby @@ -310,6 +312,7 @@ puts(page) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -321,15 +324,14 @@ puts(page) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/ruby/beta/user_profiles/retrieve.md b/content/en/api/ruby/beta/user_profiles/retrieve.md index b557f564f0..2e724c3618 100644 --- a/content/en/api/ruby/beta/user_profiles/retrieve.md +++ b/content/en/api/ruby/beta/user_profiles/retrieve.md @@ -19,7 +19,7 @@ Get User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -125,6 +125,8 @@ Get User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,6 +159,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -173,13 +179,13 @@ Get User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -191,11 +197,11 @@ Get User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -249,14 +255,10 @@ Get User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```ruby @@ -276,6 +278,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -287,14 +290,13 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/ruby/beta/user_profiles/update.md b/content/en/api/ruby/beta/user_profiles/update.md index 9c7df8f868..ce53a7a3fd 100644 --- a/content/en/api/ruby/beta/user_profiles/update.md +++ b/content/en/api/ruby/beta/user_profiles/update.md @@ -31,13 +31,13 @@ Update User Profile - `external_id: String` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status: :active | :suspended | :blocked` @@ -97,7 +97,7 @@ Update User Profile - `external_user_onboarded_at: Time` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -113,7 +113,7 @@ Update User Profile - `betas: Array[AnthropicBeta]` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `String = String` @@ -219,6 +219,8 @@ Update User Profile - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -251,6 +253,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: String` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Hash[Symbol, BetaUserProfileTrustGrant]` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -267,13 +273,13 @@ Update User Profile - `updated_at: Time` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type: :application | :passthrough` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `:application` @@ -285,11 +291,11 @@ Update User Profile - `external_id: String` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: :active | :suspended | :blocked` @@ -343,14 +349,10 @@ Update User Profile - `external_user_onboarded_at: Time` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name: String` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```ruby @@ -370,6 +372,7 @@ puts(beta_user_profile) "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -381,14 +384,13 @@ puts(beta_user_profile) "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/ruby/beta/vaults.md b/content/en/api/ruby/beta/vaults.md index 6cf09e9c81..42aa634f41 100644 --- a/content/en/api/ruby/beta/vaults.md +++ b/content/en/api/ruby/beta/vaults.md @@ -133,6 +133,8 @@ Create a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -337,6 +339,8 @@ List Vaults - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -536,6 +540,8 @@ Retrieve a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -740,6 +746,8 @@ Update a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -934,6 +942,8 @@ Delete a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1095,6 +1105,8 @@ Archive a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1519,6 +1531,8 @@ Create a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1857,6 +1871,8 @@ List Credentials - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2183,6 +2199,8 @@ Retrieve a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2647,6 +2665,8 @@ Update a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2971,6 +2991,8 @@ Delete a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3139,6 +3161,8 @@ Archive a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3463,6 +3487,8 @@ Validate an MCP OAuth Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/archive.md b/content/en/api/ruby/beta/vaults/archive.md index 686cc8cc91..9cdc452889 100644 --- a/content/en/api/ruby/beta/vaults/archive.md +++ b/content/en/api/ruby/beta/vaults/archive.md @@ -125,6 +125,8 @@ Archive a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/create.md b/content/en/api/ruby/beta/vaults/create.md index fa119df953..62d364244a 100644 --- a/content/en/api/ruby/beta/vaults/create.md +++ b/content/en/api/ruby/beta/vaults/create.md @@ -131,6 +131,8 @@ Create a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials.md b/content/en/api/ruby/beta/vaults/credentials.md index 8d78fe1e33..6ec30a7a23 100644 --- a/content/en/api/ruby/beta/vaults/credentials.md +++ b/content/en/api/ruby/beta/vaults/credentials.md @@ -303,6 +303,8 @@ Create a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -641,6 +643,8 @@ List Credentials - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -967,6 +971,8 @@ Retrieve a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1431,6 +1437,8 @@ Update a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1755,6 +1763,8 @@ Delete a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1923,6 +1933,8 @@ Archive a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2247,6 +2259,8 @@ Validate an MCP OAuth Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/archive.md b/content/en/api/ruby/beta/vaults/credentials/archive.md index fd9c163bac..40b7064eae 100644 --- a/content/en/api/ruby/beta/vaults/credentials/archive.md +++ b/content/en/api/ruby/beta/vaults/credentials/archive.md @@ -129,6 +129,8 @@ Archive a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/create.md b/content/en/api/ruby/beta/vaults/credentials/create.md index ec65523b62..f18a001058 100644 --- a/content/en/api/ruby/beta/vaults/credentials/create.md +++ b/content/en/api/ruby/beta/vaults/credentials/create.md @@ -301,6 +301,8 @@ Create a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/delete.md b/content/en/api/ruby/beta/vaults/credentials/delete.md index 6cb3d00284..dc9650a2a9 100644 --- a/content/en/api/ruby/beta/vaults/credentials/delete.md +++ b/content/en/api/ruby/beta/vaults/credentials/delete.md @@ -129,6 +129,8 @@ Delete a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/list.md b/content/en/api/ruby/beta/vaults/credentials/list.md index 4724dd7f40..0923f5a662 100644 --- a/content/en/api/ruby/beta/vaults/credentials/list.md +++ b/content/en/api/ruby/beta/vaults/credentials/list.md @@ -139,6 +139,8 @@ List Credentials - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/ruby/beta/vaults/credentials/mcp_oauth_validate.md index fb67961bce..3394a5529e 100644 --- a/content/en/api/ruby/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/ruby/beta/vaults/credentials/mcp_oauth_validate.md @@ -129,6 +129,8 @@ Validate an MCP OAuth Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/retrieve.md b/content/en/api/ruby/beta/vaults/credentials/retrieve.md index a0082cb4fc..e1ec5049de 100644 --- a/content/en/api/ruby/beta/vaults/credentials/retrieve.md +++ b/content/en/api/ruby/beta/vaults/credentials/retrieve.md @@ -129,6 +129,8 @@ Retrieve a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/credentials/update.md b/content/en/api/ruby/beta/vaults/credentials/update.md index 37f6430d23..37312c3c66 100644 --- a/content/en/api/ruby/beta/vaults/credentials/update.md +++ b/content/en/api/ruby/beta/vaults/credentials/update.md @@ -269,6 +269,8 @@ Update a Credential - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/delete.md b/content/en/api/ruby/beta/vaults/delete.md index 598161efd4..2743882218 100644 --- a/content/en/api/ruby/beta/vaults/delete.md +++ b/content/en/api/ruby/beta/vaults/delete.md @@ -125,6 +125,8 @@ Delete a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/list.md b/content/en/api/ruby/beta/vaults/list.md index e761413f03..eede18cce1 100644 --- a/content/en/api/ruby/beta/vaults/list.md +++ b/content/en/api/ruby/beta/vaults/list.md @@ -135,6 +135,8 @@ List Vaults - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/retrieve.md b/content/en/api/ruby/beta/vaults/retrieve.md index 4a068435bb..c273199cba 100644 --- a/content/en/api/ruby/beta/vaults/retrieve.md +++ b/content/en/api/ruby/beta/vaults/retrieve.md @@ -125,6 +125,8 @@ Retrieve a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/vaults/update.md b/content/en/api/ruby/beta/vaults/update.md index ce2e96e0e8..cb149e365e 100644 --- a/content/en/api/ruby/beta/vaults/update.md +++ b/content/en/api/ruby/beta/vaults/update.md @@ -135,6 +135,8 @@ Update a Vault - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + - `workspace_id: String` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/ruby/beta/webhooks.md b/content/en/api/ruby/beta/webhooks.md index 0ea6d543ed..be50c588ab 100644 --- a/content/en/api/ruby/beta/webhooks.md +++ b/content/en/api/ruby/beta/webhooks.md @@ -821,9 +821,37 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/webhooks - `workspace_id: String` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: :"user_profile.enforcement_action_opened"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: :"user_profile.enforcement_action_resolved"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + ### Beta Webhook Event Data -- `type BetaWebhookEventData = BetaWebhookSessionCreatedEventData | BetaWebhookSessionPendingEventData | BetaWebhookSessionRunningEventData | 41 more` +- `type BetaWebhookEventData = BetaWebhookSessionCreatedEventData | BetaWebhookSessionPendingEventData | BetaWebhookSessionRunningEventData | 43 more` - `class BetaWebhookSessionCreatedEventData` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/webhooks - `workspace_id: String` + - `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: :"user_profile.enforcement_action_opened"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + + - `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: :"user_profile.enforcement_action_resolved"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + ### Beta Webhook Memory Store Archived Event Data - `class BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/ruby/beta/webhooks - `workspace_id: String` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `class BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: :"user_profile.enforcement_action_opened"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `class BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: :"user_profile.enforcement_action_resolved"` + + - `id: String` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: String` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: String` + ### Beta Webhook Vault Archived Event Data - `class BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/ruby/completions.md b/content/en/api/ruby/completions.md index 361313baaf..5e4ad4b198 100644 --- a/content/en/api/ruby/completions.md +++ b/content/en/api/ruby/completions.md @@ -319,6 +319,8 @@ Future models and features will not be compatible with Text Completions. See our - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class Completion` diff --git a/content/en/api/ruby/completions/create.md b/content/en/api/ruby/completions/create.md index 9063c5d018..dfad7c2466 100644 --- a/content/en/api/ruby/completions/create.md +++ b/content/en/api/ruby/completions/create.md @@ -317,6 +317,8 @@ Future models and features will not be compatible with Text Completions. See our - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class Completion` diff --git a/content/en/api/ruby/messages.md b/content/en/api/ruby/messages.md index 8a5c89f78c..ea942ea6c0 100644 --- a/content/en/api/ruby/messages.md +++ b/content/en/api/ruby/messages.md @@ -3047,7 +3047,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -3788,6 +3788,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -3796,6 +3800,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -3804,6 +3812,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -3812,6 +3824,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -3820,10 +3836,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -4090,198 +4118,3242 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co The number of web search tool requests. - minimum: 0 + minimum: 0 + + - `service_tier: :standard | :priority | :batch` + + If the request used the priority, standard, or batch tier. + + - `:standard` + + - `:priority` + + - `:batch` + + - `speed: :standard | :fast` + + The inference speed mode used for this request. + + - `:standard` + + - `:fast` + +- `type RawMessageStreamEvent = RawMessageStartEvent | RawMessageDeltaEvent | RawMessageStopEvent | 3 more` + + - `class RawMessageStartEvent` + + - `type: :message_start` + + - `message: Message` + + - `class RawMessageDeltaEvent` + + - `type: :message_delta` + + - `delta: Delta` + + - `container: Container` + + Information about the container used in this request. + + This will be non-null if a container tool (e.g. code execution) was used. + + - `stop_details: RefusalStopDetails` + + Structured information about why model output stopped. + + This is `null` when the `stop_reason` has no additional detail to report. + + - `stop_reason: StopReason` + + - `stop_sequence: String` + + - `usage: MessageDeltaUsage` + + Billing and rate-limit usage. + + Anthropic's API bills and rate-limits by token counts, as tokens represent the underlying cost to our systems. + + Under the hood, the API transforms requests into a format suitable for the model. The model's output then goes through a parsing stage before becoming an API response. As a result, the token counts in `usage` will not match one-to-one with the exact visible content of an API request or response. + + For example, `output_tokens` will be non-zero, even for an empty string response from Claude. + + Total input tokens in a request is the summation of `input_tokens`, `cache_creation_input_tokens`, and `cache_read_input_tokens`. + + - `cache_creation_input_tokens: Integer` + + The cumulative number of input tokens used to create the cache entry. + + minimum: 0 + + - `cache_read_input_tokens: Integer` + + The cumulative number of input tokens read from the cache. + + minimum: 0 + + - `input_tokens: Integer` + + The cumulative number of input tokens which were used. + + minimum: 0 + + - `output_tokens: Integer` + + The cumulative number of output tokens which were used. + + - `output_tokens_details: OutputTokensDetails` + + Breakdown of output tokens by category. + + `output_tokens` remains the inclusive, authoritative total used for billing. + This object provides a read-only decomposition for observability — for example, + how many of the billed output tokens were spent on internal reasoning that may + have been summarized before being returned to you. + + - `server_tool_use: ServerToolUsage` + + The number of server tool requests. + + - `class RawMessageStopEvent` + + - `type: :message_stop` + + - `class RawContentBlockStartEvent` + + - `type: :content_block_start` + + - `content_block: TextBlock | ThinkingBlock | RedactedThinkingBlock | 9 more` + + - `class TextBlock` + + - `class ThinkingBlock` + + - `class RedactedThinkingBlock` + + - `class ToolUseBlock` + + - `class ServerToolUseBlock` + + - `class WebSearchToolResultBlock` + + - `class WebFetchToolResultBlock` + + - `class CodeExecutionToolResultBlock` + + - `class BashCodeExecutionToolResultBlock` + + - `class TextEditorCodeExecutionToolResultBlock` + + - `class ToolSearchToolResultBlock` + + - `class ContainerUploadBlock` + + Response model for a file uploaded to the container. + + - `index: Integer` + + - `class RawContentBlockDeltaEvent` + + - `type: :content_block_delta` + + - `delta: RawContentBlockDelta` + + - `class TextDelta` + + - `type: :text_delta` + + - `text: String` + + - `class InputJSONDelta` + + - `type: :input_json_delta` + + - `partial_json: String` + + - `class CitationsDelta` + + - `type: :citations_delta` + + - `citation: CitationCharLocation | CitationPageLocation | CitationContentBlockLocation | 2 more` + + - `class CitationCharLocation` + + - `class CitationPageLocation` + + - `class CitationContentBlockLocation` + + - `class CitationsWebSearchResultLocation` + + - `class CitationsSearchResultLocation` + + - `class ThinkingDelta` + + - `type: :thinking_delta` + + - `thinking: String` + + The incremental `thinking` text for this content block. Concatenate the `thinking` values of successive `thinking_delta` events to assemble the block's full `thinking` value. + + - `class SignatureDelta` + + - `type: :signature_delta` + + - `signature: String` + + The `signature` for this thinking block: an opaque value used to verify that the block was generated by Claude when it is passed back to the API. Delivered in a `signature_delta` event just before the block's `content_block_stop` event. + + - `index: Integer` + + - `class RawContentBlockStopEvent` + + - `type: :content_block_stop` + + - `index: Integer` + +### Example + +```ruby +require "anthropic" + +anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") + +message = anthropic.messages.create( + max_tokens: 1024, + messages: [{content: "Hello, world", role: :user}], + model: Anthropic::Model::CLAUDE_OPUS_5_5 +) + +puts(message) +``` + +#### Response (200) + +```json +{ + "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF", + "container": { + "id": "container_011CpZohnwH4vuy7gazohgSP", + "expires_at": "2019-12-27T18:11:19.117Z", + "skills": [ + { + "skill_id": "pdf", + "type": "anthropic", + "version": "latest" + } + ] + }, + "content": [ + { + "citations": [ + { + "cited_text": "The grass is green. The sky is blue.", + "document_index": 0, + "document_title": "My Document", + "end_char_index": 0, + "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", + "start_char_index": 0, + "type": "char_location" + } + ], + "text": "Hi! My name is Claude.", + "type": "text" + } + ], + "diagnostics": { + "cache_miss_reason": { + "cache_missed_input_tokens": 0, + "type": "model_changed" + } + }, + "model": "claude-opus-5-5", + "role": "assistant", + "stop_details": { + "category": "cyber", + "explanation": "This request was declined because it conflicts with Anthropic's Usage Policy.", + "type": "refusal" + }, + "stop_reason": "end_turn", + "stop_sequence": null, + "type": "message", + "usage": { + "cache_creation": { + "ephemeral_1h_input_tokens": 0, + "ephemeral_5m_input_tokens": 0 + }, + "cache_creation_input_tokens": 2051, + "cache_read_input_tokens": 2051, + "inference_geo": "global", + "input_tokens": 2095, + "output_tokens": 503, + "output_tokens_details": { + "thinking_tokens": 0 + }, + "server_tool_use": { + "web_fetch_requests": 2, + "web_search_requests": 0 + }, + "service_tier": "standard", + "speed": "standard" + } +} +``` + +## Count tokens in a Message + +`messages.count_tokens(**kwargs) -> MessageTokensCount` + +**POST** `/v1/messages/count_tokens` + +Count the number of tokens in a Message. + +The Token Count API can be used to count the number of tokens in a Message, including tools, images, and documents, without creating it. + +Learn more about token counting in our [user guide](https://platform.claude.com/docs/en/build-with-claude/token-counting?sdk_languages=ruby) + +### Parameters + +- `messages: Array[MessageParam]` + + Input messages. + + Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn. + + Each input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages. + + If the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response. This is called prefill. On models that don't support prefill, creating a message that ends with a partial `assistant` response returns a 400 error. See [Prefill not supported](https://platform.claude.com/docs/en/api/errors?sdk_languages=ruby#prefill-not-supported). + + Example with a single `user` message: + + ```json + [{"role": "user", "content": "Hello, Claude"}] + ``` + + Example with multiple conversational turns: + + ```json + [ + {"role": "user", "content": "Hello there."}, + {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, + {"role": "user", "content": "Can you explain LLMs in plain English?"}, + ] + ``` + + Example with a partially-filled response from Claude, for models that support prefill: + + ```json + [ + {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, + {"role": "assistant", "content": "The best answer is ("}, + ] + ``` + + Each input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `"text"`. The following input messages are equivalent: + + ```json + {"role": "user", "content": "Hello, Claude"} + ``` + + ```json + {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]} + ``` + + See [input examples](https://platform.claude.com/docs/en/build-with-claude/working-with-messages?sdk_languages=ruby). + + Note that if you want to include a [system prompt](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role), you can use the top-level `system` parameter — there is no `"system"` role for input messages in the Messages API. + + There is a limit of 100,000 messages in a single request. + + - `content: String | Array[ContentBlockParam]` + + - `String = String` + + - `UnionMember1 = Array[ContentBlockParam]` + + - `class TextBlockParam` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `type: :ephemeral` + + - `ttl: :"5m" | :"1h"` + + The time-to-live for the cache control breakpoint. + + This may be one the following values: + + - `5m`: 5 minutes + - `1h`: 1 hour + + Defaults to `5m`. See [prompt caching pricing](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby) for details. + + - `:"5m"` + + - `:"1h"` + + - `citations: Array[TextCitationParam]` + + - `class CitationCharLocationParam` + + - `type: :char_location` + + - `cited_text: String` + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_char_index: Integer` + + - `start_char_index: Integer` + + minimum: 0 + + - `class CitationPageLocationParam` + + - `type: :page_location` + + - `cited_text: String` + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_page_number: Integer` + + - `start_page_number: Integer` + + minimum: 1 + + - `class CitationContentBlockLocationParam` + + - `type: :content_block_location` + + - `cited_text: String` + + The full text of the cited block range, concatenated. + + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + + - `document_index: Integer` + + minimum: 0 + + - `document_title: String` + + minLength: 1, maxLength: 500 + + - `end_block_index: Integer` + + Exclusive 0-based end index of the cited block range in the source's `content` array. + + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + + - `start_block_index: Integer` + + 0-based index of the first cited block in the source's `content` array. + + minimum: 0 + + - `class CitationWebSearchResultLocationParam` + + - `type: :web_search_result_location` + + - `cited_text: String` + + - `encrypted_index: String` + + - `title: String` + + minLength: 1, maxLength: 512 + + - `url: String` + + minLength: 1 + + - `class CitationSearchResultLocationParam` + + - `type: :search_result_location` + + - `cited_text: String` + + The full text of the cited block range, concatenated. + + Always equals the contents of `content[start_block_index:end_block_index]` joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns. + + - `end_block_index: Integer` + + Exclusive 0-based end index of the cited block range in the source's `content` array. + + Always greater than `start_block_index`; a single-block citation has `end_block_index = start_block_index + 1`. + + - `search_result_index: Integer` + + 0-based index of the cited search result among all `search_result` content blocks in the request, in the order they appear across messages and tool results. + + Counted separately from `document_index`; server-side web search results are not included in this count. + + minimum: 0 + + - `source: String` + + - `start_block_index: Integer` + + 0-based index of the first cited block in the source's `content` array. + + minimum: 0 + + - `title: String` + + - `class ImageBlockParam` + + - `type: :image` + + - `source: Base64ImageSource | URLImageSource | FileImageSource` + + - `class Base64ImageSource` + + - `type: :base64` + + - `data: String` + + format: byte + + - `media_type: :"image/jpeg" | :"image/png" | :"image/gif" | :"image/webp"` + + - `:"image/jpeg"` + + - `:"image/png"` + + - `:"image/gif"` + + - `:"image/webp"` + + - `class URLImageSource` + + - `type: :url` + + - `url: String` + + - `class FileImageSource` + + - `type: :file` + + - `file_id: String` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `transformations: ImageTransformationsParam` + + Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field. + + - `oversized_image: :downsize | :error` + + What the server does when this image exceeds the model's maximum image size. `"downsize"` (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. `"error"` instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down. + + - `:downsize` + + - `:error` + + - `class DocumentBlockParam` + + - `type: :document` + + - `source: Base64PDFSource | PlainTextSource | ContentBlockSource | 2 more` + + - `class Base64PDFSource` + + - `type: :base64` + + - `data: String` + + format: byte + + - `media_type: :"application/pdf"` + + - `class PlainTextSource` + + - `type: :text` + + - `data: String` + + - `media_type: :"text/plain"` + + - `class ContentBlockSource` + + - `type: :content` + + - `content: String | Array[ContentBlockSourceContent]` + + - `String = String` + + - `ContentBlockSourceContent = Array[ContentBlockSourceContent]` + + - `class TextBlockParam` + + - `class ImageBlockParam` + + - `class URLPDFSource` + + - `type: :url` + + - `url: String` + + - `class FileDocumentSource` + + - `type: :file` + + - `file_id: String` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: CitationsConfigParam` + + - `enabled: bool` + + - `context: String` + + minLength: 1 + + - `title: String` + + minLength: 1, maxLength: 500 + + - `class SearchResultBlockParam` + + - `type: :search_result` + + - `content: Array[TextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[TextCitationParam]` + + - `source: String` + + - `title: String` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: CitationsConfigParam` + + - `class ThinkingBlockParam` + + - `type: :thinking` + + - `signature: String` + + The `signature` value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude. + + Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 `invalid_request_error`. + + - `thinking: String` + + The `thinking` text of this block as returned by the API. + + - `class RedactedThinkingBlockParam` + + - `type: :redacted_thinking` + + - `data: String` + + The `data` value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged. + + - `class ToolUseBlockParam` + + - `type: :tool_use` + + - `id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `input: Hash[Symbol, untyped]` + + - `name: String` + + minLength: 1, maxLength: 200 + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: DirectCaller | ServerToolCaller | ServerToolCaller20260120` + + - `class DirectCaller` + + Tool invocation directly from the model. + + - `type: :direct` + + - `class ServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `type: :code_execution_20250825` + + - `tool_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `class ServerToolCaller20260120` + + - `type: :code_execution_20260120` + + - `tool_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `toolset_name: String` + + For a toolset member tool_use, the toolset family this member belongs to. + + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + + - `class ToolResultBlockParam` + + - `type: :tool_result` + + - `tool_use_id: String` + + pattern: ^[a-zA-Z0-9_-]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `content: String | Array[TextBlockParam | ImageBlockParam | SearchResultBlockParam | 3 more]` + + - `String = String` + + - `Content = Array[TextBlockParam | ImageBlockParam | SearchResultBlockParam | 3 more]` + + - `class TextBlockParam` + + - `class ImageBlockParam` + + - `class SearchResultBlockParam` + + - `class DocumentBlockParam` + + - `class ToolReferenceBlockParam` + + Tool reference block that can be included in tool_result content. + + - `type: :tool_reference` + + - `tool_name: String` + + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BrowserStateBlockParam` + + The caller's browser state after a browser toolset member call — + the full inventory of open tabs, which tab is active, and any side + effects (tabs opened, download state changes) the call produced. + + At most one per `tool_result`, only on a non-error result answering a + browser toolset member `tool_use`. The server renders the + model-visible text from it; the model never sees the raw fields. + + - `type: :browser_state` + + - `tabs: Array[BrowserStateTabEntry]` + + All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`. + + maxItems: 100 + + - `tab_id: String` + + The caller-assigned identifier for this tab, unique within the inventory. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `title: String` + + The title of the page the tab is showing. May be empty. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The URL of the page the tab is showing. May be empty. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `active: bool` + + Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`. + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `state_changes: Array[BrowserStateChange]` + + Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list. + + minItems: 1, maxItems: 200 + + - `class BrowserStateChangeTabOpened` + + A tab this call's execution opened that remains open at its end — + the creation delta of the `tabs` inventory, not an event log. + + Carries only the `tab_id`; the tab's `title` and `url` live on its + `tabs` entry, which must include the same `tab_id`. A tab opened + during a failed call gets no deferred `tab_opened`; it simply appears + in the next result's `tabs` inventory. + + - `type: :tab_opened` + + - `tab_id: String` + + The `tab_id` of the opened tab, present in `tabs`. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `class BrowserStateChangeDownloadStarted` + + A file download that started during this call. + + - `type: :download_started` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `class BrowserStateChangeDownloadCompleted` + + A file download that finished during this call, reported with the + same `download_id` as its `download_started` — or without a prior + `download_started`, when the download finished during the call that + started it (at most one state change per `download_id` per result). + + - `type: :download_completed` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `path: String` + + Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `size_bytes: Integer` + + The completed download's size. + + minimum: 0 + + - `class BrowserStateChangeDownloadFailed` + + A file download that failed — or was cancelled — during this call. + + - `type: :download_failed` + + - `download_id: String` + + The caller-assigned identifier for this download, stable across the state changes reporting it. + + minLength: 1, maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `url: String` + + The final post-redirect URL the download was served from. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `error: String` + + The failure or cancellation detail, when known. + + maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$ + + - `is_error: bool` + + - `toolset_name: String` + + For a toolset member tool_result, the toolset family of the paired tool_use. + + minLength: 1, maxLength: 64, pattern: ^[a-zA-Z0-9_-]+$ + + - `class ServerToolUseBlockParam` + + - `type: :server_tool_use` + + - `id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `input: Hash[Symbol, untyped]` + + - `name: :web_search | :web_fetch | :code_execution | 4 more` + + - `:web_search` + + - `:web_fetch` + + - `:code_execution` + + - `:bash_code_execution` + + - `:text_editor_code_execution` + + - `:tool_search_tool_regex` + + - `:tool_search_tool_bm25` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: DirectCaller | ServerToolCaller | ServerToolCaller20260120` + + - `class DirectCaller` + + Tool invocation directly from the model. + + - `class ServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class ServerToolCaller20260120` + + - `class WebSearchToolResultBlockParam` + + - `type: :web_search_tool_result` + + - `content: WebSearchToolResultBlockParamContent` + + - `WebSearchToolResultBlockItem = Array[WebSearchResultBlockParam]` + + - `type: :web_search_result` + + - `encrypted_content: String` + + - `title: String` + + - `url: String` + + - `page_age: String` + + - `class WebSearchToolRequestError` + + - `type: :web_search_tool_result_error` + + - `error_code: WebSearchToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:max_uses_exceeded` + + - `:too_many_requests` + + - `:query_too_long` + + - `:request_too_large` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: DirectCaller | ServerToolCaller | ServerToolCaller20260120` + + - `class DirectCaller` + + Tool invocation directly from the model. + + - `class ServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class ServerToolCaller20260120` + + - `class WebFetchToolResultBlockParam` + + - `type: :web_fetch_tool_result` + + - `content: WebFetchToolResultErrorBlockParam | WebFetchBlockParam` + + - `class WebFetchToolResultErrorBlockParam` + + - `type: :web_fetch_tool_result_error` + + - `error_code: WebFetchToolResultErrorCode` + + - `:invalid_tool_input` + + - `:url_too_long` + + - `:url_not_allowed` + + - `:url_not_in_prior_context` + + - `:url_not_accessible` + + - `:unsupported_content_type` + + - `:too_many_requests` + + - `:max_uses_exceeded` + + - `:unavailable` + + - `:content_too_large` + + - `class WebFetchBlockParam` + + - `type: :web_fetch_result` + + - `content: DocumentBlockParam` + + - `url: String` + + Fetched content URL + + - `retrieved_at: String` + + ISO 8601 timestamp when the content was retrieved + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `caller_: DirectCaller | ServerToolCaller | ServerToolCaller20260120` + + - `class DirectCaller` + + Tool invocation directly from the model. + + - `class ServerToolCaller` + + Tool invocation generated by a server-side tool. + + - `class ServerToolCaller20260120` + + - `class CodeExecutionToolResultBlockParam` + + - `type: :code_execution_tool_result` + + - `content: CodeExecutionToolResultBlockParamContent` + + - `class CodeExecutionToolResultErrorParam` + + - `type: :code_execution_tool_result_error` + + - `error_code: CodeExecutionToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `class CodeExecutionResultBlockParam` + + - `type: :code_execution_result` + + - `content: Array[CodeExecutionOutputBlockParam]` + + - `type: :code_execution_output` + + - `file_id: String` + + - `return_code: Integer` + + - `stderr: String` + + - `stdout: String` + + - `class EncryptedCodeExecutionResultBlockParam` + + Code execution result with encrypted stdout for PFC + web_search results. + + - `type: :encrypted_code_execution_result` + + - `content: Array[CodeExecutionOutputBlockParam]` + + - `type: :code_execution_output` + + - `file_id: String` + + - `encrypted_stdout: String` + + - `return_code: Integer` + + - `stderr: String` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class BashCodeExecutionToolResultBlockParam` + + - `type: :bash_code_execution_tool_result` + + - `content: BashCodeExecutionToolResultErrorParam | BashCodeExecutionResultBlockParam` + + - `class BashCodeExecutionToolResultErrorParam` + + - `type: :bash_code_execution_tool_result_error` + + - `error_code: BashCodeExecutionToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `:output_file_too_large` + + - `class BashCodeExecutionResultBlockParam` + + - `type: :bash_code_execution_result` + + - `content: Array[BashCodeExecutionOutputBlockParam]` + + - `type: :bash_code_execution_output` + + - `file_id: String` + + - `return_code: Integer` + + - `stderr: String` + + - `stdout: String` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class TextEditorCodeExecutionToolResultBlockParam` + + - `type: :text_editor_code_execution_tool_result` + + - `content: TextEditorCodeExecutionToolResultErrorParam | TextEditorCodeExecutionViewResultBlockParam | TextEditorCodeExecutionCreateResultBlockParam | TextEditorCodeExecutionStrReplaceResultBlockParam` + + - `class TextEditorCodeExecutionToolResultErrorParam` + + - `type: :text_editor_code_execution_tool_result_error` + + - `error_code: TextEditorCodeExecutionToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `:file_not_found` + + - `error_message: String` + + - `class TextEditorCodeExecutionViewResultBlockParam` + + - `type: :text_editor_code_execution_view_result` + + - `content: String` + + - `file_type: :text | :image | :pdf` + + - `:text` + + - `:image` + + - `:pdf` + + - `num_lines: Integer` + + - `start_line: Integer` + + - `total_lines: Integer` + + - `class TextEditorCodeExecutionCreateResultBlockParam` + + - `type: :text_editor_code_execution_create_result` + + - `is_file_update: bool` + + - `class TextEditorCodeExecutionStrReplaceResultBlockParam` + + - `type: :text_editor_code_execution_str_replace_result` + + - `lines: Array[String]` + + - `new_lines: Integer` + + - `new_start: Integer` + + - `old_lines: Integer` + + - `old_start: Integer` + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class ToolSearchToolResultBlockParam` + + - `type: :tool_search_tool_result` + + - `content: ToolSearchToolResultErrorParam | ToolSearchToolSearchResultBlockParam` + + - `class ToolSearchToolResultErrorParam` + + - `type: :tool_search_tool_result_error` + + - `error_code: ToolSearchToolResultErrorCode` + + - `:invalid_tool_input` + + - `:unavailable` + + - `:too_many_requests` + + - `:execution_time_exceeded` + + - `error_message: String` + + - `class ToolSearchToolSearchResultBlockParam` + + - `type: :tool_search_tool_search_result` + + - `tool_references: Array[ToolReferenceBlockParam]` + + - `type: :tool_reference` + + - `tool_name: String` + + minLength: 1, maxLength: 256, pattern: ^[a-zA-Z0-9_-]{1,256}$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `tool_use_id: String` + + pattern: ^srvtoolu_[a-zA-Z0-9_]+$ + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `class ContainerUploadBlockParam` + + A content block that represents a file to be uploaded to the container + Files uploaded via this block will be available in the container's input directory. + + - `type: :container_upload` + + - `file_id: String` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `role: :user | :assistant | :system` + + - `:user` + + - `:assistant` + + - `:system` + +- `model: Model` + + The model that will complete your prompt. + + See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options. + + - `:"claude-haiku-5-5"` + + Fastest model for high-volume, real-time tasks + + - `:"claude-sonnet-5-5"` + + Efficient model for coding and agents + + - `:"claude-fable-5-1"` + + Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows + + - `:"claude-opus-5-5"` + + Powerful intelligence for coding, knowledge work, and long-running agents + + - `:"claude-mythos-5-1"` + + Our most capable model for cybersecurity and biology research, available through trusted access programs + + - `:"claude-sonnet-5"` + + Efficient model for coding and agents + + - `:"claude-fable-5"` + + Next generation of intelligence for the hardest knowledge work and coding problems + + - `:"claude-mythos-5"` + + Most capable model for cybersecurity and biology research + + - `:"claude-opus-5"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-8"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-7"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-6"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-sonnet-4-6"` + + Best combination of speed and intelligence + + - `:"claude-haiku-4-5"` + + - `:"claude-haiku-4-5-20251001"` + + - `:"claude-opus-4-5"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-opus-4-5-20251101"` + + Powerful intelligence for long-running agents and coding + + - `:"claude-mythos-preview"` + + **Deprecated**: Will reach end-of-life on June 30, 2026. Please migrate to claude-mythos-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + New class of intelligence, strongest in coding and cybersecurity + + - `:"claude-sonnet-4-5"` + + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + High-performance model for agents and coding + + - `:"claude-sonnet-4-5-20250929"` + + **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information. + + High-performance model for agents and coding + + - `String = String` + +- `cache_control: CacheControlEphemeral` + + Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. + +- `output_config: OutputConfig` + + Configuration options for the model's output, such as the output format. + + - `effort: :low | :medium | :high | 2 more` + + How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. + + Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. + + - `:low` + + - `:medium` + + - `:high` + + - `:xhigh` + + - `:max` + + - `format_: JSONOutputFormat` + + A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs?sdk_languages=ruby) + + - `type: :json_schema` + + - `schema: Hash[Symbol, untyped]` + + The JSON schema of the format + +- `speed: :standard | :fast` + + The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. + + Some models require the `fast-mode-2026-02-01` beta header for any `speed` value. See [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode?sdk_languages=ruby) for which models. + + - `:standard` + + - `:fast` + +- `system_: String | Array[TextBlockParam]` + + System prompt. + + A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices?sdk_languages=ruby#give-claude-a-role). + + - `String = String` + + - `UnionMember1 = Array[TextBlockParam]` + + - `type: :text` + + - `text: String` + + minLength: 1 + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: Array[TextCitationParam]` + +- `thinking: ThinkingConfigParam` + + Configuration for Claude's thinking. + + With `{"type": "adaptive"}`, Claude decides when and how much to think. With `{"type": "enabled"}` (manual extended thinking), you set a `budget_tokens` of at least 1,024. Thinking tokens count toward your `max_tokens` limit. + + Which `type` values are accepted, and what happens when you omit `thinking`, depend on the model. See [thinking](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#configuring-thinking) for each model's behavior. + + - `class ThinkingConfigEnabled` + + - `type: :enabled` + + - `budget_tokens: Integer` + + Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality. + + Must be ≥1024 and less than `max_tokens`. + + See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking?sdk_languages=ruby) for details. + + minimum: 1024 + + - `display_: :summarized | :omitted` + + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + + - `:summarized` + + - `:omitted` + + - `class ThinkingConfigDisabled` + + - `type: :disabled` + + - `class ThinkingConfigBetweenTools` + + - `type: :between_tools` + + - `class ThinkingConfigAdaptive` + + - `type: :adaptive` + + - `display_: :summarized | :omitted` + + Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. The default depends on the model; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking?sdk_languages=ruby#controlling-thinking-display). + + - `:summarized` + + - `:omitted` + +- `tool_choice: ToolChoice` + + How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all. + + - `class ToolChoiceAuto` + + The model will automatically decide whether to use tools. + + - `type: :auto` + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output at most one tool use. + + - `class ToolChoiceAny` + + The model will use any available tools. + + - `type: :any` + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output exactly one tool use. + + - `class ToolChoiceTool` + + The model will use the specified tool with `tool_choice.name`. + + - `type: :tool` + + - `name: String` + + The name of the tool to use. + + - `disable_parallel_tool_use: bool` + + Whether to disable parallel tool use. + + Defaults to `false`. If set to `true`, the model will output exactly one tool use. + + - `class ToolChoiceNone` + + The model will not be allowed to use tools. + + - `type: :none` + +- `tools: Array[MessageCountTokensTool]` + + Definitions of tools that the model may use. + + If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks. + + There are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools?sdk_languages=ruby), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool?sdk_languages=ruby)). + + Each tool definition includes: + + * `name`: Name of the tool. + * `description`: Optional, but strongly-recommended description of the tool. + * `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks. + + For example, if you defined `tools` as: + + ```json + [ + { + "name": "get_stock_price", + "description": "Get the current stock price for a given ticker symbol.", + "input_schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string", + "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." + } + }, + "required": ["ticker"] + } + } + ] + ``` + + And then asked the model "What's the S&P 500 at today?", the model might produce `tool_use` content blocks in the response like this: + + ```json + [ + { + "type": "tool_use", + "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "name": "get_stock_price", + "input": { "ticker": "^GSPC" } + } + ] + ``` + + You might then run your `get_stock_price` tool with `{"ticker": "^GSPC"}` as an input, and return the following back to the model in a subsequent `user` message: + + ```json + [ + { + "type": "tool_result", + "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", + "content": "259.75 USD" + } + ] + ``` + + Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output. + + See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview?sdk_languages=ruby) for more details. + + - `class Tool` + + - `type: :custom` + + - `input_schema: InputSchema` + + [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. + + This defines the shape of the `input` that your tool accepts and that the model will produce. + + - `type: :object` + + - `properties: Hash[Symbol, untyped]` + + - `required: Array[String]` + + - `name: String` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + minLength: 1, maxLength: 128, pattern: ^[a-zA-Z0-9_-]{1,128}$ + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `description: String` + + Description of what this tool does. + + Tool descriptions should be as detailed as possible. The more information that the model has about what the tool is and how to use it, the better it will perform. You can use natural language descriptions to reinforce important aspects of the tool input JSON schema. + + - `eager_input_streaming: bool` + + Enable eager input streaming for this tool. When true, tool input parameters will be streamed incrementally as they are generated, and types will be inferred on-the-fly rather than buffering the full JSON output. When false, streaming is disabled for this tool even if the fine-grained-tool-streaming beta is active. When null (default), uses the default behavior based on beta headers. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class ToolBash20250124` + + - `type: :bash_20250124` + + - `name: :bash` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class CodeExecutionTool20250522` + + - `type: :code_execution_20250522` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class CodeExecutionTool20250825` + + - `type: :code_execution_20250825` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class CodeExecutionTool20260120` + + Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint). + + - `type: :code_execution_20260120` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class CodeExecutionTool20260521` + + Code execution tool with REPL state persistence. + + - `type: :code_execution_20260521` + + - `name: :code_execution` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class BrowserToolset20260801` + + The browser toolset: a single `tools[]` entry (carrying no + `name`) that declares the browser tool family. The model is served + the family's tool with any members disabled via `configs` removed + from its schema. + + - `type: :browser_toolset_20260801` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `configs: BrowserToolsetConfigs` + + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + + - `type: BrowserTypeConfig` + + `type`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `close_tab: BrowserCloseTabConfig` + + `close_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `double_click: BrowserDoubleClickConfig` + + `double_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `file_upload: BrowserFileUploadConfig` + + `file_upload`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `find: BrowserFindConfig` + + `find`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `form_input: BrowserFormInputConfig` + + `form_input`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `get_page_text: BrowserGetPageTextConfig` + + `get_page_text`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hold_key: BrowserHoldKeyConfig` + + `hold_key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hover: BrowserHoverConfig` + + `hover`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `javascript_exec: BrowserJavascriptExecConfig` + + `javascript_exec`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `key: BrowserKeyConfig` + + `key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click: BrowserLeftClickConfig` + + `left_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click_drag: BrowserLeftClickDragConfig` + + `left_click_drag`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_down: BrowserLeftMouseDownConfig` + + `left_mouse_down`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_up: BrowserLeftMouseUpConfig` + + `left_mouse_up`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `list_tabs: BrowserListTabsConfig` + + `list_tabs`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `middle_click: BrowserMiddleClickConfig` + + `middle_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `mouse_move: BrowserMouseMoveConfig` + + `mouse_move`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `navigate: BrowserNavigateConfig` + + `navigate`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `new_tab: BrowserNewTabConfig` + + `new_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_console: BrowserReadConsoleConfig` + + `read_console`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_network: BrowserReadNetworkConfig` + + `read_network`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `read_page: BrowserReadPageConfig` + + `read_page`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `right_click: BrowserRightClickConfig` + + `right_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `screenshot: BrowserScreenshotConfig` + + `screenshot`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll: BrowserScrollConfig` + + `scroll`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll_to: BrowserScrollToConfig` + + `scroll_to`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `switch_tab: BrowserSwitchTabConfig` + + `switch_tab`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `triple_click: BrowserTripleClickConfig` + + `triple_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `wait: BrowserWaitConfig` + + `wait`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `zoom: BrowserZoomConfig` + + `zoom`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `class MemoryTool20250818` + + - `type: :memory_20250818` + + - `name: :memory` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class ComputerToolset20260801` + + The computer toolset: a single `tools[]` entry (carrying no + `name`) that declares the computer tool family. The model is + served the family's tool with any members disabled via `configs` + removed from its schema. Every member is enabled by default, zoom + included. The single-tool options `display_number` and + `enable_zoom` are not fields of a toolset entry — it carries only + `type`, `configs`, and `cache_control`; zoom is controlled + via `configs.zoom.enabled`. + + - `type: :computer_toolset_20260801` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `configs: ComputerToolsetConfigs` + + Sparse per-member overrides, keyed by member name. Absent, null, and {} are equivalent; a member's defaults apply wherever its key is absent. + + - `type: ComputerTypeConfig` + + `type`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `cursor_position: ComputerCursorPositionConfig` + + `cursor_position`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `double_click: ComputerDoubleClickConfig` + + `double_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `hold_key: ComputerHoldKeyConfig` + + `hold_key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `key: ComputerKeyConfig` + + `key`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click: ComputerLeftClickConfig` + + `left_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_click_drag: ComputerLeftClickDragConfig` + + `left_click_drag`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_down: ComputerLeftMouseDownConfig` + + `left_mouse_down`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `left_mouse_up: ComputerLeftMouseUpConfig` + + `left_mouse_up`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `middle_click: ComputerMiddleClickConfig` + + `middle_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `mouse_move: ComputerMouseMoveConfig` + + `mouse_move`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `right_click: ComputerRightClickConfig` + + `right_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `screenshot: ComputerScreenshotConfig` + + `screenshot`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `scroll: ComputerScrollConfig` + + `scroll`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `triple_click: ComputerTripleClickConfig` + + `triple_click`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `wait: ComputerWaitConfig` + + `wait`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `zoom: ComputerZoomConfig` + + `zoom`'s config overrides. + + - `defer_loading: bool` + + Defer loading for this member. Must resolve to the same value on every enabled member of the toolset. + + - `enabled: bool` + + Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema. + + - `class ToolTextEditor20250124` + + - `type: :text_editor_20250124` + + - `name: :str_replace_editor` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class ToolTextEditor20250429` + + - `type: :text_editor_20250429` + + - `name: :str_replace_based_edit_tool` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class ToolTextEditor20250728` + + - `type: :text_editor_20250728` + + - `name: :str_replace_based_edit_tool` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `input_examples: Array[Hash[Symbol, untyped]]` + + - `max_characters: Integer` + + Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `class WebSearchTool20250305` + + - `type: :web_search_20250305` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `user_location: UserLocation` + + Parameters for the user's location. Used to provide more relevant search results. + + - `type: :approximate` + + - `city: String` + + The city of the user. + + minLength: 1, maxLength: 255 + + - `country: String` + + The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user. + + minLength: 2, maxLength: 2 + + - `region: String` + + The region of the user. + + minLength: 1, maxLength: 255 + + - `timezone: String` + + The [IANA timezone](https://nodatime.org/TimeZones) of the user. + + minLength: 1, maxLength: 255 + + - `class WebFetchTool20250910` + + - `type: :web_fetch_20250910` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: CitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: WebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `client_tool_results: WebFetchURLSourceAll | WebFetchURLSourceNone | WebFetchURLSourceOnly | WebFetchURLSourceExcept` + + Which client tools' results contribute fetchable URLs: "all", "none", or an only or except list of client tool names from tools[]. + + - `class WebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `type: :all` + + - `class WebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `type: :none` + + - `class WebFetchURLSourceOnly` + + The tool filter variant under which only the named tools' results + contribute. + + - `type: :only` + + - `tools: Array[WebFetchURLSourceToolReference]` + + - `type: :tool_reference` + + - `name: String` + + - `class WebFetchURLSourceExcept` + + The tool filter variant under which every result but the named + tools' contributes. + + - `type: :except` + + - `tools: Array[WebFetchURLSourceToolReference]` + + - `type: :tool_reference` + + - `name: String` + + - `server_tool_results: WebFetchURLSourceAll | WebFetchURLSourceNone | WebFetchURLSourceOnly | WebFetchURLSourceExcept` + + Which server tools' results contribute fetchable URLs: "all", "none", or an only or except list of server tool names from tools[]; only web_search and web_fetch results ever contribute. + + - `class WebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class WebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class WebFetchURLSourceOnly` + + The tool filter variant under which only the named tools' results + contribute. + + - `class WebFetchURLSourceExcept` + + The tool filter variant under which every result but the named + tools' contributes. + + - `user_input: WebFetchURLSourceAll | WebFetchURLSourceNone` + + Whether URLs in user messages are fetchable: "all" or "none". + + - `class WebFetchURLSourceAll` + + The `url_sources` variant under which a source contributes in + full: every result of the tool filter's source, or all user input. + + - `class WebFetchURLSourceNone` + + The `url_sources` variant under which a source contributes nothing: + no result of the tool filter's source, or no user input. + + - `class WebSearchTool20260209` + + - `type: :web_search_20260209` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `user_location: UserLocation` + + Parameters for the user's location. Used to provide more relevant search results. + + - `class WebFetchTool20260209` + + - `type: :web_fetch_20260209` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: CitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: WebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `class WebFetchTool20260309` + + Web fetch tool with use_cache parameter for bypassing cached content. + + - `type: :web_fetch_20260309` + + - `name: :web_fetch` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + List of domains to allow fetching from + + - `blocked_domains: Array[String]` + + List of domains to block fetching from + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. + + - `citations: CitationsConfigParam` + + Citations configuration for fetched documents. Citations are disabled by default. + + - `defer_loading: bool` + + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. + + - `max_content_tokens: Integer` + + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. + + minimum: 1 + + - `max_uses: Integer` + + Maximum number of times the tool can be used in the API request. + + minimum: 1 + + - `strict: bool` + + When true, guarantees schema validation on tool names and inputs + + - `url_sources: WebFetchURLSources` + + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. + + - `use_cache: bool` + + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. + + - `class WebSearchTool20260318` + + - `type: :web_search_20260318` + + - `name: :web_search` + + Name of the tool. + + This is how the tool will be called by the model and in `tool_use` blocks. + + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` + + - `:direct` + + - `:code_execution_20250825` + + - `:code_execution_20260120` + + - `:code_execution_20260521` + + - `allowed_domains: Array[String]` + + If provided, only these domains will be included in results. Cannot be used alongside `blocked_domains`. + + - `blocked_domains: Array[String]` + + If provided, these domains will never appear in results. Cannot be used alongside `allowed_domains`. + + - `cache_control: CacheControlEphemeral` + + Create a cache control breakpoint at this content block. - - `service_tier: :standard | :priority | :batch` + - `defer_loading: bool` - If the request used the priority, standard, or batch tier. + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `:standard` + - `max_uses: Integer` - - `:priority` + Maximum number of times the tool can be used in the API request. - - `:batch` + minimum: 1 - - `speed: :standard | :fast` + - `response_inclusion: :full | :excluded` - The inference speed mode used for this request. + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - - `:standard` + - `:full` - - `:fast` + - `:excluded` -- `type RawMessageStreamEvent = RawMessageStartEvent | RawMessageDeltaEvent | RawMessageStopEvent | 3 more` + - `strict: bool` - - `class RawMessageStartEvent` + When true, guarantees schema validation on tool names and inputs - - `type: :message_start` + - `user_location: UserLocation` - - `message: Message` + Parameters for the user's location. Used to provide more relevant search results. - - `class RawMessageDeltaEvent` + - `class WebFetchTool20260318` - - `type: :message_delta` + - `type: :web_fetch_20260318` - - `delta: Delta` + - `name: :web_fetch` - - `container: Container` + Name of the tool. - Information about the container used in this request. + This is how the tool will be called by the model and in `tool_use` blocks. - This will be non-null if a container tool (e.g. code execution) was used. + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `stop_details: RefusalStopDetails` + - `:direct` - Structured information about why model output stopped. + - `:code_execution_20250825` - This is `null` when the `stop_reason` has no additional detail to report. + - `:code_execution_20260120` - - `stop_reason: StopReason` + - `:code_execution_20260521` - - `stop_sequence: String` + - `allowed_domains: Array[String]` - - `usage: MessageDeltaUsage` + List of domains to allow fetching from - Billing and rate-limit usage. + - `blocked_domains: Array[String]` - Anthropic's API bills and rate-limits by token counts, as tokens represent the underlying cost to our systems. + List of domains to block fetching from - Under the hood, the API transforms requests into a format suitable for the model. The model's output then goes through a parsing stage before becoming an API response. As a result, the token counts in `usage` will not match one-to-one with the exact visible content of an API request or response. + - `cache_control: CacheControlEphemeral` - For example, `output_tokens` will be non-zero, even for an empty string response from Claude. + Create a cache control breakpoint at this content block. - Total input tokens in a request is the summation of `input_tokens`, `cache_creation_input_tokens`, and `cache_read_input_tokens`. + - `citations: CitationsConfigParam` - - `cache_creation_input_tokens: Integer` + Citations configuration for fetched documents. Citations are disabled by default. - The cumulative number of input tokens used to create the cache entry. + - `defer_loading: bool` - minimum: 0 + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `cache_read_input_tokens: Integer` + - `max_content_tokens: Integer` - The cumulative number of input tokens read from the cache. + Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs. - minimum: 0 + minimum: 1 - - `input_tokens: Integer` + - `max_uses: Integer` - The cumulative number of input tokens which were used. + Maximum number of times the tool can be used in the API request. - minimum: 0 + minimum: 1 - - `output_tokens: Integer` + - `response_inclusion: :full | :excluded` - The cumulative number of output tokens which were used. + How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn. - - `output_tokens_details: OutputTokensDetails` + - `:full` - Breakdown of output tokens by category. + - `:excluded` - `output_tokens` remains the inclusive, authoritative total used for billing. - This object provides a read-only decomposition for observability — for example, - how many of the billed output tokens were spent on internal reasoning that may - have been summarized before being returned to you. + - `strict: bool` - - `server_tool_use: ServerToolUsage` + When true, guarantees schema validation on tool names and inputs - The number of server tool requests. + - `url_sources: WebFetchURLSources` - - `class RawMessageStopEvent` + Which sources contribute to the set of URLs the tool may fetch. Omitted means every source. - - `type: :message_stop` + - `use_cache: bool` - - `class RawContentBlockStartEvent` + Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources. - - `type: :content_block_start` + - `class ToolSearchToolBm25_20251119` - - `content_block: TextBlock | ThinkingBlock | RedactedThinkingBlock | 9 more` + - `type: :tool_search_tool_bm25_20251119 | :tool_search_tool_bm25` - - `class TextBlock` + - `:tool_search_tool_bm25_20251119` - - `class ThinkingBlock` + - `:tool_search_tool_bm25` - - `class RedactedThinkingBlock` + - `name: :tool_search_tool_bm25` - - `class ToolUseBlock` + Name of the tool. - - `class ServerToolUseBlock` + This is how the tool will be called by the model and in `tool_use` blocks. - - `class WebSearchToolResultBlock` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `class WebFetchToolResultBlock` + - `:direct` - - `class CodeExecutionToolResultBlock` + - `:code_execution_20250825` - - `class BashCodeExecutionToolResultBlock` + - `:code_execution_20260120` - - `class TextEditorCodeExecutionToolResultBlock` + - `:code_execution_20260521` - - `class ToolSearchToolResultBlock` + - `cache_control: CacheControlEphemeral` - - `class ContainerUploadBlock` + Create a cache control breakpoint at this content block. - Response model for a file uploaded to the container. + - `defer_loading: bool` - - `index: Integer` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `class RawContentBlockDeltaEvent` + - `strict: bool` - - `type: :content_block_delta` + When true, guarantees schema validation on tool names and inputs - - `delta: RawContentBlockDelta` + - `class ToolSearchToolRegex20251119` - - `class TextDelta` + - `type: :tool_search_tool_regex_20251119 | :tool_search_tool_regex` - - `type: :text_delta` + - `:tool_search_tool_regex_20251119` - - `text: String` + - `:tool_search_tool_regex` - - `class InputJSONDelta` + - `name: :tool_search_tool_regex` - - `type: :input_json_delta` + Name of the tool. - - `partial_json: String` + This is how the tool will be called by the model and in `tool_use` blocks. - - `class CitationsDelta` + - `allowed_callers: Array[:direct | :code_execution_20250825 | :code_execution_20260120 | :code_execution_20260521]` - - `type: :citations_delta` + - `:direct` - - `citation: CitationCharLocation | CitationPageLocation | CitationContentBlockLocation | 2 more` + - `:code_execution_20250825` - - `class CitationCharLocation` + - `:code_execution_20260120` - - `class CitationPageLocation` + - `:code_execution_20260521` - - `class CitationContentBlockLocation` + - `cache_control: CacheControlEphemeral` - - `class CitationsWebSearchResultLocation` + Create a cache control breakpoint at this content block. - - `class CitationsSearchResultLocation` + - `defer_loading: bool` - - `class ThinkingDelta` + If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search. - - `type: :thinking_delta` + - `strict: bool` - - `thinking: String` + When true, guarantees schema validation on tool names and inputs - The incremental `thinking` text for this content block. Concatenate the `thinking` values of successive `thinking_delta` events to assemble the block's full `thinking` value. +- `user_profile_id: String` (header parameter) - - `class SignatureDelta` + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - - `type: :signature_delta` +- `workspace_id: String` (header parameter) - - `signature: String` + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). - The `signature` for this thinking block: an opaque value used to verify that the block was generated by Claude when it is passed back to the API. Delivered in a `signature_delta` event just before the block's `content_block_stop` event. + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. - - `index: Integer` +### Returns - - `class RawContentBlockStopEvent` +- `class MessageTokensCount` - - `type: :content_block_stop` + - `input_tokens: Integer` - - `index: Integer` + The total number of tokens across the provided list of messages, system prompt, and tools. ### Example @@ -4290,100 +7362,41 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -message = anthropic.messages.create( - max_tokens: 1024, +message_tokens_count = anthropic.messages.count_tokens( messages: [{content: "Hello, world", role: :user}], model: Anthropic::Model::CLAUDE_OPUS_5_5 ) -puts(message) +puts(message_tokens_count) ``` #### Response (200) ```json { - "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF", - "container": { - "id": "container_011CpZohnwH4vuy7gazohgSP", - "expires_at": "2019-12-27T18:11:19.117Z", - "skills": [ - { - "skill_id": "pdf", - "type": "anthropic", - "version": "latest" - } - ] - }, - "content": [ - { - "citations": [ - { - "cited_text": "The grass is green. The sky is blue.", - "document_index": 0, - "document_title": "My Document", - "end_char_index": 0, - "file_id": "file_011CNha8iCJcU1wXNR6q4V8w", - "start_char_index": 0, - "type": "char_location" - } - ], - "text": "Hi! My name is Claude.", - "type": "text" - } - ], - "diagnostics": { - "cache_miss_reason": { - "cache_missed_input_tokens": 0, - "type": "model_changed" - } - }, - "model": "claude-opus-5-5", - "role": "assistant", - "stop_details": { - "category": "cyber", - "explanation": "This request was declined because it conflicts with Anthropic's Usage Policy.", - "type": "refusal" - }, - "stop_reason": "end_turn", - "stop_sequence": null, - "type": "message", - "usage": { - "cache_creation": { - "ephemeral_1h_input_tokens": 0, - "ephemeral_5m_input_tokens": 0 - }, - "cache_creation_input_tokens": 2051, - "cache_read_input_tokens": 2051, - "inference_geo": "global", - "input_tokens": 2095, - "output_tokens": 503, - "output_tokens_details": { - "thinking_tokens": 0 - }, - "server_tool_use": { - "web_fetch_requests": 2, - "web_search_requests": 0 - }, - "service_tier": "standard", - "speed": "standard" - } + "input_tokens": 2095 } ``` -## Count tokens in a Message +## Stream -`messages.count_tokens(**kwargs) -> MessageTokensCount` +`messages.stream(**kwargs) -> Anthropic::Helpers::Streaming::MessageStream` -**POST** `/v1/messages/count_tokens` +Streams a message like `stream_raw` and returns a MessageStream, which accumulates the streamed events and parses tool inputs and structured output. -Count the number of tokens in a Message. +### Parameters -The Token Count API can be used to count the number of tokens in a Message, including tools, images, and documents, without creating it. +- `max_tokens: Integer` -Learn more about token counting in our [user guide](https://platform.claude.com/docs/en/build-with-claude/token-counting?sdk_languages=ruby) + The maximum number of tokens to generate before stopping. -### Parameters + Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. + + Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching?sdk_languages=ruby#pre-warming-the-cache) without generating a response. + + Different models have different maximum values for this parameter. See [models](https://platform.claude.com/docs/en/about-claude/models/overview?sdk_languages=ruby) for details. + + minimum: 0 - `messages: Array[MessageParam]` @@ -5507,6 +8520,72 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. +- `container: MessageCreateParamsContainer` + + Container identifier for reuse across requests. + + - `class ContainerParams` + + Container parameters with skills to be loaded. + + - `id: String` + + Container id + + - `skills: Array[SkillParams]` + + List of skills to load in the container + + maxItems: 20 + + - `type: :anthropic | :custom` + + Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined) + + - `:anthropic` + + - `:custom` + + - `skill_id: String` + + Skill ID + + minLength: 1, maxLength: 64 + + - `version: String` + + Skill version or 'latest' for most recent version + + minLength: 1, maxLength: 64 + + - `String = String` + +- `diagnostics: DiagnosticsParam` + + Request-level diagnostics. Supply `previous_message_id` to have the response include `diagnostics.cache_miss_reason` explaining any prompt-cache divergence from that prior request. + + - `previous_message_id: String` + + The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare. + + maxLength: 256 + +- `inference_geo: String` + + Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used. + +- `metadata: Metadata` + + An object describing metadata about the request. + + - `user_id: String` + + An external identifier for the user who is associated with the request. + + This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number. + + maxLength: 512 + - `output_config: OutputConfig` Configuration options for the model's output, such as the output format. @@ -5537,6 +8616,16 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ The JSON schema of the format +- `service_tier: :auto | :standard_only` + + Determines whether to use priority capacity (if available) or standard capacity for this request. + + Anthropic offers different levels of service for your API requests. See [service-tiers](https://platform.claude.com/docs/en/api/service-tiers?sdk_languages=ruby) for details. + + - `:auto` + + - `:standard_only` + - `speed: :standard | :fast` The inference speed mode for this request. `"fast"` enables high output-tokens-per-second inference. @@ -5547,6 +8636,14 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `:fast` +- `stop_sequences: Array[String]` + + Custom text sequences that will cause the model to stop generating. + + Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_turn"`. + + If you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `"stop_sequence"` and the response `stop_sequence` value will contain the matched stop sequence. + - `system_: String | Array[TextBlockParam]` System prompt. @@ -5669,7 +8766,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `type: :none` -- `tools: Array[MessageCountTokensTool]` +- `tools: Array[ToolUnion]` Definitions of tools that the model may use. @@ -7311,7 +10408,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -7319,13 +10416,41 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. -### Returns +- `temperature: Float` -- `class MessageTokensCount` + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. - - `input_tokens: Integer` + Amount of randomness injected into the response. - The total number of tokens across the provided list of messages, system prompt, and tools. + Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. + + Note that even with `temperature` of `0.0`, the results will not be fully deterministic. + + minimum: 0, maximum: 1 + +- `top_k: Integer` + + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error. + + Only sample from the top K options for each subsequent token. + + Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277). + + Recommended for advanced use cases only. + + minimum: 0 + +- `top_p: Float` + + **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error. + + Use nucleus sampling. + + In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`. + + Recommended for advanced use cases only. + + minimum: 0, maximum: 1 ### Example @@ -7334,20 +10459,13 @@ require "anthropic" anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key") -message_tokens_count = anthropic.messages.count_tokens( +result = anthropic.messages.stream( + max_tokens: 1024, messages: [{content: "Hello, world", role: :user}], model: Anthropic::Model::CLAUDE_OPUS_5_5 ) -puts(message_tokens_count) -``` - -#### Response (200) - -```json -{ - "input_tokens": 2095 -} +puts(result) ``` ## Domain types @@ -13199,6 +16317,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -13209,6 +16331,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -13219,6 +16345,12 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` ### Cache Miss Reason @@ -13227,6 +16359,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -13235,6 +16371,10 @@ puts(message_tokens_count) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -13243,6 +16383,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -13251,6 +16395,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -13259,16 +16407,32 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Cache Miss System Changed - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -13279,6 +16443,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -13289,6 +16457,12 @@ puts(message_tokens_count) - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Citation Char Location @@ -18787,6 +21961,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -18795,6 +21973,10 @@ puts(message_tokens_count) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -18803,6 +21985,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -18811,6 +21997,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -18819,10 +22009,22 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` ### Diagnostics Param @@ -20058,6 +23260,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -20066,6 +23272,10 @@ puts(message_tokens_count) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -20074,6 +23284,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -20082,6 +23296,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -20090,10 +23308,22 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -25052,6 +28282,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -25060,6 +28294,10 @@ puts(message_tokens_count) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -25068,6 +28306,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -25076,6 +28318,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -25084,10 +28330,22 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -26083,6 +29341,10 @@ puts(message_tokens_count) - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -26091,6 +29353,10 @@ puts(message_tokens_count) - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -26099,6 +29365,10 @@ puts(message_tokens_count) - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -26107,6 +29377,10 @@ puts(message_tokens_count) - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -26115,10 +29389,22 @@ puts(message_tokens_count) - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -38071,7 +41357,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) @@ -39505,6 +42791,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -39513,6 +42803,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -39521,6 +42815,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -39529,6 +42827,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -39537,10 +42839,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/messages/batches.md b/content/en/api/ruby/messages/batches.md index 5e3898e903..d3511a4ed2 100644 --- a/content/en/api/ruby/messages/batches.md +++ b/content/en/api/ruby/messages/batches.md @@ -3103,7 +3103,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) @@ -4537,6 +4537,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -4545,6 +4549,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -4553,6 +4561,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -4561,6 +4573,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -4569,10 +4585,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -5858,6 +5886,10 @@ end - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -5866,6 +5898,10 @@ end - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -5874,6 +5910,10 @@ end - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -5882,6 +5922,10 @@ end - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -5890,10 +5934,22 @@ end - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -6993,6 +7049,10 @@ end - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -7001,6 +7061,10 @@ end - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -7009,6 +7073,10 @@ end - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -7017,6 +7085,10 @@ end - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -7025,10 +7097,22 @@ end - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` @@ -8090,6 +8174,10 @@ end - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -8098,6 +8186,10 @@ end - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -8106,6 +8198,10 @@ end - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -8114,6 +8210,10 @@ end - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -8122,10 +8222,22 @@ end - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/messages/batches/create.md b/content/en/api/ruby/messages/batches/create.md index 07d36563a3..65d6ae556d 100644 --- a/content/en/api/ruby/messages/batches/create.md +++ b/content/en/api/ruby/messages/batches/create.md @@ -3101,7 +3101,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id: String` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id: String` (header parameter) diff --git a/content/en/api/ruby/messages/batches/results.md b/content/en/api/ruby/messages/batches/results.md index a9c15df502..60a39c43d3 100644 --- a/content/en/api/ruby/messages/batches/results.md +++ b/content/en/api/ruby/messages/batches/results.md @@ -744,6 +744,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -752,6 +756,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -760,6 +768,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -768,6 +780,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -776,10 +792,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/messages/count_tokens.md b/content/en/api/ruby/messages/count_tokens.md index c35163698f..1a60e5bb9a 100644 --- a/content/en/api/ruby/messages/count_tokens.md +++ b/content/en/api/ruby/messages/count_tokens.md @@ -2943,7 +2943,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) diff --git a/content/en/api/ruby/messages/create.md b/content/en/api/ruby/messages/create.md index b6737864ab..e15b69fa21 100644 --- a/content/en/api/ruby/messages/create.md +++ b/content/en/api/ruby/messages/create.md @@ -3045,7 +3045,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id: String` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id: String` (header parameter) @@ -3786,6 +3786,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :model_changed` - `cache_missed_input_tokens: Integer` @@ -3794,6 +3798,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :system_changed` - `cache_missed_input_tokens: Integer` @@ -3802,6 +3810,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :tools_changed` - `cache_missed_input_tokens: Integer` @@ -3810,6 +3822,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :messages_changed` - `cache_missed_input_tokens: Integer` @@ -3818,10 +3834,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `class CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :previous_message_not_found` - `class CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=ruby#cache-miss-reason-types) to learn what to change for each reason. + - `type: :unavailable` - `model: Model` diff --git a/content/en/api/ruby/models.md b/content/en/api/ruby/models.md index d1d3b38919..cc45578341 100644 --- a/content/en/api/ruby/models.md +++ b/content/en/api/ruby/models.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class ModelInfo` @@ -601,6 +603,8 @@ The Models API response can be used to determine information about a specific mo - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ### Returns - `class ModelInfo` diff --git a/content/en/api/ruby/models/list.md b/content/en/api/ruby/models/list.md index c35a5186b5..e75bb6b567 100644 --- a/content/en/api/ruby/models/list.md +++ b/content/en/api/ruby/models/list.md @@ -159,6 +159,8 @@ The Models API response can be used to determine which models are available for - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class ModelInfo` diff --git a/content/en/api/ruby/models/retrieve.md b/content/en/api/ruby/models/retrieve.md index f79588c315..ce9ed71f42 100644 --- a/content/en/api/ruby/models/retrieve.md +++ b/content/en/api/ruby/models/retrieve.md @@ -135,6 +135,8 @@ The Models API response can be used to determine information about a specific mo - `:"telemetry-destinations-2026-08-11"` + - `:"webhooks-2026-10-07"` + ## Returns - `class ModelInfo` diff --git a/content/en/api/typescript/beta.md b/content/en/api/typescript/beta.md index 18059dbec5..d9d2f6dc7e 100644 --- a/content/en/api/typescript/beta.md +++ b/content/en/api/typescript/beta.md @@ -9,7 +9,7 @@ url: https://platform.claude.com/docs/en/api/typescript/beta ### Anthropic Beta -- `type AnthropicBeta = (string & {}) | "message-batches-2024-09-24" | "prompt-caching-2024-07-31" | "computer-use-2024-10-22" | 48 more` +- `type AnthropicBeta = (string & {}) | "message-batches-2024-09-24" | "prompt-caching-2024-07-31" | "computer-use-2024-10-22" | 49 more` - `(string & {})` @@ -115,6 +115,8 @@ url: https://platform.claude.com/docs/en/api/typescript/beta - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Beta API Error - `interface BetaAPIError` @@ -589,6 +591,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1061,6 +1065,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5050,8 +5056,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -5100,7 +5120,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -5108,6 +5132,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -5587,9 +5617,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -8805,6 +8837,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8815,6 +8851,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8825,6 +8865,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8835,6 +8879,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8845,12 +8893,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -13894,9 +13954,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -17627,8 +17689,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -17677,7 +17753,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -17685,6 +17765,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -18208,9 +18294,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) @@ -18502,6 +18590,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -18793,6 +18883,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19082,6 +19174,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19363,6 +19457,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19536,6 +19632,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -22728,6 +22826,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -22738,6 +22840,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -22748,6 +22854,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -22758,6 +22868,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -22768,12 +22882,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -24592,6 +24718,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -25651,6 +25779,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -26697,6 +26827,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28683,6 +28815,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29720,6 +29854,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30768,6 +30904,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31924,6 +32062,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32263,6 +32403,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -32594,6 +32736,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33037,6 +33181,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33362,6 +33508,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33531,6 +33679,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -33862,6 +34012,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34127,6 +34279,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID"?: string` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -34374,6 +34528,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWork` @@ -34631,6 +34787,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWorkHeartbeatResponse` @@ -34828,6 +34986,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35091,6 +35251,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWork` @@ -35350,6 +35512,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -35602,6 +35766,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -36912,6 +37078,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -38484,6 +38652,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -39975,6 +40145,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -42041,6 +42213,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43527,6 +43701,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -43690,6 +43866,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -45304,6 +45482,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -48769,6 +48949,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -49392,6 +49574,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52543,6 +52727,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -52735,6 +52921,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53018,6 +53206,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53296,6 +53486,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53568,6 +53760,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -53758,6 +53952,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -54841,6 +55037,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -55919,6 +56117,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -57005,6 +57205,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -60119,6 +60321,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -63657,6 +63861,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -64433,6 +64639,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -65170,6 +65378,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -66303,6 +66513,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67036,6 +67248,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -67769,6 +67983,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68164,6 +68380,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -68897,6 +69115,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -69682,6 +69902,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70081,6 +70303,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70484,6 +70708,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70694,6 +70920,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -70898,6 +71126,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71108,6 +71338,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71306,6 +71538,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71473,6 +71707,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -71851,6 +72087,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72195,6 +72433,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72528,6 +72768,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -72996,6 +73238,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73324,6 +73568,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73496,6 +73742,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73824,6 +74072,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -73980,13 +74230,13 @@ console.log(betaManagedAgentsCredentialValidation.credential_id); ## Beta › Memory Stores -### Create a memory store +### Create a Memory Store `client.beta.memoryStores.create(params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store #### Parameters @@ -73994,19 +74244,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description?: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata?: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?: Array` (header parameter) @@ -74116,6 +74372,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74132,27 +74390,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74160,7 +74424,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74195,13 +74461,13 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -### List memory stores +### List Memory Stores `client.beta.memoryStores.list(params?, options?): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores #### Parameters @@ -74209,13 +74475,13 @@ List memory stores - `"created_at[gte]"?: string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]"?: string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -74231,7 +74497,7 @@ List memory stores - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?: Array` (header parameter) @@ -74341,6 +74607,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74357,27 +74625,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74385,7 +74659,9 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74424,19 +74700,19 @@ for await (const betaManagedAgentsMemoryStore of client.beta.memoryStores.list() } ``` -### Retrieve a memory store +### Retrieve a Memory Store `client.beta.memoryStores.retrieve(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `params: MemoryStoreRetrieveParams` @@ -74548,6 +74824,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74564,27 +74842,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74592,7 +74876,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74629,35 +74915,41 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -### Update a memory store +### Update a Memory Store `client.beta.memoryStores.update(memoryStoreID, params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params: MemoryStoreUpdateParams` - `description?: string | null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata?: Record | null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?: string | null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -74769,6 +75061,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -74785,27 +75079,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -74813,7 +75113,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -74848,19 +75150,21 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -### Delete a memory store +### Delete a Memory Store `client.beta.memoryStores.delete(memoryStoreID, params?, options?): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `params: MemoryStoreDeleteParams` @@ -74972,6 +75276,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75015,19 +75321,21 @@ console.log(betaManagedAgentsDeletedMemoryStore.id); } ``` -### Archive a memory store +### Archive a Memory Store `client.beta.memoryStores.archive(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store #### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `params: MemoryStoreArchiveParams` @@ -75139,6 +75447,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75155,27 +75465,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -75183,7 +75499,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -75220,13 +75538,13 @@ console.log(betaManagedAgentsMemoryStore.id); ## Beta › Memory Stores › Memories -### Create a memory +### Create a Memory `client.beta.memoryStores.memories.create(memoryStoreID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -75238,17 +75556,23 @@ Create a memory - `content: string | null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75366,6 +75690,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75376,13 +75702,19 @@ Create a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -75390,7 +75722,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75406,7 +75738,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -75414,13 +75750,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75456,13 +75796,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### List memories +### List Memories `client.beta.memoryStores.memories.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -75474,27 +75814,35 @@ List memories - `depth?: number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit?: number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix?: string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -75612,6 +75960,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75622,17 +75972,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -75640,7 +75996,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75656,7 +76012,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -75664,17 +76024,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -75721,13 +76087,13 @@ for await (const betaManagedAgentsMemoryListItem of client.beta.memoryStores.mem } ``` -### Retrieve a memory +### Retrieve a Memory `client.beta.memoryStores.memories.retrieve(memoryID, params, options?): BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -75743,7 +76109,9 @@ Retrieve a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75861,6 +76229,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -75871,13 +76241,19 @@ Retrieve a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -75885,7 +76261,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -75901,7 +76277,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -75909,13 +76289,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -75950,13 +76334,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### Update a memory +### Update a Memory `client.beta.memoryStores.memories.update(memoryID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -75972,7 +76356,9 @@ Update a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -75988,13 +76374,17 @@ Update a memory - `path?: string | null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition?: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -76110,6 +76500,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76120,13 +76512,19 @@ Update a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -76134,7 +76532,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -76150,7 +76548,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -76158,13 +76560,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -76199,13 +76605,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### Delete a memory +### Delete a Memory `client.beta.memoryStores.memories.delete(memoryID, params, options?): BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -76333,6 +76739,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76343,7 +76751,11 @@ Delete a memory - `interface BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -76379,13 +76791,13 @@ console.log(betaManagedAgentsDeletedMemory.id); ## Beta › Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `client.beta.memoryStores.memoryVersions.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -76413,7 +76825,9 @@ List memory versions - `limit?: number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -76421,7 +76835,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -76453,7 +76867,9 @@ List memory versions - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76571,6 +76987,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76581,7 +76999,13 @@ List memory versions - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -76597,7 +77021,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -76635,7 +77061,11 @@ List memory versions - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -76691,7 +77121,11 @@ List memory versions - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -76747,13 +77181,13 @@ for await (const betaManagedAgentsMemoryVersion of client.beta.memoryStores.memo } ``` -### Retrieve a memory version +### Retrieve a Memory Version `client.beta.memoryStores.memoryVersions.retrieve(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -76769,7 +77203,9 @@ Retrieve a memory version - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -76887,6 +77323,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -76897,7 +77335,13 @@ Retrieve a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -76913,7 +77357,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -76951,7 +77397,11 @@ Retrieve a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -77007,7 +77457,11 @@ Retrieve a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -77058,13 +77512,13 @@ console.log(betaManagedAgentsMemoryVersion.id); } ``` -### Redact a memory version +### Redact a Memory Version `client.beta.memoryStores.memoryVersions.redact(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -77186,6 +77640,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77196,7 +77652,13 @@ Redact a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -77212,7 +77674,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -77250,7 +77714,11 @@ Redact a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -77306,7 +77774,11 @@ Redact a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -77491,6 +77963,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77737,6 +78211,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -77970,6 +78446,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78121,6 +78599,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78348,6 +78828,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78527,6 +79009,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -78778,6 +79262,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79016,6 +79502,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79248,6 +79736,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79429,6 +79919,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79644,6 +80136,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -79857,6 +80351,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80018,6 +80514,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80227,6 +80725,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80303,13 +80803,13 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -80369,7 +80869,7 @@ Create User Profile - `external_user_onboarded_at?: string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -80385,7 +80885,7 @@ Create User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -80491,6 +80991,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80523,6 +81025,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80539,13 +81045,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -80557,11 +81063,11 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -80615,14 +81121,10 @@ Create User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```typescript @@ -80644,6 +81146,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80655,15 +81158,14 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -80717,7 +81219,7 @@ List User Profiles - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -80823,6 +81325,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -80855,6 +81359,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -80871,13 +81379,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -80889,11 +81397,11 @@ List User Profiles - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -80947,14 +81455,10 @@ List User Profiles - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```typescript @@ -80979,6 +81483,7 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -80990,15 +81495,14 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -81023,7 +81527,7 @@ Get User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -81129,6 +81633,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81161,6 +81667,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81177,13 +81687,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81195,11 +81705,11 @@ Get User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -81253,14 +81763,10 @@ Get User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```typescript @@ -81284,6 +81790,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81295,15 +81802,14 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -81337,13 +81843,13 @@ Update User Profile - `external_id?: string | null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -81403,7 +81909,7 @@ Update User Profile - `external_user_onboarded_at?: string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -81419,7 +81925,7 @@ Update User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -81525,6 +82031,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81557,6 +82065,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -81573,13 +82085,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -81591,11 +82103,11 @@ Update User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -81649,14 +82161,10 @@ Update User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - #### Example ```typescript @@ -81680,6 +82188,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -81691,37 +82200,36 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` -### Create Enrollment URL +### Delete User Profile -`client.beta.userProfiles.createEnrollmentURL(userProfileID, params?, options?): BetaUserProfileEnrollmentURL` +`client.beta.userProfiles.delete(userProfileID, params?, options?): BetaDeletedUserProfile` -**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` +**DELETE** `/v1/user_profiles/{user_profile_id}` -Create Enrollment URL +Delete User Profile #### Parameters - `userProfileID: string` (path parameter) - The ID of the user profile to create an enrollment URL for (`uprof_...`). + The ID of the user profile to delete (`uprof_...`). -- `params: UserProfileCreateEnrollmentURLParams` +- `params: UserProfileDeleteParams` - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -81827,6 +82335,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -81835,23 +82345,15 @@ Create Enrollment URL #### Returns -- `interface BetaUserProfileEnrollmentURL` - - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. - - - `type: "enrollment_url"` - - Object type. Always `enrollment_url`. - - - `expires_at: string` +- `interface BetaDeletedUserProfile` - When this enrollment URL expires, in RFC 3339 format. + - `type: "user_profile_deleted"` - format: date-time + Object type. Always `user_profile_deleted`. - - `url: string` + - `id: string` - Enrollment URL to send to the end user. Valid until `expires_at`. + Identifier of the deleted user profile, prefixed `uprof_`. #### Example @@ -81862,146 +82364,227 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -const betaUserProfileEnrollmentURL = await client.beta.userProfiles.createEnrollmentURL( +const betaDeletedUserProfile = await client.beta.userProfiles.delete( "uprof_011CZkZCu8hGbp5mYRQgUmz9" ); -console.log(betaUserProfileEnrollmentURL.expires_at); +console.log(betaDeletedUserProfile.id); ``` ##### Response (200) ```json { - "expires_at": "2026-03-15T10:15:00Z", - "type": "enrollment_url", - "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` -## Beta › Dreams +### Create Enrollment URL -### Create a Dream +`client.beta.userProfiles.createEnrollmentURL(userProfileID, params?, options?): BetaUserProfileEnrollmentURL` -`client.beta.dreams.create(params, options?): BetaDream` +**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url` -**POST** `/v1/dreams` +Create Enrollment URL -Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. +#### Parameters -By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. +- `userProfileID: string` (path parameter) -See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#create-a-dream) to learn more about creating dreams. + The ID of the user profile to create an enrollment URL for (`uprof_...`). -#### Parameters +- `params: UserProfileCreateEnrollmentURLParams` -- `params: DreamCreateParams` + - `betas?: Array` (header parameter) - - `inputs: Array` + Optional header to specify the beta version(s) you want to use. - The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. + - `(string & {})` - - `interface BetaDreamMemoryStoreInput` + - `"message-batches-2024-09-24"` - The memory store that a dream reads, given as an entry in `inputs`. + - `"prompt-caching-2024-07-31"` - With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + - `"computer-use-2024-10-22"` - - `type: "memory_store"` + - `"computer-use-2025-01-24"` - - `memory_store_id: string` + - `"pdfs-2024-09-25"` - The ID of the memory store for the dream to read (`memstore_...`). + - `"token-counting-2024-11-01"` - The memory store must be in the same workspace as the dream and must not be archived. + - `"token-efficient-tools-2025-02-19"` - minLength: 1 + - `"output-128k-2025-02-19"` - - `interface BetaDreamSessionsInput` + - `"files-api-2025-04-14"` - The sessions that a dream reads, given as an entry in `inputs`. + - `"mcp-client-2025-04-04"` - - `type: "sessions"` + - `"mcp-client-2025-11-20"` - - `session_ids: Array` + - `"dev-full-thinking-2025-05-14"` - The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + - `"interleaved-thinking-2025-05-14"` - Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + - `"code-execution-2025-05-22"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists all the limits on a dream. + - `"extended-cache-ttl-2025-04-11"` - - `model: string | BetaDreamModelConfigParam` + - `"context-1m-2025-08-07"` - The model that runs a dream, given as a model ID or as an object with `id` and `speed`. + - `"context-management-2025-06-27"` - In the object form, `speed` can only be `standard`. + - `"model-context-window-exceeded-2025-08-26"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists the supported models. + - `"skills-2025-10-02"` - - `string` + - `"fast-mode-2026-02-01"` - - `interface BetaDreamModelConfigParam` + - `"output-300k-2026-03-24"` - The object form of `model` in a request to create a dream. + - `"user-profiles-2026-03-24"` - - `id: string` + - `"user-profiles-2026-08-18"` - The ID of the model to run the dream with. + - `"user-profiles-2026-09-04"` - The ID can be 1 to 256 characters long. + - `"advisor-tool-2026-03-01"` - The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists the supported models. + - `"managed-agents-2026-04-01"` - minLength: 1, maxLength: 256 + - `"cache-diagnosis-2026-04-07"` - - `speed?: "standard" | "fast" | null` + - `"dreaming-2026-04-21"` - How fast the model generates output for the dream. Defaults to `standard`. + - `"thinking-token-count-2026-05-13"` - Dreams accept only `standard`. + - `"server-side-fallback-2026-06-01"` - - `"standard"` + - `"server-side-fallback-2026-07-01"` - - `"fast"` + - `"fallback-credit-2026-06-01"` - - `instructions?: string | null` + - `"fallback-credit-2026-07-01"` - Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. + - `"agent-memory-2026-07-22"` - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#steer-with-instructions) for what kinds of instructions work well. + - `"mid-conversation-tool-changes-2026-07-01"` - minLength: 1, maxLength: 4096 + - `"compact-2026-01-12"` - - `output_behavior?: BetaOutputBehavior` + - `"computer-use-2025-11-24"` - Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. + - `"mcp-tunnels-2026-06-22"` - - `interface BetaOutputBehaviorCreateNew` + - `"structured-outputs-2025-11-13"` - Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + - `"task-budgets-2026-03-13"` - The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + - `"thinking-display-updates-2026-08-18"` - - `type: "create_new"` + - `"ce-user-management-2026-07-13"` - - `interface BetaOutputBehaviorUpdateExisting` + - `"mid-conversation-output-config-2026-07-01"` - Write the result into the input memory store instead of a new memory store. + - `"thinking-binding-controls-2026-08-01"` - The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + - `"mid-conversation-system-clear-at-2026-08-21"` - - `type: "update_existing"` + - `"compact-2026-09-04"` - - `memory_store_id: string` + - `"inline-tools-2026-09-15"` - The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + - `"mcp-client-2026-09-15"` - minLength: 1 + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + + - `workspace_id?: string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `interface BetaUserProfileEnrollmentURL` + + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. + + - `type: "enrollment_url"` + + Object type. Always `enrollment_url`. + + - `expires_at: string` + + When this enrollment URL expires, in RFC 3339 format. + + format: date-time + + - `url: string` + + Enrollment URL to send to the end user. Valid until `expires_at`. + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaUserProfileEnrollmentURL = await client.beta.userProfiles.createEnrollmentURL( + "uprof_011CZkZCu8hGbp5mYRQgUmz9" +); + +console.log(betaUserProfileEnrollmentURL.expires_at); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "enrollment_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + +## Beta › User Profiles › Action URLs + +### Create Action URL + +`client.beta.userProfiles.actionURLs.create(userProfileID, params, options?): BetaUserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `params: ActionURLCreateParams` + + - `action: BetaUserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes. + + - `type: "enroll_end_user"` - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -82107,6 +82690,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82115,59 +82700,342 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams #### Returns -- `interface BetaDream` +- `interface BetaUserProfileActionURL` - An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + A URL to give to the person who takes the requested action. - By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + - `type: "user_profile_action_url"` - The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + Object type. Always `user_profile_action_url`. - See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#how-it-works) for what a dream reads and produces. + - `expires_at: string` - - `type: "dream"` + When the URL stops working, in RFC 3339 format. - - `id: string` + format: date-time - The unique ID of the dream (`drm_...`). + - `url: string` - - `archived_at: string | null` + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. - When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. +#### Example - format: date-time +```typescript +import Anthropic from "@anthropic-ai/sdk"; - - `created_at: string` +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); - When the dream was created, in RFC 3339. +const betaUserProfileActionURL = await client.beta.userProfiles.actionURLs.create( + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + { action: { type: "enroll_end_user" } } +); - Lists of dreams are sorted by this time, newest first. +console.log(betaUserProfileActionURL.expires_at); +``` - format: date-time +##### Response (200) - - `ended_at: string | null` +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` - When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. +## Beta › Dreams - format: date-time +### Create a Dream - - `error: BetaDreamError | null` +`client.beta.dreams.create(params, options?): BetaDream` - Why the dream failed, or `null` if `status` isn't `failed`. +**POST** `/v1/dreams` - - `type: string` +Start an asynchronous job that uses past sessions to produce a reorganized version of a memory store and get back the dream to poll for the result. - A code for why the dream failed, such as `timeout` or `internal_error`. +By default the dream writes its result to a new memory store and doesn't change the input memory store. The response has `status` set to `pending` and an empty `outputs` array. Poll the dream until `status` is `completed`, `failed`, or `canceled`. - The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#errors) lists common error codes and when they occur. +See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#create-a-dream) to learn more about creating dreams. - - `message: string` +#### Parameters - A human-readable explanation of why the dream failed. +- `params: DreamCreateParams` - `inputs: Array` - The sources that the dream reads, from the request that created it. + The memory store and sessions for the dream to read, as exactly one `memory_store` entry and exactly one `sessions` entry. + + - `interface BetaDreamMemoryStoreInput` + + The memory store that a dream reads, given as an entry in `inputs`. + + With `output_behavior` set to `update_existing`, the dream writes its result into this memory store. Otherwise the dream doesn't change it. + + - `type: "memory_store"` + + - `memory_store_id: string` + + The ID of the memory store for the dream to read (`memstore_...`). + + The memory store must be in the same workspace as the dream and must not be archived. + + minLength: 1 + + - `interface BetaDreamSessionsInput` + + The sessions that a dream reads, given as an entry in `inputs`. + + - `type: "sessions"` + + - `session_ids: Array` + + The IDs of the sessions whose transcripts the dream reads (`sesn_...`). + + Give 1 to 100 IDs, with no duplicates. Each session must be in the same workspace as the dream. Responses list the IDs in sorted order. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists all the limits on a dream. + + - `model: string | BetaDreamModelConfigParam` + + The model that runs a dream, given as a model ID or as an object with `id` and `speed`. + + In the object form, `speed` can only be `standard`. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists the supported models. + + - `string` + + - `interface BetaDreamModelConfigParam` + + The object form of `model` in a request to create a dream. + + - `id: string` + + The ID of the model to run the dream with. + + The ID can be 1 to 256 characters long. + + The [limits table in the Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#limits) lists the supported models. + + minLength: 1, maxLength: 256 + + - `speed?: "standard" | "fast" | null` + + How fast the model generates output for the dream. Defaults to `standard`. + + Dreams accept only `standard`. + + - `"standard"` + + - `"fast"` + + - `instructions?: string | null` + + Guidance that steers how the dream reads the sessions and organizes the output memory store, from 1 to 4,096 characters. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#steer-with-instructions) for what kinds of instructions work well. + + minLength: 1, maxLength: 4096 + + - `output_behavior?: BetaOutputBehavior` + + Which memory store a dream writes its result to. Defaults to `create_new` when left out of a create request. + + - `interface BetaOutputBehaviorCreateNew` + + Write the result to a new memory store that starts as a copy of the input memory store. This is the default. + + The new memory store is in the same workspace as the dream. The dream doesn't change the input memory store. + + - `type: "create_new"` + + - `interface BetaOutputBehaviorUpdateExisting` + + Write the result into the input memory store instead of a new memory store. + + The credential must be allowed to write memory stores, or the request returns a 403 error. While another `update_existing` dream on the same memory store hasn't fully stopped, the request returns a 409 error. + + - `type: "update_existing"` + + - `memory_store_id: string` + + The ID of the memory store for the dream to write its result to (`memstore_...`). It must be the memory store in the `memory_store` entry of `inputs`. + + minLength: 1 + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `dreaming-2026-04-21` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + + - `workspace_id?: string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `interface BetaDream` + + An asynchronous job that reads a memory store and past sessions, then writes a reorganized version of that memory store. + + By default the dream writes its result to a new memory store and doesn't change the input memory store. With `output_behavior` set to `update_existing`, it writes its result into the input memory store instead. + + The Dreams API is in research preview: the request and response shapes are volatile and may change without the deprecation period that applies to generally-available endpoints. + + See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#how-it-works) for what a dream reads and produces. + + - `type: "dream"` + + - `id: string` + + The unique ID of the dream (`drm_...`). + + - `archived_at: string | null` + + When the dream was archived, in RFC 3339, or `null` if it hasn't been archived. + + format: date-time + + - `created_at: string` + + When the dream was created, in RFC 3339. + + Lists of dreams are sorted by this time, newest first. + + format: date-time + + - `ended_at: string | null` + + When the dream reached `completed`, `failed`, or `canceled`, in RFC 3339, or `null` if it is still `pending` or `running`. + + format: date-time + + - `error: BetaDreamError | null` + + Why the dream failed, or `null` if `status` isn't `failed`. + + - `type: string` + + A code for why the dream failed, such as `timeout` or `internal_error`. + + The [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams?sdk_languages=typescript#errors) lists common error codes and when they occur. + + - `message: string` + + A human-readable explanation of why the dream failed. + + - `inputs: Array` + + The sources that the dream reads, from the request that created it. - `interface BetaDreamMemoryStoreInput` @@ -82584,6 +83452,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83006,6 +83876,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83422,6 +84294,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83838,6 +84712,8 @@ See the [Dreams guide](https://platform.claude.com/docs/en/managed-agents/dreams - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84256,6 +85132,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84447,6 +85325,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84648,6 +85528,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -84845,6 +85727,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85036,6 +85920,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85214,6 +86100,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85394,6 +86282,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85598,6 +86488,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -85813,6 +86705,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -86021,6 +86915,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -87850,6 +88746,8 @@ matched as the JWT's `iss` claim and is not fetched. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationIssuer` @@ -88174,6 +89072,8 @@ Archived issuers are excluded unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationIssuer` @@ -88489,6 +89389,8 @@ Retrieve a federation issuer by its ID (`fdis_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationIssuer` @@ -88883,6 +89785,8 @@ session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationIssuer` @@ -89199,6 +90103,8 @@ issuer cannot be changed), or recreate them against another issuer. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationIssuer` @@ -89602,6 +90508,8 @@ manage rules whose `oauth_scope` is `workspace:developer` or - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRule` @@ -89940,6 +90848,8 @@ unless `include_archived=true`. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRule` @@ -90261,6 +91171,8 @@ Retrieve a federation rule by its ID (`fdrl_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRule` @@ -90670,6 +91582,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRule` @@ -90995,6 +91909,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRule` @@ -91327,6 +92243,8 @@ other scopes require a Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRuleWorkspace` @@ -91529,6 +92447,8 @@ rules with `applies_to_all_workspaces` or a legacy single - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaFederationRuleWorkspace` @@ -91729,6 +92649,8 @@ Console session. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface WorkspaceRemoveResponse` @@ -92420,6 +93342,8 @@ accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccount` @@ -92657,6 +93581,8 @@ archived service accounts. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccount` @@ -92884,6 +93810,8 @@ Retrieve a service account by its ID (`svac_...`). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccount` @@ -93126,6 +94054,8 @@ interactive credential (a user OAuth token or a Console session). - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccount` @@ -93354,6 +94284,8 @@ those rules first or change their target to another service account. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccount` @@ -93602,6 +94534,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -93821,6 +94755,8 @@ page to recover. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -94032,6 +94968,8 @@ to the implicit `workspace_user` membership. Archived workspaces return - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface WorkspaceRemoveResponse` @@ -94821,6 +95759,8 @@ Create Workspace - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaWorkspace` @@ -95718,6 +96658,272 @@ for await (const betaWorkspaceRateLimit of client.beta.organization.workspaces.r } ``` +### Set Workspace Rate Limits + +`client.beta.organization.workspaces.rateLimits.update(rateLimitID, params, options?): BetaWorkspaceRateLimit` + +**POST** `/v1/organizations/workspaces/{workspace_id}/rate_limits/{rate_limit_id}` + +Set or clear rate-limit overrides for one rate-limit group in a workspace. + +Only the limiter types named in `limits` change: an integer `value` sets +that type's override and `null` clears it. Types not named keep their +current value. A value above the organization's own limit is stored, but +the organization limit still applies, so the lower of the two is +enforced. + +Returns the targeted group's entry with this request applied, in the shape +`GET /v1/organizations/workspaces/{workspace_id}/rate_limits` returns. +Changes take effect within about an hour. + +#### Parameters + +- `rateLimitID: string` (path parameter) + + The `id` of the organization's rate-limit entry to set overrides for. + +- `params: RateLimitUpdateParams` + + - `workspace_id: string` (path parameter) + + The ID of the workspace. + + - `limits: Array` + + Limits to set or clear. Unspecified limit types are unchanged. + + minItems: 1, maxItems: 16 + + - `type: BetaWorkspaceRateLimitType` + + Rate limiter type. + + - `"fast_itpmca"` + + - `"fast_otpm"` + + - `"input_tokens_per_minute"` + + - `"input_tokens_per_minute_cache_aware"` + + - `"output_tokens_per_minute"` + + - `"requests_per_minute"` + + - `"tokens_per_day"` + + - `"tokens_per_minute"` + + - `"tool_uses_per_second"` + + - `value: number | null` + + New limit value. Set to null to clear the workspace override and fall back to the organization limit. + + minimum: 0, maximum: 9007199254740991 + +#### Returns + +- `interface BetaWorkspaceRateLimit` + + - `type: "workspace_rate_limit"` + + Object type. Always `workspace_rate_limit` for workspace rate-limit entries. + + default: workspace_rate_limit + + - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` + + The rate-limit group this entry's limits apply to. Its `type` equals `group_type`. + + - `interface BetaOrganizationRateLimitModelGroup` + + - `type: "model_group"` + + Always `model_group`: a family of models. + + default: model_group + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `display_name: string` + + Human-readable name of the model group (for example, `Claude Sonnet 4.x`). For display only; it may change. + + - `interface BetaOrganizationRateLimitBatchGroup` + + - `type: "batch"` + + Always `batch`: the Message Batches API. + + default: batch + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `interface BetaOrganizationRateLimitTokenCountGroup` + + - `type: "token_count"` + + Always `token_count`: the Token Count API. + + default: token_count + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `interface BetaOrganizationRateLimitFilesGroup` + + - `type: "files"` + + Always `files`: the Files API. + + default: files + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `interface BetaOrganizationRateLimitSkillsGroup` + + - `type: "skills"` + + Always `skills`: the Skills API. + + default: skills + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `interface BetaOrganizationRateLimitWebSearchGroup` + + - `type: "web_search"` + + Always `web_search`: the Messages API web search tool. + + default: web_search + + - `id: string` + + Opaque identifier of the rate-limit group (for example, `rlg_01VPTCmyiu5ZLsWkcxYG2pY8`). It is the same in every organization and never changes, unlike the entry's own identifier, which differs per organization. + + - `limits: Array` + + The workspace's limiter values for this group. By default only the limiter types with a workspace-level override are listed. With `include_inherited` set to `true`, the limiter types the workspace inherits from the organization are listed too, each marked by `source`. + + - `type: string` + + The limiter type (for example, `requests_per_minute` or `input_tokens_per_minute`). + + - `org_limit: number | null` + + The organization-level value for the same limiter type, for reference. `null` when the organization has no limit configured for this limiter type. + + - `source: BetaWorkspaceRateLimitWorkspaceSource | BetaWorkspaceRateLimitOrganizationSource` + + Where `value` comes from. `organization` values are listed only when `include_inherited` is `true`, and then `value` equals `org_limit`. + + - `interface BetaWorkspaceRateLimitWorkspaceSource` + + - `type: "workspace"` + + Always `workspace`: a workspace-level override is stored. + + default: workspace + + - `interface BetaWorkspaceRateLimitOrganizationSource` + + - `type: "organization"` + + Always `organization`: no workspace-level override is stored, so the organization's value applies. + + default: organization + + - `value: number` + + The workspace's value for this limiter type: the workspace-level override when `source.type` is `workspace`, otherwise the organization's value. + + - `models: Array | null` + + Model names this entry's limits apply to, including aliases. `null` when `group_type` is not `"model_group"`. + + - `rate_limit_id: string` + + The `id` of the organization's RateLimit entry this entry applies to. + + - `workspace_id: string` + + ID of the Workspace this entry applies to. + + - `group_type: "batch" | "files" | "model_group" | 3 more` + + **Deprecated**: Use `group.type` instead. `group_type` is still returned and always equals `group.type`. + + Deprecated: use `group.type` instead. The kind of rate-limit group this entry represents. `model_group` entries apply to a family of models (listed in `models`); other values apply to an API-surface category and have `models` set to `null`. Always equal to `group.type`. + + - `"batch"` + + - `"files"` + + - `"model_group"` + + - `"skills"` + + - `"token_count"` + + - `"web_search"` + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaWorkspaceRateLimit = await client.beta.organization.workspaces.rateLimits.update( + "rate_limit_id", + { workspace_id: "workspace_id", limits: [{ type: "fast_itpmca", value: 0 }] } +); + +console.log(betaWorkspaceRateLimit.rate_limit_id); +``` + +##### Response (200) + +```json +{ + "group": { + "id": "id", + "display_name": "display_name", + "type": "model_group" + }, + "group_type": "batch", + "limits": [ + { + "org_limit": 0, + "source": { + "type": "workspace" + }, + "type": "type", + "value": 0 + } + ], + "models": [ + "string" + ], + "rate_limit_id": "rate_limit_id", + "type": "workspace_rate_limit", + "workspace_id": "workspace_id" +} +``` + ## Beta › Organization › Workspaces › Members ### List Workspace Members @@ -96304,6 +97510,8 @@ omitted from the results. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -96528,6 +97736,8 @@ accounts cannot be added and are rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -96734,6 +97944,8 @@ account returns 404. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -96951,6 +98163,8 @@ rejected. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaServiceAccountWorkspaceMember` @@ -97156,6 +98370,8 @@ membership. Archived workspaces return 400. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface ServiceAccountRemoveResponse` @@ -97265,7 +98481,7 @@ the remaining entries. - `id: string` - Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. + Identifier of this rate-limit entry. It is stable within the organization and differs between organizations; the group's own identifier is `group.id`. Pass it as `rate_limit_id` to set a workspace's overrides for this group. - `group: BetaOrganizationRateLimitModelGroup | BetaOrganizationRateLimitBatchGroup | BetaOrganizationRateLimitTokenCountGroup | 3 more` @@ -99662,7 +100878,7 @@ for await (const betaAnalyticsArtifactActivity of client.beta.organization.analy ### Get Token Usage Over Time -`client.beta.organization.analytics.usageReport.list(query, options?): PageCursor` +`client.beta.organization.analytics.usageReport.list(query, options?): ReportPageCursor` **GET** `/v1/organizations/analytics/usage_report` @@ -100013,7 +101229,7 @@ for await (const betaAnalyticsUsageReportTimeBucket of client.beta.organization. ### Get Per-User Token Usage -`client.beta.organization.analytics.userUsageReport.list(query, options?): PageCursor` +`client.beta.organization.analytics.userUsageReport.list(query, options?): ReportPageCursor` **GET** `/v1/organizations/analytics/user_usage_report` @@ -100420,7 +101636,7 @@ for await (const betaAnalyticsUsageUsersItem of client.beta.organization.analyti ### Get Cost Over Time -`client.beta.organization.analytics.costReport.list(query, options?): PageCursor` +`client.beta.organization.analytics.costReport.list(query, options?): ReportPageCursor` **GET** `/v1/organizations/analytics/cost_report` @@ -100772,7 +101988,7 @@ for await (const betaAnalyticsCostReportTimeBucket of client.beta.organization.a ### Get Per-User Cost -`client.beta.organization.analytics.userCostReport.list(query, options?): PageCursor` +`client.beta.organization.analytics.userCostReport.list(query, options?): ReportPageCursor` **GET** `/v1/organizations/analytics/user_cost_report` @@ -101347,6 +102563,8 @@ Anthropic account team. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSpendLimit` @@ -101889,6 +103107,8 @@ organizations only, not for Claude Console organizations. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSpendLimit` @@ -104907,6 +106127,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPlugin` @@ -105299,6 +106521,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPlugin` @@ -105709,6 +106933,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPlugin` @@ -106157,6 +107383,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPlugin` @@ -106560,6 +107788,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaDeletedPlugin` @@ -106756,6 +107986,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginVersion` @@ -107094,6 +108326,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginVersion` @@ -107425,6 +108659,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginVersion` @@ -107766,6 +109002,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `type unnamed_schema_3 = Response` @@ -107950,276 +109188,280 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `interface BetaPluginInstallationSetting` - - The installation setting an organization-owned Plugin holds for one - target. It has no ID of its own: it is addressed by the Plugin's ID and the - target. - - - `type: "plugin_installation_setting"` - - Always `plugin_installation_setting`. - - default: plugin_installation_setting - - - `created_at: string` - - When the target was first given a setting for this Plugin. - - format: date-time - - - `installation_preference: "auto_install" | "available" | "not_available" | "required"` - - The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` - - - `plugin_id: string` - - The Plugin's ID. - - - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` - - Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. - - - `interface BetaPluginTargetOrganization` - - - `type: "organization"` - - Every member of the organization. - - default: organization - - - `interface BetaPluginTargetRBACGroup` - - - `type: "rbac_group"` - - An RBAC Group. - - default: rbac_group - - - `rbac_group_id: string` - - The RBAC Group's ID. - - - `interface BetaPluginTargetOrganizationMember` - - - `type: "organization_member"` - - One member of the organization. - - default: organization_member - - - `user_id: string` - - The member's User ID. - - - `updated_at: string` - - When its setting last changed. - - format: date-time - -#### Example - -```typescript -import Anthropic from "@anthropic-ai/sdk"; - -const client = new Anthropic({ - apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted -}); - -// Automatically fetches more pages as needed. -for await (const betaPluginInstallationSetting of client.beta.organization.plugins.installationSettings.list( - "plugin_id" -)) { - console.log(betaPluginInstallationSetting.plugin_id); -} -``` - -##### Response (200) - -```json -{ - "data": [ - { - "created_at": "2026-03-14T09:26:53.589793Z", - "installation_preference": "required", - "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", - "target": { - "type": "organization" - }, - "type": "plugin_installation_setting", - "updated_at": "2026-03-14T09:26:53.589793Z" - } - ], - "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" -} -``` - -### Set Plugin Installation Setting - -`client.beta.organization.plugins.installationSettings.set(target, params, options?): BetaPluginInstallationSetting` - -**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` - -Set or change an organization-owned Plugin's installation setting for the whole -organization or for one RBAC Group. - -Writing the value a target already holds of its own changes nothing. - -A member-owned Plugin has shares instead of installation settings, so this path -returns 404 for one. - -Send a Plugin's installation-setting writes one at a time. If several writes for the -same Plugin arrive at the same time, the server handles them one after another and -can answer some of them with `503` instead of applying them. That `503` carries -`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then -send it again. - -**Accepted credentials:** an Admin API key with the `write:plugins` scope. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `target: string` (path parameter) - - The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. - -- `params: InstallationSettingSetParams` - - - `plugin_id: string` (path parameter) - - ID of the Plugin (prefixed `plugin_`). - - - `installation_preference: "auto_install" | "available" | "not_available" | "required"` - - The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. - - - `"auto_install"` - - - `"available"` - - - `"not_available"` - - - `"required"` - - - `betas?: Array` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `(string & {})` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaPluginInstallationSetting` + + The installation setting an organization-owned Plugin holds for one + target. It has no ID of its own: it is addressed by the Plugin's ID and the + target. + + - `type: "plugin_installation_setting"` + + Always `plugin_installation_setting`. + + default: plugin_installation_setting + + - `created_at: string` + + When the target was first given a setting for this Plugin. + + format: date-time + + - `installation_preference: "auto_install" | "available" | "not_available" | "required"` + + The setting the target holds for this Plugin. One of `required`, `auto_install`, `available`, `not_available`; a value this API does not yet name is returned as stored. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` + + - `plugin_id: string` + + The Plugin's ID. + + - `target: BetaPluginTargetOrganization | BetaPluginTargetRBACGroup | BetaPluginTargetOrganizationMember` + + Whose setting this is: `organization` (the Plugin's own organization-wide setting) or `rbac_group` (one RBAC Group's own setting); `organization_member` does not occur here. + + - `interface BetaPluginTargetOrganization` + + - `type: "organization"` + + Every member of the organization. + + default: organization + + - `interface BetaPluginTargetRBACGroup` + + - `type: "rbac_group"` + + An RBAC Group. + + default: rbac_group + + - `rbac_group_id: string` + + The RBAC Group's ID. + + - `interface BetaPluginTargetOrganizationMember` + + - `type: "organization_member"` + + One member of the organization. + + default: organization_member + + - `user_id: string` + + The member's User ID. + + - `updated_at: string` + + When its setting last changed. + + format: date-time + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +// Automatically fetches more pages as needed. +for await (const betaPluginInstallationSetting of client.beta.organization.plugins.installationSettings.list( + "plugin_id" +)) { + console.log(betaPluginInstallationSetting.plugin_id); +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2026-03-14T09:26:53.589793Z", + "installation_preference": "required", + "plugin_id": "plugin_01JyHfbRkZvD1gW7oTqXc3Ne", + "target": { + "type": "organization" + }, + "type": "plugin_installation_setting", + "updated_at": "2026-03-14T09:26:53.589793Z" + } + ], + "next_page": "page_MjAyNi0wOS0xNlQxNDowNTowOVo" +} +``` + +### Set Plugin Installation Setting + +`client.beta.organization.plugins.installationSettings.set(target, params, options?): BetaPluginInstallationSetting` + +**POST** `/v1/organizations/plugins/{plugin_id}/installation_settings/{target}` + +Set or change an organization-owned Plugin's installation setting for the whole +organization or for one RBAC Group. + +Writing the value a target already holds of its own changes nothing. + +A member-owned Plugin has shares instead of installation settings, so this path +returns 404 for one. + +Send a Plugin's installation-setting writes one at a time. If several writes for the +same Plugin arrive at the same time, the server handles them one after another and +can answer some of them with `503` instead of applying them. That `503` carries +`x-should-retry: true`, and the write is safe to repeat: wait a second or two, then +send it again. + +**Accepted credentials:** an Admin API key with the `write:plugins` scope. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `target: string` (path parameter) + + The target whose setting is written: the literal `organization` for the Plugin's organization-wide setting, or an RBAC Group's ID (prefixed `rbac_group_`) for that group's own setting. Writing the `organization` target stops the Plugin from inheriting its marketplace's default, even when the value written equals that default. + +- `params: InstallationSettingSetParams` + + - `plugin_id: string` (path parameter) + + ID of the Plugin (prefixed `plugin_`). + + - `installation_preference: "auto_install" | "available" | "not_available" | "required"` + + The installation setting the target is to hold for this Plugin: one of `required`, `auto_install`, `available`, `not_available`. + + - `"auto_install"` + + - `"available"` + + - `"not_available"` + + - `"required"` + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` #### Returns @@ -108480,6 +109722,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaDeletedPluginInstallationSetting` @@ -108727,6 +109971,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginShare` @@ -108994,6 +110240,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginMarketplace` @@ -109265,6 +110513,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginMarketplace` @@ -109545,6 +110795,8 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaPluginMarketplace` @@ -109832,272 +111084,276 @@ Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-0 - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `interface BetaPluginMarketplaceValidationReport` - - The outcome of validating plugin marketplace content: a report, not a - stored object, so nothing in it can be retrieved afterwards. - - - `type: "plugin_marketplace_validation_report"` - - Always `plugin_marketplace_validation_report`. - - default: plugin_marketplace_validation_report - - - `commit_sha: string | null` - - The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. - - - `manifest_error: string | null` - - Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. - - - `manifest_error_code: string | null` - - A stable identifier for `manifest_error`; null when that is. - - - `plugin_errors: Array` - - One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. - - - `error: string` - - Why the plugin would be skipped by a synchronization. - - - `error_code: string` - - A stable identifier for the reason — the value to branch on. - - - `name: string` - - The plugin's name, as its entry in marketplace.json declares it. - - - `plugin_warnings: Array` - - One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. - - - `name: string` - - The plugin's name, as its entry in marketplace.json declares it. - - - `warnings: Array` - - The parts of the plugin a synchronization would leave out. - - - `error_code: string` - - A stable identifier for the kind of warning. - - - `message: string` - - What would be left out, and why. - - - `ref: string | null` - - For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. - - - `total_plugin_count: number` - - How many plugins marketplace.json declares; 0 when it could not be read. - - - `valid: boolean` - - True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. - -#### Example - -```typescript -import Anthropic from "@anthropic-ai/sdk"; - -const client = new Anthropic({ - apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted -}); - -const betaPluginMarketplaceValidationReport = - await client.beta.organization.pluginMarketplaces.validateRepository({ - repository_url: "https://github.com/example-org/example-marketplace" - }); - -console.log(betaPluginMarketplaceValidationReport.valid); -``` - -##### Response (200) - -```json -{ - "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", - "manifest_error": "manifest_error", - "manifest_error_code": "marketplace_sync_manifest_not_found", - "plugin_errors": [ - { - "error": "error", - "error_code": "marketplace_sync_plugin_missing_manifest", - "name": "name" - } - ], - "plugin_warnings": [ - { - "name": "name", - "warnings": [ - { - "error_code": "marketplace_sync_zipball_symlink_dangling", - "message": "message" - } - ] - } - ], - "ref": "main", - "total_plugin_count": 0, - "type": "plugin_marketplace_validation_report", - "valid": false -} -``` - -### Validate Plugin Marketplace Archive - -`client.beta.organization.pluginMarketplaces.validateArchive(params, options?): BetaPluginMarketplaceValidationReport` - -**POST** `/v1/organizations/plugin_marketplaces/validate_archive` - -Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace -directory, would synchronize into claude.ai, without connecting or storing it. - -To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. - -The report says whether `marketplace.json` is well-formed, which plugins a -synchronization would skip and why, and which plugins would synchronize only in -part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace -are fetched anonymously from GitHub, so a private one is reported as not found; a -source on any other host is not fetched here, and the report notes that it will be -checked when the marketplace actually synchronizes. - -Nothing is recorded on the Compliance API activity feed. - -For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=typescript#validate-marketplace-content) -in the Plugins API guide. - -**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. - -Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. - -#### Parameters - -- `params: PluginMarketplaceValidateArchiveParams` - - - `archive: Uploadable` - - A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. - - format: binary - - - `betas?: Array` (header parameter) - - This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. - - - `(string & {})` - - - `"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"` - - - `"inline-tools-2026-09-15"` - - - `"mcp-client-2026-09-15"` - - - `"ce-plugins-2026-09-01"` - - - `"spend-limit-reads-2026-09-26"` - - - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaPluginMarketplaceValidationReport` + + The outcome of validating plugin marketplace content: a report, not a + stored object, so nothing in it can be retrieved afterwards. + + - `type: "plugin_marketplace_validation_report"` + + Always `plugin_marketplace_validation_report`. + + default: plugin_marketplace_validation_report + + - `commit_sha: string | null` + + The full SHA of the commit that was validated: for a repository, the commit that was read; for an uploaded archive, the commit recorded in the archive's comment (as a Git host's download writes it; not verified), else null. + + - `manifest_error: string | null` + + Set when nothing could be validated: the repository or archive could not be read, or marketplace.json is missing, malformed or over a limit. Null otherwise. + + - `manifest_error_code: string | null` + + A stable identifier for `manifest_error`; null when that is. + + - `plugin_errors: Array` + + One entry per plugin a synchronization would skip entirely, keyed by the plugin's name in marketplace.json. + + - `error: string` + + Why the plugin would be skipped by a synchronization. + + - `error_code: string` + + A stable identifier for the reason — the value to branch on. + + - `name: string` + + The plugin's name, as its entry in marketplace.json declares it. + + - `plugin_warnings: Array` + + One entry per plugin that would synchronize with some of its contents left out, keyed by the plugin's name in marketplace.json. + + - `name: string` + + The plugin's name, as its entry in marketplace.json declares it. + + - `warnings: Array` + + The parts of the plugin a synchronization would leave out. + + - `error_code: string` + + A stable identifier for the kind of warning. + + - `message: string` + + What would be left out, and why. + + - `ref: string | null` + + For a repository, the branch that was read by name: the one requested, or else the branch a synchronization of this repository is set to read. Null when no branch is named or set and the repository's default branch was read, for a request by commit SHA, and for an uploaded archive. + + - `total_plugin_count: number` + + How many plugins marketplace.json declares; 0 when it could not be read. + + - `valid: boolean` + + True when marketplace.json is well-formed and no plugin would be skipped; warnings never make it false. + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaPluginMarketplaceValidationReport = + await client.beta.organization.pluginMarketplaces.validateRepository({ + repository_url: "https://github.com/example-org/example-marketplace" + }); + +console.log(betaPluginMarketplaceValidationReport.valid); +``` + +##### Response (200) + +```json +{ + "commit_sha": "9fceb02d0ae598e95dc970b74767f19372d61af8", + "manifest_error": "manifest_error", + "manifest_error_code": "marketplace_sync_manifest_not_found", + "plugin_errors": [ + { + "error": "error", + "error_code": "marketplace_sync_plugin_missing_manifest", + "name": "name" + } + ], + "plugin_warnings": [ + { + "name": "name", + "warnings": [ + { + "error_code": "marketplace_sync_zipball_symlink_dangling", + "message": "message" + } + ] + } + ], + "ref": "main", + "total_plugin_count": 0, + "type": "plugin_marketplace_validation_report", + "valid": false +} +``` + +### Validate Plugin Marketplace Archive + +`client.beta.organization.pluginMarketplaces.validateArchive(params, options?): BetaPluginMarketplaceValidationReport` + +**POST** `/v1/organizations/plugin_marketplaces/validate_archive` + +Check whether a plugin marketplace, uploaded as a `.zip` of the marketplace +directory, would synchronize into claude.ai, without connecting or storing it. + +To check a public GitHub repository instead, use Validate Plugin Marketplace Repository. + +The report says whether `marketplace.json` is well-formed, which plugins a +synchronization would skip and why, and which plugins would synchronize only in +part, with some files left out. An archive that cannot be read as a marketplace is reported, not refused: the response is a report with `valid: false`. Plugin sources outside the marketplace +are fetched anonymously from GitHub, so a private one is reported as not found; a +source on any other host is not fetched here, and the report notes that it will be +checked when the marketplace actually synchronizes. + +Nothing is recorded on the Compliance API activity feed. + +For a worked example, see [Validate marketplace content](https://platform.claude.com/docs/en/manage-claude/plugins-api?sdk_languages=typescript#validate-marketplace-content) +in the Plugins API guide. + +**Accepted credentials:** an Admin API key with the `read:plugins` or `write:plugins` scope; `read:org_audit` and `read:compliance_org_data` do not grant it. + +Every request must include the beta header `anthropic-beta: ce-plugins-2026-09-01`. A request without it returns `404`, exactly as if the endpoint did not exist. The Plugins API is in beta and is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations, or to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params: PluginMarketplaceValidateArchiveParams` + + - `archive: Uploadable` + + A .zip of the marketplace directory (its contents at the root, or wrapped in one folder as a Git host's download produces), sent as a file part with a filename; DEFLATE- or STORE-compressed, at most 32 MB. A part sent without a filename, a second archive part, or any other form field is a 400; a larger archive is a 413. + + format: binary + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `ce-plugins-2026-09-01` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` #### Returns @@ -110458,6 +111714,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaTelemetryDestination` @@ -110816,6 +112074,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaTelemetryDestination` @@ -111165,6 +112425,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaTelemetryDestination` @@ -111646,6 +112908,8 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaTelemetryDestination` @@ -111993,17 +113257,1241 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaDeletedTelemetryDestination` + + Confirmation that a destination was deleted. + + - `type: "telemetry_destination_deleted"` + + - `id: string` + + ID of the deleted destination (`tdst_...`). + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaDeletedTelemetryDestination = + await client.beta.organization.telemetryDestinations.delete("destination_id"); + +console.log(betaDeletedTelemetryDestination.id); +``` + +##### Response (200) + +```json +{ + "id": "id", + "type": "telemetry_destination_deleted" +} +``` + +### Test a Telemetry Destination + +`client.beta.organization.telemetryDestinations.test(destinationID, params?, options?): BetaTelemetryDestinationTestResponse` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` + +Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. + +#### Parameters + +- `destinationID: string` (path parameter) + + ID of the destination to test (starts with `tdst_`). + +- `params: TelemetryDestinationTestParams` + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaTelemetryDestinationTestResponse` + + The result of one test span sent to a destination. + + - `type: "telemetry_destination_test"` + + - `result: BetaTelemetryDestinationTestResult` + + How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + + - `interface BetaTelemetryDestinationTestSuccess` + + The destination answered the test span with a 2xx status. + + - `type: "success"` + + - `interface BetaTelemetryDestinationTestFailure` + + The test span was not delivered. + + - `type: "failure"` + + - `error: string` + + A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaTelemetryDestinationTestResponse = + await client.beta.organization.telemetryDestinations.test("destination_id"); + +console.log(betaTelemetryDestinationTestResponse.result); +``` + +##### Response (200) + +```json +{ + "result": { + "type": "success" + }, + "type": "telemetry_destination_test" +} +``` + +## Beta › Organization › Telemetry Destinations › Workspaces + +### List Telemetry Destination Workspaces + +`client.beta.organization.telemetryDestinations.workspaces.list(destinationID, params?, options?): PageCursor` + +**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` + +List the workspaces on a destination's workspace list, newest entry first. + +A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `destinationID: string` (path parameter) + + ID of the destination (`tdst_...`). + +- `params: WorkspaceListParams` + + - `limit?: number` (query parameter) + + Number of entries to return per page, between 1 and 1,000. Defaults to 20. + + format: int32 + + - `page?: string` (query parameter) + + Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `type: "telemetry_destination_workspace"` + + - `created_at: string` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +// Automatically fetches more pages as needed. +for await (const betaTelemetryDestinationWorkspace of client.beta.organization.telemetryDestinations.workspaces.list( + "destination_id" +)) { + console.log(betaTelemetryDestinationWorkspace.telemetry_destination_id); +} +``` + +##### Response (200) + +```json +{ + "data": [ + { + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" + } + ], + "next_page": "next_page" +} +``` + +### Add a Telemetry Destination Workspace + +`client.beta.organization.telemetryDestinations.workspaces.add(workspaceID, params, options?): BetaTelemetryDestinationWorkspace` + +**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Add one workspace to a destination's workspace list. + +Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. + +Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `workspaceID: string` (path parameter) + + ID of the workspace to add (`wrkspc_...`). + +- `params: WorkspaceAddParams` + + - `destination_id: string` (path parameter) + + ID of the destination (`tdst_...`). + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaTelemetryDestinationWorkspace` + + A workspace on a telemetry destination's workspace list. + + Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + + - `type: "telemetry_destination_workspace"` + + - `created_at: string` + + Time the workspace was added to the list. + + format: date-time + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace (`wrkspc_...`). + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaTelemetryDestinationWorkspace = + await client.beta.organization.telemetryDestinations.workspaces.add("workspace_id", { + destination_id: "destination_id" + }); + +console.log(betaTelemetryDestinationWorkspace.telemetry_destination_id); +``` + +##### Response (200) + +```json +{ + "created_at": "2019-12-27T18:11:19.117Z", + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace", + "workspace_id": "workspace_id" +} +``` + +### Remove a Telemetry Destination Workspace + +`client.beta.organization.telemetryDestinations.workspaces.remove(workspaceID, params, options?): BetaDeletedTelemetryDestinationWorkspace` + +**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` + +Remove one workspace from a destination's workspace list. + +Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. + +The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. + +See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. + +#### Parameters + +- `workspaceID: string` (path parameter) + + ID of the workspace to remove (`wrkspc_...`). + +- `params: WorkspaceRemoveParams` + + - `destination_id: string` (path parameter) + + ID of the destination (`tdst_...`). + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaDeletedTelemetryDestinationWorkspace` + + Confirmation that a workspace was removed from a destination's list. + + - `type: "telemetry_destination_workspace_deleted"` + + - `telemetry_destination_id: string` + + ID of the telemetry destination (`tdst_...`). + + - `workspace_id: string` + + ID of the workspace that was removed (`wrkspc_...`). + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaDeletedTelemetryDestinationWorkspace = + await client.beta.organization.telemetryDestinations.workspaces.remove("workspace_id", { + destination_id: "destination_id" + }); + +console.log(betaDeletedTelemetryDestinationWorkspace.telemetry_destination_id); +``` + +##### Response (200) + +```json +{ + "telemetry_destination_id": "telemetry_destination_id", + "type": "telemetry_destination_workspace_deleted", + "workspace_id": "workspace_id" +} +``` + +## Beta › Organization › Webhooks + +### Create Organization Webhook Endpoint + +`client.beta.organization.webhooks.create(params, options?): BetaNewOrganizationWebhookEndpoint` + +**POST** `/v1/organizations/webhooks` + +Create an organization webhook endpoint. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. An organization can have at most 32 organization +webhook endpoints, enabled or disabled. + +The response includes the endpoint's signing secret. No read returns it, so store +it when you receive it. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params: WebhookCreateParams` + + - `enabled_events: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` + + The event types to deliver to the endpoint. Must list at least one. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `url: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 + + - `description?: string` + + Notes about the endpoint. + + - `name?: string` + + A short label for the endpoint. + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + +#### Returns + +- `interface BetaNewOrganizationWebhookEndpoint` + + A new organization webhook endpoint, with its signing secret. + + - `id: string` + + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `signing_secret: string` + + The secret Anthropic signs deliveries to the endpoint with (prefix `whsec_`). No other response returns it, so store it now. To replace it, regenerate the signing secret. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaNewOrganizationWebhookEndpoint = await client.beta.organization.webhooks.create({ + enabled_events: ["user_profile.enforcement_action_opened"], + url: "x" +}); + +console.log(betaNewOrganizationWebhookEndpoint.id); +``` + +##### Response (200) + +```json +{ + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "signing_secret": "signing_secret", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" +} +``` + +### List Organization Webhook Endpoints + +`client.beta.organization.webhooks.list(params?, options?): Page` + +**GET** `/v1/organizations/webhooks` + +List the organization's webhook endpoints. + +An organization webhook endpoint belongs to the organization rather than to one of its workspaces. The list does not include webhook endpoints that +belong to a workspace. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. + +#### Parameters + +- `params: WebhookListParams` + + - `after_id?: string | null` (query parameter) + + ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object. + + - `before_id?: string | null` (query parameter) + + ID of a webhook endpoint to use as a cursor. Returns the first `limit` endpoints that come before it in list order, not the `limit` endpoints just before it. + + - `limit?: number` (query parameter) + + Number of items to return per page, up to `100`. The default, `0`, means `20`. + + minimum: 0, maximum: 100 + + - `order?: "asc" | "desc" | null` (query parameter) + + Sort order by `created_at`. Defaults to `desc`, newest first. + + - `"asc"` + + - `"desc"` + + - `betas?: Array` (header parameter) + + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + #### Returns -- `interface BetaDeletedTelemetryDestination` +- `interface BetaOrganizationWebhookEndpoint` - Confirmation that a destination was deleted. - - - `type: "telemetry_destination_deleted"` + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - `id: string` - ID of the deleted destination (`tdst_...`). + ID of the webhook endpoint. + + - `created_at: string` + + When the endpoint was created, in RFC 3339 format. + + format: date-time + + - `description: string` + + Notes about the endpoint. An empty string when none were given. + + - `disabled_reason: string` + + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112014,40 +114502,60 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -const betaDeletedTelemetryDestination = - await client.beta.organization.telemetryDestinations.delete("destination_id"); - -console.log(betaDeletedTelemetryDestination.id); +// Automatically fetches more pages as needed. +for await (const betaOrganizationWebhookEndpoint of client.beta.organization.webhooks.list()) { + console.log(betaOrganizationWebhookEndpoint.id); +} ``` ##### Response (200) ```json { - "id": "id", - "type": "telemetry_destination_deleted" + "data": [ + { + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" + } + ], + "has_more": true, + "first_id": "first_id", + "last_id": "last_id" } ``` -### Test a Telemetry Destination +### Get Organization Webhook Endpoint -`client.beta.organization.telemetryDestinations.test(destinationID, params?, options?): BetaTelemetryDestinationTestResponse` +`client.beta.organization.webhooks.retrieve(webhookEndpointID, params?, options?): BetaOrganizationWebhookEndpoint` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/test` +**GET** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Send one test span, named `anthropic.test`, to the destination with its registered headers, once and without retries, and report the destination's answer. The response is 200 whether or not the destination answered with a 2xx status: its `result` has the type `success`, or the type `failure` and the reason in `error`. The destination's configuration, `state` and `delivery_health` do not change. A disabled destination can be tested too. Wait 10 seconds between tests of one destination; a request that comes sooner may be answered with status 429. +Retrieve an organization webhook endpoint by ID. + +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `destinationID: string` (path parameter) +- `webhookEndpointID: string` (path parameter) - ID of the destination to test (starts with `tdst_`). + ID of the webhook endpoint. -- `params: TelemetryDestinationTestParams` + maxLength: 2048 + +- `params: WebhookRetrieveParams` - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `(string & {})` @@ -112153,33 +114661,62 @@ Send one test span, named `anthropic.test`, to the destination with its register - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns -- `interface BetaTelemetryDestinationTestResponse` +- `interface BetaOrganizationWebhookEndpoint` - The result of one test span sent to a destination. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - - `type: "telemetry_destination_test"` + - `id: string` - - `result: BetaTelemetryDestinationTestResult` + ID of the webhook endpoint. - How the test went: `success` when the destination answered with a 2xx status, else `failure` with the reason. + - `created_at: string` - - `interface BetaTelemetryDestinationTestSuccess` + When the endpoint was created, in RFC 3339 format. - The destination answered the test span with a 2xx status. + format: date-time - - `type: "success"` + - `description: string` - - `interface BetaTelemetryDestinationTestFailure` + Notes about the endpoint. An empty string when none were given. - The test span was not delivered. + - `disabled_reason: string` - - `type: "failure"` + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. - - `error: string` + - `enabled_events: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` - A message that describes why the test span was not delivered, including the HTTP status code when the destination returned one. Examples: `HTTP error (status 403)`, `timeout`, `TLS failure`. It has the same form as the destination's `delivery_health.last_error` and never contains the destination's response body, any header value, a network address, or TLS details. + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112190,58 +114727,84 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -const betaTelemetryDestinationTestResponse = - await client.beta.organization.telemetryDestinations.test("destination_id"); +const betaOrganizationWebhookEndpoint = await client.beta.organization.webhooks.retrieve( + "webhook_endpoint_id" +); -console.log(betaTelemetryDestinationTestResponse.result); +console.log(betaOrganizationWebhookEndpoint.id); ``` ##### Response (200) ```json { - "result": { - "type": "success" - }, - "type": "telemetry_destination_test" + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" + ], + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -## Beta › Organization › Telemetry Destinations › Workspaces +### Update Organization Webhook Endpoint -### List Telemetry Destination Workspaces +`client.beta.organization.webhooks.update(webhookEndpointID, params, options?): BetaOrganizationWebhookEndpoint` -`client.beta.organization.telemetryDestinations.workspaces.list(destinationID, params?, options?): PageCursor` +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}` -**GET** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces` +Update an organization webhook endpoint. Only the fields you send are changed. -List the workspaces on a destination's workspace list, newest entry first. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. -A destination whose `workspaces.type` is `all` doesn't have a list, so its page is empty. The list includes archived workspaces. +#### Parameters -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +- `webhookEndpointID: string` (path parameter) -#### Parameters + ID of the webhook endpoint. -- `destinationID: string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `params: WebhookUpdateParams` -- `params: WorkspaceListParams` + - `description?: string` - - `limit?: number` (query parameter) + Notes about the endpoint. - Number of entries to return per page, between 1 and 1,000. Defaults to 20. + - `enabled_events?: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` - format: int32 + The event types to deliver to the endpoint. Replaces the whole set; an empty list leaves it unchanged. - - `page?: string` (query parameter) + - `"user_profile.enforcement_action_opened"` - Opaque cursor from a previous response's `next_page`. Leave it out to get the first page. + - `"user_profile.enforcement_action_resolved"` + + - `name?: string` + + A short label for the endpoint. + + - `state?: "disabled" | "enabled"` + + `disabled` stops deliveries. `enabled` resumes them and clears `disabled_reason`. Events that happen while the endpoint is disabled are never delivered. + + - `"disabled"` + + - `"enabled"` + + - `url?: string` + + The HTTPS URL that deliveries are sent to. + + minLength: 1 - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `(string & {})` @@ -112347,29 +114910,62 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns -- `interface BetaTelemetryDestinationWorkspace` +- `interface BetaOrganizationWebhookEndpoint` - A workspace on a telemetry destination's workspace list. + A webhook endpoint that belongs to the organization rather than to one of + its workspaces. - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. + - `id: string` - - `type: "telemetry_destination_workspace"` + ID of the webhook endpoint. - `created_at: string` - Time the workspace was added to the list. + When the endpoint was created, in RFC 3339 format. format: date-time - - `telemetry_destination_id: string` + - `description: string` - ID of the telemetry destination (`tdst_...`). + Notes about the endpoint. An empty string when none were given. - - `workspace_id: string` + - `disabled_reason: string` - ID of the workspace (`wrkspc_...`). + Why Anthropic disabled the endpoint automatically. An empty string when the endpoint is enabled, or when you disabled it. + + - `enabled_events: Array<"user_profile.enforcement_action_opened" | "user_profile.enforcement_action_resolved">` + + The event types delivered to the endpoint. + + - `"user_profile.enforcement_action_opened"` + + - `"user_profile.enforcement_action_resolved"` + + - `name: string` + + A short label for the endpoint. An empty string when none was given. + + - `state: BetaOrganizationWebhookEndpointState` + + Whether deliveries are sent to the endpoint. + + - `"disabled"` + + - `"enabled"` + + - `updated_at: string` + + When the endpoint was last changed, in RFC 3339 format. + + format: date-time + + - `url: string` + + The HTTPS URL that deliveries are sent to. #### Example @@ -112380,59 +114976,54 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -// Automatically fetches more pages as needed. -for await (const betaTelemetryDestinationWorkspace of client.beta.organization.telemetryDestinations.workspaces.list( - "destination_id" -)) { - console.log(betaTelemetryDestinationWorkspace.telemetry_destination_id); -} +const betaOrganizationWebhookEndpoint = await client.beta.organization.webhooks.update( + "webhook_endpoint_id" +); + +console.log(betaOrganizationWebhookEndpoint.id); ``` ##### Response (200) ```json { - "data": [ - { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" - } + "id": "id", + "created_at": "2019-12-27T18:11:19.117Z", + "description": "description", + "disabled_reason": "disabled_reason", + "enabled_events": [ + "user_profile.enforcement_action_opened" ], - "next_page": "next_page" + "name": "name", + "state": "disabled", + "updated_at": "2019-12-27T18:11:19.117Z", + "url": "url" } ``` -### Add a Telemetry Destination Workspace +### Delete Organization Webhook Endpoint -`client.beta.organization.telemetryDestinations.workspaces.add(workspaceID, params, options?): BetaTelemetryDestinationWorkspace` +`client.beta.organization.webhooks.delete(webhookEndpointID, params?, options?): BetaDeletedOrganizationWebhookEndpoint` -**POST** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +**DELETE** `/v1/organizations/webhooks/{webhook_endpoint_id}` -Add one workspace to a destination's workspace list. - -Under `include` the workspace's spans start going to the destination. Under `exclude` they stop. A list holds at most 1,000 workspaces. - -Adding a workspace that is already on the list changes nothing and returns the existing entry. An archived workspace that isn't on the list yet can't be added. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. To change which workspaces such a destination covers, update its `workspaces`. +Delete an organization webhook endpoint. -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `workspaceID: string` (path parameter) - - ID of the workspace to add (`wrkspc_...`). +- `webhookEndpointID: string` (path parameter) -- `params: WorkspaceAddParams` + ID of the webhook endpoint. - - `destination_id: string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `params: WebhookDeleteParams` - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `(string & {})` @@ -112538,29 +115129,23 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns - -- `interface BetaTelemetryDestinationWorkspace` - - A workspace on a telemetry destination's workspace list. + - `"webhooks-2026-10-07"` - Under `include`, the destination covers the workspace. Under `exclude`, the destination covers every workspace except this one. The entry doesn't have an `id`. Its `telemetry_destination_id` and `workspace_id` together identify it. +#### Returns - - `type: "telemetry_destination_workspace"` +- `interface BetaDeletedOrganizationWebhookEndpoint` - - `created_at: string` + A deleted organization webhook endpoint. - Time the workspace was added to the list. + - `type: "webhook_endpoint_deleted"` - format: date-time + Always `webhook_endpoint_deleted`. - - `telemetry_destination_id: string` + default: webhook_endpoint_deleted - ID of the telemetry destination (`tdst_...`). - - - `workspace_id: string` + - `id: string` - ID of the workspace (`wrkspc_...`). + ID of the deleted webhook endpoint. #### Example @@ -112571,54 +115156,46 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -const betaTelemetryDestinationWorkspace = - await client.beta.organization.telemetryDestinations.workspaces.add("workspace_id", { - destination_id: "destination_id" - }); +const betaDeletedOrganizationWebhookEndpoint = await client.beta.organization.webhooks.delete( + "webhook_endpoint_id" +); -console.log(betaTelemetryDestinationWorkspace.telemetry_destination_id); +console.log(betaDeletedOrganizationWebhookEndpoint.id); ``` ##### Response (200) ```json { - "created_at": "2019-12-27T18:11:19.117Z", - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace", - "workspace_id": "workspace_id" + "id": "id", + "type": "webhook_endpoint_deleted" } ``` -### Remove a Telemetry Destination Workspace - -`client.beta.organization.telemetryDestinations.workspaces.remove(workspaceID, params, options?): BetaDeletedTelemetryDestinationWorkspace` +### Regenerate Organization Webhook Endpoint Signing Secret -**DELETE** `/v1/organizations/telemetry_destinations/{destination_id}/workspaces/{workspace_id}` +`client.beta.organization.webhooks.regenerateSigningSecret(webhookEndpointID, params?, options?): BetaOrganizationWebhookEndpointSigningSecret` -Remove one workspace from a destination's workspace list. +**POST** `/v1/organizations/webhooks/{webhook_endpoint_id}/regenerate_signing_secret` -Under `include` the workspace's spans stop going to the destination. Under `exclude` they start. An archived workspace can be removed too. +Replace an organization webhook endpoint's signing secret. The old secret stops +working immediately. The new secret is returned only in this response. -The API returns 404 when the workspace isn't on the list. A destination whose `workspaces.type` is `all` doesn't have a list, so the API returns 400. - -See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=typescript#choose-workspaces-for-a-destination) to learn more about choosing the workspaces of a destination. +Every request must include the beta header `anthropic-beta: webhooks-2026-10-07`. A request without it returns `404`, exactly as if this API did not exist. Anthropic turns organization webhook endpoints on for each organization; until yours is on, requests also return `404`. Organization webhook endpoints are in beta and are not available to organizations with HIPAA readiness enabled. #### Parameters -- `workspaceID: string` (path parameter) - - ID of the workspace to remove (`wrkspc_...`). +- `webhookEndpointID: string` (path parameter) -- `params: WorkspaceRemoveParams` + ID of the webhook endpoint. - - `destination_id: string` (path parameter) + maxLength: 2048 - ID of the destination (`tdst_...`). +- `params: WebhookRegenerateSigningSecretParams` - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `telemetry-destinations-2026-08-11` in this header. + This endpoint is in beta: requests must send `webhooks-2026-10-07` in this header. - `(string & {})` @@ -112724,21 +115301,17 @@ See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage- - `"telemetry-destinations-2026-08-11"` -#### Returns + - `"webhooks-2026-10-07"` -- `interface BetaDeletedTelemetryDestinationWorkspace` +#### Returns - Confirmation that a workspace was removed from a destination's list. +- `interface BetaOrganizationWebhookEndpointSigningSecret` - - `type: "telemetry_destination_workspace_deleted"` + An organization webhook endpoint's new signing secret. - - `telemetry_destination_id: string` + - `signing_secret: string` - ID of the telemetry destination (`tdst_...`). - - - `workspace_id: string` - - ID of the workspace that was removed (`wrkspc_...`). + The new signing secret. Deliveries are signed with it from now on, and no other response returns it. #### Example @@ -112749,20 +115322,16 @@ const client = new Anthropic({ apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted }); -const betaDeletedTelemetryDestinationWorkspace = - await client.beta.organization.telemetryDestinations.workspaces.remove("workspace_id", { - destination_id: "destination_id" - }); +const betaOrganizationWebhookEndpointSigningSecret = + await client.beta.organization.webhooks.regenerateSigningSecret("webhook_endpoint_id"); -console.log(betaDeletedTelemetryDestinationWorkspace.telemetry_destination_id); +console.log(betaOrganizationWebhookEndpointSigningSecret.signing_secret); ``` ##### Response (200) ```json { - "telemetry_destination_id": "telemetry_destination_id", - "type": "telemetry_destination_workspace_deleted", - "workspace_id": "workspace_id" + "signing_secret": "signing_secret" } ``` diff --git a/content/en/api/typescript/beta/agents.md b/content/en/api/typescript/beta/agents.md index 582f243b48..7d06cb3da4 100644 --- a/content/en/api/typescript/beta/agents.md +++ b/content/en/api/typescript/beta/agents.md @@ -1069,6 +1069,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2128,6 +2130,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3174,6 +3178,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5160,6 +5166,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6197,6 +6205,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -13627,6 +13637,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/archive.md b/content/en/api/typescript/beta/agents/archive.md index b5d7cd055b..682222d56b 100644 --- a/content/en/api/typescript/beta/agents/archive.md +++ b/content/en/api/typescript/beta/agents/archive.md @@ -127,6 +127,8 @@ Archive Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/create.md b/content/en/api/typescript/beta/agents/create.md index f49ebc35c4..c9c0fbd613 100644 --- a/content/en/api/typescript/beta/agents/create.md +++ b/content/en/api/typescript/beta/agents/create.md @@ -1067,6 +1067,8 @@ Create Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/list.md b/content/en/api/typescript/beta/agents/list.md index ddd99e14c3..8ea7a9c304 100644 --- a/content/en/api/typescript/beta/agents/list.md +++ b/content/en/api/typescript/beta/agents/list.md @@ -149,6 +149,8 @@ List Agents - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/retrieve.md b/content/en/api/typescript/beta/agents/retrieve.md index 06d17dfdd0..81368e5fc5 100644 --- a/content/en/api/typescript/beta/agents/retrieve.md +++ b/content/en/api/typescript/beta/agents/retrieve.md @@ -133,6 +133,8 @@ Get Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/update.md b/content/en/api/typescript/beta/agents/update.md index 908905b89a..f1c5431ced 100644 --- a/content/en/api/typescript/beta/agents/update.md +++ b/content/en/api/typescript/beta/agents/update.md @@ -1077,6 +1077,8 @@ Update Agent - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/versions.md b/content/en/api/typescript/beta/agents/versions.md index d530b8c780..1965f08b9e 100644 --- a/content/en/api/typescript/beta/agents/versions.md +++ b/content/en/api/typescript/beta/agents/versions.md @@ -139,6 +139,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/agents/versions/list.md b/content/en/api/typescript/beta/agents/versions/list.md index 5a2c9f5ec5..398cf48f31 100644 --- a/content/en/api/typescript/beta/agents/versions/list.md +++ b/content/en/api/typescript/beta/agents/versions/list.md @@ -137,6 +137,8 @@ List Agent Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployment_runs.md b/content/en/api/typescript/beta/deployment_runs.md index 8c73b2becf..4d7baa113a 100644 --- a/content/en/api/typescript/beta/deployment_runs.md +++ b/content/en/api/typescript/beta/deployment_runs.md @@ -179,6 +179,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -578,6 +580,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployment_runs/list.md b/content/en/api/typescript/beta/deployment_runs/list.md index e7250c13b3..e69edf3341 100644 --- a/content/en/api/typescript/beta/deployment_runs/list.md +++ b/content/en/api/typescript/beta/deployment_runs/list.md @@ -177,6 +177,8 @@ List Deployment Runs - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployment_runs/retrieve.md b/content/en/api/typescript/beta/deployment_runs/retrieve.md index 8c34fba2de..192c0f2dc5 100644 --- a/content/en/api/typescript/beta/deployment_runs/retrieve.md +++ b/content/en/api/typescript/beta/deployment_runs/retrieve.md @@ -127,6 +127,8 @@ Get Deployment Run - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments.md b/content/en/api/typescript/beta/deployments.md index 69846b344d..3451f64d2f 100644 --- a/content/en/api/typescript/beta/deployments.md +++ b/content/en/api/typescript/beta/deployments.md @@ -525,6 +525,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1301,6 +1303,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2038,6 +2042,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3171,6 +3177,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3904,6 +3912,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4637,6 +4647,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5032,6 +5044,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5765,6 +5779,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/archive.md b/content/en/api/typescript/beta/deployments/archive.md index 22dc289cc1..0afc397d14 100644 --- a/content/en/api/typescript/beta/deployments/archive.md +++ b/content/en/api/typescript/beta/deployments/archive.md @@ -127,6 +127,8 @@ Archive Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/create.md b/content/en/api/typescript/beta/deployments/create.md index ece7f12aed..cc1a2c9814 100644 --- a/content/en/api/typescript/beta/deployments/create.md +++ b/content/en/api/typescript/beta/deployments/create.md @@ -523,6 +523,8 @@ Create Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/list.md b/content/en/api/typescript/beta/deployments/list.md index bd1b931713..2d990b44c5 100644 --- a/content/en/api/typescript/beta/deployments/list.md +++ b/content/en/api/typescript/beta/deployments/list.md @@ -165,6 +165,8 @@ List Deployments - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/pause.md b/content/en/api/typescript/beta/deployments/pause.md index c88c124c39..61c259fb09 100644 --- a/content/en/api/typescript/beta/deployments/pause.md +++ b/content/en/api/typescript/beta/deployments/pause.md @@ -127,6 +127,8 @@ Pause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/retrieve.md b/content/en/api/typescript/beta/deployments/retrieve.md index 7d7f83f51f..e2d026aafb 100644 --- a/content/en/api/typescript/beta/deployments/retrieve.md +++ b/content/en/api/typescript/beta/deployments/retrieve.md @@ -127,6 +127,8 @@ Get Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/run.md b/content/en/api/typescript/beta/deployments/run.md index 0b6ac5c5ad..5c0dcc1080 100644 --- a/content/en/api/typescript/beta/deployments/run.md +++ b/content/en/api/typescript/beta/deployments/run.md @@ -127,6 +127,8 @@ Run Deployment Now - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/unpause.md b/content/en/api/typescript/beta/deployments/unpause.md index 74b0d5c6b6..17d4b16dba 100644 --- a/content/en/api/typescript/beta/deployments/unpause.md +++ b/content/en/api/typescript/beta/deployments/unpause.md @@ -127,6 +127,8 @@ Unpause Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/deployments/update.md b/content/en/api/typescript/beta/deployments/update.md index 51fd88d1ad..7097724d15 100644 --- a/content/en/api/typescript/beta/deployments/update.md +++ b/content/en/api/typescript/beta/deployments/update.md @@ -527,6 +527,8 @@ Update Deployment - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments.md b/content/en/api/typescript/beta/environments.md index 1e16e54610..9c21f6bef4 100644 --- a/content/en/api/typescript/beta/environments.md +++ b/content/en/api/typescript/beta/environments.md @@ -241,6 +241,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -580,6 +582,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -911,6 +915,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1354,6 +1360,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1679,6 +1687,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1848,6 +1858,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2642,6 +2654,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2907,6 +2921,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID"?: string` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -3154,6 +3170,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWork` @@ -3411,6 +3429,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWorkHeartbeatResponse` @@ -3608,6 +3628,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3871,6 +3893,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + #### Returns - `interface BetaSelfHostedWork` @@ -4130,6 +4154,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4382,6 +4408,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/archive.md b/content/en/api/typescript/beta/environments/archive.md index 64a69a3d68..ccbb298ff3 100644 --- a/content/en/api/typescript/beta/environments/archive.md +++ b/content/en/api/typescript/beta/environments/archive.md @@ -125,6 +125,8 @@ Archive an environment by ID. Archived environments cannot be used to create new - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/create.md b/content/en/api/typescript/beta/environments/create.md index 197f47c7f7..68138fee38 100644 --- a/content/en/api/typescript/beta/environments/create.md +++ b/content/en/api/typescript/beta/environments/create.md @@ -239,6 +239,8 @@ Create a new environment with the specified configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/delete.md b/content/en/api/typescript/beta/environments/delete.md index bbc1f6b68c..a85852d653 100644 --- a/content/en/api/typescript/beta/environments/delete.md +++ b/content/en/api/typescript/beta/environments/delete.md @@ -125,6 +125,8 @@ Delete an environment by ID. Returns a confirmation of the deletion. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/list.md b/content/en/api/typescript/beta/environments/list.md index da5dc28e63..fd245f4f26 100644 --- a/content/en/api/typescript/beta/environments/list.md +++ b/content/en/api/typescript/beta/environments/list.md @@ -137,6 +137,8 @@ List environments with pagination support. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/retrieve.md b/content/en/api/typescript/beta/environments/retrieve.md index 0b0b2b9e5d..b4f46f461a 100644 --- a/content/en/api/typescript/beta/environments/retrieve.md +++ b/content/en/api/typescript/beta/environments/retrieve.md @@ -125,6 +125,8 @@ Retrieve a specific environment by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/update.md b/content/en/api/typescript/beta/environments/update.md index 4d4068eb84..b32dd58163 100644 --- a/content/en/api/typescript/beta/environments/update.md +++ b/content/en/api/typescript/beta/environments/update.md @@ -241,6 +241,8 @@ Update an existing environment's configuration. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/work.md b/content/en/api/typescript/beta/environments/work.md index d6a08eecc3..a09bec3ccf 100644 --- a/content/en/api/typescript/beta/environments/work.md +++ b/content/en/api/typescript/beta/environments/work.md @@ -131,6 +131,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -396,6 +398,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID"?: string` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console @@ -643,6 +647,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface BetaSelfHostedWork` @@ -900,6 +906,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface BetaSelfHostedWorkHeartbeatResponse` @@ -1097,6 +1105,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1360,6 +1370,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface BetaSelfHostedWork` @@ -1619,6 +1631,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1871,6 +1885,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/work/ack.md b/content/en/api/typescript/beta/environments/work/ack.md index 0a9d750196..0b4a68d7dd 100644 --- a/content/en/api/typescript/beta/environments/work/ack.md +++ b/content/en/api/typescript/beta/environments/work/ack.md @@ -129,6 +129,8 @@ Acknowledge receipt of a work item, transitioning it from 'queued' to 'starting' - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface BetaSelfHostedWork` diff --git a/content/en/api/typescript/beta/environments/work/heartbeat.md b/content/en/api/typescript/beta/environments/work/heartbeat.md index 92c4f07e99..140f80458a 100644 --- a/content/en/api/typescript/beta/environments/work/heartbeat.md +++ b/content/en/api/typescript/beta/environments/work/heartbeat.md @@ -137,6 +137,8 @@ Record a heartbeat for a work item to maintain the lease. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface BetaSelfHostedWorkHeartbeatResponse` diff --git a/content/en/api/typescript/beta/environments/work/list.md b/content/en/api/typescript/beta/environments/work/list.md index e5bde92825..9ee3beb4ad 100644 --- a/content/en/api/typescript/beta/environments/work/list.md +++ b/content/en/api/typescript/beta/environments/work/list.md @@ -137,6 +137,8 @@ List work items in an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface BetaSelfHostedWork` diff --git a/content/en/api/typescript/beta/environments/work/poll.md b/content/en/api/typescript/beta/environments/work/poll.md index fe62db627d..8466098393 100644 --- a/content/en/api/typescript/beta/environments/work/poll.md +++ b/content/en/api/typescript/beta/environments/work/poll.md @@ -139,6 +139,8 @@ Long poll for work items in the queue. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `"Anthropic-Worker-ID"?: string` (header parameter) Unique identifier for the specific worker polling, used to track aggregated environment-level work metrics in Console diff --git a/content/en/api/typescript/beta/environments/work/retrieve.md b/content/en/api/typescript/beta/environments/work/retrieve.md index e0439793f5..215514168b 100644 --- a/content/en/api/typescript/beta/environments/work/retrieve.md +++ b/content/en/api/typescript/beta/environments/work/retrieve.md @@ -129,6 +129,8 @@ Retrieve detailed information about a specific work item. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/work/stats.md b/content/en/api/typescript/beta/environments/work/stats.md index 57a7aa3f82..fb11855858 100644 --- a/content/en/api/typescript/beta/environments/work/stats.md +++ b/content/en/api/typescript/beta/environments/work/stats.md @@ -125,6 +125,8 @@ Get statistics about the work queue for an environment. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/work/stop.md b/content/en/api/typescript/beta/environments/work/stop.md index b7d35330ac..6954c193d2 100644 --- a/content/en/api/typescript/beta/environments/work/stop.md +++ b/content/en/api/typescript/beta/environments/work/stop.md @@ -133,6 +133,8 @@ Stop a work item, initiating graceful or forced shutdown. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/environments/work/update.md b/content/en/api/typescript/beta/environments/work/update.md index efd897a3ab..738928f92b 100644 --- a/content/en/api/typescript/beta/environments/work/update.md +++ b/content/en/api/typescript/beta/environments/work/update.md @@ -133,6 +133,8 @@ Update work item metadata with merge semantics. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files.md b/content/en/api/typescript/beta/files.md index 81498ebd45..b009f3c7ca 100644 --- a/content/en/api/typescript/beta/files.md +++ b/content/en/api/typescript/beta/files.md @@ -137,6 +137,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -383,6 +385,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -616,6 +620,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -767,6 +773,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -994,6 +1002,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files/delete.md b/content/en/api/typescript/beta/files/delete.md index 958e32818b..b37587a4a5 100644 --- a/content/en/api/typescript/beta/files/delete.md +++ b/content/en/api/typescript/beta/files/delete.md @@ -127,6 +127,8 @@ Delete File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files/download.md b/content/en/api/typescript/beta/files/download.md index 5b38069c32..b03d24deba 100644 --- a/content/en/api/typescript/beta/files/download.md +++ b/content/en/api/typescript/beta/files/download.md @@ -127,6 +127,8 @@ Download File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files/list.md b/content/en/api/typescript/beta/files/list.md index 34e5c6ccaa..414c097556 100644 --- a/content/en/api/typescript/beta/files/list.md +++ b/content/en/api/typescript/beta/files/list.md @@ -143,6 +143,8 @@ List Files - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files/retrieve_metadata.md b/content/en/api/typescript/beta/files/retrieve_metadata.md index c3c1e4b8dd..352682a23e 100644 --- a/content/en/api/typescript/beta/files/retrieve_metadata.md +++ b/content/en/api/typescript/beta/files/retrieve_metadata.md @@ -127,6 +127,8 @@ Get File Metadata - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/files/upload.md b/content/en/api/typescript/beta/files/upload.md index 80c0824f12..6cd547cf94 100644 --- a/content/en/api/typescript/beta/files/upload.md +++ b/content/en/api/typescript/beta/files/upload.md @@ -135,6 +135,8 @@ Upload File - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/memory_stores.md b/content/en/api/typescript/beta/memory_stores.md index ad386b1092..e21f463050 100644 --- a/content/en/api/typescript/beta/memory_stores.md +++ b/content/en/api/typescript/beta/memory_stores.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores # Memory Stores -## Create a memory store +## Create a Memory Store `client.beta.memoryStores.create(params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ### Parameters @@ -19,19 +19,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description?: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata?: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?: Array` (header parameter) @@ -141,6 +147,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -157,27 +165,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -185,7 +199,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -220,13 +236,13 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -## List memory stores +## List Memory Stores `client.beta.memoryStores.list(params?, options?): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ### Parameters @@ -234,13 +250,13 @@ List memory stores - `"created_at[gte]"?: string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]"?: string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -256,7 +272,7 @@ List memory stores - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?: Array` (header parameter) @@ -366,6 +382,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -382,27 +400,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -410,7 +434,9 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -449,19 +475,19 @@ for await (const betaManagedAgentsMemoryStore of client.beta.memoryStores.list() } ``` -## Retrieve a memory store +## Retrieve a Memory Store `client.beta.memoryStores.retrieve(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `params: MemoryStoreRetrieveParams` @@ -573,6 +599,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -589,27 +617,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -617,7 +651,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -654,35 +690,41 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -## Update a memory store +## Update a Memory Store `client.beta.memoryStores.update(memoryStoreID, params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params: MemoryStoreUpdateParams` - `description?: string | null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata?: Record | null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?: string | null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -794,6 +836,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -810,27 +854,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -838,7 +888,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -873,19 +925,21 @@ console.log(betaManagedAgentsMemoryStore.id); } ``` -## Delete a memory store +## Delete a Memory Store `client.beta.memoryStores.delete(memoryStoreID, params?, options?): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `params: MemoryStoreDeleteParams` @@ -997,6 +1051,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1040,19 +1096,21 @@ console.log(betaManagedAgentsDeletedMemoryStore.id); } ``` -## Archive a memory store +## Archive a Memory Store `client.beta.memoryStores.archive(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ### Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `params: MemoryStoreArchiveParams` @@ -1164,6 +1222,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1180,27 +1240,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -1208,7 +1274,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time @@ -1267,27 +1335,33 @@ console.log(betaManagedAgentsMemoryStore.id); - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -1295,19 +1369,21 @@ console.log(betaManagedAgentsMemoryStore.id); - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time ## Memory Stores › Memories -### Create a memory +### Create a Memory `client.beta.memoryStores.memories.create(memoryStoreID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory #### Parameters @@ -1319,17 +1395,23 @@ Create a memory - `content: string | null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1447,6 +1529,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1457,13 +1541,19 @@ Create a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1471,7 +1561,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1487,7 +1577,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1495,13 +1589,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -1537,13 +1635,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### List memories +### List Memories `client.beta.memoryStores.memories.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories #### Parameters @@ -1555,27 +1653,35 @@ List memories - `depth?: number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit?: number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix?: string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -1693,6 +1799,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1703,17 +1811,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1721,7 +1835,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1737,7 +1851,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1745,17 +1863,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1802,13 +1926,13 @@ for await (const betaManagedAgentsMemoryListItem of client.beta.memoryStores.mem } ``` -### Retrieve a memory +### Retrieve a Memory `client.beta.memoryStores.memories.retrieve(memoryID, params, options?): BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory #### Parameters @@ -1824,7 +1948,9 @@ Retrieve a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -1942,6 +2068,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1952,13 +2080,19 @@ Retrieve a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1966,7 +2100,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1982,7 +2116,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1990,13 +2128,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2031,13 +2173,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### Update a memory +### Update a Memory `client.beta.memoryStores.memories.update(memoryID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory #### Parameters @@ -2053,7 +2195,9 @@ Update a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2069,13 +2213,17 @@ Update a memory - `path?: string | null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition?: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -2191,6 +2339,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2201,13 +2351,19 @@ Update a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -2215,7 +2371,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -2231,7 +2387,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -2239,13 +2399,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). #### Example @@ -2280,13 +2444,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -### Delete a memory +### Delete a Memory `client.beta.memoryStores.memories.delete(memoryID, params, options?): BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory #### Parameters @@ -2414,6 +2578,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2424,7 +2590,11 @@ Delete a memory - `interface BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -2460,13 +2630,13 @@ console.log(betaManagedAgentsDeletedMemory.id); ## Memory Stores › Memory Versions -### List memory versions +### List Memory Versions `client.beta.memoryStores.memoryVersions.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions #### Parameters @@ -2494,7 +2664,9 @@ List memory versions - `limit?: number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -2502,7 +2674,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -2534,7 +2706,9 @@ List memory versions - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2652,6 +2826,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2662,7 +2838,13 @@ List memory versions - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -2678,7 +2860,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -2716,7 +2900,11 @@ List memory versions - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -2772,7 +2960,11 @@ List memory versions - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -2828,13 +3020,13 @@ for await (const betaManagedAgentsMemoryVersion of client.beta.memoryStores.memo } ``` -### Retrieve a memory version +### Retrieve a Memory Version `client.beta.memoryStores.memoryVersions.retrieve(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version #### Parameters @@ -2850,7 +3042,9 @@ Retrieve a memory version - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -2968,6 +3162,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2978,7 +3174,13 @@ Retrieve a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -2994,7 +3196,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -3032,7 +3236,11 @@ Retrieve a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -3088,7 +3296,11 @@ Retrieve a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -3139,13 +3351,13 @@ console.log(betaManagedAgentsMemoryVersion.id); } ``` -### Redact a memory version +### Redact a Memory Version `client.beta.memoryStores.memoryVersions.redact(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version #### Parameters @@ -3267,6 +3479,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3277,7 +3491,13 @@ Redact a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -3293,7 +3513,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -3331,7 +3553,11 @@ Redact a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -3387,7 +3613,11 @@ Redact a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/archive.md b/content/en/api/typescript/beta/memory_stores/archive.md index 2f82c420f3..475733aa5f 100644 --- a/content/en/api/typescript/beta/memory_stores/archive.md +++ b/content/en/api/typescript/beta/memory_stores/archive.md @@ -1,21 +1,23 @@ --- -title: Archive a memory store +title: Archive a Memory Store url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/archive --- -# Archive a memory store +# Archive a Memory Store `client.beta.memoryStores.archive(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}/archive` -Archive a memory store +Archive a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to archive (a `memstore_...` identifier). Required. Archiving is one-way and idempotent; archived stores cannot be unarchived. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to archive (`memstore_...`). + + Archiving can't be undone. Archiving a store that is already archived returns it unchanged. - `params: MemoryStoreArchiveParams` @@ -127,6 +129,8 @@ Archive a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,27 +147,33 @@ Archive a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -171,7 +181,9 @@ Archive a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/create.md b/content/en/api/typescript/beta/memory_stores/create.md index 09930fd6e2..48e592f801 100644 --- a/content/en/api/typescript/beta/memory_stores/create.md +++ b/content/en/api/typescript/beta/memory_stores/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory store +title: Create a Memory Store url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/create --- -# Create a memory store +# Create a Memory Store `client.beta.memoryStores.create(params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores` -Create a memory store +Create a Memory Store ## Parameters @@ -17,19 +17,25 @@ Create a memory store - `name: string` - Human-readable name for the store. Required; 1–255 characters; no control characters. The mount-path slug under `/mnt/memory/` is derived from this name (lowercased, non-alphanumeric runs collapsed to a hyphen). Names need not be unique within a workspace. + The name of the memory store, 1 to 255 characters long, without control characters. Names don't have to be unique in a workspace. + + In a session, the store's directory under `/mnt/memory/` is based on this name. The name is lowercased and every run of characters other than ASCII letters and digits becomes one hyphen. The session's memory store resource gives the exact path in `mount_path`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#how-the-agent-accesses-memory) to learn more about how agents access memory stores. minLength: 1, maxLength: 255 - `description?: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. maxLength: 1024 - `metadata?: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Not visible to the agent. + Key-value pairs for your own use, such as the end user that the store belongs to. The agent doesn't see them. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `betas?: Array` (header parameter) @@ -139,6 +145,8 @@ Create a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -155,27 +163,33 @@ Create a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -183,7 +197,9 @@ Create a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/delete.md b/content/en/api/typescript/beta/memory_stores/delete.md index 3570e5ab9c..9295df662f 100644 --- a/content/en/api/typescript/beta/memory_stores/delete.md +++ b/content/en/api/typescript/beta/memory_stores/delete.md @@ -1,21 +1,23 @@ --- -title: Delete a memory store +title: Delete a Memory Store url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/delete --- -# Delete a memory store +# Delete a Memory Store `client.beta.memoryStores.delete(memoryStoreID, params?, options?): BetaManagedAgentsDeletedMemoryStore` **DELETE** `/v1/memory_stores/{memory_store_id}` -Delete a memory store +Delete a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to permanently delete (a `memstore_...` identifier). Required. Deletion cascades to all memories and memory versions in the store and cannot be undone. + The ID of the memory store to delete (`memstore_...`). + + Deleting a store also deletes all its memories and memory versions. It can't be undone. - `params: MemoryStoreDeleteParams` @@ -127,6 +129,8 @@ Delete a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/memory_stores/list.md b/content/en/api/typescript/beta/memory_stores/list.md index a6147a82b7..ba093f418f 100644 --- a/content/en/api/typescript/beta/memory_stores/list.md +++ b/content/en/api/typescript/beta/memory_stores/list.md @@ -1,15 +1,15 @@ --- -title: List memory stores +title: List Memory Stores url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/list --- -# List memory stores +# List Memory Stores `client.beta.memoryStores.list(params?, options?): PageCursor` **GET** `/v1/memory_stores` -List memory stores +List Memory Stores ## Parameters @@ -17,13 +17,13 @@ List memory stores - `"created_at[gte]"?: string` (query parameter) - Return only stores whose `created_at` is at or after this time (inclusive). Sent on the wire as `created_at[gte]`. + Return only memory stores created at or after this time (inclusive). format: date-time - `"created_at[lte]"?: string` (query parameter) - Return only stores whose `created_at` is at or before this time (inclusive). Sent on the wire as `created_at[lte]`. + Return only memory stores created at or before this time (inclusive). format: date-time @@ -39,7 +39,7 @@ List memory stores - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `betas?: Array` (header parameter) @@ -149,6 +149,8 @@ List memory stores - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -165,27 +167,33 @@ List memory stores - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -193,7 +201,9 @@ List memory stores - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/memories.md b/content/en/api/typescript/beta/memory_stores/memories.md index c97ed13242..72a11bd965 100644 --- a/content/en/api/typescript/beta/memory_stores/memories.md +++ b/content/en/api/typescript/beta/memory_stores/memories.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memor # Memories -## Create a memory +## Create a Memory `client.beta.memoryStores.memories.create(memoryStoreID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ### Parameters @@ -23,17 +23,23 @@ Create a memory - `content: string | null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -151,6 +157,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -161,13 +169,19 @@ Create a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -175,7 +189,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -191,7 +205,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -199,13 +217,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -241,13 +263,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -## List memories +## List Memories `client.beta.memoryStores.memories.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ### Parameters @@ -259,27 +281,35 @@ List memories - `depth?: number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit?: number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix?: string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -397,6 +427,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -407,17 +439,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -425,7 +463,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -441,7 +479,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -449,17 +491,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -506,13 +554,13 @@ for await (const betaManagedAgentsMemoryListItem of client.beta.memoryStores.mem } ``` -## Retrieve a memory +## Retrieve a Memory `client.beta.memoryStores.memories.retrieve(memoryID, params, options?): BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ### Parameters @@ -528,7 +576,9 @@ Retrieve a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -646,6 +696,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -656,13 +708,19 @@ Retrieve a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -670,7 +728,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -686,7 +744,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -694,13 +756,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -735,13 +801,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -## Update a memory +## Update a Memory `client.beta.memoryStores.memories.update(memoryID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ### Parameters @@ -757,7 +823,9 @@ Update a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -773,13 +841,17 @@ Update a memory - `path?: string | null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition?: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -895,6 +967,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -905,13 +979,19 @@ Update a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -919,7 +999,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -935,7 +1015,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -943,13 +1027,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Example @@ -984,13 +1072,13 @@ console.log(betaManagedAgentsMemory.id); } ``` -## Delete a memory +## Delete a Memory `client.beta.memoryStores.memories.delete(memoryID, params, options?): BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ### Parameters @@ -1118,6 +1206,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1128,7 +1218,11 @@ Delete a memory - `interface BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -1176,7 +1270,9 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsContentSha256Precondition` - Optimistic-concurrency precondition: the update applies only if the memory's stored `content_sha256` equals the supplied value. On mismatch, the request returns `memory_precondition_failed_error` (HTTP 409); re-read the memory and retry against the fresh state. If the precondition fails but the stored state already exactly matches the requested `content` and `path`, the server returns 200 instead of 409. + A precondition that applies an update only if the memory's current content has the hash in `content_sha256`. + + If the hashes differ, the request fails with HTTP status 409. Retrieve the memory and retry. If the memory already has exactly the requested `content` and `path`, the request succeeds even though the hashes differ. - `type: "content_sha256"` @@ -1188,7 +1284,11 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` @@ -1306,7 +1406,7 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1336,13 +1436,19 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1350,7 +1456,7 @@ console.log(betaManagedAgentsDeletedMemory.id); - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1366,7 +1472,11 @@ console.log(betaManagedAgentsDeletedMemory.id); - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1374,29 +1484,39 @@ console.log(betaManagedAgentsDeletedMemory.id); - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ### Beta Managed Agents Memory List Item - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -1404,7 +1524,7 @@ console.log(betaManagedAgentsDeletedMemory.id); - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -1420,7 +1540,11 @@ console.log(betaManagedAgentsDeletedMemory.id); - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -1428,17 +1552,23 @@ console.log(betaManagedAgentsDeletedMemory.id); - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1450,7 +1580,7 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsMemoryPathConflictError` - The error returned with HTTP status 409 when a create or rename targets a path that another memory uses, or a path that overlaps another memory's path. + The error returned with HTTP status 409 when you create or rename a memory and the path you give is already used by another memory or overlaps another memory's path. Two paths overlap when one is an ancestor of the other, such as `/notes` and `/notes/todo.md`. To free the path, rename or delete the memory that `conflicting_memory_id` references, then retry. To change that memory instead of creating a new one, update it. @@ -1490,7 +1620,9 @@ console.log(betaManagedAgentsDeletedMemory.id); - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` @@ -1502,7 +1634,9 @@ console.log(betaManagedAgentsDeletedMemory.id); - `type BetaManagedAgentsMemoryView = "basic" | "full"` - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` diff --git a/content/en/api/typescript/beta/memory_stores/memories/create.md b/content/en/api/typescript/beta/memory_stores/memories/create.md index adc603a026..60c9273141 100644 --- a/content/en/api/typescript/beta/memory_stores/memories/create.md +++ b/content/en/api/typescript/beta/memory_stores/memories/create.md @@ -1,15 +1,15 @@ --- -title: Create a memory +title: Create a Memory url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/create --- -# Create a memory +# Create a Memory `client.beta.memoryStores.memories.create(memoryStoreID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories` -Create a memory +Create a Memory ## Parameters @@ -21,17 +21,23 @@ Create a memory - `content: string | null` - UTF-8 text content for the new memory. Maximum 100 kB (102,400 bytes). Required; pass `""` explicitly to create an empty memory. + The UTF-8 text content of the new memory. Pass `""` to create an empty memory. + + The maximum size is 100 kB (102,400 bytes). - `path: string` - Hierarchical path for the new memory, e.g. `/projects/foo/notes.md`. Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. + The path of the new memory, such as `/projects/foo/notes.md`. Paths are case-sensitive. + + A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. minLength: 2, maxLength: 1024 - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -149,6 +155,8 @@ Create a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,13 +167,19 @@ Create a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -173,7 +187,7 @@ Create a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -189,7 +203,11 @@ Create a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -197,13 +215,17 @@ Create a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/typescript/beta/memory_stores/memories/delete.md b/content/en/api/typescript/beta/memory_stores/memories/delete.md index 4f12dfe195..b07f3dd910 100644 --- a/content/en/api/typescript/beta/memory_stores/memories/delete.md +++ b/content/en/api/typescript/beta/memory_stores/memories/delete.md @@ -1,15 +1,15 @@ --- -title: Delete a memory +title: Delete a Memory url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/delete --- -# Delete a memory +# Delete a Memory `client.beta.memoryStores.memories.delete(memoryID, params, options?): BetaManagedAgentsDeletedMemory` **DELETE** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Delete a memory +Delete a Memory ## Parameters @@ -137,6 +137,8 @@ Delete a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -147,7 +149,11 @@ Delete a memory - `interface BetaManagedAgentsDeletedMemory` - Tombstone returned by [Delete a memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript). Deleting a memory does not erase its version history: its versions remain listable via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) while they are retained (each version is kept for at least the version retention period after it was written, unless the store itself is deleted). + The confirmation that [Delete a Memory](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/delete?sdk_languages=typescript) returns. + + Deleting a memory doesn't delete its versions. [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) returns them while they are retained: each version is kept for at least the version retention period after it was written, unless the store itself is deleted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about how long versions are kept. - `type: "memory_deleted"` diff --git a/content/en/api/typescript/beta/memory_stores/memories/list.md b/content/en/api/typescript/beta/memory_stores/memories/list.md index be2768bef0..41bb237792 100644 --- a/content/en/api/typescript/beta/memory_stores/memories/list.md +++ b/content/en/api/typescript/beta/memory_stores/memories/list.md @@ -1,15 +1,15 @@ --- -title: List memories +title: List Memories url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/list --- -# List memories +# List Memories `client.beta.memoryStores.memories.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memories` -List memories +List Memories ## Parameters @@ -21,27 +21,35 @@ List memories - `depth?: number` (query parameter) - `0` (or omitted) returns all descendants below `path_prefix` (recursive). `1` returns immediate children only; deeper entries roll up as `memory_prefix` items. `depth=1` behaves like `ls`; omitting `depth` behaves like `find`. + How far below `path_prefix` to list. Defaults to `0`, which lists every memory below the prefix. + + Pass `1` to list only the direct children. Deeper memories are then grouped into `memory_prefix` items. format: int32 - `limit?: number` (query parameter) - Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 when omitted. Capped at 20 when `view=full`. Both `memory` and `memory_prefix` items count toward the limit. + The maximum number of items to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 items. `memory` and `memory_prefix` items both count toward the limit. format: int32 - `page?: string` (query parameter) - Opaque pagination cursor (a `page_...` value). Pass the `next_page` value from a previous response to fetch the next page; omit for the first page. + The `next_page` value from a previous response, to get the next page. Omit it to get the first page. - `path_prefix?: string` (query parameter) - Optional path prefix filter. Must end with `/` (segment-aligned), e.g., `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + Return only memories whose path starts with this prefix, such as `/notes/`. This value appears in request URLs. Do not include secrets or personally identifiable information. + + Omit it to list the whole store. The prefix must end with `/` and matches whole segments, so `/notes/` matches `/notes/todo.md` but not `/notes-archive/todo.md`. - `view?: BetaManagedAgentsMemoryView` (query parameter) - Which projection of each `memory` to return. Defaults to `basic` (content omitted). `full` populates `content` on each item and caps `limit` at 20; use this as the bulk-read path for export and sync. + Whether each memory in the response includes `content`. Defaults to `basic`, which sets it to `null`. + + With `full`, a page holds at most 20 items. - `"basic"` @@ -159,6 +167,8 @@ List memories - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -169,17 +179,23 @@ List memories - `type BetaManagedAgentsMemoryListItem = BetaManagedAgentsMemory | BetaManagedAgentsMemoryPrefix` - One item in a [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: either a `memory` object or, when `depth` is set, a `memory_prefix` rollup marker. + One item in a [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) response: a `memory`, or a `memory_prefix` marker when `depth` is `1`. - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -187,7 +203,7 @@ List memories - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -203,7 +219,11 @@ List memories - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -211,17 +231,23 @@ List memories - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). - `interface BetaManagedAgentsMemoryPrefix` - A rolled-up directory marker returned by [List memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) when `depth` is set. Indicates that one or more memories exist deeper than the requested depth under this prefix. This is a list-time rollup, not a stored resource; it has no ID and no lifecycle. Each prefix counts toward the page `limit` and interleaves with `memory` items in path order. + A directory marker that [List Memories](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list?sdk_languages=typescript) returns instead of the memories below the requested `depth`. + + It stands for one or more memories whose paths start with `path`. It isn't a stored object and doesn't have an ID. Each marker counts toward the page `limit`. - `type: "memory_prefix"` diff --git a/content/en/api/typescript/beta/memory_stores/memories/retrieve.md b/content/en/api/typescript/beta/memory_stores/memories/retrieve.md index ba48c8b697..eb36c7cd94 100644 --- a/content/en/api/typescript/beta/memory_stores/memories/retrieve.md +++ b/content/en/api/typescript/beta/memory_stores/memories/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory +title: Retrieve a Memory url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/retrieve --- -# Retrieve a memory +# Retrieve a Memory `client.beta.memoryStores.memories.retrieve(memoryID, params, options?): BetaManagedAgentsMemory` **GET** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Retrieve a memory +Retrieve a Memory ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -143,6 +145,8 @@ Retrieve a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,13 +157,19 @@ Retrieve a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -167,7 +177,7 @@ Retrieve a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -183,7 +193,11 @@ Retrieve a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -191,13 +205,17 @@ Retrieve a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/typescript/beta/memory_stores/memories/update.md b/content/en/api/typescript/beta/memory_stores/memories/update.md index cbaaec6dd2..ddc4f43f0f 100644 --- a/content/en/api/typescript/beta/memory_stores/memories/update.md +++ b/content/en/api/typescript/beta/memory_stores/memories/update.md @@ -1,15 +1,15 @@ --- -title: Update a memory +title: Update a Memory url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memories/update --- -# Update a memory +# Update a Memory `client.beta.memoryStores.memories.update(memoryID, params, options?): BetaManagedAgentsMemory` **POST** `/v1/memory_stores/{memory_store_id}/memories/{memory_id}` -Update a memory +Update a Memory ## Parameters @@ -25,7 +25,9 @@ Update a memory - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -41,13 +43,17 @@ Update a memory - `path?: string | null` - New path for the memory (a rename). Must start with `/`, contain at least one non-empty segment, and be at most 1,024 bytes. Must not contain empty segments, `.` or `..` segments, control or format characters, or the Unicode line and paragraph separators (U+2028, U+2029), and must be NFC-normalized. Paths are case-sensitive. The memory's `id` is preserved across renames. Omit to leave the path unchanged. + The new path of the memory, which renames it. Omit it to keep the current path. + + The memory keeps its `id`. A path starts with `/` and has 1 to 20 segments. A segment can't be empty and can't be `.` or `..`. A path can't contain control characters, format characters, or the line and paragraph separators U+2028 and U+2029. It must be in Unicode Normalization Form C and at most 1,024 bytes long. Paths are case-sensitive. minLength: 2, maxLength: 1024 - `precondition?: BetaManagedAgentsPrecondition` - Optional optimistic-concurrency precondition. When supplied, the update applies only if the memory's current state matches; on mismatch the request returns `memory_precondition_failed_error` (HTTP 409). When omitted, the update is unconditional. + The condition that the memory must meet for the update to apply. Omit it to update unconditionally. + + If the condition fails, the request fails with HTTP status 409. - `type: "content_sha256"` @@ -163,6 +169,8 @@ Update a memory - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -173,13 +181,19 @@ Update a memory - `interface BetaManagedAgentsMemory` - A `memory` object: a single text document at a hierarchical path inside a memory store. The `content` field is populated when `view=full` and `null` when `view=basic`; the `content_size_bytes` and `content_sha256` fields are always populated so sync clients can diff without fetching content. Memories are addressed by their `mem_...` ID; the path is the create key and can be changed via update. + A text document at a path inside a memory store. + + `content` is `null` when the response uses `view=basic`. `content_size_bytes` and `content_sha256` are always set, so you can detect changes without fetching the content. To retrieve, update, or delete a memory, pass its ID, which stays the same when its path changes. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#view-and-edit-memories) to learn more about working with memories. - `type: "memory"` - `id: string` - Unique identifier for this memory (a `mem_...` value). Stable across renames; use this ID, not the path, to read, update, or delete the memory. + The unique ID of the memory (`mem_...`). It stays the same when the memory's path changes. + + To retrieve, update, or delete the memory, pass this ID. - `content_sha256: string` @@ -187,7 +201,7 @@ Update a memory - `content_size_bytes: number` - Size of `content` in bytes (the UTF-8 plaintext length). Always populated, regardless of `view`. + The size of the memory's `content` in UTF-8 bytes. It is set regardless of `view`. format: int32 @@ -203,7 +217,11 @@ Update a memory - `memory_version_id: string` - ID of the `memory_version` representing this memory's current content (a `memver_...` value). This is the authoritative head pointer; `memory_version` objects do not carry an `is_latest` flag, so compare against this field instead. Enumerate the history via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + The ID of the memory version that holds the memory's current content (`memver_...`). + + Memory versions don't have a flag that marks the latest one. Compare their IDs with this field instead. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `path: string` @@ -211,13 +229,17 @@ Update a memory - `updated_at: string` - When this memory was last modified, in RFC 3339 format. Use this as a cheap freshness signal; for who made the change, look up the head version's `created_by` via [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript). + When the memory was last changed, in RFC 3339. + + To find out who made the change, look at `created_by` on the memory version that `memory_version_id` references. format: date-time - `content?: string | null` - The memory's UTF-8 text content. Populated when `view=full`; `null` when `view=basic`. Maximum 100 kB (102,400 bytes). + The memory's UTF-8 text content, or `null` when the response uses `view=basic`. + + The maximum size is 100 kB (102,400 bytes). ## Example diff --git a/content/en/api/typescript/beta/memory_stores/memory_versions.md b/content/en/api/typescript/beta/memory_stores/memory_versions.md index 4c5e674126..508021162a 100644 --- a/content/en/api/typescript/beta/memory_stores/memory_versions.md +++ b/content/en/api/typescript/beta/memory_stores/memory_versions.md @@ -5,13 +5,13 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memor # Memory Versions -## List memory versions +## List Memory Versions `client.beta.memoryStores.memoryVersions.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ### Parameters @@ -39,7 +39,9 @@ List memory versions - `limit?: number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -47,7 +49,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -79,7 +81,9 @@ List memory versions - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -197,6 +201,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -207,7 +213,13 @@ List memory versions - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -223,7 +235,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -261,7 +275,11 @@ List memory versions - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -317,7 +335,11 @@ List memory versions - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -373,13 +395,13 @@ for await (const betaManagedAgentsMemoryVersion of client.beta.memoryStores.memo } ``` -## Retrieve a memory version +## Retrieve a Memory Version `client.beta.memoryStores.memoryVersions.retrieve(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ### Parameters @@ -395,7 +417,9 @@ Retrieve a memory version - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -513,6 +537,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -523,7 +549,13 @@ Retrieve a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -539,7 +571,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -577,7 +611,11 @@ Retrieve a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -633,7 +671,11 @@ Retrieve a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -684,13 +726,13 @@ console.log(betaManagedAgentsMemoryVersion.id); } ``` -## Redact a memory version +## Redact a Memory Version `client.beta.memoryStores.memoryVersions.redact(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ### Parameters @@ -812,6 +854,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -822,7 +866,13 @@ Redact a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -838,7 +888,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -876,7 +928,11 @@ Redact a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -932,7 +988,11 @@ Redact a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -1057,7 +1117,13 @@ console.log(betaManagedAgentsMemoryVersion.id); - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -1073,7 +1139,9 @@ console.log(betaManagedAgentsMemoryVersion.id); - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -1111,7 +1179,11 @@ console.log(betaManagedAgentsMemoryVersion.id); - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -1167,7 +1239,11 @@ console.log(betaManagedAgentsMemoryVersion.id); - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time @@ -1179,7 +1255,9 @@ console.log(betaManagedAgentsMemoryVersion.id); - `type BetaManagedAgentsMemoryVersionOperation = "created" | "modified" | "deleted"` - The kind of mutation a `memory_version` records. Every non-no-op mutation to a memory appends exactly one version row with one of these values. + The kind of change that a memory version records. + + Every change to a memory adds one version. If you update a memory and nothing changes, the memory doesn't get a new version. - `"created"` diff --git a/content/en/api/typescript/beta/memory_stores/memory_versions/list.md b/content/en/api/typescript/beta/memory_stores/memory_versions/list.md index fcf42f0cc9..8bdf752ab9 100644 --- a/content/en/api/typescript/beta/memory_stores/memory_versions/list.md +++ b/content/en/api/typescript/beta/memory_stores/memory_versions/list.md @@ -1,15 +1,15 @@ --- -title: List memory versions +title: List Memory Versions url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/list --- -# List memory versions +# List Memory Versions `client.beta.memoryStores.memoryVersions.list(memoryStoreID, params?, options?): PageCursor` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions` -List memory versions +List Memory Versions ## Parameters @@ -37,7 +37,9 @@ List memory versions - `limit?: number` (query parameter) - The maximum number of versions to return per page. Defaults to 20. + The maximum number of versions to return per page, from 1 to 100. Defaults to 20. + + With `view=full`, a page holds at most 20 versions. format: int32 @@ -45,7 +47,7 @@ List memory versions Return only versions of the memory with this ID (`mem_...`). - The filter still works after the memory is deleted. The results then include the version whose `operation` is `deleted`. + The filter still works after the memory is deleted. While that memory's versions are retained, the results include the version whose `operation` is `deleted`. - `operation?: BetaManagedAgentsMemoryVersionOperation` (query parameter) @@ -77,7 +79,9 @@ List memory versions - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -195,6 +199,8 @@ List memory versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -205,7 +211,13 @@ List memory versions - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -221,7 +233,9 @@ List memory versions - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -259,7 +273,11 @@ List memory versions - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -315,7 +333,11 @@ List memory versions - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/memory_versions/redact.md b/content/en/api/typescript/beta/memory_stores/memory_versions/redact.md index 8d71ea8cdf..5c85f1879c 100644 --- a/content/en/api/typescript/beta/memory_stores/memory_versions/redact.md +++ b/content/en/api/typescript/beta/memory_stores/memory_versions/redact.md @@ -1,15 +1,15 @@ --- -title: Redact a memory version +title: Redact a Memory Version url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/redact --- -# Redact a memory version +# Redact a Memory Version `client.beta.memoryStores.memoryVersions.redact(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **POST** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}/redact` -Redact a memory version +Redact a Memory Version ## Parameters @@ -131,6 +131,8 @@ Redact a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -141,7 +143,13 @@ Redact a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -157,7 +165,9 @@ Redact a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -195,7 +205,11 @@ Redact a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -251,7 +265,11 @@ Redact a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/memory_versions/retrieve.md b/content/en/api/typescript/beta/memory_stores/memory_versions/retrieve.md index 9559ad7310..770858ad76 100644 --- a/content/en/api/typescript/beta/memory_stores/memory_versions/retrieve.md +++ b/content/en/api/typescript/beta/memory_stores/memory_versions/retrieve.md @@ -1,15 +1,15 @@ --- -title: Retrieve a memory version +title: Retrieve a Memory Version url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/memory_versions/retrieve --- -# Retrieve a memory version +# Retrieve a Memory Version `client.beta.memoryStores.memoryVersions.retrieve(memoryVersionID, params, options?): BetaManagedAgentsMemoryVersion` **GET** `/v1/memory_stores/{memory_store_id}/memory_versions/{memory_version_id}` -Retrieve a memory version +Retrieve a Memory Version ## Parameters @@ -25,7 +25,9 @@ Retrieve a memory version - `view?: BetaManagedAgentsMemoryView` (query parameter) - Selects which projection of a `memory` or `memory_version` the server returns. `basic` returns the object with `content` set to `null`; `full` populates `content`. When omitted, the default is endpoint-specific: retrieve operations default to `full`; list, create, and update operations default to `basic`. Listing with `view=full` caps `limit` at 20. + Whether a `memory` or `memory_version` in the response includes its `content`. Defaults to `full` on retrieve operations and to `basic` on list, create, and update operations. + + With `full`, list operations return at most 20 items per page. - `"basic"` @@ -143,6 +145,8 @@ Retrieve a memory version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -153,7 +157,13 @@ Retrieve a memory version - `interface BetaManagedAgentsMemoryVersion` - A `memory_version` object: one immutable, attributed row in a memory's append-only history. Every non-no-op mutation to a memory produces a new version. Versions belong to the store (not the individual memory) and are not deleted with the memory; each version is retained for at least the version retention period after it was written, unless the store itself is deleted. Retrieving a redacted version returns 200 with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`; branch on `redacted_at`, not HTTP status. + One entry in a memory's history, recording a single change and who made it. + + Every change to a memory adds one version. Only redaction can change a version after that. Versions belong to the memory store and stay after the memory is deleted. Each version is retained for at least the version retention period after it was written, unless the store itself is deleted. + + Retrieving a redacted version succeeds, with `content`, `path`, `content_size_bytes`, and `content_sha256` set to `null`. Check `redacted_at` to find out whether a version was redacted. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#audit-memory-changes) to learn more about memory versions. - `type: "memory_version"` @@ -169,7 +179,9 @@ Retrieve a memory version - `memory_id: string` - ID of the memory this version snapshots (a `mem_...` value). Remains valid after the memory is deleted; pass it as `memory_id` to [List memory versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to retrieve the memory's retained versions, including the `deleted` row while the lineage is retained. + The ID of the memory that this version belongs to (`mem_...`). + + The ID stays valid after the memory is deleted. Pass it as `memory_id` to [List Memory Versions](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/list?sdk_languages=typescript) to get the memory's retained versions, including its `deleted` version while the lineage is retained. - `memory_store_id: string` @@ -207,7 +219,11 @@ Retrieve a memory version - `created_by?: BetaManagedAgentsActor` - Who performed this write: one of `session_actor`, `api_actor`, `user_actor`, or `service_account_actor`; `null` when no writer is recorded. Captured at write time and preserved through redaction. A `session_actor` is an agent writing through the store's mounted filesystem at `/mnt/memory/`. The API key that created that session is not recorded on agent writes, so attribution names who made the write, not who is ultimately responsible; look up session provenance via the [Sessions API](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript). + Who made this change to the memory, or `null` if the author wasn't recorded. + + Redacting the version doesn't change this field. A `session_actor` here is an agent that wrote through the store's mounted filesystem at `/mnt/memory/`. The version doesn't record the API key that created that session. So the author in `created_by` is who made the change, not who is ultimately responsible for it. + + You can [retrieve the session](https://platform.claude.com/docs/en/api/beta/sessions/retrieve?sdk_languages=typescript) to learn more about where the change came from. - `interface BetaManagedAgentsSessionActor` @@ -263,7 +279,11 @@ Retrieve a memory version - `redacted_at?: string | null` - When this version was redacted, in RFC 3339 format, or `null` if it has not been redacted. When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are all `null`. See [Redact a memory version](https://platform.claude.com/docs/en/api/beta/memory_stores/memory_versions/redact?sdk_languages=typescript). + When the version was redacted, in RFC 3339, or `null` if it hasn't been. + + When set, `content`, `path`, `content_size_bytes`, and `content_sha256` are `null`. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#redact-a-version) to learn more about redaction. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/retrieve.md b/content/en/api/typescript/beta/memory_stores/retrieve.md index 404d13304c..f2aa13659b 100644 --- a/content/en/api/typescript/beta/memory_stores/retrieve.md +++ b/content/en/api/typescript/beta/memory_stores/retrieve.md @@ -1,21 +1,21 @@ --- -title: Retrieve a memory store +title: Retrieve a Memory Store url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/retrieve --- -# Retrieve a memory store +# Retrieve a Memory Store `client.beta.memoryStores.retrieve(memoryStoreID, params?, options?): BetaManagedAgentsMemoryStore` **GET** `/v1/memory_stores/{memory_store_id}` -Retrieve a memory store +Retrieve a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to retrieve (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. + The ID of the memory store to retrieve (`memstore_...`). - `params: MemoryStoreRetrieveParams` @@ -127,6 +127,8 @@ Retrieve a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -143,27 +145,33 @@ Retrieve a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -171,7 +179,9 @@ Retrieve a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/typescript/beta/memory_stores/update.md b/content/en/api/typescript/beta/memory_stores/update.md index 423b4df122..dfc083f8ac 100644 --- a/content/en/api/typescript/beta/memory_stores/update.md +++ b/content/en/api/typescript/beta/memory_stores/update.md @@ -1,37 +1,43 @@ --- -title: Update a memory store +title: Update a Memory Store url: https://platform.claude.com/docs/en/api/typescript/beta/memory_stores/update --- -# Update a memory store +# Update a Memory Store `client.beta.memoryStores.update(memoryStoreID, params, options?): BetaManagedAgentsMemoryStore` **POST** `/v1/memory_stores/{memory_store_id}` -Update a memory store +Update a Memory Store ## Parameters - `memoryStoreID: string` (path parameter) - ID of the memory store to update (a `memstore_...` identifier). Required. Enumerate IDs via `GET /v1/memory_stores`. Updating an archived store returns 400. + The ID of the memory store to update (`memstore_...`). + + The request fails with HTTP status 400 if the store is archived. - `params: MemoryStoreUpdateParams` - `description?: string | null` - New description for the store, up to 1024 characters. Pass an empty string to clear it. + New description for the store, up to 1,024 characters. Pass an empty string to clear it. maxLength: 1024 - `metadata?: Record | null` - Metadata patch. Set a key to a string to upsert it, or to null to delete it. Omit the field to preserve. The stored bag is limited to 16 keys (up to 64 chars each) with values up to 512 chars. + Changes to apply to the memory store's metadata. Keys you leave out keep their values. + + Set a key to a string to add or replace it, or to `null` to remove it. After the change, the metadata can hold at most 16 key-value pairs. Keys are 1 to 64 characters long and values at most 512 characters. - `name?: string | null` - New human-readable name for the store. 1–255 characters; no control characters. Renaming changes the slug used for the store's `mount_path` in sessions created after the update. + The new name of the memory store, 1 to 255 characters long, without control characters. + + Sessions created after the change use the new name for the store's directory under `/mnt/memory/`. minLength: 1, maxLength: 255 @@ -143,6 +149,8 @@ Update a memory store - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,27 +167,33 @@ Update a memory store - `id: string` - Unique identifier for the memory store (a `memstore_...` tagged ID). Use this when attaching the store to a session, or in the `{memory_store_id}` path parameter of subsequent calls. + The unique ID of the memory store (`memstore_...`). Use it to attach the store to a session. - `archived_at: string | null` - Timestamp when the store was archived, or `null` if active. Set once and never cleared; archiving is one-way. Archived stores are read-only and cannot be attached to new sessions. + When the memory store was archived, in RFC 3339, or `null` if it hasn't been. + + Archiving can't be undone. An archived store can't be attached to new sessions. You can't create or update its memories or update the store. You can still read and delete its memories, redact their versions, and delete the store. + + See the [memory guide](https://platform.claude.com/docs/en/managed-agents/memory?sdk_languages=typescript#archive-a-store) to learn more about archiving. format: date-time - `created_at: string` - Timestamp when the store was created. + When the memory store was created, in RFC 3339. format: date-time - `description: string` - Free-text description of what the store contains, up to 1024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. + Free-text description of what the store contains, up to 1,024 characters. Included in the agent's system prompt when the store is attached, so word it to be useful to the agent. Empty string when unset. - `metadata: Record` - Arbitrary key-value tags for your own bookkeeping (such as the end user a store belongs to). Up to 16 pairs; keys 1–64 characters; values up to 512 characters. Returned on retrieve/list but not filterable. + Key-value pairs for your own use, such as the end user that the store belongs to. + + A store has at most 16 pairs. Keys are 1 to 64 characters long and values at most 512 characters. You can't filter lists by metadata. - `name: string` @@ -187,7 +201,9 @@ Update a memory store - `updated_at: string` - Timestamp when the store's `name`, `description`, or `metadata` was last modified. Memory writes inside the store do not advance this. + When the memory store was last changed, in RFC 3339. + + Changing its `name`, `description`, or `metadata` updates it. Archiving the store does too. Changes to the store's memories don't. format: date-time diff --git a/content/en/api/typescript/beta/messages.md b/content/en/api/typescript/beta/messages.md index 1caafac7bc..d925126d18 100644 --- a/content/en/api/typescript/beta/messages.md +++ b/content/en/api/typescript/beta/messages.md @@ -3654,8 +3654,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3704,7 +3718,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3712,6 +3730,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -4191,9 +4215,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -7409,6 +7435,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7419,6 +7449,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7429,6 +7463,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7439,6 +7477,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7449,12 +7491,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -12498,9 +12552,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -19071,6 +19127,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19083,6 +19143,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19095,6 +19159,12 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found @@ -19105,6 +19175,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19115,6 +19189,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19125,6 +19203,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19135,6 +19217,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19145,12 +19231,24 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -19159,6 +19257,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19171,6 +19273,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19183,6 +19289,12 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -34225,6 +34337,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -34235,6 +34351,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -34245,6 +34365,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -34255,6 +34379,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -34265,12 +34393,24 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -35259,8 +35399,22 @@ console.log(betaMessageTokensCount.context_management); - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35309,7 +35463,11 @@ console.log(betaMessageTokensCount.context_management); - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35317,6 +35475,12 @@ console.log(betaMessageTokensCount.context_management); - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -35513,8 +35677,22 @@ console.log(betaMessageTokensCount.context_management); - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -35563,7 +35741,11 @@ console.log(betaMessageTokensCount.context_management); - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -35571,6 +35753,12 @@ console.log(betaMessageTokensCount.context_management); - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -39991,6 +40179,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -40001,6 +40193,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -40011,6 +40207,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -40021,6 +40221,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -40031,12 +40235,24 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -51996,6 +52212,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -52006,6 +52226,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -52016,6 +52240,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -52026,6 +52254,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -52036,12 +52268,24 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -55841,6 +56085,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -55851,6 +56099,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -55861,6 +56113,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -55871,6 +56127,10 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -55881,12 +56141,24 @@ console.log(betaMessageTokensCount.context_management); - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -81415,8 +81687,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -81465,7 +81751,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -81473,6 +81763,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -81996,9 +82292,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) @@ -82290,6 +82588,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82581,6 +82881,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -82870,6 +83172,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83151,6 +83455,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -83324,6 +83630,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -86516,6 +86824,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -86526,6 +86838,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -86536,6 +86852,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -86546,6 +86866,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -86556,12 +86880,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/beta/messages/batches.md b/content/en/api/typescript/beta/messages/batches.md index d587ce19b4..9238f8ac46 100644 --- a/content/en/api/typescript/beta/messages/batches.md +++ b/content/en/api/typescript/beta/messages/batches.md @@ -3674,8 +3674,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3724,7 +3738,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3732,6 +3750,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -4255,9 +4279,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) @@ -4549,6 +4575,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4840,6 +4868,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5129,6 +5159,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5410,6 +5442,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -5583,6 +5617,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8775,6 +8811,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8785,6 +8825,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8795,6 +8839,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8805,6 +8853,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8815,12 +8867,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -13011,6 +13075,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13021,6 +13089,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13031,6 +13103,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13041,6 +13117,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13051,12 +13131,24 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -17012,6 +17104,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -17022,6 +17118,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -17032,6 +17132,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -17042,6 +17146,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -17052,12 +17160,24 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -20965,6 +21085,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -20975,6 +21099,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -20985,6 +21113,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -20995,6 +21127,10 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -21005,12 +21141,24 @@ for await (const betaMessageBatchIndividualResponse of stream) { - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/beta/messages/batches/cancel.md b/content/en/api/typescript/beta/messages/batches/cancel.md index 7de351e58c..0c513d0ac0 100644 --- a/content/en/api/typescript/beta/messages/batches/cancel.md +++ b/content/en/api/typescript/beta/messages/batches/cancel.md @@ -131,6 +131,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/messages/batches/create.md b/content/en/api/typescript/beta/messages/batches/create.md index 0654853090..86ef034916 100644 --- a/content/en/api/typescript/beta/messages/batches/create.md +++ b/content/en/api/typescript/beta/messages/batches/create.md @@ -3672,8 +3672,22 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3722,7 +3736,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3730,6 +3748,12 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -4253,9 +4277,11 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) diff --git a/content/en/api/typescript/beta/messages/batches/delete.md b/content/en/api/typescript/beta/messages/batches/delete.md index 93a267842c..2561f9c9a7 100644 --- a/content/en/api/typescript/beta/messages/batches/delete.md +++ b/content/en/api/typescript/beta/messages/batches/delete.md @@ -131,6 +131,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/messages/batches/list.md b/content/en/api/typescript/beta/messages/batches/list.md index 3806da616a..8b4e04a47e 100644 --- a/content/en/api/typescript/beta/messages/batches/list.md +++ b/content/en/api/typescript/beta/messages/batches/list.md @@ -141,6 +141,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/messages/batches/results.md b/content/en/api/typescript/beta/messages/batches/results.md index d0ea7ef397..6ae387af68 100644 --- a/content/en/api/typescript/beta/messages/batches/results.md +++ b/content/en/api/typescript/beta/messages/batches/results.md @@ -131,6 +131,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3323,6 +3325,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3333,6 +3339,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3343,6 +3353,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3353,6 +3367,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3363,12 +3381,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/beta/messages/batches/retrieve.md b/content/en/api/typescript/beta/messages/batches/retrieve.md index c6f9c2657e..ff0026c21b 100644 --- a/content/en/api/typescript/beta/messages/batches/retrieve.md +++ b/content/en/api/typescript/beta/messages/batches/retrieve.md @@ -129,6 +129,8 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/messages/count_tokens.md b/content/en/api/typescript/beta/messages/count_tokens.md index 63c9c3112c..c7f9d21a0c 100644 --- a/content/en/api/typescript/beta/messages/count_tokens.md +++ b/content/en/api/typescript/beta/messages/count_tokens.md @@ -4002,9 +4002,11 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) diff --git a/content/en/api/typescript/beta/messages/create.md b/content/en/api/typescript/beta/messages/create.md index 4ec2f99488..841bf67065 100644 --- a/content/en/api/typescript/beta/messages/create.md +++ b/content/en/api/typescript/beta/messages/create.md @@ -3652,8 +3652,22 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `max_tokens?: number | null` + The `max_tokens` for the fallback attempt that uses this `fallbacks` entry's `model`, in place of the request's `max_tokens`. If you leave it out or set it to `null`, the attempt uses the request's `max_tokens`. + + See the [refusals and fallback guide](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback?sdk_languages=typescript#naming-your-own-fallback-models) to learn more about fallback entries. + - `output_config?: BetaOutputConfig | null` + Output parameters for the fallback attempt that uses this `fallbacks` entry's `model`, combined with the request's `output_config` one field at a time. + + - `format`: If you leave it out, the attempt uses the request's `format`. If you set it to `null`, the attempt runs without a format. + - `effort`: If you leave it out, the attempt uses the request's `effort` when `model` supports that level with the attempt's `thinking`. If the request doesn't set `effort`, if `model` doesn't support the level, or if you set `effort` to `null`, the attempt runs at the default effort of `model`. + - `task_budget`: If you leave it out, the attempt uses the request's `task_budget` when `model` accepts a task budget of that size. If the request doesn't set `task_budget`, if `model` doesn't accept it, or if you set `task_budget` to `null`, the attempt runs without a task budget. + + Set `output_config` to `null` to run the attempt without a format or a task budget, at the default effort of `model`. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `effort?: "low" | "medium" | "high" | 2 more | null` How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. @@ -3702,7 +3716,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `speed?: "standard" | "fast" | null` - Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time. + The inference speed mode for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt runs at `fast` speed only when the request sets `speed` to `fast` and your organization can use fast mode on `model`. + + Otherwise, or when you set this field to `null`, the attempt runs at `standard` speed. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. - `"standard"` @@ -3710,6 +3728,12 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `thinking?: BetaThinkingConfigEnabled | BetaThinkingConfigDisabled | BetaThinkingConfigBetweenTools | BetaThinkingConfigAdaptive | null` + The thinking configuration for the fallback attempt that uses this `fallbacks` entry's `model`. If you leave it out, the attempt uses the request's `thinking` when `model` supports that thinking `type`. + + If you leave it out and the request's thinking `type` is `between_tools` but `model` doesn't support `between_tools`, the attempt uses `disabled` if `model` supports it. Otherwise, if `model` doesn't support the request's thinking `type`, if the request doesn't set `thinking`, or if you set this field to `null`, the attempt uses the thinking `type` that `model` uses when a request leaves out `thinking`. The request's `thinking.display` still applies where `model` allows it. + + These rules apply with the `server-side-fallback-2026-07-01` beta header. + - `interface BetaThinkingConfigEnabled` - `type: "enabled"` @@ -4189,9 +4213,11 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -7407,6 +7433,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7417,6 +7447,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7427,6 +7461,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7437,6 +7475,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7447,12 +7489,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface BetaCacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface BetaCacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/beta/models.md b/content/en/api/typescript/beta/models.md index 08ec908fa9..6c0db04997 100644 --- a/content/en/api/typescript/beta/models.md +++ b/content/en/api/typescript/beta/models.md @@ -155,6 +155,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -627,6 +629,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/models/list.md b/content/en/api/typescript/beta/models/list.md index 6fe10563d9..cdbad71844 100644 --- a/content/en/api/typescript/beta/models/list.md +++ b/content/en/api/typescript/beta/models/list.md @@ -153,6 +153,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/models/retrieve.md b/content/en/api/typescript/beta/models/retrieve.md index a39e21f8b4..5199425ac1 100644 --- a/content/en/api/typescript/beta/models/retrieve.md +++ b/content/en/api/typescript/beta/models/retrieve.md @@ -129,6 +129,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions.md b/content/en/api/typescript/beta/sessions.md index 18b4f8f13c..6164e42d98 100644 --- a/content/en/api/typescript/beta/sessions.md +++ b/content/en/api/typescript/beta/sessions.md @@ -1247,6 +1247,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2819,6 +2821,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4310,6 +4314,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -6376,6 +6382,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7862,6 +7870,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -8025,6 +8035,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -19819,6 +19831,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23284,6 +23298,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -23907,6 +23923,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27058,6 +27076,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27250,6 +27270,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27533,6 +27555,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -27811,6 +27835,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28083,6 +28109,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -28273,6 +28301,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -29356,6 +29386,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -30434,6 +30466,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -31520,6 +31554,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -34634,6 +34670,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/archive.md b/content/en/api/typescript/beta/sessions/archive.md index 0cc0ea5239..abdefbea4e 100644 --- a/content/en/api/typescript/beta/sessions/archive.md +++ b/content/en/api/typescript/beta/sessions/archive.md @@ -125,6 +125,8 @@ Archive Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/create.md b/content/en/api/typescript/beta/sessions/create.md index 7dc71beec5..b12570ce1f 100644 --- a/content/en/api/typescript/beta/sessions/create.md +++ b/content/en/api/typescript/beta/sessions/create.md @@ -1245,6 +1245,8 @@ Create Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/delete.md b/content/en/api/typescript/beta/sessions/delete.md index 30c3fc14dd..af3b2e15c2 100644 --- a/content/en/api/typescript/beta/sessions/delete.md +++ b/content/en/api/typescript/beta/sessions/delete.md @@ -125,6 +125,8 @@ Delete Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/events.md b/content/en/api/typescript/beta/sessions/events.md index e254cb2433..a3c458cdb9 100644 --- a/content/en/api/typescript/beta/sessions/events.md +++ b/content/en/api/typescript/beta/sessions/events.md @@ -253,6 +253,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3718,6 +3720,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -4341,6 +4345,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/events/list.md b/content/en/api/typescript/beta/sessions/events/list.md index 152b925ef7..cb76f0df7e 100644 --- a/content/en/api/typescript/beta/sessions/events/list.md +++ b/content/en/api/typescript/beta/sessions/events/list.md @@ -251,6 +251,8 @@ List Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/events/send.md b/content/en/api/typescript/beta/sessions/events/send.md index 86c76a93c3..87481c4816 100644 --- a/content/en/api/typescript/beta/sessions/events/send.md +++ b/content/en/api/typescript/beta/sessions/events/send.md @@ -487,6 +487,8 @@ Send Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/events/stream.md b/content/en/api/typescript/beta/sessions/events/stream.md index 9d4d480111..ced359fa57 100644 --- a/content/en/api/typescript/beta/sessions/events/stream.md +++ b/content/en/api/typescript/beta/sessions/events/stream.md @@ -133,6 +133,8 @@ Stream Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/list.md b/content/en/api/typescript/beta/sessions/list.md index b1ff238f9d..624f04e167 100644 --- a/content/en/api/typescript/beta/sessions/list.md +++ b/content/en/api/typescript/beta/sessions/list.md @@ -207,6 +207,8 @@ List Sessions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources.md b/content/en/api/typescript/beta/sessions/resources.md index 1d2aa400ea..4a007ae600 100644 --- a/content/en/api/typescript/beta/sessions/resources.md +++ b/content/en/api/typescript/beta/sessions/resources.md @@ -141,6 +141,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -333,6 +335,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -616,6 +620,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -894,6 +900,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1166,6 +1174,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources/add.md b/content/en/api/typescript/beta/sessions/resources/add.md index b8e61c2118..ad905ee114 100644 --- a/content/en/api/typescript/beta/sessions/resources/add.md +++ b/content/en/api/typescript/beta/sessions/resources/add.md @@ -139,6 +139,8 @@ Add Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources/delete.md b/content/en/api/typescript/beta/sessions/resources/delete.md index 691cb35946..52521a8109 100644 --- a/content/en/api/typescript/beta/sessions/resources/delete.md +++ b/content/en/api/typescript/beta/sessions/resources/delete.md @@ -127,6 +127,8 @@ Delete Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources/list.md b/content/en/api/typescript/beta/sessions/resources/list.md index f6587b3415..9a22910cfa 100644 --- a/content/en/api/typescript/beta/sessions/resources/list.md +++ b/content/en/api/typescript/beta/sessions/resources/list.md @@ -135,6 +135,8 @@ List Session Resources - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources/retrieve.md b/content/en/api/typescript/beta/sessions/resources/retrieve.md index bf6498e3b5..db5d1f4e0e 100644 --- a/content/en/api/typescript/beta/sessions/resources/retrieve.md +++ b/content/en/api/typescript/beta/sessions/resources/retrieve.md @@ -127,6 +127,8 @@ Get Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/resources/update.md b/content/en/api/typescript/beta/sessions/resources/update.md index cfcd7401c6..2fb48f22fd 100644 --- a/content/en/api/typescript/beta/sessions/resources/update.md +++ b/content/en/api/typescript/beta/sessions/resources/update.md @@ -133,6 +133,8 @@ Update Session Resource - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/retrieve.md b/content/en/api/typescript/beta/sessions/retrieve.md index bddbdd8a7c..53f248695a 100644 --- a/content/en/api/typescript/beta/sessions/retrieve.md +++ b/content/en/api/typescript/beta/sessions/retrieve.md @@ -125,6 +125,8 @@ Get Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads.md b/content/en/api/typescript/beta/sessions/threads.md index 30acb18464..9234fc874d 100644 --- a/content/en/api/typescript/beta/sessions/threads.md +++ b/content/en/api/typescript/beta/sessions/threads.md @@ -151,6 +151,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1234,6 +1236,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2312,6 +2316,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -7948,6 +7954,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -11062,6 +11070,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/archive.md b/content/en/api/typescript/beta/sessions/threads/archive.md index 66c74693e2..523032a549 100644 --- a/content/en/api/typescript/beta/sessions/threads/archive.md +++ b/content/en/api/typescript/beta/sessions/threads/archive.md @@ -127,6 +127,8 @@ Archive Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/events.md b/content/en/api/typescript/beta/sessions/threads/events.md index 8197ea3332..7c72a59cae 100644 --- a/content/en/api/typescript/beta/sessions/threads/events.md +++ b/content/en/api/typescript/beta/sessions/threads/events.md @@ -135,6 +135,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3249,6 +3251,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/events/list.md b/content/en/api/typescript/beta/sessions/threads/events/list.md index 4a6509068c..9a4d885260 100644 --- a/content/en/api/typescript/beta/sessions/threads/events/list.md +++ b/content/en/api/typescript/beta/sessions/threads/events/list.md @@ -133,6 +133,8 @@ List Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/events/stream.md b/content/en/api/typescript/beta/sessions/threads/events/stream.md index 069185a089..b2d3b7ddc9 100644 --- a/content/en/api/typescript/beta/sessions/threads/events/stream.md +++ b/content/en/api/typescript/beta/sessions/threads/events/stream.md @@ -135,6 +135,8 @@ Stream Session Thread Events - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/list.md b/content/en/api/typescript/beta/sessions/threads/list.md index 3cc8e8bef8..16c27ebfea 100644 --- a/content/en/api/typescript/beta/sessions/threads/list.md +++ b/content/en/api/typescript/beta/sessions/threads/list.md @@ -149,6 +149,8 @@ List Session Threads - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/threads/retrieve.md b/content/en/api/typescript/beta/sessions/threads/retrieve.md index 60ef118f5b..d324a508e0 100644 --- a/content/en/api/typescript/beta/sessions/threads/retrieve.md +++ b/content/en/api/typescript/beta/sessions/threads/retrieve.md @@ -127,6 +127,8 @@ Get Session Thread - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/sessions/update.md b/content/en/api/typescript/beta/sessions/update.md index 9fe3c473fd..413eb847e8 100644 --- a/content/en/api/typescript/beta/sessions/update.md +++ b/content/en/api/typescript/beta/sessions/update.md @@ -705,6 +705,8 @@ Update Session - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills.md b/content/en/api/typescript/beta/skills.md index 9b9166d445..1fe7687e9a 100644 --- a/content/en/api/typescript/beta/skills.md +++ b/content/en/api/typescript/beta/skills.md @@ -137,6 +137,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -388,6 +390,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -626,6 +630,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -858,6 +864,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1152,6 +1160,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1367,6 +1377,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1580,6 +1592,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1741,6 +1755,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1950,6 +1966,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/create.md b/content/en/api/typescript/beta/skills/create.md index 479010e9b4..56dc41786a 100644 --- a/content/en/api/typescript/beta/skills/create.md +++ b/content/en/api/typescript/beta/skills/create.md @@ -135,6 +135,8 @@ Create Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/delete.md b/content/en/api/typescript/beta/skills/delete.md index 4105cc5728..ca2fc95865 100644 --- a/content/en/api/typescript/beta/skills/delete.md +++ b/content/en/api/typescript/beta/skills/delete.md @@ -129,6 +129,8 @@ Delete Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/list.md b/content/en/api/typescript/beta/skills/list.md index c420ff813e..008d12fd8d 100644 --- a/content/en/api/typescript/beta/skills/list.md +++ b/content/en/api/typescript/beta/skills/list.md @@ -146,6 +146,8 @@ List Skills - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/retrieve.md b/content/en/api/typescript/beta/skills/retrieve.md index cc139a93f6..771b584bd5 100644 --- a/content/en/api/typescript/beta/skills/retrieve.md +++ b/content/en/api/typescript/beta/skills/retrieve.md @@ -129,6 +129,8 @@ Get Skill - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions.md b/content/en/api/typescript/beta/skills/versions.md index d9aaa791f8..1d83ce37ca 100644 --- a/content/en/api/typescript/beta/skills/versions.md +++ b/content/en/api/typescript/beta/skills/versions.md @@ -137,6 +137,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -352,6 +354,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -565,6 +569,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -726,6 +732,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -935,6 +943,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions/create.md b/content/en/api/typescript/beta/skills/versions/create.md index 85adda7764..21cededa4e 100644 --- a/content/en/api/typescript/beta/skills/versions/create.md +++ b/content/en/api/typescript/beta/skills/versions/create.md @@ -135,6 +135,8 @@ Create Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions/delete.md b/content/en/api/typescript/beta/skills/versions/delete.md index 1cb78ee76b..ac310e32ee 100644 --- a/content/en/api/typescript/beta/skills/versions/delete.md +++ b/content/en/api/typescript/beta/skills/versions/delete.md @@ -135,6 +135,8 @@ Delete Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions/download.md b/content/en/api/typescript/beta/skills/versions/download.md index 79cc87922b..e4738faa04 100644 --- a/content/en/api/typescript/beta/skills/versions/download.md +++ b/content/en/api/typescript/beta/skills/versions/download.md @@ -135,6 +135,8 @@ Download a skill version's content as a zip archive. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions/list.md b/content/en/api/typescript/beta/skills/versions/list.md index 109dabe7d3..d73f2a9fdc 100644 --- a/content/en/api/typescript/beta/skills/versions/list.md +++ b/content/en/api/typescript/beta/skills/versions/list.md @@ -141,6 +141,8 @@ List Skill Versions - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/skills/versions/retrieve.md b/content/en/api/typescript/beta/skills/versions/retrieve.md index 9abc57f1fe..17bd051bba 100644 --- a/content/en/api/typescript/beta/skills/versions/retrieve.md +++ b/content/en/api/typescript/beta/skills/versions/retrieve.md @@ -135,6 +135,8 @@ Get Skill Version - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels.md b/content/en/api/typescript/beta/tunnels.md index d940be9e3d..c1b4536387 100644 --- a/content/en/api/typescript/beta/tunnels.md +++ b/content/en/api/typescript/beta/tunnels.md @@ -133,6 +133,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -324,6 +326,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -525,6 +529,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -722,6 +728,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -913,6 +921,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1091,6 +1101,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1321,6 +1333,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1525,6 +1539,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1740,6 +1756,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1948,6 +1966,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/archive.md b/content/en/api/typescript/beta/tunnels/archive.md index e46422806e..0d776beda8 100644 --- a/content/en/api/typescript/beta/tunnels/archive.md +++ b/content/en/api/typescript/beta/tunnels/archive.md @@ -129,6 +129,8 @@ Archives a tunnel. Archival is irreversible: every non-archived certificate on t - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/certificates.md b/content/en/api/typescript/beta/tunnels/certificates.md index bd21b7f9b5..92aa0923ad 100644 --- a/content/en/api/typescript/beta/tunnels/certificates.md +++ b/content/en/api/typescript/beta/tunnels/certificates.md @@ -137,6 +137,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -341,6 +343,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -556,6 +560,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -764,6 +770,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/certificates/archive.md b/content/en/api/typescript/beta/tunnels/certificates/archive.md index aa9cacf43b..d2f41dc6e6 100644 --- a/content/en/api/typescript/beta/tunnels/certificates/archive.md +++ b/content/en/api/typescript/beta/tunnels/certificates/archive.md @@ -133,6 +133,8 @@ Archives a tunnel certificate, removing it from the set Anthropic trusts for the - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/certificates/create.md b/content/en/api/typescript/beta/tunnels/certificates/create.md index 8f2582c5d5..7be2ff7b22 100644 --- a/content/en/api/typescript/beta/tunnels/certificates/create.md +++ b/content/en/api/typescript/beta/tunnels/certificates/create.md @@ -135,6 +135,8 @@ Registers a public CA certificate on a tunnel. Anthropic verifies the gateway's - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/certificates/list.md b/content/en/api/typescript/beta/tunnels/certificates/list.md index 3f98f26c33..8507b60c68 100644 --- a/content/en/api/typescript/beta/tunnels/certificates/list.md +++ b/content/en/api/typescript/beta/tunnels/certificates/list.md @@ -143,6 +143,8 @@ Lists the certificates registered on a tunnel. Archived certificates are exclude - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/certificates/retrieve.md b/content/en/api/typescript/beta/tunnels/certificates/retrieve.md index 5bd45d2089..d66b171f18 100644 --- a/content/en/api/typescript/beta/tunnels/certificates/retrieve.md +++ b/content/en/api/typescript/beta/tunnels/certificates/retrieve.md @@ -133,6 +133,8 @@ Fetches a tunnel certificate by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/create.md b/content/en/api/typescript/beta/tunnels/create.md index 07d27db65a..ef9bf3aea5 100644 --- a/content/en/api/typescript/beta/tunnels/create.md +++ b/content/en/api/typescript/beta/tunnels/create.md @@ -131,6 +131,8 @@ Creates a tunnel. Creation allocates a fresh hostname and provisions the tunnel; - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/list.md b/content/en/api/typescript/beta/tunnels/list.md index 554e46a9e5..3ba9854440 100644 --- a/content/en/api/typescript/beta/tunnels/list.md +++ b/content/en/api/typescript/beta/tunnels/list.md @@ -139,6 +139,8 @@ Lists tunnels. Results are ordered by creation time, newest first; archived tunn - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/retrieve.md b/content/en/api/typescript/beta/tunnels/retrieve.md index f519962b12..41bc213819 100644 --- a/content/en/api/typescript/beta/tunnels/retrieve.md +++ b/content/en/api/typescript/beta/tunnels/retrieve.md @@ -129,6 +129,8 @@ Fetches a tunnel by ID. - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/reveal_token.md b/content/en/api/typescript/beta/tunnels/reveal_token.md index 09393cb8b9..b950b6a0de 100644 --- a/content/en/api/typescript/beta/tunnels/reveal_token.md +++ b/content/en/api/typescript/beta/tunnels/reveal_token.md @@ -129,6 +129,8 @@ Reveals a tunnel's connector token. The value is fetched live on each call; Anth - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/tunnels/rotate_token.md b/content/en/api/typescript/beta/tunnels/rotate_token.md index 97c3ee2f29..05ac576f5b 100644 --- a/content/en/api/typescript/beta/tunnels/rotate_token.md +++ b/content/en/api/typescript/beta/tunnels/rotate_token.md @@ -135,6 +135,8 @@ Rotates a tunnel's connector token. Rotation invalidates the current token for n - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/user_profiles.md b/content/en/api/typescript/beta/user_profiles.md index 63962e0f73..84123a1638 100644 --- a/content/en/api/typescript/beta/user_profiles.md +++ b/content/en/api/typescript/beta/user_profiles.md @@ -31,13 +31,13 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -97,7 +97,7 @@ Create User Profile - `external_user_onboarded_at?: string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -113,7 +113,7 @@ Create User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -219,6 +219,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -251,6 +253,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -267,13 +273,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -285,11 +291,11 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -343,14 +349,10 @@ Create User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```typescript @@ -372,6 +374,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -383,15 +386,14 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -445,7 +447,7 @@ List User Profiles - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -551,6 +553,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -583,6 +587,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -599,13 +607,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -617,11 +625,11 @@ List User Profiles - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -675,14 +683,10 @@ List User Profiles - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```typescript @@ -707,6 +711,7 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -718,15 +723,14 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" @@ -751,7 +755,7 @@ Get User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -857,6 +861,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -889,6 +895,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -905,13 +915,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -923,11 +933,11 @@ Get User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -981,14 +991,10 @@ Get User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```typescript @@ -1012,6 +1018,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1023,15 +1030,14 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` @@ -1065,13 +1071,13 @@ Update User Profile - `external_id?: string | null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -1131,7 +1137,7 @@ Update User Profile - `external_user_onboarded_at?: string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -1147,7 +1153,7 @@ Update User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -1253,6 +1259,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1285,6 +1293,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1301,13 +1313,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1319,11 +1331,11 @@ Update User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -1377,14 +1389,10 @@ Update User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Example ```typescript @@ -1408,6 +1416,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -1419,15 +1428,183 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" +} +``` + +## Delete User Profile + +`client.beta.userProfiles.delete(userProfileID, params?, options?): BetaDeletedUserProfile` + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile to delete (`uprof_...`). + +- `params: UserProfileDeleteParams` + + - `betas?: Array` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + + - `workspace_id?: string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `interface BetaDeletedUserProfile` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaDeletedUserProfile = await client.beta.userProfiles.delete( + "uprof_011CZkZCu8hGbp5mYRQgUmz9" +); + +console.log(betaDeletedUserProfile.id); +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" } ``` @@ -1449,7 +1626,7 @@ Create Enrollment URL - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -1555,6 +1732,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1565,7 +1744,7 @@ Create Enrollment URL - `interface BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -1609,6 +1788,18 @@ console.log(betaUserProfileEnrollmentURL.expires_at); ## Domain types +### Beta Deleted User Profile + +- `interface BetaDeletedUserProfile` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + ### Beta User Profile - `interface BetaUserProfile` @@ -1635,6 +1826,10 @@ console.log(betaUserProfileEnrollmentURL.expires_at); Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -1651,13 +1846,13 @@ console.log(betaUserProfileEnrollmentURL.expires_at); - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -1669,11 +1864,11 @@ console.log(betaUserProfileEnrollmentURL.expires_at); - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -1727,19 +1922,15 @@ console.log(betaUserProfileEnrollmentURL.expires_at); - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ### Beta User Profile Enrollment URL - `interface BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` @@ -1886,3 +2077,190 @@ console.log(betaUserProfileEnrollmentURL.expires_at); - `"pending"` - `"rejected"` + +## User Profiles › Action URLs + +### Create Action URL + +`client.beta.userProfiles.actionURLs.create(userProfileID, params, options?): BetaUserProfileActionURL` + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Parameters + +- `userProfileID: string` (path parameter) + + The ID of the user profile the action is for (`uprof_...`). + +- `params: ActionURLCreateParams` + + - `action: BetaUserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes. + + - `type: "enroll_end_user"` + + - `betas?: Array` (header parameter) + + Optional header to specify the beta version(s) you want to use. + + - `(string & {})` + + - `"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"` + + - `"inline-tools-2026-09-15"` + + - `"mcp-client-2026-09-15"` + + - `"ce-plugins-2026-09-01"` + + - `"spend-limit-reads-2026-09-26"` + + - `"telemetry-destinations-2026-08-11"` + + - `"webhooks-2026-10-07"` + + - `workspace_id?: string` (header parameter) + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Returns + +- `interface BetaUserProfileActionURL` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```typescript +import Anthropic from "@anthropic-ai/sdk"; + +const client = new Anthropic({ + apiKey: process.env["ANTHROPIC_API_KEY"] // This is the default and can be omitted +}); + +const betaUserProfileActionURL = await client.beta.userProfiles.actionURLs.create( + "uprof_011CZkZCu8hGbp5mYRQgUmz9", + { action: { type: "enroll_end_user" } } +); + +console.log(betaUserProfileActionURL.expires_at); +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/typescript/beta/user_profiles/create.md b/content/en/api/typescript/beta/user_profiles/create.md index 0c0bfb509e..6ac5791c70 100644 --- a/content/en/api/typescript/beta/user_profiles/create.md +++ b/content/en/api/typescript/beta/user_profiles/create.md @@ -29,13 +29,13 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + Platform's own identifier for this user. Not enforced unique. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Every field is optional. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -95,7 +95,7 @@ Create User Profile - `external_user_onboarded_at?: string` - When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + When the entity this profile represents opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. Optional. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -111,7 +111,7 @@ Create User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -217,6 +217,8 @@ Create User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -249,6 +251,10 @@ Create User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -265,13 +271,13 @@ Create User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -283,11 +289,11 @@ Create User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -341,14 +347,10 @@ Create User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```typescript @@ -370,6 +372,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -381,14 +384,13 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/typescript/beta/user_profiles/create_enrollment_url.md b/content/en/api/typescript/beta/user_profiles/create_enrollment_url.md index af741a2b34..9dc6057e58 100644 --- a/content/en/api/typescript/beta/user_profiles/create_enrollment_url.md +++ b/content/en/api/typescript/beta/user_profiles/create_enrollment_url.md @@ -21,7 +21,7 @@ Create Enrollment URL - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -127,6 +127,8 @@ Create Enrollment URL - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -137,7 +139,7 @@ Create Enrollment URL - `interface BetaUserProfileEnrollmentURL` - A URL to give to the entity that a user profile represents, so that the entity can enroll for a trust grant. + A URL to give to the entity that a user profile represents, so that the entity can enroll in a program. - `type: "enrollment_url"` diff --git a/content/en/api/typescript/beta/user_profiles/list.md b/content/en/api/typescript/beta/user_profiles/list.md index c54d1733b9..946a30f11a 100644 --- a/content/en/api/typescript/beta/user_profiles/list.md +++ b/content/en/api/typescript/beta/user_profiles/list.md @@ -53,7 +53,7 @@ List User Profiles - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -159,6 +159,8 @@ List User Profiles - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -191,6 +193,10 @@ List User Profiles Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -207,13 +213,13 @@ List User Profiles - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -225,11 +231,11 @@ List User Profiles - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -283,14 +289,10 @@ List User Profiles - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```typescript @@ -315,6 +317,7 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -326,15 +329,14 @@ for await (const betaUserProfile of client.beta.userProfiles.list()) { "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ], "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" diff --git a/content/en/api/typescript/beta/user_profiles/retrieve.md b/content/en/api/typescript/beta/user_profiles/retrieve.md index c80be0c8af..6e986f641c 100644 --- a/content/en/api/typescript/beta/user_profiles/retrieve.md +++ b/content/en/api/typescript/beta/user_profiles/retrieve.md @@ -21,7 +21,7 @@ Get User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -127,6 +127,8 @@ Get User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -159,6 +161,10 @@ Get User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -175,13 +181,13 @@ Get User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -193,11 +199,11 @@ Get User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -251,14 +257,10 @@ Get User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```typescript @@ -282,6 +284,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -293,14 +296,13 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/typescript/beta/user_profiles/update.md b/content/en/api/typescript/beta/user_profiles/update.md index 024b18578d..43c3f2ff96 100644 --- a/content/en/api/typescript/beta/user_profiles/update.md +++ b/content/en/api/typescript/beta/user_profiles/update.md @@ -33,13 +33,13 @@ Update User Profile - `external_id?: string | null` - If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Accepted under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` send `external_user_details.reference_id` instead. + If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters. Legacy field, accepted only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, send `external_user_details.reference_id`. minLength: 1, maxLength: 255 - `external_user_details?: BetaUserProfileExternalUserDetailsParams` - Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Accepted under the `user-profiles-2026-09-04` beta header only. + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. - `account_status?: "active" | "suspended" | "blocked" | null` @@ -99,7 +99,7 @@ Update User Profile - `external_user_onboarded_at?: string` - If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Accepted under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` send `external_user_details.onboarded_at` instead. + If present, replaces the stored account creation time. Omit to leave unchanged; once set, the value cannot be cleared and `null` is rejected. Must be a complete RFC 3339 timestamp no more than 1 minute in the future. Legacy field, accepted only under the `user-profiles-2026-08-18` beta header; without a legacy header, send `external_user_details.onboarded_at`. format: date-time @@ -115,7 +115,7 @@ Update User Profile - `betas?: Array` (header parameter) - This endpoint is in beta: requests must send `user-profiles-2026-03-24`, `user-profiles-2026-08-18`, or `user-profiles-2026-09-04` in this header. + Optional header to specify the beta version(s) you want to use. - `(string & {})` @@ -221,6 +221,8 @@ Update User Profile - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -253,6 +255,10 @@ Update User Profile Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + - `name: string | null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + - `trust_grants: Record` Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight. @@ -269,13 +275,13 @@ Update User Profile - `updated_at: string` - When this user profile was last modified, in RFC 3339 format. Trust-grant status changes also bump this timestamp. + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. format: date-time - `access_type?: "application" | "passthrough"` - How the platform uses the API for this entity: `application` (default) or `passthrough`. Present under the `user-profiles-2026-08-18` and later beta headers. + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. - `"application"` @@ -287,11 +293,11 @@ Update User Profile - `external_id?: string | null` - Platform's own identifier for this user. Not enforced unique. Present under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; under `user-profiles-2026-09-04` the value is `external_user_details.reference_id`. + Platform's own identifier for this user. Not enforced unique. Legacy field, present only under the `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers; without one of them, the value is `external_user_details.reference_id`. - `external_user_details?: BetaUserProfileExternalUserDetails` - Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Present under the `user-profiles-2026-09-04` beta header, with every field present and `null` until the platform supplies a value; the earlier beta headers serve `reference_id` as the top-level `external_id`, and `user-profiles-2026-08-18` serves `onboarded_at` as `external_user_onboarded_at`. + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. - `account_status: "active" | "suspended" | "blocked" | null` @@ -345,14 +351,10 @@ Update User Profile - `external_user_onboarded_at?: string | null` - When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Present under the `user-profiles-2026-08-18` beta header; under `user-profiles-2026-09-04` the value is `external_user_details.onboarded_at`. + When the entity this profile represents opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. Legacy field, present only under the `user-profiles-2026-08-18` beta header; without a legacy header, the value is `external_user_details.onboarded_at`. format: date-time - - `name?: string | null` - - Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. - ## Example ```typescript @@ -376,6 +378,7 @@ console.log(betaUserProfile.id); "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", "created_at": "2026-03-15T10:00:00Z", "metadata": {}, + "name": "Example User", "trust_grants": { "cyber": { "status": "active" @@ -387,14 +390,13 @@ console.log(betaUserProfile.id); "external_id": "user_12345", "external_user_details": { "account_status": "active", - "country": "country", - "email_hash": "email_hash", - "entity_type": "individual", - "name_hash": "name_hash", - "onboarded_at": "2019-12-27T18:11:19.117Z", - "reference_id": "reference_id" + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" }, - "external_user_onboarded_at": "2024-11-02T08:15:00Z", - "name": "Example User" + "external_user_onboarded_at": "2024-11-02T08:15:00Z" } ``` diff --git a/content/en/api/typescript/beta/vaults.md b/content/en/api/typescript/beta/vaults.md index fa3b597e15..ae49233610 100644 --- a/content/en/api/typescript/beta/vaults.md +++ b/content/en/api/typescript/beta/vaults.md @@ -135,6 +135,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -345,6 +347,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -549,6 +553,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -759,6 +765,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -957,6 +965,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1124,6 +1134,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1554,6 +1566,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1898,6 +1912,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2231,6 +2247,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2699,6 +2717,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3027,6 +3047,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3199,6 +3221,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -3527,6 +3551,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/archive.md b/content/en/api/typescript/beta/vaults/archive.md index 8535435f76..572caf7f5d 100644 --- a/content/en/api/typescript/beta/vaults/archive.md +++ b/content/en/api/typescript/beta/vaults/archive.md @@ -127,6 +127,8 @@ Archive a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/create.md b/content/en/api/typescript/beta/vaults/create.md index 93d0fcac54..f605e866cd 100644 --- a/content/en/api/typescript/beta/vaults/create.md +++ b/content/en/api/typescript/beta/vaults/create.md @@ -133,6 +133,8 @@ Create a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials.md b/content/en/api/typescript/beta/vaults/credentials.md index aebead2fb2..d079ff6d3c 100644 --- a/content/en/api/typescript/beta/vaults/credentials.md +++ b/content/en/api/typescript/beta/vaults/credentials.md @@ -305,6 +305,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -649,6 +651,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -982,6 +986,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1450,6 +1456,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1778,6 +1786,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -1950,6 +1960,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). @@ -2278,6 +2290,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/archive.md b/content/en/api/typescript/beta/vaults/credentials/archive.md index b8c0d821ea..cf2c57eee2 100644 --- a/content/en/api/typescript/beta/vaults/credentials/archive.md +++ b/content/en/api/typescript/beta/vaults/credentials/archive.md @@ -131,6 +131,8 @@ Archive a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/create.md b/content/en/api/typescript/beta/vaults/credentials/create.md index eda26e2349..946ef34a65 100644 --- a/content/en/api/typescript/beta/vaults/credentials/create.md +++ b/content/en/api/typescript/beta/vaults/credentials/create.md @@ -303,6 +303,8 @@ Create a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/delete.md b/content/en/api/typescript/beta/vaults/credentials/delete.md index 5b7e008070..17fa7f9034 100644 --- a/content/en/api/typescript/beta/vaults/credentials/delete.md +++ b/content/en/api/typescript/beta/vaults/credentials/delete.md @@ -131,6 +131,8 @@ Delete a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/list.md b/content/en/api/typescript/beta/vaults/credentials/list.md index 81206e531c..8271a0ec62 100644 --- a/content/en/api/typescript/beta/vaults/credentials/list.md +++ b/content/en/api/typescript/beta/vaults/credentials/list.md @@ -141,6 +141,8 @@ List Credentials - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/mcp_oauth_validate.md b/content/en/api/typescript/beta/vaults/credentials/mcp_oauth_validate.md index c4c88bda6c..66c249a4bf 100644 --- a/content/en/api/typescript/beta/vaults/credentials/mcp_oauth_validate.md +++ b/content/en/api/typescript/beta/vaults/credentials/mcp_oauth_validate.md @@ -131,6 +131,8 @@ Validate an MCP OAuth Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/retrieve.md b/content/en/api/typescript/beta/vaults/credentials/retrieve.md index 4ba9316d5d..f86d2dfa00 100644 --- a/content/en/api/typescript/beta/vaults/credentials/retrieve.md +++ b/content/en/api/typescript/beta/vaults/credentials/retrieve.md @@ -131,6 +131,8 @@ Retrieve a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/credentials/update.md b/content/en/api/typescript/beta/vaults/credentials/update.md index 285ce26889..0b231c05b1 100644 --- a/content/en/api/typescript/beta/vaults/credentials/update.md +++ b/content/en/api/typescript/beta/vaults/credentials/update.md @@ -271,6 +271,8 @@ Update a Credential - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/delete.md b/content/en/api/typescript/beta/vaults/delete.md index 5444fdebbd..c7740fb746 100644 --- a/content/en/api/typescript/beta/vaults/delete.md +++ b/content/en/api/typescript/beta/vaults/delete.md @@ -127,6 +127,8 @@ Delete a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/list.md b/content/en/api/typescript/beta/vaults/list.md index dd29e37e57..3e7055c21a 100644 --- a/content/en/api/typescript/beta/vaults/list.md +++ b/content/en/api/typescript/beta/vaults/list.md @@ -137,6 +137,8 @@ List Vaults - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/retrieve.md b/content/en/api/typescript/beta/vaults/retrieve.md index a8128600b8..79f228a04f 100644 --- a/content/en/api/typescript/beta/vaults/retrieve.md +++ b/content/en/api/typescript/beta/vaults/retrieve.md @@ -127,6 +127,8 @@ Retrieve a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/vaults/update.md b/content/en/api/typescript/beta/vaults/update.md index 3fe554eef0..4132fa8f1c 100644 --- a/content/en/api/typescript/beta/vaults/update.md +++ b/content/en/api/typescript/beta/vaults/update.md @@ -137,6 +137,8 @@ Update a Vault - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + - `workspace_id?: string` (header parameter) Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). diff --git a/content/en/api/typescript/beta/webhooks.md b/content/en/api/typescript/beta/webhooks.md index 11b11ad79a..6a56e2186a 100644 --- a/content/en/api/typescript/beta/webhooks.md +++ b/content/en/api/typescript/beta/webhooks.md @@ -821,9 +821,37 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/webhooks - `workspace_id: string` + - `interface BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `interface BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Event Data -- `type BetaWebhookEventData = BetaWebhookSessionCreatedEventData | BetaWebhookSessionPendingEventData | BetaWebhookSessionRunningEventData | 41 more` +- `type BetaWebhookEventData = BetaWebhookSessionCreatedEventData | BetaWebhookSessionPendingEventData | BetaWebhookSessionRunningEventData | 43 more` - `interface BetaWebhookSessionCreatedEventData` @@ -1381,6 +1409,34 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/webhooks - `workspace_id: string` + - `interface BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + + - `interface BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Memory Store Archived Event Data - `interface BetaWebhookMemoryStoreArchivedEventData` @@ -1673,6 +1729,38 @@ url: https://platform.claude.com/docs/en/api/typescript/beta/webhooks - `workspace_id: string` +### Beta Webhook User Profile Enforcement Action Opened Event Data + +- `interface BetaWebhookUserProfileEnforcementActionOpenedEventData` + + - `type: "user_profile.enforcement_action_opened"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + +### Beta Webhook User Profile Enforcement Action Resolved Event Data + +- `interface BetaWebhookUserProfileEnforcementActionResolvedEventData` + + - `type: "user_profile.enforcement_action_resolved"` + + - `id: string` + + ID of the user profile the enforcement action is on. + + - `enforcement_action_id: string` + + ID (`enac_...`) of the enforcement action that was opened or resolved. + + - `organization_id: string` + ### Beta Webhook Vault Archived Event Data - `interface BetaWebhookVaultArchivedEventData` diff --git a/content/en/api/typescript/completions.md b/content/en/api/typescript/completions.md index 5110b53ef2..8885c4a15d 100644 --- a/content/en/api/typescript/completions.md +++ b/content/en/api/typescript/completions.md @@ -321,6 +321,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface Completion` diff --git a/content/en/api/typescript/completions/create.md b/content/en/api/typescript/completions/create.md index 46a2d9eb92..79040fe364 100644 --- a/content/en/api/typescript/completions/create.md +++ b/content/en/api/typescript/completions/create.md @@ -319,6 +319,8 @@ Future models and features will not be compatible with Text Completions. See our - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface Completion` diff --git a/content/en/api/typescript/messages.md b/content/en/api/typescript/messages.md index e28b4957b3..28f1d96780 100644 --- a/content/en/api/typescript/messages.md +++ b/content/en/api/typescript/messages.md @@ -3049,7 +3049,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -3876,6 +3876,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3886,6 +3890,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3896,6 +3904,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3906,6 +3918,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3916,12 +3932,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -7441,7 +7469,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -13471,6 +13499,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13483,6 +13515,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13495,6 +13531,12 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found @@ -13505,6 +13547,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -13515,6 +13561,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13525,6 +13575,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13535,6 +13589,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -13545,12 +13603,24 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -13559,6 +13629,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -13571,6 +13645,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -13583,6 +13661,12 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -19291,6 +19375,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -19301,6 +19389,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -19311,6 +19403,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -19321,6 +19417,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -19331,12 +19431,24 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -20670,6 +20782,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -20680,6 +20796,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -20690,6 +20810,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -20700,6 +20824,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -20710,12 +20838,24 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -25902,6 +26042,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -25912,6 +26056,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -25922,6 +26070,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -25932,6 +26084,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -25942,12 +26098,24 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -27039,6 +27207,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -27049,6 +27221,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -27059,6 +27235,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -27069,6 +27249,10 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -27079,12 +27263,24 @@ console.log(messageTokensCount.input_tokens); - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -39277,7 +39473,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) @@ -40874,6 +41070,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -40884,6 +41084,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -40894,6 +41098,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -40904,6 +41112,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -40914,12 +41126,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/messages/batches.md b/content/en/api/typescript/messages/batches.md index b247c18885..513860d08c 100644 --- a/content/en/api/typescript/messages/batches.md +++ b/content/en/api/typescript/messages/batches.md @@ -3105,7 +3105,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) @@ -4702,6 +4702,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -4712,6 +4716,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -4722,6 +4730,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -4732,6 +4744,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -4742,12 +4758,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -6230,6 +6258,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -6240,6 +6272,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -6250,6 +6286,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -6260,6 +6300,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -6270,12 +6314,24 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -7523,6 +7579,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -7533,6 +7593,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -7543,6 +7607,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -7553,6 +7621,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -7563,12 +7635,24 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable @@ -8768,6 +8852,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -8778,6 +8866,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -8788,6 +8880,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -8798,6 +8894,10 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -8808,12 +8908,24 @@ for await (const messageBatchIndividualResponse of stream) { - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/messages/batches/create.md b/content/en/api/typescript/messages/batches/create.md index 869178ff91..a37b9d3f3d 100644 --- a/content/en/api/typescript/messages/batches/create.md +++ b/content/en/api/typescript/messages/batches/create.md @@ -3103,7 +3103,7 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `user_profile_id?: string` (header parameter) - The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. + The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored. - `workspace_id?: string` (header parameter) diff --git a/content/en/api/typescript/messages/batches/results.md b/content/en/api/typescript/messages/batches/results.md index 407db62d7f..7ed3c5d039 100644 --- a/content/en/api/typescript/messages/batches/results.md +++ b/content/en/api/typescript/messages/batches/results.md @@ -834,6 +834,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -844,6 +848,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -854,6 +862,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -864,6 +876,10 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -874,12 +890,24 @@ Learn more about the Message Batches API in our [user guide](https://platform.cl - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/messages/count_tokens.md b/content/en/api/typescript/messages/count_tokens.md index 31bd6f38a5..58d211ae21 100644 --- a/content/en/api/typescript/messages/count_tokens.md +++ b/content/en/api/typescript/messages/count_tokens.md @@ -2945,7 +2945,7 @@ Learn more about token counting in our [user guide](https://platform.claude.com/ - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) diff --git a/content/en/api/typescript/messages/create.md b/content/en/api/typescript/messages/create.md index 00f0d6a513..354de5f480 100644 --- a/content/en/api/typescript/messages/create.md +++ b/content/en/api/typescript/messages/create.md @@ -3047,7 +3047,7 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `user_profile_id?: string` (header parameter) - The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. + The user profile ID to attribute this request to. Use when acting on behalf of a party other than your organization. - `workspace_id?: string` (header parameter) @@ -3874,6 +3874,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissModelChanged` + A `cache_miss_reason` for a request whose `model` or `speed` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "model_changed"` default: model_changed @@ -3884,6 +3888,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissSystemChanged` + A `cache_miss_reason` for a request whose `system` differs from the previous request's. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "system_changed"` default: system_changed @@ -3894,6 +3902,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissToolsChanged` + A `cache_miss_reason` for a request whose `tools` differ from the previous request's, for example because tools were added, removed, or reordered. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "tools_changed"` default: tools_changed @@ -3904,6 +3916,10 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissMessagesChanged` + A `cache_miss_reason` for a request whose `messages` differ from the previous request's in an earlier entry, instead of only having entries appended. The `model`, `system`, and `tools` match. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "messages_changed"` default: messages_changed @@ -3914,12 +3930,24 @@ Learn more about the Messages API in our [user guide](https://platform.claude.co - `interface CacheMissPreviousMessageNotFound` + A `cache_miss_reason` for when the API doesn't have a stored record of the request that `diagnostics.previous_message_id` references. + + This doesn't mean that this request changed. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "previous_message_not_found"` default: previous_message_not_found - `interface CacheMissUnavailable` + A `cache_miss_reason` for when the API can't give a diagnosis. The request itself was processed normally. + + This includes a request whose `model`, `system`, and `tools` match the previous request's but whose other prompt-affecting parameters, such as `thinking` or `tool_choice`, differ. + + See the [cache diagnostics guide](https://platform.claude.com/docs/en/build-with-claude/cache-diagnostics?sdk_languages=typescript#cache-miss-reason-types) to learn what to change for each reason. + - `type: "unavailable"` default: unavailable diff --git a/content/en/api/typescript/models.md b/content/en/api/typescript/models.md index 8f1a9fd458..01c21bc5df 100644 --- a/content/en/api/typescript/models.md +++ b/content/en/api/typescript/models.md @@ -163,6 +163,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface ModelInfo` @@ -612,6 +614,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ### Returns - `interface ModelInfo` diff --git a/content/en/api/typescript/models/list.md b/content/en/api/typescript/models/list.md index 559b172b6b..394def9759 100644 --- a/content/en/api/typescript/models/list.md +++ b/content/en/api/typescript/models/list.md @@ -161,6 +161,8 @@ The Models API response can be used to determine which models are available for - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface ModelInfo` diff --git a/content/en/api/typescript/models/retrieve.md b/content/en/api/typescript/models/retrieve.md index 2621cc6ca3..8e8bc6b9b4 100644 --- a/content/en/api/typescript/models/retrieve.md +++ b/content/en/api/typescript/models/retrieve.md @@ -137,6 +137,8 @@ The Models API response can be used to determine information about a specific mo - `"telemetry-destinations-2026-08-11"` + - `"webhooks-2026-10-07"` + ## Returns - `interface ModelInfo` diff --git a/content/en/api/user_profiles.md b/content/en/api/user_profiles.md new file mode 100644 index 0000000000..8e57683a6f --- /dev/null +++ b/content/en/api/user_profiles.md @@ -0,0 +1,1983 @@ +--- +title: User Profiles +url: https://platform.claude.com/docs/en/api/user_profiles +--- + +# User Profiles + +## Create User Profile + +**POST** `/v1/user_profiles` + +Create User Profile + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Body parameters + +- `access_type: optional UserProfileAccessType` + + How the platform uses the API for this entity. `application` (default): the profile represents an individual end-user of the platform's product. `passthrough`: the profile identifies a company the platform resells Claude access to. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + +- `external_user_details: optional UserProfileExternalUserDetailsParams` + + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. + + - `account_status: optional UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: optional string or null` + + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. + + - `email_hash: optional string or null` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: optional UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: optional string or null` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: optional string` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: optional string or null` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +- `metadata: optional map[string]` + + Free-form key-value data to attach to this user profile. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. Values must be non-empty strings. + +- `name: optional string or null` + + Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a company the platform resells Claude access to (`access_type` `passthrough`), that company's name where known. Maximum 255 characters. + + minLength: 1, maxLength: 255 + +### Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "external_user_details": { + "account_status": "active", + "country": "US", + "entity_type": "business", + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User" + }' +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` + +## List User Profiles + +**GET** `/v1/user_profiles` + +List User Profiles + +### Query parameters + +- `limit: optional number` + + The maximum number of user profiles to return, from 1 to 100. Defaults to 20. + + format: int32 + +- `order: optional UserProfileListOrder` + + The sort direction, applied to the field that `order_by` selects. Defaults to `desc`. + + - `"asc"` + + Oldest first when `order_by` is `created_at`, or names in ascending order when `order_by` is `name`. + + - `"desc"` + + Newest first when `order_by` is `created_at`, or names in descending order when `order_by` is `name`. This is the default. + +- `order_by: optional UserProfileListOrderBy` + + The field to sort user profiles by, in the direction that `order` sets. Defaults to `created_at`. + + - `"created_at"` + + Sort by when each user profile was created. This is the default. + + - `"name"` + + Sort by `name`, ignoring the case of ASCII letters. Profiles without a name come last in either direction. + +- `page: optional string` + + The cursor for the page to return, taken from `next_page` in a previous response. + + Leave it out to get the first page. + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `data: array of UserProfile` + + User profiles on this page. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +- `next_page: string or null` + + Cursor for the next page, or `null` when there are no more results. + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "data": [ + { + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": {} + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` + +## Get User Profile + +**GET** `/v1/user_profiles/{user_profile_id}` + +Get User Profile + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile to get (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` + +## Update User Profile + +**POST** `/v1/user_profiles/{user_profile_id}` + +Update User Profile + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile to update (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Body parameters + +- `access_type: optional UserProfileAccessType or null` + + If present, replaces the stored access type. Omit to leave unchanged. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + +- `external_user_details: optional UserProfileExternalUserDetailsParams` + + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. + + - `account_status: optional UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: optional string or null` + + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. + + - `email_hash: optional string or null` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: optional UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: optional string or null` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: optional string` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: optional string or null` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +- `metadata: optional map[string]` + + Key-value pairs to merge into the stored metadata. Keys provided overwrite existing values. To remove a key, set its value to an empty string. Keys not provided are left unchanged. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. + +- `name: optional string or null` + + If present, replaces the stored name. Omit to leave unchanged. Maximum 255 characters. + + minLength: 1, maxLength: 255 + +### Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "external_user_details": { + "account_status": "suspended" + } + }' +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` + +## Delete User Profile + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile to delete (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Returns + +- `DeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +#### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" +} +``` + +## Domain types + +### Deleted User Profile + +- `DeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +### User Profile + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +### User Profile Access Type + +- `UserProfileAccessType = "application" or "passthrough"` + + How the platform uses the API on behalf of the entity this profile represents. `application`: the platform sells a product that uses the API behind the scenes, and the profile represents an individual end-user of that product. `passthrough`: the platform resells raw inference, and the profile identifies the resold-to company. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + +### User Profile Cyber Program + +- `UserProfileCyberProgram object` + + A user profile's standing in the Cyber Verification Program, which relaxes cyber safeguards for requests that name the profile. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + +### User Profile Cyber Requirements + +- `UserProfileCyberRequirements object` + + What a request that names the profile must allow to get the relaxed safeguards of the profile's `active` tiers. A field reads `true` when at least one of those tiers has the requirement and Anthropic has not waived it on that tier for the profile. A request that does not meet a requirement is still served, without the relaxed safeguards of the tiers that have it. The values differ between profiles and can change, so read them rather than assuming them. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + +### User Profile Cyber Tier + +- `UserProfileCyberTier object` + + One tier of the Cyber Verification Program. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + +### User Profile Efs Feature + +- `UserProfileEfsFeature object` + + One feature of Enterprise Frontier Safeguards. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + +### User Profile Efs Program + +- `UserProfileEfsProgram object` + + A user profile's standing in Enterprise Frontier Safeguards, a program under which Anthropic approves the entity the profile represents and may approve any of the program's features. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + +### User Profile External User Account Status + +- `UserProfileExternalUserAccountStatus = "active" or "suspended" or "blocked"` + + The status of the entity's account on the platform, as the platform states it: `active`; `suspended`, when the platform has restricted the account and may restore it; or `blocked`, when the platform has barred it. It records the platform's decision only. The statuses that Anthropic itself reports for the profile, such as its status in a program, are Anthropic's decisions and do not change with it. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + +### User Profile External User Details + +- `UserProfileExternalUserDetails object` + + Details about the entity this profile represents, as the platform states them. Anthropic does not verify them. Every field is present, `null` until the platform supplies a value. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + +### User Profile External User Details Params + +- `UserProfileExternalUserDetailsParams object` + + - `account_status: optional UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: optional string or null` + + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. + + - `email_hash: optional string or null` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: optional UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: optional string or null` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: optional string` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: optional string or null` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +### User Profile External User Entity Type + +- `UserProfileExternalUserEntityType = "individual" or "business" or "non_profit" or "government"` + + What kind of entity the profile represents, as the platform states it: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + +### User Profile List Order + +- `UserProfileListOrder = "asc" or "desc"` + + The direction that a list of user profiles is sorted in. + + - `"asc"` + + Oldest first when `order_by` is `created_at`, or names in ascending order when `order_by` is `name`. + + - `"desc"` + + Newest first when `order_by` is `created_at`, or names in descending order when `order_by` is `name`. This is the default. + +### User Profile List Order By + +- `UserProfileListOrderBy = "created_at" or "name"` + + Sort field for listing user profiles: `created_at` (default) or `name` (case-insensitive; profiles without a name sort last). + + - `"created_at"` + + Sort by when each user profile was created. This is the default. + + - `"name"` + + Sort by `name`, ignoring the case of ASCII letters. Profiles without a name come last in either direction. + +### User Profile Program Status + +- `UserProfileProgramStatus = "active" or "pending" or "rejected"` + + A user profile's status in a program. Each program's `status` field says what the values mean there. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + +### User Profile Programs + +- `UserProfilePrograms object` + + A user profile's standing in each program. A program is a set of capabilities or exemptions that Anthropic approves for the entity the profile represents. A program reads `null` when the profile has no status in it, when the caller's organization is not entitled to read programs, or when the response does not report that program. Retrieving the profile reports every program. Anthropic may add programs; ignore a key you do not recognize. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + +## User Profiles › Action URLs + +### Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +#### Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +#### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +#### Body parameters + +- `action: UserProfileAction` + + The action that the person who opens the URL takes. + + - `UserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +#### Returns + +- `UserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +#### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +##### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/user_profiles/action_urls.md b/content/en/api/user_profiles/action_urls.md new file mode 100644 index 0000000000..6dfb19b7ec --- /dev/null +++ b/content/en/api/user_profiles/action_urls.md @@ -0,0 +1,130 @@ +--- +title: Action URLs +url: https://platform.claude.com/docs/en/api/user_profiles/action_urls +--- + +# Action URLs + +## Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +### Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +### Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +### Body parameters + +- `action: UserProfileAction` + + The action that the person who opens the URL takes. + + - `UserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +### Returns + +- `UserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +### Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +#### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` + +## Domain types + +### User Profile Action + +- `UserProfileAction = UserProfileEnrollEndUserAction` + + The action that the person who opens the URL takes, discriminated by `type`. + + - `UserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +### User Profile Action URL + +- `UserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +### User Profile Enroll End User Action + +- `UserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` diff --git a/content/en/api/user_profiles/action_urls/create.md b/content/en/api/user_profiles/action_urls/create.md new file mode 100644 index 0000000000..88c8621b30 --- /dev/null +++ b/content/en/api/user_profiles/action_urls/create.md @@ -0,0 +1,86 @@ +--- +title: Create Action URL +url: https://platform.claude.com/docs/en/api/user_profiles/action_urls/create +--- + +# Create Action URL + +**POST** `/v1/user_profiles/{user_profile_id}/action_urls` + +Create Action URL + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile the action is for (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Body parameters + +- `action: UserProfileAction` + + The action that the person who opens the URL takes. + + - `UserProfileEnrollEndUserAction object` + + The end-user that the profile represents enrolls in a program. + + - `type: "enroll_end_user"` + +## Returns + +- `UserProfileActionURL object` + + A URL to give to the person who takes the requested action. + + - `type: "user_profile_action_url"` + + Object type. Always `user_profile_action_url`. + + - `expires_at: string` + + When the URL stops working, in RFC 3339 format. + + format: date-time + + - `url: string` + + The URL to give to the person who takes the action. Anyone who holds it can open it until `expires_at`. + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/action_urls \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "action": { + "type": "enroll_end_user" + } + }' +``` + +### Response (200) + +```json +{ + "expires_at": "2026-03-15T10:15:00Z", + "type": "user_profile_action_url", + "url": "https://platform.claude.com/user-profiles/enrollment/M3J0bGJxZ2ppMnptbnB1" +} +``` diff --git a/content/en/api/user_profiles/create.md b/content/en/api/user_profiles/create.md new file mode 100644 index 0000000000..741d314bee --- /dev/null +++ b/content/en/api/user_profiles/create.md @@ -0,0 +1,355 @@ +--- +title: Create User Profile +url: https://platform.claude.com/docs/en/api/user_profiles/create +--- + +# Create User Profile + +**POST** `/v1/user_profiles` + +Create User Profile + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Body parameters + +- `access_type: optional UserProfileAccessType` + + How the platform uses the API for this entity. `application` (default): the profile represents an individual end-user of the platform's product. `passthrough`: the profile identifies a company the platform resells Claude access to. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + +- `external_user_details: optional UserProfileExternalUserDetailsParams` + + Details about the entity this profile represents, as the platform states them. Every field is optional. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which take the top-level `external_id` (and, under `user-profiles-2026-08-18`, `external_user_onboarded_at`) instead. + + - `account_status: optional UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: optional string or null` + + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. + + - `email_hash: optional string or null` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: optional UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: optional string or null` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: optional string` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: optional string or null` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +- `metadata: optional map[string]` + + Free-form key-value data to attach to this user profile. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. Values must be non-empty strings. + +- `name: optional string or null` + + Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a company the platform resells Claude access to (`access_type` `passthrough`), that company's name where known. Maximum 255 characters. + + minLength: 1, maxLength: 255 + +## Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "external_user_details": { + "account_status": "active", + "country": "US", + "entity_type": "business", + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User" + }' +``` + +### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` diff --git a/content/en/api/user_profiles/delete.md b/content/en/api/user_profiles/delete.md new file mode 100644 index 0000000000..22618b68f2 --- /dev/null +++ b/content/en/api/user_profiles/delete.md @@ -0,0 +1,60 @@ +--- +title: Delete User Profile +url: https://platform.claude.com/docs/en/api/user_profiles/delete +--- + +# Delete User Profile + +**DELETE** `/v1/user_profiles/{user_profile_id}` + +Delete User Profile + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile to delete (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Returns + +- `DeletedUserProfile object` + + - `type: "user_profile_deleted"` + + Object type. Always `user_profile_deleted`. + + - `id: string` + + Identifier of the deleted user profile, prefixed `uprof_`. + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -X DELETE \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "type": "user_profile_deleted" +} +``` diff --git a/content/en/api/user_profiles/list.md b/content/en/api/user_profiles/list.md new file mode 100644 index 0000000000..1e935eedfb --- /dev/null +++ b/content/en/api/user_profiles/list.md @@ -0,0 +1,294 @@ +--- +title: List User Profiles +url: https://platform.claude.com/docs/en/api/user_profiles/list +--- + +# List User Profiles + +**GET** `/v1/user_profiles` + +List User Profiles + +## Query parameters + +- `limit: optional number` + + The maximum number of user profiles to return, from 1 to 100. Defaults to 20. + + format: int32 + +- `order: optional UserProfileListOrder` + + The sort direction, applied to the field that `order_by` selects. Defaults to `desc`. + + - `"asc"` + + Oldest first when `order_by` is `created_at`, or names in ascending order when `order_by` is `name`. + + - `"desc"` + + Newest first when `order_by` is `created_at`, or names in descending order when `order_by` is `name`. This is the default. + +- `order_by: optional UserProfileListOrderBy` + + The field to sort user profiles by, in the direction that `order` sets. Defaults to `created_at`. + + - `"created_at"` + + Sort by when each user profile was created. This is the default. + + - `"name"` + + Sort by `name`, ignoring the case of ASCII letters. Profiles without a name come last in either direction. + +- `page: optional string` + + The cursor for the page to return, taken from `next_page` in a previous response. + + Leave it out to get the first page. + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Returns + +- `data: array of UserProfile` + + User profiles on this page. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +- `next_page: string or null` + + Cursor for the next page, or `null` when there are no more results. + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "data": [ + { + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": {} + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" + } + ], + "next_page": "page_MjAyNS0wNS0xNFQwMDowMDowMFo=" +} +``` diff --git a/content/en/api/user_profiles/retrieve.md b/content/en/api/user_profiles/retrieve.md new file mode 100644 index 0000000000..8b5c33d62a --- /dev/null +++ b/content/en/api/user_profiles/retrieve.md @@ -0,0 +1,265 @@ +--- +title: Get User Profile +url: https://platform.claude.com/docs/en/api/user_profiles/retrieve +--- + +# Get User Profile + +**GET** `/v1/user_profiles/{user_profile_id}` + +Get User Profile + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile to get (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" +``` + +### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` diff --git a/content/en/api/user_profiles/update.md b/content/en/api/user_profiles/update.md new file mode 100644 index 0000000000..a5dd395f55 --- /dev/null +++ b/content/en/api/user_profiles/update.md @@ -0,0 +1,355 @@ +--- +title: Update User Profile +url: https://platform.claude.com/docs/en/api/user_profiles/update +--- + +# Update User Profile + +**POST** `/v1/user_profiles/{user_profile_id}` + +Update User Profile + +## Path parameters + +- `user_profile_id: string` + + The ID of the user profile to update (`uprof_...`). + +## Headers + +- `"anthropic-version": optional string` + + The version of the Claude API you want to use. + + Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http). + +- `"anthropic-workspace-id": optional string` + + Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`). + + Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace. + +## Body parameters + +- `access_type: optional UserProfileAccessType or null` + + If present, replaces the stored access type. Omit to leave unchanged. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + +- `external_user_details: optional UserProfileExternalUserDetailsParams` + + Details about the entity this profile represents, as the platform states them. Each field sent replaces the stored value; omit a field to leave it unchanged. Once set, a value cannot be cleared and `null` is rejected. Not accepted under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers. + + - `account_status: optional UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: optional string or null` + + The country of the entity (not of the platform), as the platform determines it: an ISO 3166-1 alpha-2 code in upper case, for example `US`. Only the form, two uppercase ASCII letters, is checked. + + - `email_hash: optional string or null` + + A hash of the entity's email address, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `entity_type: optional UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: optional string or null` + + A hash of the entity's name, computed by the platform. Anthropic treats it as an opaque string and does not prescribe the hash function. 1 to 255 characters. + + minLength: 1, maxLength: 255 + + - `onboarded_at: optional string` + + When the entity opened its account with the platform, in RFC 3339 format: for an `application` profile, when the end-user signed up; for a `passthrough` profile, when the company became the platform's customer. Must be a complete timestamp no more than 1 minute in the future. + + format: date-time + + - `reference_id: optional string or null` + + The platform's own reference for the entity, for example the key of the end-user's row in the platform's database. Not interpreted by Anthropic and not enforced unique. 1 to 255 characters. + + minLength: 1, maxLength: 255 + +- `metadata: optional map[string]` + + Key-value pairs to merge into the stored metadata. Keys provided overwrite existing values. To remove a key, set its value to an empty string. Keys not provided are left unchanged. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. + +- `name: optional string or null` + + If present, replaces the stored name. Omit to leave unchanged. Maximum 255 characters. + + minLength: 1, maxLength: 255 + +## Returns + +- `UserProfile object` + + A record of an entity that the platform serves through the API, such as an end-user of the platform's product or a company that the platform resells Claude access to. + + A Messages, Message Batches or token counting request can send a profile's `id` in the `anthropic-user-profile-id` header to attribute the request to that entity. + + - `type: "user_profile"` + + Object type. Always `user_profile`. + + - `id: string` + + Unique identifier for this user profile, prefixed `uprof_`. + + - `access_type: UserProfileAccessType` + + How the platform uses the API for this entity: `application` (default) or `passthrough`. Absent under the legacy `user-profiles-2026-03-24` beta header. + + - `"application"` + + The user profile represents an individual end-user of a product that the platform builds on the API. New profiles get this value by default. + + - `"passthrough"` + + The user profile represents a company that the platform resells Claude access to. + + - `created_at: string` + + When this user profile was created, in RFC 3339 format. + + format: date-time + + - `external_user_details: UserProfileExternalUserDetails` + + Details about the entity this profile represents, as the platform states them; not verified by Anthropic. Every field is present, `null` until the platform supplies a value. Absent under the legacy `user-profiles-2026-03-24` and `user-profiles-2026-08-18` beta headers, which serve `reference_id` as the top-level `external_id` and, under `user-profiles-2026-08-18`, `onboarded_at` as `external_user_onboarded_at`. + + - `account_status: UserProfileExternalUserAccountStatus or null` + + The status of the entity's account on the platform: `active`, `suspended` or `blocked`. `null` until the platform supplies one. + + - `"active"` + + The platform has neither restricted nor barred the account of the entity that the user profile represents. + + - `"suspended"` + + The platform has restricted the account of the entity that the user profile represents and may restore it. + + - `"blocked"` + + The platform has barred the account of the entity that the user profile represents. + + - `country: string or null` + + The country the platform associates with the entity, as an ISO 3166-1 alpha-2 code. `null` until the platform supplies one. + + - `email_hash: string or null` + + The platform-computed hash of the entity's email address. `null` until the platform supplies one. + + - `entity_type: UserProfileExternalUserEntityType or null` + + What kind of entity the profile represents: `individual`, `business`, `non_profit` or `government`. `null` until the platform supplies one. + + - `"individual"` + + - `"business"` + + - `"non_profit"` + + - `"government"` + + - `name_hash: string or null` + + The platform-computed hash of the entity's name. `null` until the platform supplies one. + + - `onboarded_at: string or null` + + When the entity opened its account with the platform, as stated by the platform, in RFC 3339 format (UTC). `null` until the platform supplies one. + + format: date-time + + - `reference_id: string or null` + + The platform's own reference for the entity. `null` until the platform supplies one. + + - `metadata: map[string]` + + Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars. + + - `name: string or null` + + Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (`access_type` `passthrough`) this is that company's name. `null` until the platform supplies one. + + - `programs: UserProfilePrograms` + + The profile's standing in each Anthropic program, such as the Cyber Verification Program. Present when the request sends no user-profiles beta header; absent under the `user-profiles-2026-09-04` and earlier beta headers, which serve `trust_grants` instead. + + - `cyber: UserProfileCyberProgram or null` + + The profile's standing in the Cyber Verification Program. `null` when the profile has no status in it. Only retrieving the profile gives the full answer: a list or update response can show `null`, or a status other than `active`, for a profile that reads `active` when retrieved. + + - `requirements: UserProfileCyberRequirements or null` + + What a request that names the profile must allow to get the relaxed safeguards of every `active` tier. `null` when no tier is `active`, and wherever `tiers` is `{}`. + + - `data_retention: boolean` + + Whether Anthropic must be able to retain the request's inference data. + + - `human_review: boolean` + + Whether Anthropic personnel must be allowed to review the data retained from the request. + + - `status: UserProfileProgramStatus` + + `active` when at least one tier is `active`, or when the profile has the program's access to earlier models. That access is not a tier: a profile that has it alone reads `active` with every tier `inactive`, or with `tiers` `{}` on a response that does not report tiers. When nothing is `active`, `pending` means that an application or enrollment is under review, or that what Anthropic approved does not yet apply to this profile, and `rejected` means that the application or enrollment was declined. + + - `"active"` + + The profile is in the program. + + - `"pending"` + + The profile is not in the program yet, and something is still awaited. + + - `"rejected"` + + The profile is not in the program and nothing is awaited: Anthropic has declined, or has withdrawn an earlier approval. + + - `tiers: map[UserProfileCyberTier]` + + The program's tiers, keyed by tier: `a` (Specialized Access), `b` (Red Team Access) and `c` (Defense Access). A response reports either every tier or none. When it reports them, as retrieving the profile normally does, every tier has a key, whether or not it applies to the profile. When it does not, as in the list of user profiles, `tiers` is `{}`, which does not mean that the tiers are inactive. No tier implies another, so read the tier you need. Anthropic may add tiers; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when the tier applies to the profile, otherwise `inactive`. The response does not say why a tier is `inactive`: it can be in review, declined, withdrawn, never applied for, or approved but not applied to this profile. + + - `"active"` + + - `"inactive"` + + - `efs: UserProfileEfsProgram or null` + + The profile's standing in Enterprise Frontier Safeguards. `null` unless the platform's attestation for the program is in place on this profile, or the entity it represents has applied to the program. A list of user profiles does not report this program: there it reads `null` for every profile, so retrieve the profile to read it. + + - `features: map[UserProfileEfsFeature]` + + The program's features, keyed by feature: `data_retention_exemption` (use of models that normally require data retention, without the data being retained), `cmek` (customer-managed encryption keys) and `storage` (customer-owned storage). Every feature that the caller's organization may read has a key, whether or not it is approved; a missing key does not mean that the feature is inactive. Anthropic may add features; ignore a key you do not recognize. + + - `status: "active" or "inactive"` + + `active` when Anthropic has approved the entity the profile represents to use the feature, otherwise `inactive`. `active` does not mean that the feature is set up or switched on, which is a separate step. + + - `"active"` + + - `"inactive"` + + - `status: UserProfileProgramStatus` + + Anthropic's decision on the entity the profile represents: `pending` while it is awaited, `active` once Anthropic has approved the entity for the program, or `rejected` once Anthropic has declined or has removed the entity from the program. `active` does not mean that any one feature is approved: read the feature you need in `features`. + + - `updated_at: string` + + When this user profile was last modified, in RFC 3339 format. It normally also updates shortly after Anthropic gives the profile an approval or withdraws one. Other changes to the statuses that Anthropic reports do not always update it, so read the status itself rather than watching this timestamp. + + format: date-time + +## Example + +```bash +curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \ + -H 'Content-Type: application/json' \ + -H 'anthropic-version: 2023-06-01' \ + -H "X-Api-Key: $ANTHROPIC_API_KEY" \ + -d '{ + "external_user_details": { + "account_status": "suspended" + } + }' +``` + +### Response (200) + +```json +{ + "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9", + "access_type": "application", + "created_at": "2026-03-15T10:00:00Z", + "external_user_details": { + "account_status": "active", + "country": "US", + "email_hash": null, + "entity_type": "business", + "name_hash": null, + "onboarded_at": "2024-11-02T08:15:00Z", + "reference_id": "user_12345" + }, + "metadata": {}, + "name": "Example User", + "programs": { + "cyber": { + "requirements": { + "data_retention": true, + "human_review": true + }, + "status": "active", + "tiers": { + "a": { + "status": "inactive" + }, + "b": { + "status": "inactive" + }, + "c": { + "status": "inactive" + } + } + }, + "efs": { + "features": { + "data_retention_exemption": { + "status": "inactive" + }, + "cmek": { + "status": "active" + }, + "storage": { + "status": "inactive" + } + }, + "status": "active" + } + }, + "type": "user_profile", + "updated_at": "2026-03-15T10:00:00Z" +} +``` diff --git a/content/en/build-with-claude/claude-in-amazon-bedrock.md b/content/en/build-with-claude/claude-in-amazon-bedrock.md index 7355c910d6..b73526da31 100644 --- a/content/en/build-with-claude/claude-in-amazon-bedrock.md +++ b/content/en/build-with-claude/claude-in-amazon-bedrock.md @@ -102,8 +102,8 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries ```kotlin - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-bedrock:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-bedrock:2.75.0") ``` @@ -112,12 +112,12 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-bedrock - 2.74.0 + 2.75.0 ```
diff --git a/content/en/build-with-claude/claude-in-microsoft-foundry.md b/content/en/build-with-claude/claude-in-microsoft-foundry.md index c211dc29e3..973c91c36d 100644 --- a/content/en/build-with-claude/claude-in-microsoft-foundry.md +++ b/content/en/build-with-claude/claude-in-microsoft-foundry.md @@ -80,8 +80,8 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries ```kotlin - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-foundry:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-foundry:2.75.0") // For Entra ID authentication, also add the Azure Identity library implementation("com.azure:azure-identity:1.18.3") @@ -93,12 +93,12 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-foundry - 2.74.0 + 2.75.0 @@ -212,7 +212,7 @@ The SDK's Foundry client requires an API key and either a resource name or base ``` ```bash CLI - # ant reads ANTHROPIC_API_KEY and sends it as x-api-key, which Foundry accepts + # ant reads ANTHROPIC_API_KEY export ANTHROPIC_API_KEY="YOUR_AZURE_API_KEY" ant messages create \ diff --git a/content/en/build-with-claude/claude-on-amazon-bedrock-legacy.md b/content/en/build-with-claude/claude-on-amazon-bedrock-legacy.md index 0ee14878f5..4fb0f75eb8 100644 --- a/content/en/build-with-claude/claude-on-amazon-bedrock-legacy.md +++ b/content/en/build-with-claude/claude-on-amazon-bedrock-legacy.md @@ -54,20 +54,20 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries ```groovy Gradle - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-bedrock:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-bedrock:2.75.0") ``` ```xml Maven com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-bedrock - 2.74.0 + 2.75.0 ``` diff --git a/content/en/build-with-claude/claude-on-vertex-ai.md b/content/en/build-with-claude/claude-on-vertex-ai.md index f1634fabeb..9c38581536 100644 --- a/content/en/build-with-claude/claude-on-vertex-ai.md +++ b/content/en/build-with-claude/claude-on-vertex-ai.md @@ -45,20 +45,20 @@ First, install Anthropic's [client SDK](https://platform.claude.com/docs/en/cli- ```groovy Gradle - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-vertex:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-vertex:2.75.0") ``` ```xml Maven com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-vertex - 2.74.0 + 2.75.0 ``` diff --git a/content/en/build-with-claude/claude-platform-on-aws.md b/content/en/build-with-claude/claude-platform-on-aws.md index a1d5e50f84..cdd2e58e9e 100644 --- a/content/en/build-with-claude/claude-platform-on-aws.md +++ b/content/en/build-with-claude/claude-platform-on-aws.md @@ -305,20 +305,20 @@ Anthropic's [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries ```kotlin Gradle - implementation("com.anthropic:anthropic-java:2.74.0") - implementation("com.anthropic:anthropic-java-aws:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") + implementation("com.anthropic:anthropic-java-aws:2.75.0") ``` ```xml Maven com.anthropic anthropic-java - 2.74.0 + 2.75.0 com.anthropic anthropic-java-aws - 2.74.0 + 2.75.0 ``` diff --git a/content/en/cli-sdks-libraries/cli/authentication.md b/content/en/cli-sdks-libraries/cli/authentication.md index 1608065a44..284965ec5d 100644 --- a/content/en/cli-sdks-libraries/cli/authentication.md +++ b/content/en/cli-sdks-libraries/cli/authentication.md @@ -127,7 +127,7 @@ ANTHROPIC_PROFILE=other-ws ant models list Run [`ant auth status`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication#check-authentication-status) to confirm which profile and workspace are active. - Profiles are only consulted when no API key is set. If `ANTHROPIC_API_KEY` is present in your environment, it overrides every profile and these commands all use that key's workspace (or, for a multi-workspace key, the workspace set with `ANTHROPIC_WORKSPACE_ID` or `--workspace-id`). Unset it before switching profiles. + An `ANTHROPIC_API_KEY` or `ANTHROPIC_AUTH_TOKEN` in your environment takes precedence over every profile (see [Credential precedence](https://platform.claude.com/docs/en/manage-claude/wif-reference#credential-precedence)). Until you unset it, API requests use that credential, whichever profile you select, and `ant` prints a message to stderr that says so. ## Manage profiles diff --git a/content/en/cli-sdks-libraries/cli/quickstart.md b/content/en/cli-sdks-libraries/cli/quickstart.md index 9f28140d07..6934048f74 100644 --- a/content/en/cli-sdks-libraries/cli/quickstart.md +++ b/content/en/cli-sdks-libraries/cli/quickstart.md @@ -32,7 +32,7 @@ Compared to `curl`, `ant` builds request bodies from typed flags or piped YAML i For Linux environments, download the release binary directly. ```bash - VERSION=1.43.0 + VERSION=1.44.0 OS=$(uname -s | tr '[:upper:]' '[:lower:]') case $(uname -m) in x86_64) ARCH=amd64 ;; diff --git a/content/en/cli-sdks-libraries/cli/scripting.md b/content/en/cli-sdks-libraries/cli/scripting.md index 046740c0df..c44f8d8eca 100644 --- a/content/en/cli-sdks-libraries/cli/scripting.md +++ b/content/en/cli-sdks-libraries/cli/scripting.md @@ -124,8 +124,4 @@ curl https://api.anthropic.com/v1/messages \ }' ``` - - Keep `ANTHROPIC_API_KEY` and `ANTHROPIC_AUTH_TOKEN` unset when working from a CLI login. Either variable takes precedence over the login for `ant` commands (see [Credential precedence](https://platform.claude.com/docs/en/manage-claude/wif-reference#credential-precedence)) and can silently route them to a different organization or workspace. - - -Run [`ant auth status`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication#check-authentication-status) to confirm which organization and workspace you are logged in to; it warns when an environment variable is overriding your login. +Run [`ant auth status`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication#check-authentication-status) to confirm which organization and workspace you are logged in to; it warns when an environment variable is overriding your login. For the full ordering of credential sources, see [Credential precedence](https://platform.claude.com/docs/en/manage-claude/wif-reference#credential-precedence). diff --git a/content/en/cli-sdks-libraries/overview.md b/content/en/cli-sdks-libraries/overview.md index 40d76203ce..d45192e616 100644 --- a/content/en/cli-sdks-libraries/overview.md +++ b/content/en/cli-sdks-libraries/overview.md @@ -54,6 +54,21 @@ Anthropic provides three kinds of official tooling for building with the Claude +## Latest versions + +| Tool | Latest version | Package | +| ---------- | -------------- | ----------------------------------------------------------------------------------------------------- | +| ant CLI | `1.44.0` | [`github.com/anthropics/anthropic-cli`](https://github.com/anthropics/anthropic-cli/releases) | +| Python | `1.17.0` | [`anthropic`](https://pypi.org/project/anthropic/) | +| TypeScript | `0.137.0` | [`@anthropic-ai/sdk`](https://www.npmjs.com/package/@anthropic-ai/sdk) | +| C# | `12.60.0` | [`Anthropic`](https://www.nuget.org/packages/Anthropic) | +| Go | `1.84.0` | [`github.com/anthropics/anthropic-sdk-go`](https://pkg.go.dev/github.com/anthropics/anthropic-sdk-go) | +| Java | `2.75.0` | [`com.anthropic:anthropic-java`](https://central.sonatype.com/artifact/com.anthropic/anthropic-java) | +| PHP | `0.61.0` | [`anthropic-ai/sdk`](https://packagist.org/packages/anthropic-ai/sdk) | +| Ruby | `1.82.0` | [`anthropic`](https://rubygems.org/gems/anthropic) | + +The same versions are available as JSON at `https://platform.claude.com/docs/sdk-versions.json`. + ## Libraries and integrations Libraries and integrations expose Claude through another framework's API surface. They are not general-purpose Messages API clients. diff --git a/content/en/cli-sdks-libraries/sdks/java.md b/content/en/cli-sdks-libraries/sdks/java.md index 23b7430edd..1c447f3ae5 100644 --- a/content/en/cli-sdks-libraries/sdks/java.md +++ b/content/en/cli-sdks-libraries/sdks/java.md @@ -15,7 +15,7 @@ The Anthropic Java SDK provides convenient access to the Claude API from applica ```kotlin - implementation("com.anthropic:anthropic-java:2.74.0") + implementation("com.anthropic:anthropic-java:2.75.0") ``` @@ -24,7 +24,7 @@ The Anthropic Java SDK provides convenient access to the Claude API from applica com.anthropic anthropic-java - 2.74.0 + 2.75.0 ``` diff --git a/content/en/docs/claude-code/advisor.md b/content/en/docs/claude-code/advisor.md index 8510cf6da2..de09c8573c 100644 --- a/content/en/docs/claude-code/advisor.md +++ b/content/en/docs/claude-code/advisor.md @@ -83,7 +83,7 @@ Claude Code uses the flag instead of the `advisorModel` setting for that session If you start a [background session](/docs/en/agent-view) with `--advisor` and one of these applies, Claude Code starts the session without the advisor instead of exiting. -If the requested model can act as an advisor but [ranks below](#choose-an-advisor-model) the session's main model, Claude Code starts the session anyway. Outside background sessions, it also warns at launch that the model `cannot advise` the main model. +If the model you pass can act as an advisor but [ranks below your main model](#choose-an-advisor-model), the session starts whether or not it's a background session. Your main model then runs without the advisor. ## Choose an advisor model diff --git a/content/en/docs/claude-code/agent-sdk/examples.md b/content/en/docs/claude-code/agent-sdk/examples.md index 5589f3759e..882d08a7ca 100644 --- a/content/en/docs/claude-code/agent-sdk/examples.md +++ b/content/en/docs/claude-code/agent-sdk/examples.md @@ -20,6 +20,10 @@ If you haven't built anything with the SDK yet, start with one of these before a The applications in [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) are demos for local development, from an email client to a multi-agent research system. Clone the demo whose shape matches what you're building. +## Fork a complete project + +To build a shopping agent or a merchant agent with the Python SDK, start from the [Claude for commerce reference implementation](https://platform.claude.com/docs/en/about-claude/use-case-guides/commerce-agents). + ## Work through a Python recipe The Claude Cookbook's Agent SDK series is a sequence of recipes, each a Python notebook, that progresses from a simple research agent to sophisticated multi-agent systems. Each notebook builds on the previous one, introducing new concepts and capabilities. Start with [the one-liner research agent](https://platform.claude.com/cookbook/claude-agent-sdk-00-the-one-liner-research-agent) and work forward. diff --git a/content/en/docs/claude-code/agent-sdk/hooks.md b/content/en/docs/claude-code/agent-sdk/hooks.md index 44679495bc..a93db2e280 100644 --- a/content/en/docs/claude-code/agent-sdk/hooks.md +++ b/content/en/docs/claude-code/agent-sdk/hooks.md @@ -638,6 +638,7 @@ Use `Notification` hooks to receive system notifications from the agent and forw * [`permission_prompt`](/docs/en/hooks#notification) once a permission request has waited about six seconds on your [`canUseTool` callback](/docs/en/agent-sdk/user-input). Requires TypeScript Agent SDK v0.3.233 or later, or Python Agent SDK v0.2.139 or later * `elicitation_complete` and `elicitation_response` for user-prompt elicitation flows +* `plugin_notification` when a [mod](/docs/en/plugins/mods/api#show-something-without-starting-a-turn) calls `$.ui.notify` Claude Code emits the other types, such as `idle_prompt`, `auth_success`, and `elicitation_dialog`, from interactive UI that SDK sessions don't run. diff --git a/content/en/docs/claude-code/agent-sdk/mcp.md b/content/en/docs/claude-code/agent-sdk/mcp.md index 8dc870625b..fb10638651 100644 --- a/content/en/docs/claude-code/agent-sdk/mcp.md +++ b/content/en/docs/claude-code/agent-sdk/mcp.md @@ -142,7 +142,9 @@ Create a `.mcp.json` file at your project root. The file is picked up when the ` ## Connection timing -Claude Code registers the servers you pass in `options.mcpServers` at startup and emits the [init message](#error-handling) once the first-turn wait, if any, resolves. Whether each `options.mcpServers` server delays the first turn, and when it connects, depends on its type: +Claude Code starts connecting your MCP servers when the session starts, and sends the [init message](#error-handling) once the first-turn wait, if any, ends. How long the first turn waits for a server depends on where you configured it. If you set `permissionPromptToolName`, the first turn always waits for that tool's server, up to `MCP_TIMEOUT`, wherever you configured it. + +For a server in `options.mcpServers`, find its type in the first column to see how long the first turn waits for it. | Server type | Delays the first turn? | First-turn wait timeout | | :- | :- | :- | @@ -150,23 +152,33 @@ Claude Code registers the servers you pass in `options.mcpServers` at startup an | Remote server with a cached tool list, saved by Claude Code from a previous connection | No; the cached tools are available from the first turn | None; connects on its first tool call, and that deferred connect has its own timeout | | In-process [SDK server](#sdk-mcp-servers) | Yes, until it connects and lists its tools | [`MCP_TIMEOUT`](/docs/en/env-vars), 30 seconds by default, per connect attempt; the connection fails at that deadline | -Servers loaded from [settings files](#from-a-config-file) such as `.mcp.json` or from plugins commonly show `pending` in the init message. When `options.mcpServers` holds a stdio, HTTP, or SSE server, the first turn waits for these pending servers too, up to `MCP_TIMEOUT`. When `options.mcpServers` is empty or holds only SDK servers, the first turn waits up to 2 seconds instead: +A server has a cached tool list only when the [MCP discovery cache](/docs/en/mcp#server-status-detail) is on. + +Servers from [settings files](#from-a-config-file) such as `.mcp.json`, or from plugins, often still show `pending` in the init message. How long the first turn waits for them depends on `options.mcpServers` and tool search: + +* **`options.mcpServers` includes a stdio, HTTP, or SSE server**: the first turn waits for the pending settings-file and plugin servers too, up to `MCP_TIMEOUT`. +* **Otherwise, when `ANTHROPIC_BASE_URL` points to a [gateway](/docs/en/mcp#tool-search-through-a-gateway) and [`ENABLE_TOOL_SEARCH`](/docs/en/mcp#configure-tool-search) is unset**: the first turn waits up to 2 seconds for every pending settings-file and plugin server. +* **Otherwise, with [tool search](/docs/en/agent-sdk/tool-search) on, which is the default**: the first turn waits up to 2 seconds, and only for pending servers that set [`alwaysLoad: true`](/docs/en/mcp#exempt-a-server-from-deferral) or that you [named](#named-servers). The rest keep connecting in the background, and Claude [reaches their tools](/docs/en/mcp#tool-availability) once they connect. +* **Otherwise, with tool search off**: the first turn waits up to 2 seconds for every pending settings-file and plugin server. Tool search is off when your [`ENABLE_TOOL_SEARCH` value or model](/docs/en/agent-sdk/tool-search#configure-tool-search) turns it off, or when you exclude the `ToolSearch` tool, for example through `disallowedTools`. + +You name a server by listing any of its tools, such as `mcp__github__list_issues` or `mcp__github__*`, in [`allowedTools`](#allow-mcp-tools) or in a `permissions.allow` rule in the `settings` option. An [`mcp_tool` hook](/docs/en/hooks#mcp-tool-hook-fields) also names the server it calls when you configure it on a prompt-submission, tool-use, permission, subagent, task, elicitation, or worktree event. Before v2.1.284, naming a server had no effect on the first-turn wait. -* **With [tool search](/docs/en/agent-sdk/tool-search), the default**: the wait covers still-pending servers configured with [`alwaysLoad: true`](/docs/en/mcp#exempt-a-server-from-deferral) and not the rest. The rest keep connecting in the background. [Tool availability](/docs/en/mcp#tool-availability) describes how Claude reaches their tools once they connect. -* **Without tool search**: the wait covers every pending server. [Configure tool search](/docs/en/agent-sdk/tool-search#configure-tool-search) covers what turns tool search off. If you exclude the `ToolSearch` tool from the session, for example through `disallowedTools`, the session also runs without tool search. +To choose the first-turn wait yourself, set `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` in the [`env` option](/docs/en/agent-sdk/configuration#set-environment-variables), for example `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. The first turn then waits up to that many milliseconds for pending settings-file and plugin servers, whether or not tool search is on. The same limit replaces the `MCP_TIMEOUT` wait for the stdio, HTTP, and SSE servers in `options.mcpServers`. -If you set `permissionPromptToolName`, the first turn also waits for that tool's server in every case, up to `MCP_TIMEOUT`. +Three waits apply whatever value you set, including `0`: -To set the first-turn wait yourself, add `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` to the [`env` option](/docs/en/agent-sdk/configuration#set-environment-variables), for example `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. The first turn then waits up to that many milliseconds for every pending server, whether or not tool search is available. This deadline also replaces the `MCP_TIMEOUT` first-turn wait for stdio, HTTP, and SSE servers in `options.mcpServers`. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` requires Claude Code v2.1.274 or later. +* **A `permissionPromptToolName` server**: up to `MCP_TIMEOUT`. +* **An in-process [SDK server](#sdk-mcp-servers)**: up to `MCP_TIMEOUT` per connect attempt. +* **A still-connecting [named server](#named-servers)**: at least up to 2 seconds, so a value below `2000` doesn't shorten its wait. -Servers still pending when the wait ends keep connecting in the background. Set the variable to `0` to skip the wait. A `permissionPromptToolName` server keeps its own `MCP_TIMEOUT` wait regardless of the value. +Set the variable to `0` to skip the wait for every other server. Servers still pending when the wait ends keep connecting in the background. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` requires Claude Code v2.1.274 or later. -To block startup itself at a separate, earlier phase than the first-turn wait, before the init message is sent: +Two settings make startup itself wait, before Claude Code sends the init message: -* Set [`MCP_CONNECTION_NONBLOCKING`](/docs/en/env-vars) to `0` to block on the whole connection batch. Claude Code caps that wait at 5 seconds by default. Adjust the cap with the [`MCP_CONNECT_TIMEOUT_MS`](/docs/en/env-vars) environment variable, in milliseconds. Servers still pending at that deadline keep connecting in the background. -* Set `alwaysLoad: true` on a server's config to make its tools available at their full schemas on the first turn, [exempt from tool search deferral](/docs/en/mcp#exempt-a-server-from-deferral). Claude Code waits at startup for that server's tools, capped at the same deadline, while other servers keep connecting in the background; a remote server with a cached tool list supplies them without connecting, per the table above. +* **[`MCP_CONNECTION_NONBLOCKING`](/docs/en/env-vars) set to `0`**: startup waits for the whole connection batch, up to 5 seconds by default. Set [`MCP_CONNECT_TIMEOUT_MS`](/docs/en/env-vars), in milliseconds, to change that cap. Servers still pending at the cap keep connecting in the background. +* **`alwaysLoad: true` on a server's config**: startup waits up to the same cap for that server's tools, so the first turn has them at full schema, [exempt from tool search deferral](/docs/en/mcp#exempt-a-server-from-deferral). A remote server with a cached tool list supplies them without connecting or holding startup. -The `system` message with subtype `init` reports each server's status at the moment it's emitted; see [Error handling](#error-handling) for reading those statuses. +The init message reports each server's status as of the moment Claude Code sends it. ## Allow MCP tools diff --git a/content/en/docs/claude-code/agent-sdk/permissions.md b/content/en/docs/claude-code/agent-sdk/permissions.md index 3999fbed32..4cc4ae7005 100644 --- a/content/en/docs/claude-code/agent-sdk/permissions.md +++ b/content/en/docs/claude-code/agent-sdk/permissions.md @@ -78,7 +78,7 @@ This page focuses on **allow and deny rules** and **permission modes**. For the | `disallowed_tools=["Bash(rm *)"]` | `Bash` stays available. Calls matching `rm *` [as written](/docs/en/permissions#bash-rule-limits) are denied in every permission mode, including `bypassPermissions`. Other `Bash` calls, including `/bin/rm`, fall through to the permission mode. | | `disallowed_tools=["*"]` | Every tool definition is removed from the request. Tool-name globs are supported in deny rules: `"*"` matches every tool and `"mcp__*"` matches every MCP tool across all servers. | -Allow rules accept tool-name globs only after a literal `mcp____` prefix. The server segment must be glob-free so the rule names a specific server you configured: `mcp__puppeteer__*` matches every tool from the `puppeteer` server, and `mcp__github__get_*` matches its `get_` tools. An unanchored entry like `allowed_tools=["*"]` or `allowed_tools=["mcp__*"]` is ignored with a startup warning and does not auto-approve anything. +Allow rules accept tool-name globs only after a literal `mcp____` prefix. The server segment must be glob-free so the rule names a specific server you configured: `mcp__puppeteer__*` matches every tool from the `puppeteer` server, and `mcp__github__get_*` matches its `get_` tools. An unanchored entry like `allowed_tools=["*"]` or `allowed_tools=["mcp__*"]` is ignored and doesn't auto-approve anything. Scoped rules for `Read` and `Edit` take a path pattern. `Edit(path)` rules govern all built-in tools that write files, including `Write` and `NotebookEdit`; a `Write(path)` rule is never matched by the file permission checks. diff --git a/content/en/docs/claude-code/agent-sdk/python.md b/content/en/docs/claude-code/agent-sdk/python.md index d422894a50..2ed9936b73 100644 --- a/content/en/docs/claude-code/agent-sdk/python.md +++ b/content/en/docs/claude-code/agent-sdk/python.md @@ -535,7 +535,7 @@ class ClaudeSDKClient: | `set_model(model)` | Change the model for the current session. Pass `None` to reset to [Claude Code's default model](/docs/en/model-config). A session in `auto` mode [changes to `default` mode](/docs/en/agent-sdk/permissions#auto-mode-auto) if the new model doesn't support auto mode | | `rewind_files(user_message_id)` | Restore files to their state at the specified user message. Requires `enable_file_checkpointing=True`. See [File checkpointing](/docs/en/agent-sdk/file-checkpointing) | | `get_mcp_status()` | Get the status of all configured MCP servers. Returns [`McpStatusResponse`](#mcpstatusresponse) | -| `get_context_usage()` | Get a breakdown of context window usage by category, skill, and tool. The same data `/context` shows in an interactive session. Returns [`ContextUsageResponse`](#contextusageresponse). To compute the breakdown, Claude Code makes several token-counting API requests that don't appear in the message stream; see [how these requests are handled](#contextusageresponse) | +| `get_context_usage()` | Get a breakdown of context window usage by category, skill, and tool. Includes the data `/context` shows in an interactive session. Returns [`ContextUsageResponse`](#contextusageresponse). To compute the breakdown, Claude Code makes several token-counting API requests that don't appear in the message stream; see [how these requests are handled](#contextusageresponse) | | `reconnect_mcp_server(server_name)` | Retry connecting to an MCP server that failed or was disconnected | | `toggle_mcp_server(server_name, enabled)` | Enable or disable an MCP server mid-session. Disabling a stdio, SSE, or HTTP server removes its tools | | `stop_task(task_id)` | Stop a running background task. A [`TaskNotificationMessage`](#tasknotificationmessage) with status `"stopped"` follows in the message stream | @@ -1524,7 +1524,7 @@ class McpServerStatus(TypedDict): ### `ContextUsageResponse` -Response from [`ClaudeSDKClient.get_context_usage()`](#methods). This is the same payload Claude Code renders for the `/context` command in an interactive session, so alongside the token counts it carries display fields such as `color` and `gridRows` that Claude Code uses to draw the `/context` usage grid. +Response from [`ClaudeSDKClient.get_context_usage()`](#methods). The response includes the payload Claude Code renders for the `/context` command in an interactive session. Alongside the token counts, that payload carries display fields such as `color` and `gridRows` that Claude Code uses to draw the `/context` usage grid. Claude Code builds this payload by sending several requests to the [token-counting](https://platform.claude.com/docs/en/build-with-claude/token-counting) API. These requests don't appear in the message stream, so cost tracking that reads the stream won't see them. On the Anthropic API, token counting isn't billed. @@ -1715,7 +1715,12 @@ The `subtype` field determines which other fields are populated. It is one of `" Several fields carry diagnostic detail about how the conversation ended: -* `is_error`: `True` when the conversation ended in an error state. Always `True` on the `error_*` subtypes. On `subtype="success"` it is `True` when the final model request failed, meaning the agent loop completed but the last API call returned an error. +* `is_error`: `True` when the conversation ended in an error state. Always `True` on the `error_*` subtypes. On `subtype="success"` it is `True` in three cases. Check `stop_reason` to tell them apart: + * `"refusal"`: the model declined to respond. Read the refusal text in `result`, or in the preceding `AssistantMessage` when `result` is empty. + * `"tool_deferred_unavailable"`: the [deferred tool](/docs/en/hooks#defer-a-tool-call-for-later) was no longer available when you resumed the session, for example because its MCP server wasn't connected. In the two cases below, a prompt you send after resuming counts the same as one passed with the resume: + * No prompt: the call is still pending. Make the tool available and resume again without a prompt, and the call runs first. + * A prompt: Claude Code answers it without the tool's result, and the deferred call is gone. Send a new prompt if you still need the tool called. + * Any other value: the turn ended on an error that Claude Code reported in place of a model response, such as an API error. Read `terminal_reason` for the cause, `result` for the message, and `api_error_status` for the HTTP status when the API returned one. * `api_error_status`: the HTTP status code of the terminating API error. `None` when the turn ended without one. Populated only on `subtype="success"`. * `result`: text of the final assistant message on `subtype="success"`, or `None` on the `error_*` subtypes. When `subtype="success"` and `is_error=True`, this holds the API error string if one is available but can be empty, so check `api_error_status` and the preceding `AssistantMessage` content for detail. * `errors`: loop-level error strings such as the max-turns message. Populated only on the `error_*` subtypes. @@ -2062,12 +2067,12 @@ class ResultError(ProcessError): errors: list[str] # an empty list when the result message reported none result: str | None api_error_status: int | None - terminal_reason: str | None # "max_turns", "api_error", ...; check this before subtype + terminal_reason: str | None # "max_turns", "api_error", ...; check after data["stop_reason"], before subtype session_id: str | None data: dict[str, Any] # the raw result message payload ``` -To tell failures apart, check `terminal_reason` before `subtype`. When the final request fails, such as on an API error, Claude Code reports `subtype` `"success"` with the cause in `terminal_reason`, for example `"api_error"`; when a limit you set ends the run, such as `max_turns` or `max_budget_usd`, it reports an `error_*` subtype. +To tell failures apart, check `data["stop_reason"]` first, then `terminal_reason`, then `subtype`. A declined response has `stop_reason` `"refusal"`, usually with `subtype` `"success"`; its `terminal_reason` doesn't single it out and can read `"completed"` or `"api_error"`. A failed final request has `subtype` `"success"` and its cause in `terminal_reason`, such as `"api_error"` for an API error. When the run hits a limit you set, such as `max_turns` or `max_budget_usd`, you get an `error_*` subtype. ### `CLIJSONDecodeError` @@ -3519,10 +3524,12 @@ async def main(): "Claude Code CLI not found. Try reinstalling: pip install --force-reinstall claude-agent-sdk" ) # Catch ResultError before ProcessError, which it subclasses. Its message - # carries the error text. A failed final request, such as an API error, - # arrives with subtype "success", so branch on terminal_reason first. + # carries the error text. A refusal and a failed final request both usually + # arrive with subtype "success", so check stop_reason, then terminal_reason. except ResultError as e: - if e.terminal_reason == "api_error": + if e.data.get("stop_reason") == "refusal": + print(f"Model declined to respond: {e}") + elif e.terminal_reason == "api_error": print(f"API request failed: {e}") else: print(f"Query ended with an error result ({e.terminal_reason or e.subtype}): {e}") diff --git a/content/en/docs/claude-code/agent-sdk/streaming-output.md b/content/en/docs/claude-code/agent-sdk/streaming-output.md index d410670b72..bc17ed5538 100644 --- a/content/en/docs/claude-code/agent-sdk/streaming-output.md +++ b/content/en/docs/claude-code/agent-sdk/streaming-output.md @@ -318,7 +318,7 @@ for await (const message of query({ ## Known limitations -* **Structured output**: with partial messages enabled, the JSON streams as a tool call's unvalidated `input_json_delta` chunks, and only the validated result reaches the final `ResultMessage.structured_output`. See [structured outputs](/docs/en/agent-sdk/structured-outputs) for details. +* **Structured output**: with partial messages enabled, the JSON streams as a tool call's unvalidated `input_json_delta` chunks, and only the validated result reaches the final `ResultMessage.structured_output`. [Recognize the StructuredOutput tool call](/docs/en/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call) covers how that call appears in your stream. ## Next steps diff --git a/content/en/docs/claude-code/agent-sdk/structured-outputs.md b/content/en/docs/claude-code/agent-sdk/structured-outputs.md index 40e6d1a0a7..694478dc33 100644 --- a/content/en/docs/claude-code/agent-sdk/structured-outputs.md +++ b/content/en/docs/claude-code/agent-sdk/structured-outputs.md @@ -368,6 +368,17 @@ async def main(): asyncio.run(main()) ``` +## Recognize the StructuredOutput tool call + +When you set `outputFormat` in TypeScript or `output_format` in Python, your message stream carries a tool call named `StructuredOutput` that you never defined. Claude Code adds this tool to the session, and the agent calls it to return its answer. The [system init message](/docs/en/agent-sdk/typescript#sdksystemmessage) lists it in the `tools` array, and each call arrives as two blocks: + +* A `tool_use` block named `StructuredOutput`, whose input is the object the agent produced for your schema +* A `tool_result` block reading `Structured output provided successfully` + +When that object doesn't match your schema, the `tool_result` carries `is_error: true` instead and the agent calls `StructuredOutput` again, so your stream can hold several calls for one query. Read the validated data from `structured_output` on the result message rather than from a `tool_use` block, and see [Error handling](#error-handling) for the result you get when no attempt succeeds. + +If your application shows or logs tool calls, skip the ones named `StructuredOutput` so the mechanism doesn't appear as a step the agent chose. A `tool_result` block carries no tool name, only the `tool_use_id` of the call it answers, so match that against the `id` of each call you skipped. + ## Error handling Structured output generation can fail when the agent cannot produce valid JSON matching your schema. This typically happens when the schema is too complex for the task, the task itself is ambiguous, or the agent hits its retry limit trying to fix validation errors. It can also happen without any validation failure: a [model fallback](/docs/en/model-config#automatic-model-fallback) can retract an already-completed output mid-stream, and if no retry replaces it the run ends with the same error. Check the `errors` list on the error result message to tell the two causes apart before debugging your schema. diff --git a/content/en/docs/claude-code/agent-sdk/tool-search.md b/content/en/docs/claude-code/agent-sdk/tool-search.md index 50b3e9b33d..b94b29cb90 100644 --- a/content/en/docs/claude-code/agent-sdk/tool-search.md +++ b/content/en/docs/claude-code/agent-sdk/tool-search.md @@ -36,12 +36,16 @@ Tool search is on by default. For models on the SDK's unsupported-model list, th Before Claude Code v2.1.221, the SDK disabled tool search for all models on Google Cloud's Agent Platform unless you set `ENABLE_TOOL_SEARCH`. -The SDK also disables tool search when `ANTHROPIC_BASE_URL` points to a non-first-party host, since most proxies don't forward `tool_reference` blocks. You can override that default with the `ENABLE_TOOL_SEARCH` environment variable: +> [!NOTE] +> +> Tool search is on by default behind an `ANTHROPIC_BASE_URL` gateway, with nothing to set. If the gateway rejects it, see [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway). Before Claude Code v2.1.304, the SDK disabled tool search behind such a gateway unless `ENABLE_TOOL_SEARCH` was `true`, `auto`, or `auto:N`. + +You control whether and when tool definitions are deferred with the `ENABLE_TOOL_SEARCH` environment variable, which takes these values: | Value | Behavior | | :- | :- | -| (unset) | Tool search is on. Tool definitions are deferred and discovered on demand. Falls back to loading upfront on models earlier than Opus 4 and Sonnet 4, Google Cloud's Agent Platform models earlier than Opus 4.5, Sonnet 4.5, and Haiku 4.5, a non-first-party `ANTHROPIC_BASE_URL`, or a Microsoft Foundry deployment hosted on Azure. | -| `true` | Tool search stays on with a non-first-party `ANTHROPIC_BASE_URL`. The other (unset) fallbacks still apply. The SDK sends the beta header through proxies, and requests fail on proxies that don't support `tool_reference` blocks. | +| (unset) | Tool search is on, with tool definitions deferred and discovered on demand. Falls back to loading upfront on models earlier than Opus 4 and Sonnet 4, on the [earlier Agent Platform models](#configure-tool-search), and on Microsoft Foundry deployments hosted on Azure. | +| `true` | Tool search is on, with the same fallbacks as (unset). | | `auto` | Counts the tokens in the tool definitions that tool search can defer and compares the total against the model's context window. When the total reaches 10% of the window, tool search activates. Below that, the SDK loads every tool definition into context upfront. | | `auto:N` | Same as `auto` with a custom percentage. `auto:5` activates when those definitions reach 5% of the context window. Lower values activate sooner. | | `false` | Tool search is off. All tool definitions are loaded into context on every turn. | diff --git a/content/en/docs/claude-code/agent-sdk/typescript.md b/content/en/docs/claude-code/agent-sdk/typescript.md index c96c3d812e..7c0976d930 100644 --- a/content/en/docs/claude-code/agent-sdk/typescript.md +++ b/content/en/docs/claude-code/agent-sdk/typescript.md @@ -660,7 +660,7 @@ interface Query extends AsyncGenerator { | `supportedModels()` | Returns available models with display info | | `supportedAgents()` | Returns available subagents as [`AgentInfo`](#agentinfo)`[]` | | `mcpServerStatus()` | Returns the status of connected MCP servers as [`McpServerStatus`](#mcpserverstatus)`[]` | -| `getContextUsage(opts?)` | Returns an [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) breaking down the session's context window usage by category, skill, and tool. With the default `detail`, it is the same data `/context` shows in an interactive session, computed with token-counting API requests that don't appear in the message stream; see [how these requests are handled](#sdkcontrolgetcontextusageresponse). The [`detail` option](#sdkcontrolgetcontextusageresponse) requires Agent SDK v0.3.257 or later | +| `getContextUsage(opts?)` | Returns an [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) breaking down the session's context window usage by category, skill, and tool. With the default `detail`, it includes the data `/context` shows in an interactive session, computed with token-counting API requests that don't appear in the message stream; see [how these requests are handled](#sdkcontrolgetcontextusageresponse). The [`detail` option](#sdkcontrolgetcontextusageresponse) requires Agent SDK v0.3.257 or later | | `readFile(path, options?)` | Reads a file from the session's filesystem. Claude Code resolves the path against `cwd`; [What `readFile()` can read](#what-readfile-can-read) lists the files it serves. Pass `{ maxBytes }` to change the read cap (default 1 MB, ceiling 10 MB) and `{ encoding: 'base64' }` for binary files such as images. Resolves with an [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), or `null` on permission denial, a missing file, or a transport error. Requires TypeScript SDK v0.2.121 or later | | `reloadPlugins(options?)` | Reloads plugins from disk, so plugins you install or edit mid-session reach the running session. Resolves with an [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listing the session's commands, subagents, plugins, and MCP server status. Requires Agent SDK v0.2.85 or later. The [`holdOnCacheImpact` option](#sdkcontrolreloadpluginsresponse) requires Agent SDK v0.3.268 or later | | `reloadSkills()` | Reloads skills from disk, so skills you add or edit mid-session become available to the running session. Resolves with an [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) listing the skills available after the reload. Requires Agent SDK v0.3.163 or later | @@ -863,7 +863,7 @@ The receipt is a snapshot taken at the moment the interrupt is processed, and on ### `SDKControlGetContextUsageResponse` -Return type of [`getContextUsage()`](#query-object). With the default `detail`, this is the same payload Claude Code renders for the `/context` command in an interactive session, so alongside the token counts it carries display fields such as `color` and `gridRows` that Claude Code uses to draw the `/context` usage grid. +Return type of [`getContextUsage()`](#query-object). With the default `detail`, the response includes the payload Claude Code renders for the `/context` command in an interactive session. Alongside the token counts, that payload carries display fields such as `color` and `gridRows` that Claude Code uses to draw the `/context` usage grid. The method's optional `detail` argument chooses how Claude Code counts each category. The `detail` argument requires Agent SDK v0.3.257 or later. @@ -872,9 +872,25 @@ The method's optional `detail` argument chooses how Claude Code counts each cate When you send `/context` as a prompt instead of calling the method, Claude Code attaches an [`SDKContextUsage`](#sdkcontextusage) payload to the `context_usage` field of the assistant message that delivers the result. That field requires Agent SDK v0.3.232 or later. +In `SDKControlGetContextUsageResponse`, `categories[].id`, `mcpInstructions`, and the `pluginId` and `path` fields of `agents` and `skills.skillFrontmatter` entries require Agent SDK v0.3.304 or later. + ```typescript theme={null} type SDKControlGetContextUsageResponse = { categories: { + id?: + | "system_prompt" + | "system_tools" + | "mcp_tools" + | "mcp_instructions" + | "mcp_tools_deferred" + | "system_tools_deferred" + | "custom_agents" + | "memory_files" + | "skills" + | "messages" + | "autocompact_buffer" + | "compact_buffer" + | "free_space"; name: string; tokens: number; color: string; @@ -905,6 +921,10 @@ type SDKControlGetContextUsageResponse = { tokens: number; isLoaded?: boolean; }[]; + mcpInstructions?: { + serverName: string; + tokens: number; + }[]; deferredBuiltinTools?: { name: string; tokens: number; @@ -921,6 +941,8 @@ type SDKControlGetContextUsageResponse = { agents: { agentType: string; source: string; + pluginId?: string; + path?: string; tokens: number; }[]; slashCommands?: { @@ -935,6 +957,9 @@ type SDKControlGetContextUsageResponse = { skillFrontmatter: { name: string; source: string; + pluginName?: string; + pluginId?: string; + path?: string; tokens: number; }[]; }; @@ -2991,6 +3016,8 @@ type SyncHookJSONOutput = { Documentation of input schemas for built-in Claude Code tools. These types are exported from `@anthropic-ai/claude-agent-sdk/sdk-tools` and can be used for type-safe tool interactions. +The `StructuredOutput` tool has no type here: Claude Code builds its input schema from the schema you pass to `outputFormat`, so there is nothing fixed to export. See [Recognize the StructuredOutput tool call](/docs/en/agent-sdk/structured-outputs#recognize-the-structuredoutput-tool-call) for what that call looks like in your message stream. + ### `ToolInputSchemas` Union of tool input types exported from `@anthropic-ai/claude-agent-sdk/sdk-tools`; members include: diff --git a/content/en/docs/claude-code/agent-view.md b/content/en/docs/claude-code/agent-view.md index 2fa4462bbe..d9af38f3b0 100644 --- a/content/en/docs/claude-code/agent-view.md +++ b/content/en/docs/claude-code/agent-view.md @@ -459,7 +459,7 @@ Sessions started with launch flags the copy wouldn't inherit, such as a replaced #### What carries over when you background -Backgrounding starts a fresh process that resumes from the saved conversation, and in-flight background work moves to it: running background shell commands, backgrounded subagents, dynamic workflows, scheduled tasks you created with [`/loop`](/docs/en/scheduled-tasks), and Claude's [automatic replies to artifact comments](/docs/en/artifacts#let-claude-reply-to-comments-on-its-own) all carry over and keep running there. A subagent moves together with everything it started, so it carries over only when all of that work can move too. To stop in-flight background work instead of carrying it over, set the [`CLAUDE_DISABLE_ADOPT=1`](/docs/en/env-vars#variables) environment variable; Claude Code then asks you to confirm before backgrounding. +Backgrounding starts a fresh process that resumes from the saved conversation, and in-flight background work moves to it. Running background shell commands, backgrounded subagents, dynamic workflows, scheduled tasks you created with [`/loop`](/docs/en/scheduled-tasks), and Claude's [automatic replies to artifact comments](/docs/en/artifacts#let-claude-reply-to-comments-on-its-own) all carry over and keep running there. A subagent moves together with everything it started, so it carries over only when all of that work can move too. When a [dynamic workflow](/docs/en/workflows) still has subagents running, Claude Code asks before backgrounding with the `Background this session?` dialog, which says how many subagents would restart. Choose `Stay` to let them finish first. If you confirm, Claude Code replays the run in the background session: subagents that were still running start over from the beginning, so the tokens they used so far are spent again. See [Resume after a pause](/docs/en/workflows#resume-after-a-pause) for which completed subagents return their saved results and which run again. @@ -681,18 +681,15 @@ Claude Code applies a forwarded gateway to that session's running process only a #### Permission mode -The [permission mode](/docs/en/permissions) depends on how you started the session: - -* **Backgrounded with `/bg` or `←`**: Claude Code keeps the permission mode the session was in, so one you switched to `acceptEdits` or `auto` stays there after detaching -* **Dispatched from an agent view you opened with `←`**: Claude Code takes the new session's permission mode from the target directory's configuration first, then from the session you came from +* **Backgrounded with `/bg` or `←`**: Claude Code keeps the [permission mode](/docs/en/permissions) the session was in, so one you switched to `acceptEdits` or `auto` stays there after detaching * **Dispatched from `claude agents` started in a shell, or with `claude --bg`**: the new session starts the way a new `claude` session in that directory would, unless you dispatched it from an agent view you opened with [dispatch defaults](#dispatch-defaults). [Which permission mode a session starts in](/docs/en/permission-modes#which-mode-a-session-starts-in) lists the order For a session you dispatch from an agent view opened with `←`, Claude Code takes the permission mode from the first of these that applies: -1. The target directory's [`permissions.defaultMode`](/docs/en/settings-reference#permissions-defaultmode). Two source rules apply: - * `auto` and `bypassPermissions` [take effect only from managed settings, a `--settings` file, or `~/.claude/settings.json`](/docs/en/settings-reference#permissions-defaultmode). - * Claude Code refuses a `defaultMode` from the project's `.claude/settings.json` or `.claude/settings.local.json` that selects a more permissive mode than the session you came from was in. -2. The permission mode of the session you came from. If that session was in `bypassPermissions` mode, the new session can start in Manual mode instead, with the notice `Bypass permissions was requested at launch and ignored`. That happens when your acceptance of the bypass disclaimer is only in `.claude/settings.local.json` or a `--settings` file. Continue in Manual mode, or [add that acceptance to `~/.claude/settings.json`](/docs/en/permission-modes#bypass-permissions-acceptance). +1. The target directory's [`permissions.defaultMode`](/docs/en/settings-reference#permissions-defaultmode). `auto` and `bypassPermissions` [take effect only from managed settings, a `--settings` file, or `~/.claude/settings.json`](/docs/en/settings-reference#permissions-defaultmode). Claude Code refuses a `defaultMode` from the project's `.claude/settings.json` or `.claude/settings.local.json` that selects a more permissive mode than the session you came from was in. +2. The permission mode of the session you came from. + + If that session was in `bypassPermissions` mode, the new session can start in Manual mode instead, with the notice `Bypass permissions was requested at launch and ignored`. That happens when your acceptance of the bypass disclaimer is only in `.claude/settings.local.json` or a `--settings` file. Continue in Manual mode, or [add that acceptance to `~/.claude/settings.json`](/docs/en/permission-modes#bypass-permissions-ignored-in-a-background-session). When Claude Code refuses a source's mode as too permissive, the next source in the list decides. For example, if you dispatch from a plan-mode session into a directory whose checked-in settings ask for `acceptEdits`, the new session starts in plan mode. If you move that `defaultMode` to `~/.claude/settings.json`, it applies regardless of the permission mode of the session you came from. @@ -1096,7 +1093,7 @@ Agent view has evolved quickly during research preview. If you are on an older C | v2.1.199 | A background session whose process exits before it finishes starting on a low-memory host shows `possibly low memory — free some up and retry` in its row status instead of only the bare exit reason. Backgrounding a session with `←` or `/background` carries its `/color` over to the new row. | | v2.1.198 | Agent view sends a notification through `preferredNotifChannel` when a background session needs input, finishes, or fails, and fires the `Notification` hook with the `agent_needs_input` or `agent_completed` type. `←` and `/exit` inside `claude attach ` return to agent view instead of exiting to the shell; `Ctrl+Z` returns to the shell. A background session that isolated its work in a worktree commits, pushes its own isolated branch, never `main` or `master`, and opens a draft pull request when it finishes instead of asking first. `/login` runs in agent view and opens the sign-in dialog. The `Background work is running` exit dialog offers `Move to background and exit`. The exit handoff also covers background subagents, which resume from their transcript on the next wake instead of being reported as failed. `claude --bg` combined with `-p` or `--print` is rejected with an error. The background session host requests macOS Local Network permission on first LAN access instead of failing with `connect: no route to host`. | | v2.1.196 | A single `←` press backgrounds a foreground session; earlier versions required two presses, with a footer hint and a confirm. `--dangerously-skip-permissions` passed to `claude agents` shows the bypass disclaimer instead of being silently dropped. Interactive sessions you never named carry a default name such as `my-app-3f` in session listings and `claude agents --json`. Background shell commands and dynamic workflows survive the session's process being stopped, restarted, or updated, including on Windows; set `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` to turn the handoff off. A transcript misread as empty on restart is renamed with an `.orphaned-` suffix instead of deleted. | -| v2.1.195 | In-flight background work carries over when you background a session on Windows too; set `CLAUDE_DISABLE_ADOPT=1` to stop it instead. The `Completed` group fills the remaining vertical space and the header compacts on short terminals. An older Claude Code version no longer drops newer sessions' `state.json` fields or hides those sessions from `claude agents`. Attaching to a stopped session switches immediately instead of showing a blank screen for up to five seconds. A supervisor that can't accept connections exits and releases its lock on its own. | +| v2.1.195 | In-flight background work carries over when you background a session on Windows too. The `Completed` group fills the remaining vertical space and the header compacts on short terminals. An older Claude Code version no longer drops newer sessions' `state.json` fields or hides those sessions from `claude agents`. Attaching to a stopped session switches immediately instead of showing a blank screen for up to five seconds. A supervisor that can't accept connections exits and releases its lock on its own. | | v2.1.191 | `claude --bg` with an `--agent` name that doesn't match any of your subagents fails the launch: the session exits immediately with an `--agent '' not found` error instead of running with the default agent. | | v2.1.174 | Background sessions no longer inherit gateway endpoint variables such as `ANTHROPIC_BASE_URL` from the supervisor's launch shell; the supervisor supplies a fresh credential snapshot to pre-warmed workers, fixing spurious `Could not resolve authentication method` errors. | | v2.1.172 | `/model` in the dispatch input sets a session-scoped dispatch model override. | diff --git a/content/en/docs/claude-code/artifacts.md b/content/en/docs/claude-code/artifacts.md index 129fe91872..7ddbb64fb7 100644 --- a/content/en/docs/claude-code/artifacts.md +++ b/content/en/docs/claude-code/artifacts.md @@ -98,8 +98,9 @@ Select an artifact, then press one of these keys: * **`Enter`**: opens it in your browser when it's already attached to the current session, and attaches it when it isn't. Before v2.1.216, `Enter` opened it in your browser * **`o`**: opens it in your browser * **`c`**: copies its link +* **`d`**: outside a [cloud session](/docs/en/claude-code-on-the-web), permanently deletes an artifact you own after you confirm. Its link stops working for everyone, including you -Claude Code reads the list from your claude.ai account, so it works in a new session and after `/clear`, when the link has scrolled out of the terminal. +Claude Code reads the list from your claude.ai account, so `/artifacts` works in a new session and after `/clear`, when an artifact's link has scrolled out of the terminal. ## Share an artifact @@ -424,11 +425,11 @@ The [Compliance API](https://docs.claude.com/en/api/compliance) provides endpoin | Method | Endpoint | | :- | :- | -| `GET` | `/v1/compliance/code/artifacts` | -| `GET` | `/v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}` | -| `DELETE` | `/v1/compliance/code/artifacts/{artifact_id}` | +| `GET` | `/v1/compliance/apps/code/artifacts` | +| `GET` | `/v1/compliance/apps/code/artifacts/{artifact_id}/versions/{version_id}` | +| `DELETE` | `/v1/compliance/apps/code/artifacts/{artifact_id}` | -For the request and response schemas, see the [Compliance API reference](https://docs.claude.com/en/api/compliance/code/artifacts). +For the request and response schemas, see the [Compliance API reference](https://platform.claude.com/docs/en/api/compliance/apps/code/artifacts). ## Related resources diff --git a/content/en/docs/claude-code/changelog.md b/content/en/docs/claude-code/changelog.md index b029ba5b11..abfc7f3484 100644 --- a/content/en/docs/claude-code/changelog.md +++ b/content/en/docs/claude-code/changelog.md @@ -10,6 +10,63 @@ This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anth Run `claude --version` to check your installed version. +**2.1.306** + +* Fixed `claude -p` inside cloud sessions reporting "Not logged in" when started without the session's environment variables +* Fixed an API error being replaced by "prompt is too long", and an unneeded compaction, in sessions with many MCP tools + +**2.1.305** + +**Added** + +* Added `sandbox.allowNestedUserNamespaces` so sandboxed commands on Linux can create user namespaces (Chromium, rootless podman); this lets them get around the sandbox's file protections +* Added `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` so unattended retry mode (`CLAUDE_CODE_RETRY_WATCHDOG`) notices a usage limit that was lifted before its reset +* \[VSCode] Added a "Running start-up hooks" spinner status, with a screen reader announcement, while SessionStart or Setup hooks run +* \[Claude Tag] Added public Slack channels Claude hasn't joined to the Claude Tag admin Add place search, so admins can set one up from there + +**Changed** + +* Changed `allowedMcpServers` to stop filtering `managed-mcp.json` stdio servers that use `${VAR}` only in `env`: one your allowlist left out now loads on upgrade; use `deniedMcpServers` to keep it off +* Changed plugins that Claude Desktop mounts by path to no longer keep their `allowed-tools` when your organization's managed settings set `allowManagedPermissionRulesOnly` +* Changed the `/artifacts` delete confirmation to take 1 or Enter to keep, 2 to delete, and Esc to cancel; `y` and `n` no longer answer it +* Changed a mod's docked pane to stay within 45% of the terminal's width, including a width kept from a wider terminal +* \[VSCode] Changed the message shown when a session does not start in time and no hook is running: it now leads with the output logs and lists causes instead of pointing to sign-in and network first +* \[Code Review] Changed Code Review re-reviews so they no longer open with LGTM while earlier blocking findings are still open + +**6 improvements** + +* Improved `/usage`: each warning is now a one-line fix that names its source, and `f` applies the fixes; the same fixes appear in VS Code and `/doctor` +* Improved MCP consent dialogs so an Enter meant for the prompt is less likely to be taken as Accept +* Improved a mod's `Image` to draw its picture in iTerm2 3.5 and later with fullscreen rendering, where it showed only its `alt` text +* Remote Control: Improved the spawn-mode messages: pressing `w` now says the new mode is saved for the folder, and a later `claude remote-control` start that uses the saved mode says where it came from +* \[Cloud sessions] Improved deleting a self-hosted environment so the dialog and error messages say what blocks the delete and what it will affect +* \[Claude Tag] Improved Claude Tag admin pages in large organizations so plugin, skill and bundle edits work while the channel list is still loading + +**22 bug fixes** + +* Fixed every request failing on Vertex, Bedrock and other providers when the endpoint or a gateway rejects tool search, and behind gateways with ToolSearch disallowed or left out of `--tools` (a 2.1.304 regression): Claude Code now retries without it +* Fixed `/effort` and `/autocompact` settings not applying when the model name differed from a `modelOverrides` value by letter case or a `[1m]` tag +* Fixed new worktrees in a bare repository sometimes starting from local HEAD instead of the default branch, and unchanged subagent worktrees sometimes not being cleaned up +* Fixed Bash commands on a full disk failing with a raw `ENOSPC` file path: the error now says the disk is full and that nothing ran +* Fixed an MCP server passed by a cloud session or by the SDK's `setMcpServers` being replaced later in the session by a same-named server from your own settings +* Fixed Claude naming the wrong model for a subagent's work after the subagent switched to a fallback model +* Fixed cloud sessions and teammates not telling Claude when a compaction had to leave the oldest messages out of its summary to fit +* Fixed more cases of scheduled Cowork cloud sessions waiting five minutes for each subagent whose WebFetch needed a URL approval that nobody was there to give +* Fixed Workflow resume re-running already-completed `pipeline()` and `parallel()` agents instead of serving them from the run's journal +* Fixed Remote Control leaving empty "(session)" entries in `/resume` after switching conversations with `/resume` +* Fixed `/usage` rows being cut off in narrow terminals +* Fixed startup warnings printing as raw text above the logo: they now go to the debug log, and permission rules that restrict nothing show as warning rows under the banner +* Fixed screen reader mode: search boxes now say "Search:" instead of a symbol VoiceOver read as "telephone recorder", and highlighted prompt text, such as Ctrl+R search matches and "ultrathink", no longer has spaces inside words +* Self-hosted runner: Fixed a start script that shares only its stdout with the runner or orchestrator failing with `Resource temporarily unavailable` when `TERM` is set (a 2.1.300 regression) +* Self-hosted runner: Fixed repository access failing since 2.1.296 when a git credential helper or askpass program reads its settings through `GIT_CONFIG` +* Self-hosted runner: Fixed the orchestrator reporting a spawn-runner hook as timed out when a runner it started in the background kept its output open +* \[VSCode] Fixed the spinner cutting off "Compacting..." when your `spinnerVerbs` setting replaces the built-in verbs with short ones +* \[Cloud sessions] Fixed the Cloud environments admin page wrongly refusing to save an existing environment with an "installs packages" error +* \[Claude Tag] Fixed Claude Tag access bundles so a repository that moved to another GitHub account can be added again +* \[Claude Tag] Fixed a routine set up in a Slack DM thread no longer posting after another routine in that thread restarted the conversation; both now keep posting there +* \[Claude Tag] Fixed routines set up in a Slack thread reporting success without posting after the conversation ended; those runs are now skipped and the creator is told +* \[Code Review] Fixed Code Review sometimes not reviewing the newest commit when several pushes landed on a pull request during a review + **2.1.304** **Added** diff --git a/content/en/docs/claude-code/claude-apps-gateway-config.md b/content/en/docs/claude-code/claude-apps-gateway-config.md index ae9ddbb200..a32cd98953 100644 --- a/content/en/docs/claude-code/claude-apps-gateway-config.md +++ b/content/en/docs/claude-code/claude-apps-gateway-config.md @@ -827,7 +827,7 @@ managed: A `match: {}` catch-all, conventionally listed last, is treated as a base layer. Every other policy inherits any key it doesn't set from the catch-all, so per-role entries only need to list what differs from the org default. The merge rules depend on the key type: * **Allow-lists**: `availableModels` and `permissions.allow`. A specific policy's list fully replaces the base's. -* **Deny-lists and hook arrays**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, and every `hooks` event-type array. These take the union of base and policy, so an org-wide deny or audit hook can't be accidentally dropped by a per-role override. +* **Deny-lists and hook arrays**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces`, `deniedModels`, and every `hooks` event-type array. These take the union of base and policy, so an org-wide deny or audit hook can't be accidentally dropped by a per-role override. * **Record-typed keys**: `env`, `modelOverrides`, and `skillOverrides`. These shallow-merge, so a per-role `env` block overrides keys it sets and inherits the rest from the base. `availableModels` is also enforced server-side at `/v1/messages`, so a denied model returns `400` regardless of what the client sends. An empty list denies every model. The check also covers the model a session starts on before the developer picks one, so [start sessions on a model the policy allows](#start-sessions-on-a-model-the-policy-allows). @@ -973,6 +973,7 @@ managed: | Key | Enforced by | Effect | | - | - | - | | `availableModels` | Gateway + CLI | Model allowlist. Also checked at `/v1/messages`, so a patched client can't bypass it. | +| [`deniedModels`](/docs/en/settings-reference#deniedmodels), [`availableModelsMatch`](/docs/en/settings-reference#availablemodelsmatch) | Gateway + CLI | [Block specific models or versions](/docs/en/model-config#block-specific-models-or-versions) that `availableModels` would otherwise permit. A blocked model is rejected with a `400` at `/v1/messages` and is left out of `/v1/models`. The gateway's own check requires Claude Code v2.1.299 or later on the gateway server. The CLI's check requires v2.1.283 or later on clients, and earlier clients ignore both keys. | | `permissions.allow` / `.deny` | CLI | Tool and command rules. See [Permissions](/docs/en/permissions). | | `permissions.disableBypassPermissionsMode` | CLI | Set to `disable` to block [`bypassPermissions`](/docs/en/permission-modes#skip-all-checks-with-bypasspermissions-mode), the mode that skips permission prompts, and the `--dangerously-skip-permissions` flag | | `allowManagedPermissionRulesOnly` | CLI | When `true`, managed settings become the only settings source of permission rules. The [`allowManagedPermissionRulesOnly`](/docs/en/settings-reference#allowmanagedpermissionrulesonly) entry lists every source Claude Code then ignores. | @@ -1045,7 +1046,7 @@ If you don't deploy Claude Desktop, leave `desktop` out of your policies entirel The gateway derives much of the bootstrap response from the matched policy's `cli` or `code` block and from top-level gateway config: -* The model list, from `availableModels`. [Extended context in Claude Desktop](#extended-context-in-claude-desktop) covers each model's 1M context option +* The model list, from `availableModels`. The list leaves out models that the policy blocks with [`deniedModels` or `availableModelsMatch: exact`](#what-goes-in-cli). This filter requires Claude Code v2.1.299 or later on the gateway server. [Extended context in Claude Desktop](#extended-context-in-claude-desktop) covers each model's 1M context option * Disabled tools, from bare tool-name `permissions.deny` entries. If you set `disabledBuiltinTools` in the policy's `desktop` block, the gateway serves the union of your value and the derived list, so you can disable more tools this way but can't re-enable one you disabled through `permissions.deny` * The egress allowlist, from `sandbox.network.allowedDomains`. If you set `coworkEgressAllowedHosts` in the policy's `desktop` block, the gateway uses that value instead of the derived list. If the allowlist the gateway serves includes `*` and the gateway doesn't also serve Claude Desktop's [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy), Claude Desktop doesn't turn on the [Bash sandbox](/docs/en/sandboxing) in the Code tab * An OTLP endpoint that points at the gateway itself, and the signed-in user's identity attributes. The gateway relays the exports it receives at that endpoint to your `forward_to` destinations. It includes the endpoint and the attributes when you set both [`telemetry.forward_to`](#telemetry) and `listen.public_url`. diff --git a/content/en/docs/claude-code/code-review-customize.md b/content/en/docs/claude-code/code-review-customize.md index 6a12a2c5e3..26d80a5e8b 100644 --- a/content/en/docs/claude-code/code-review-customize.md +++ b/content/en/docs/claude-code/code-review-customize.md @@ -92,6 +92,44 @@ Some of these instructions [need the root file on a protected default branch](#w Keep `REVIEW.md` to instructions that change review behavior, and leave general project context in `CLAUDE.md`. +### Include other files in REVIEW\.md + +You can split review instructions across several files and pull them into your root `REVIEW.md`. Use this when `REVIEW.md` grows long or when you already keep review rules in another file. + +To include a file, add a line to the root `REVIEW.md` with only `@` and the file name on it. Code Review puts the file's contents in place of that line, so they apply as part of `REVIEW.md`. In this example, the root file gives one instruction of its own and then includes two rule files: + +```markdown theme={null} +# Review instructions + +Report at most five Nits per review. + +@review-security.md +@review-api.md +``` + +Save the included files at the repository root, beside `REVIEW.md`: + +```text theme={null} +your-repo/ +├── REVIEW.md +├── review-security.md +└── review-api.md +``` + +Code Review includes the files when it reads `REVIEW.md` from a protected branch, so check [which branch a review reads for your repository](#what-a-review-reads-for-each-branch-setup): + +* **Protected branch**: Code Review puts the included file in place of its `@` line +* **Unprotected default branch**: the `@` line stays in `REVIEW.md` as plain text. If the pull request changes the file the line names, the line is left out. + +When a review doesn't apply an included file, check each of these: + +* **Location**: move the file to the repository root. A path into a subdirectory such as `@docs/review-rules.md` isn't included. +* **Name**: match the file name exactly, including case, and use a name without spaces. A line whose name matches no file beside `REVIEW.md` stays in `REVIEW.md` as plain text, and the check run doesn't report it as a skipped include. +* **One level**: list every file in the root `REVIEW.md`. An `@` line in an included file or in a subdirectory `REVIEW.md` stays as plain text, and a Markdown link to another file isn't an include. +* **Limits**: include at most eight different files, and keep `REVIEW.md` and the files it includes under 150,000 bytes combined. A file that would reach the byte limit is skipped whole, not cut short. The check run reports how many include lines it skipped for either limit. +* **Links**: keep Markdown links at 64 or fewer across `REVIEW.md` and the files it includes. Links to `http`, `https`, or `mailto` addresses and to `#` anchors don't count. Past that limit, the review skips your whole root `REVIEW.md`, not only the included files. The check run then [says the instructions weren't applied](/docs/en/code-review-troubleshooting#the-check-run-mentions-review-md). +* **Merged copy**: merge the included file into the [branch `REVIEW.md` is read from](#which-branch-review-md-is-read-from). The review reads both from the same commit, never from the pull request's own changes. + ### Which branch REVIEW\.md is read from Code Review reads `REVIEW.md` from the pull request's base branch or from the default branch, never from the pull request's own changes. To change review behavior, merge the `REVIEW.md` change first. @@ -117,8 +155,8 @@ Find your repository's situation in the first column of the table below. | Branch protection | Copy read | Files read | | :- | :- | :- | -| The default branch is protected, and the pull request targets it or targets a branch no ruleset protects | Default branch | Root and subdirectory files | -| The pull request targets another branch that a ruleset protects | That base branch | Root and subdirectory files | +| The default branch is protected, and the pull request targets it or targets a branch no ruleset protects | Default branch | Root file, the files it includes, and subdirectory files | +| The pull request targets another branch that a ruleset protects | That base branch | Root file, the files it includes, and subdirectory files | | The default branch isn't protected, and the base branch has no protection rule of either kind | Default branch | Root file | | Code Review can't confirm the protection settings. This includes an unprotected default branch with a base branch that has only a classic rule | None | None | diff --git a/content/en/docs/claude-code/code-review-pull-requests.md b/content/en/docs/claude-code/code-review-pull-requests.md index 551b7acd4d..fee0fbba09 100644 --- a/content/en/docs/claude-code/code-review-pull-requests.md +++ b/content/en/docs/claude-code/code-review-pull-requests.md @@ -110,9 +110,10 @@ Post one of these commands as a comment on the pull request: | `@claude review` | Starts a single review without subscribing the PR to future pushes | You want one review now, such as on a pull request in a repository set to **Manual**, or another review right away in the other modes | | `@claude review always` | Starts a review and subscribes the PR to push-triggered reviews going forward | You want every subsequent push to start a fresh review, such as on a high-priority PR in a repository set to **Manual** | | `@claude review once` | Same as `@claude review`: starts a single review without subscribing | The same cases as `@claude review` | -| `@claude review stop` | Ends the PR's subscription to push-triggered reviews, without starting a review or canceling one that's already running. Claude replies with a comment instead of a check run. | You subscribed a PR with `@claude review always` in a repository set to **Manual** or **Once after PR creation**, and no longer want each push to start a review | +| `@claude review stop` | Ends the PR's subscription to push-triggered reviews, without starting a review or canceling one that's already queued or running. Claude replies with a comment instead of a check run. | You subscribed a PR with `@claude review always` in a repository set to **Manual** or **Once after PR creation**, and no longer want each push to start a review | +| `@claude review off` or `@claude review pause` | Same as `@claude review stop` | The same cases as `@claude review stop` | -In a repository set to **After every push**, you can't stop reviews with a comment, because pushes there start reviews with or without a subscription. To pause reviews on one pull request there, convert it to a draft. +In a repository set to **After every push**, you can't stop reviews with a comment, because pushes there start reviews with or without a subscription. To stop pushes from starting reviews on one pull request there, convert it to a [draft](#review-drafts-and-pull-requests-from-forks). When you mark it ready for review again, a review starts. For any comment command to take effect, all of these conditions have to hold: diff --git a/content/en/docs/claude-code/code-review-troubleshooting.md b/content/en/docs/claude-code/code-review-troubleshooting.md index 72429af25a..a120498738 100644 --- a/content/en/docs/claude-code/code-review-troubleshooting.md +++ b/content/en/docs/claude-code/code-review-troubleshooting.md @@ -66,10 +66,14 @@ If the check run title says issues were found but you don't see inline review co ## The check run mentions REVIEW\.md -Two of the messages a check run can carry about `REVIEW.md` concern branch protection: +These are three of the messages a check run can carry about `REVIEW.md`: * **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: the review read the root file only. See [Which branch REVIEW.md is read from](/docs/en/code-review-customize#which-branch-review-md-is-read-from) for what protecting the branch changes. * **"were not applied to this review: branch protection could not be confirmed"**: the review read no `REVIEW.md`. +* **"they link to a file this pull request modifies, or carry more links than the review checks"**: the review skipped the root `REVIEW.md`, or the number of subdirectory `REVIEW.md` files the message gives. Check the skipped file for each cause. For the root `REVIEW.md`, check the [files it includes](/docs/en/code-review-customize#include-other-files-in-review-md) too: + * **Too many links**: it carries more than 64 Markdown links. Cut links to [64 or fewer](/docs/en/code-review-customize#include-other-files-in-review-md). + * **A link the review can't parse**: it has a malformed Markdown link. Fix or remove the link. + * **A link to a changed file**: it links to a file or folder this pull request changes, and the review couldn't leave out only the lines with that link. Write the rule in `REVIEW.md` itself. ## Setup problems diff --git a/content/en/docs/claude-code/commands.md b/content/en/docs/claude-code/commands.md index 616d676d57..41090876cc 100644 --- a/content/en/docs/claude-code/commands.md +++ b/content/en/docs/claude-code/commands.md @@ -80,8 +80,8 @@ In the table below, `` indicates a required argument and `[arg]` indicates | `/deep-research ` | **[Workflow](/docs/en/workflows#bundled-workflows).** Fan out web searches on a question, fetch and cross-check sources, and synthesize a cited report | | `/design [brief]` | **[Skill](/docs/en/skills#bundled-skills).** Draft UI mockups, screen flows, landing pages, or posters as artboards on one canvas, published as a Claude Design [artifact](/docs/en/artifacts#draft-a-design-canvas), for example `/design a settings screen for a mobile banking app`. You edit the artboards in a desktop browser, and your edits save automatically. You can export each artboard as PNG or PDF. Requires Claude Code v2.1.265 or later, a session where [artifacts are available](/docs/en/artifacts#availability), and an account where the [Design template is available](/docs/en/artifacts#start-from-a-slides-design-or-docs-template); if your organization has turned that template off, `/design` doesn't draft designs. Available on the Anthropic API. On Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and Claude Platform on AWS, artifacts aren't available, so the command is unavailable there | | `/design consent`, `/design revoke` | Grant Claude access to [Claude Design](https://claude.ai/design), or withdraw it. When a reply from Claude asks you to run `/design consent`, type it at the Claude Code prompt yourself | -| `/design-login` | Authorize design-system access for `/design-sync` with your claude.ai account. Sign in with `/design-login` whenever `/design-sync` or `/design consent` tells you to | -| `/design-sync [hint]` | **[Skill](/docs/en/skills#bundled-skills).** Convert your repo's React design system and upload it to [Claude Design](https://claude.ai/design), so designs it produces use your real components. Optionally name the design system, for example `/design-sync Acme DS`. A first-time sync verifies every component and can take a few hours on a large repo. Available on the Anthropic API. It needs claude.ai, which the CLI doesn't contact on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or Claude Platform on AWS, or through a [Claude apps gateway](/docs/en/claude-apps-gateway#availability-and-limitations), so the command is unavailable there | +| `/design-login` | Authorize design-system access for `/design-sync` with your claude.ai account. Sign in with `/design-login` whenever `/design-sync` or `/design consent` tells you to. This sign-in is for the standalone Claude Design site at claude.ai/design, which closes by December 14, 2026; see [Migrate from standalone Claude Design to Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) | +| `/design-sync [hint]` | **[Skill](/docs/en/skills#bundled-skills).** Convert your repo's React design system and upload it to [Claude Design](https://claude.ai/design), so designs it produces use your real components. Optionally name the design system, for example `/design-sync Acme DS`. A first-time sync verifies every component and can take a few hours on a large repo. Available on the Anthropic API. It needs claude.ai, which the CLI doesn't contact on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or Claude Platform on AWS, or through a [Claude apps gateway](/docs/en/claude-apps-gateway#availability-and-limitations). The command is unavailable there. This command uploads to the standalone claude.ai/design site, which closes by December 14, 2026; see [Migrate from standalone Claude Design to Claude](https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude) | | `/desktop` | Continue the current session in the Claude Code Desktop app. Requires macOS or x64 Windows and a Claude subscription. Alias: `/app` | | `/diff` | Review the changes in your working tree, including the edits Claude has made so far. See [Review changes with /diff](/docs/en/interactive-mode#review-changes-with-%2Fdiff) | | `/doctor [prompt-audit [path]]` | **[Skill](/docs/en/skills#bundled-skills).** Run a setup checkup that diagnoses installation, settings, extension, and `CLAUDE.md` problems and proposes fixes that Claude applies after you confirm. For what the checkup covers, or to audit your instructions with `prompt-audit` instead, see [Check your setup with `/doctor`](/docs/en/skills#check-your-setup-with-/doctor). The `prompt-audit` subcommand requires Claude Code v2.1.283 or later. Alias: `/checkup` | diff --git a/content/en/docs/claude-code/costs.md b/content/en/docs/claude-code/costs.md index e1fee4f32a..54b65fee45 100644 --- a/content/en/docs/claude-code/costs.md +++ b/content/en/docs/claude-code/costs.md @@ -55,17 +55,36 @@ Status line scripts can read the same numbers from the [`prompt_cache` object](/ #### Plan usage breakdown -On a Pro, Max, Team, or Enterprise plan, `/usage` also shows a breakdown of what counts against your plan limits: +On a Pro, Max, Team, or Enterprise plan, `/usage` also shows a breakdown of what counts against your plan limits, with recommendations: * **Attribution**: recent usage attributed to skills, subagents, plugins, and individual MCP servers, each shown as a percentage of the total. An MCP server's share counts only the requests that consumed one of its tool results. Before v2.1.222, after one call to an MCP server, Claude Code attributed every subsequent request to that server, overstating its share. -* **Behavior flags**: behaviors such as long context or cache misses, flagged when one accounts for 10% or more of recent usage. +* **Recommendations**: changes that lower your usage, one per row. Each row starts with the share of recent usage it addresses, at least 10%, as in `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request`. To have Claude Code apply the ones it can, see [Apply recommendations with the fix shortcut](#apply-recommendations-with-the-fix-shortcut). * **Loops**: a row for each of the heaviest [`/loop` or other session-scoped scheduled tasks](/docs/en/scheduled-tasks) that ran recently, ordered by total tokens, with a count of the rest. Requires Claude Code v2.1.242 or later. * **What each row reports**: how often the task fires, how many times it ran, its total and per-run tokens, and when it last ran * **Stopped and re-created loops**: Claude Code keys a row by the task's prompt, so a loop you stop and re-create stays one row Press `d` or `w` to switch between the last 24 hours and the last 7 days. The figures are approximate and computed from local session history on this machine, so usage from other devices or claude.ai is not included. -In the [VS Code extension](/docs/en/vs-code#check-account-and-usage), the attribution shares and behavior flags appear in the Account & usage dialog with a Day and Week toggle, without the Loops rows. +In the [VS Code extension](/docs/en/vs-code#check-account-and-usage), the attribution shares and recommendations appear in the Account & usage dialog with a Day and Week toggle, without the Loops rows. + +#### Apply recommendations with the fix shortcut + +When the `/usage` footer shows a hint such as `f to fix 2 of 3`, press `f` to have Claude Code act on the recommendations it can. The `f` shortcut requires Claude Code v2.1.305 or later. + +1. After any turn in progress ends, Claude Code runs each [`/effort`](/docs/en/model-config#adjust-effort-level) command shown in a row without `run`. +2. Claude then gets one prompt with a step for each of the other rows it can act on. The prompt asks Claude to show you each change before making it. + +To see what pressing `f` does with each of your rows, find the row's shape in the first column: + +| Row shape | Example row | When you press `f` | +| :- | :- | :- | +| Ends in an `/effort` command with no `run` before it | `40% Switch from max to high effort · /effort high` | Claude Code runs the command | +| Ends in `run` and a command | `30% Compact before you step away · run /compact` | Nothing happens for this row. Run the command yourself at the Claude Code prompt | +| Ends in anything else | `25% Trim ~/code/api/CLAUDE.md · 49k tokens per request` | Claude gets a step in the prompt for some of these rows, and nothing happens for the rest. If Claude shows you no change for a row, follow that recommendation yourself | + +In `f to fix 2 of 3`, the first number counts the rows Claude Code acts on when you press `f`, and the second counts the rows shown. A hint with no `of` in it, such as `f to fix both`, means Claude Code acts on every row shown. + +While [Remote Control](/docs/en/remote-control) is connected, the footer shows no `f` hint. If pressing `f` closes `/usage` with `Nothing was sent. Turn off Remote Control to use fixes.`, Remote Control connected while `/usage` was open. To use `f` again, [disconnect Remote Control](/docs/en/remote-control#check-connection-status), then run `/usage` at the Claude Code prompt and press `f` again. #### Check your usage-credits spend @@ -375,7 +394,7 @@ A session that has been open for hours can use far more of your plan limits than * **Agent teammates**: each active [teammate](#agent-team-token-costs) keeps consuming tokens until it exits * **Compaction**: `/compact` reads the conversation it summarizes, so [compacting a large context](/docs/en/prompt-caching#compacting-the-conversation) is itself a large request. When you want a fresh start instead of continuity, `/clear` costs nothing -On a Pro, Max, Team, or Enterprise plan, the `/usage` breakdown flags behaviors that account for 10% or more of your recent usage, such as long context or cache misses, each with a tip to reduce it. +On a Pro, Max, Team, or Enterprise plan, the [`/usage` breakdown](#plan-usage-breakdown) recommends a change for behaviors behind 10% or more of your recent usage, such as long context or cache misses. ## Understanding changes in Claude Code behavior diff --git a/content/en/docs/claude-code/cross-session-messaging.md b/content/en/docs/claude-code/cross-session-messaging.md index fcb1c811fc..3b3fe226d1 100644 --- a/content/en/docs/claude-code/cross-session-messaging.md +++ b/content/en/docs/claude-code/cross-session-messaging.md @@ -228,7 +228,7 @@ A `-p` session can't show the approval dialog. When the [inbound default](#contr * **Before the deadline**: if a mode or settings change allows the message, Claude Code delivers it. * **Past the deadline**: Claude Code drops the message and reports it as expired to a sender it can reach. -Set `dialogExpiry` to `"never"` to keep default-held messages until the session ends. A message held by an explicit `hold` setting doesn't expire; Claude Code delivers it only when an `accept` later applies. +Set `dialogExpiry` to `"never"` to keep default-held messages until the session ends. A message held by an explicit `hold` setting doesn't expire; Claude Code delivers it when an `accept` later applies. To let a `-p` worker take messages unattended, start it with `crossSessionInbound` set to `accept` in its `--settings` value. An `accept` in your user settings also works but applies to every session you run. diff --git a/content/en/docs/claude-code/desktop-changelog.md b/content/en/docs/claude-code/desktop-changelog.md index 98b321a266..6dd0a146d7 100644 --- a/content/en/docs/claude-code/desktop-changelog.md +++ b/content/en/docs/claude-code/desktop-changelog.md @@ -1659,6 +1659,7 @@ downloads.claude.ai *.livepreview.claude.ai claude.com platform.claude.com +sso.claude.com *.livepreview.claude.app *.claudeusercontent.com *.claudemcpcontent.com diff --git a/content/en/docs/claude-code/desktop-linux.md b/content/en/docs/claude-code/desktop-linux.md index 1b33e878f7..8f1bd86438 100644 --- a/content/en/docs/claude-code/desktop-linux.md +++ b/content/en/docs/claude-code/desktop-linux.md @@ -71,7 +71,7 @@ sudo apt update && sudo apt install claude-desktop Launch **Claude** from your application launcher, or run `claude-desktop` from a terminal, and sign in with your Anthropic account. -The Linux app signs in the same way as on macOS and Windows: with a claude.ai subscription, or through your organization's SSO. Desktop doesn't accept a Claude Console API key directly; use the [CLI](/docs/en/quickstart) for API-key authentication. For enterprise deployments that route Desktop to Google Cloud's Agent Platform or an LLM gateway, see [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview) and [network configuration](/docs/en/network-config). +The Linux app signs in the same way as on macOS and Windows: with a claude.ai subscription, or through your organization's SSO. For API-key authentication, use the [CLI](/docs/en/quickstart). To use Desktop with Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or an LLM gateway instead, see [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). For proxy servers and custom certificate authorities in those deployments, see [network configuration](/docs/en/network-config). ### Install from a downloaded file diff --git a/content/en/docs/claude-code/desktop.md b/content/en/docs/claude-code/desktop.md index 98b321a266..6dd0a146d7 100644 --- a/content/en/docs/claude-code/desktop.md +++ b/content/en/docs/claude-code/desktop.md @@ -1659,6 +1659,7 @@ downloads.claude.ai *.livepreview.claude.ai claude.com platform.claude.com +sso.claude.com *.livepreview.claude.app *.claudeusercontent.com *.claudemcpcontent.com diff --git a/content/en/docs/claude-code/env-vars.md b/content/en/docs/claude-code/env-vars.md index 9cf3761815..2ca003fdf9 100644 --- a/content/en/docs/claude-code/env-vars.md +++ b/content/en/docs/claude-code/env-vars.md @@ -124,7 +124,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien > * `DISABLE_TELEMETRY` > * `DISABLE_ERROR_REPORTING` > * `CLAUDE_CODE_TMUX_TRUECOLOR` -> * `FALLBACK_FOR_ALL_PRIMARY_MODELS` > * `IS_DEMO` > > One other variable has its own rule: `FORCE_HYPERLINK` reads a number, so only `0` turns it off. Each variable's row also states its own rule. @@ -136,7 +135,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `ANTHROPIC_AWS_API_KEY` | Workspace API key for [Claude Platform on AWS](/docs/en/claude-platform-on-aws), generated in the AWS Console. Sent as `x-api-key` and takes precedence over AWS SigV4 | | `ANTHROPIC_AWS_BASE_URL` | Override the [Claude Platform on AWS](/docs/en/claude-platform-on-aws) endpoint URL. Use for custom regions or when routing through an [LLM gateway](/docs/en/llm-gateway). Defaults to `https://aws-external-anthropic.{region}.api.aws`. Claude Code resolves the region with the [same precedence as on Amazon Bedrock](/docs/en/amazon-bedrock#3-configure-claude-code) | | `ANTHROPIC_AWS_WORKSPACE_ID` | Required for [Claude Platform on AWS](/docs/en/claude-platform-on-aws). Sent on every request as the `anthropic-workspace-id` header | -| `ANTHROPIC_BASE_URL` | Override the API endpoint to route requests through a proxy or gateway. When set to a non-first-party host, [MCP tool search](/docs/en/mcp#scale-with-mcp-tool-search) is disabled by default. Set `ENABLE_TOOL_SEARCH=true` if your proxy forwards `tool_reference` blocks. As of v2.1.196, [Remote Control](/docs/en/remote-control#requirements) is disabled when this points at a host other than `api.anthropic.com`, matching its behavior on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry | +| `ANTHROPIC_BASE_URL` | Override the API endpoint to route requests through a proxy or gateway. For what happens when that gateway rejects MCP tool search, see [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway). As of v2.1.196, [Remote Control](/docs/en/remote-control#requirements) is disabled when this points at a host other than `api.anthropic.com`, matching its behavior on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry | | `ANTHROPIC_BEDROCK_BASE_URL` | Override the Amazon Bedrock endpoint URL. Use for custom Amazon Bedrock endpoints or when routing through an [LLM gateway](/docs/en/llm-gateway). See [Amazon Bedrock](/docs/en/amazon-bedrock) | | `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Override the Amazon Bedrock Mantle endpoint URL. See [Mantle endpoint](/docs/en/amazon-bedrock#use-the-mantle-endpoint) | | `ANTHROPIC_BEDROCK_REGION_PREFIX` | Cross-region inference profile prefix (`us`, `eu`, `apac`, `jp`, `au`, or `global`) Claude Code tries first instead of the one derived from the AWS region. Ignored in AWS GovCloud regions. Requires Claude Code v2.1.224 or later. See [Amazon Bedrock](/docs/en/amazon-bedrock#cross-region-inference-profile-prefixes) | @@ -178,7 +177,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `ANTHROPIC_VERTEX_PROJECT_ID` | GCP project ID that Google Cloud's Agent Platform requests are addressed to. See [Configure GCP credentials](/docs/en/google-vertex-ai#3-configure-gcp-credentials) | | `ANTHROPIC_WORKSPACE_ID` | Workspace ID for [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Set this when your federation rule is scoped to more than one workspace so the token exchange knows which workspace to target | | `API_FORCE_IDLE_TIMEOUT` | Override the 5-minute body idle timeout that aborts a streaming model response when no bytes arrive. Set to `0` to turn the timeout off, for example when a slow [gateway](/docs/en/llm-gateway) or local model pauses longer than 5 minutes between chunks, or `1` to keep it on for every provider. When unset, the timeout is active on providers other than the direct Anthropic API, [Claude Platform on AWS](/docs/en/claude-platform-on-aws), and Amazon Bedrock with `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` set. The [stream watchdogs](/docs/en/network-config#streaming-idle-watchdogs) run independently of it and abort a long silent pause even when you set `0` here | -| `API_TIMEOUT_MS` | Time in milliseconds that each API request attempt has to receive its response headers (default: 600000, or 10 minutes; maximum: 2147483647). It doesn't limit how long a streaming response runs after that. When you set a positive value, each attempt at a [non-streaming request](/docs/en/errors#streaming-response-ended-before-any-complete-data-was-received) has to finish within it. Increase this when requests time out on slow networks or when routing through a proxy | +| `API_TIMEOUT_MS` | Time in milliseconds that each API request attempt has to receive its response headers. It doesn't limit how long a streaming response runs after that. The default is 600000, or 10 minutes, and the maximum is 2147483647. When you set a positive value, each attempt at a [non-streaming request](/docs/en/errors#streaming-response-ended-before-any-complete-data-was-received) has to finish within it. Increase this when requests time out on slow networks or when routing through a proxy. Set to `0` to remove this limit, which requires Claude Code v2.1.305 or later. With `0`, a non-streaming attempt still times out after 300 seconds in a local session | | `AWS_BEARER_TOKEN_BEDROCK` | Amazon Bedrock API key for authentication (see [Amazon Bedrock API keys](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) | | `BASH_DEFAULT_TIMEOUT_MS` | Default timeout for a foreground Bash or PowerShell tool command, in milliseconds (default: 120000, or 2 minutes). A value above the [default time limit for background commands](/docs/en/tools-reference#time-limit-for-background-commands) replaces that default in unattended sessions. The background time limit requires Claude Code v2.1.285 or later | | `BASH_MAX_OUTPUT_LENGTH` | Maximum number of characters of bash output that Claude Code reads back into a command's result (default: 30000; maximum: 150000). If you set the [`bashOutputMaxChars`](/docs/en/settings-reference#bashoutputmaxchars) setting, Claude Code ignores this variable. See [Output limits](/docs/en/tools-reference#output-limits) | @@ -186,8 +185,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `BETA_TRACING_ENDPOINT` | OTLP/HTTP endpoint for [detailed beta tracing](/docs/en/monitoring-usage#traces-beta): with `ENABLE_BETA_TRACING_DETAILED=1`, logs and traces go there instead of to the configured exporters. Set it in your shell, user settings, or managed settings. Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env) | | `CCR_FORCE_BUNDLE` | Set to `1` to force [`claude --cloud`](/docs/en/claude-code-on-the-web#send-local-repositories-without-github) to bundle and upload your local repository instead of cloning from its remote | | `CLAUDECODE` | Set to `1` in subprocesses Claude Code spawns (Bash and PowerShell tools, tmux sessions, [hook](/docs/en/hooks) commands, [status line](/docs/en/statusline) commands, stdio [MCP server](/docs/en/mcp) subprocesses). IDE extensions also set this in their integrated terminals. Use to detect when a script is running inside a subprocess spawned by Claude Code. To check whether the current process was spawned directly by a tool call or hook, rather than inside a stdio MCP server that Claude Code started, use `CLAUDE_CODE_CHILD_SESSION` instead | -| `CLAUDE_AFK_COUNTDOWN_MS` | How many milliseconds before auto-continue the on-screen countdown appears on an unanswered [`AskUserQuestion`](/docs/en/tools-reference) dialog. Default `20000` (20 seconds), capped at the auto-continue timeout. Has no effect unless auto-continue is on; see the [`askUserQuestionTimeout`](/docs/en/settings-reference#askuserquestiontimeout) setting and `CLAUDE_AFK_TIMEOUT_MS`. Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env). Requires Claude Code v2.1.198 or later | -| `CLAUDE_AFK_TIMEOUT_MS` | How many milliseconds of idle time before an unanswered [`AskUserQuestion`](/docs/en/tools-reference) dialog auto-continues without you. Auto-continue is off by default; opt in with the [`askUserQuestionTimeout`](/docs/en/settings-reference#askuserquestiontimeout) setting. This variable is an override for demos and automated tests: when set, it takes precedence over that setting and turns auto-continue on even when the setting is unset or `never`. Setting `0` doesn't turn the timeout off; it closes the dialog immediately. Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env). Before v2.1.200, auto-continue was on by default with a `60000` (60 seconds) timeout. Requires Claude Code v2.1.198 or later | | `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Set to `1` to disable all built-in [subagent](/docs/en/sub-agents) types such as Explore and Plan. Only applies in non-interactive mode (the `-p` flag). Useful for SDK users who want a blank slate. This also removes `general-purpose`, the subagent Claude Code runs when an Agent tool call omits `subagent_type`. Such a call then fails with [`subagent_type is required`](/docs/en/errors#subagent-type-is-required) | | `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Set to `1` to skip the `mcp____` prefix on tool names from SDK-created MCP servers. Tools use their original names. SDK usage only | | `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Stall timeout in milliseconds for subagents. Also covers [workflow agents](/docs/en/workflows#when-an-agent-stalls-and-restarts) on Claude Code v2.1.286 or later. Default `600000` (10 minutes); if you raise `CLAUDE_STREAM_IDLE_TIMEOUT_MS` while the stream watchdog is on, the default rises with it, as [Handle slow or stalled API responses](/docs/en/agent-sdk/typescript#handle-slow-or-stalled-api-responses) describes | @@ -229,7 +226,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Minimum log level written to the debug log file. Values: `verbose`, `debug` (default), `info`, `warn`, `error`. Set to `verbose` to include high-volume diagnostics like full status line command output, or raise to `error` to reduce noise | | `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Set to `1` to turn off [1M context window](/docs/en/model-config#extended-context) support. Claude Code removes `[1m]` model variants from the model picker and holds models that run with the 1M window by default to a 200K window. See [Turn off 1M context](/docs/en/model-config#turn-off-1m-context). Useful for enterprise environments with compliance requirements. For its role in correcting the window for an unrecognized `[1m]` model ID, see [Correct the window for a gateway or custom model ID](/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id) | | `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Set to `1` to disable [adaptive reasoning](/docs/en/model-config#adjust-effort-level) on Opus 4.6 and Sonnet 4.6 and fall back to the fixed thinking budget controlled by `MAX_THINKING_TOKENS`. Has no effect on [Fable models](/docs/en/model-config#extended-thinking), Sonnet 5 and later, Haiku 5.5, or Opus 4.7 and later, which always use adaptive reasoning | -| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Set to `1` to stop Claude Code from merging [managed settings](/docs/en/managed-settings#precedence-within-the-managed-tier) `env` blocks per key across admin sources, so only the highest-priority source's whole `env` block applies, as before v2.1.223. Set it in the environment that launches Claude Code, since Claude Code ignores a copy delivered through a settings `env` block. Requires Claude Code v2.1.223 or later | | `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Set to `1` to disable the [advisor tool](/docs/en/advisor). The `/advisor` command becomes unavailable, any configured `advisorModel` is ignored, and the `--advisor` flag is accepted but has no effect, so existing scripts that pass it continue to work without errors | | `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Set to `1` to turn off [background agents and agent view](/docs/en/agent-view): `claude agents`, `--bg`, `/background`, and the on-demand supervisor. Equivalent to the [`disableAgentView`](/docs/en/settings-reference#disableagentview) setting | | `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Set to `1` to disable [fullscreen rendering](/docs/en/fullscreen) and use the classic main-screen renderer. The conversation stays in your terminal's native scrollback so `Cmd+f` and tmux copy mode work as usual. Takes precedence over `CLAUDE_CODE_NO_FLICKER` and the [`tui`](/docs/en/settings-reference#tui) setting. You can also switch with `/tui default`. Does not apply to background sessions opened from [agent view](/docs/en/agent-view), which always use fullscreen rendering | @@ -240,7 +236,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Set to `1` to disable all background task functionality, including the `run_in_background` parameter on Bash and subagent tools, auto-backgrounding, and the Ctrl+B shortcut | | `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Set to `1` to stop Claude Code from treating an [Amazon Bedrock](/docs/en/amazon-bedrock) streaming response with a missing or empty `Content-Type` header as Amazon Bedrock's binary event stream. By default, Claude Code assumes a gateway dropped the header from an otherwise unmodified response, so it decodes the body and streaming keeps working. Set this only for a gateway that also re-emits the stream as server-sent events; Claude Code then reads the header-less body as server-sent events instead. Requires Claude Code v2.1.239 or later | | `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Set to `1` to skip the check that an [Amazon Bedrock](/docs/en/amazon-bedrock) streaming response carries the `application/vnd.amazon.eventstream` content-type. Without this variable, when a response carries a different content-type, Claude Code fails the request with an error naming that type, which means a [gateway or proxy is transforming the response](/docs/en/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure the gateway to forward the `Content-Type` header and body unmodified rather than setting this variable. Requires Claude Code v2.1.208 or later | -| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Set to `1` to stop a [background session's](/docs/en/agent-view) running background shell commands, dynamic workflows, and, as of v2.1.198, background subagents when the [supervisor](/docs/en/agent-view#the-supervisor-process) stops, restarts, or updates that session's process, instead of handing them to the session's next process. Affects only that handoff: backgrounding a session with `←` or [`/background`](/docs/en/agent-view#from-inside-a-session) still carries in-flight background work over, and `CLAUDE_DISABLE_ADOPT` turns off both. Requires Claude Code v2.1.196 or later | +| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Set to `1` to stop a [background session's](/docs/en/agent-view) in-flight work when the [supervisor](/docs/en/agent-view#the-supervisor-process) stops, restarts, or updates that session's process, instead of handing it to the session's next process. That work is the session's running background shell commands and dynamic workflows, plus background subagents as of v2.1.198. Affects only that handoff: backgrounding a session with `←` or [`/background`](/docs/en/agent-view#from-inside-a-session) still carries in-flight background work over. Requires Claude Code v2.1.196 or later | | `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Set to `1` to stop Claude Code from terminating [background shell commands](/docs/en/interactive-mode#background-bash-commands) under memory pressure. By default, on macOS and Linux, Claude Code terminates background shells when the operating system reports critical memory pressure and the session has been idle for 30 minutes with no turn or subagent running. Windows has no memory-pressure signal, so this variable has no effect there. Requires Claude Code v2.1.193 or later | | `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Set to `1` to disable the [skills](/docs/en/skills) and workflows included with Claude Code: bundled skills and workflows are removed entirely, while built-in commands like `/init` stay typable but are hidden from the model. `/doctor` stays typable like the built-in commands; hide it with `DISABLE_DOCTOR_COMMAND` instead. Skills from plugins, `.claude/skills/`, and `.claude/commands/` are unaffected. Equivalent to the [`disableBundledSkills`](/docs/en/settings-reference#disablebundledskills) setting | | `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Set to `1` to keep the [Claude in Chrome](/docs/en/chrome) browser tools available while omitting the Chrome section of the system prompt and the `/claude-in-chrome` [bundled skill](/docs/en/skills#bundled-skills). For hosts that embed Claude Code and supply their own browser guidance. Requires Claude Code v2.1.257 or later | @@ -299,7 +295,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Set to `1` to force transcript persistence, prompt history, and `claude agents` registration even when this `claude` was launched from inside another Claude Code session. Use when an inherited `CLAUDE_CODE_CHILD_SESSION` value, for example from a `screen` session or a background launcher first started by Claude Code's Bash tool, causes a genuine top-level session to be misclassified as nested. As of v2.1.178, Claude Code detects the tmux case automatically and ignores the inherited marker, so tmux no longer needs this variable. Also honored on v2.1.169 and earlier; has no effect on v2.1.170 and v2.1.171, where the nested-session detection it overrides was removed | | `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Set to `1` to force strikethrough rendering for `~~text~~` in Claude's responses when your terminal supports it but is not auto-detected, such as over SSH without `TERM_PROGRAM` forwarded. Without this, undetected terminals show the literal `~~` markers instead of rendering the text as strikethrough. Requires Claude Code v2.1.186 or later | | `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Set to `1` to force-enable DEC private mode 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) when your terminal supports it but is not auto-detected. Useful for emulators such as Emacs `eat` that implement BSU/ESU but do not reply to the capability probe. Has no effect under tmux. Unlike `CLAUDE_CODE_NO_FLICKER`, which switches to [fullscreen rendering](/docs/en/fullscreen), this doesn't change the renderer | -| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Set to `1` to draw [mod `Image` elements](/docs/en/plugins/mods/reference#elements) as pictures when your terminal draws kitty graphics protocol images with Unicode placeholders but is not auto-detected. See [which terminals Claude Code detects](/docs/en/plugins/mods/gallery#image-and-client) and why it doesn't help inside tmux or screen | +| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Set to `1` to draw [mod `Image` elements](/docs/en/plugins/mods/reference#elements) as pictures when your terminal draws kitty graphics protocol images with Unicode placeholders and you still see an `Image`'s dimmed `alt` text. See [which terminals draw an `Image`](/docs/en/plugins/mods/gallery#image-and-client) and why this variable doesn't help inside tmux or screen | | `CLAUDE_CODE_FORK_SUBAGENT` | Controls fork mode, which is on by default and lets Claude start [forks](/docs/en/sub-agents#fork-the-current-conversation) on its own. While fork mode is on, Claude also can't [wait for a subagent](/docs/en/sub-agents#run-subagents-in-foreground-or-background) in interactive terminal, VS Code, or desktop sessions on your machine. Set to `0` to turn fork mode off. For versions, see [Turn fork mode off](/docs/en/sub-agents#turn-fork-mode-on-or-off) | | `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Set to `1` to emit [subagent](/docs/en/sub-agents) text and thinking blocks in `claude -p --output-format stream-json` output, the same behavior as the [`--forward-subagent-text`](/docs/en/cli-reference#cli-flags) flag. Use the variable when a harness invokes `claude` and can't pass the flag itself. Unlike the flag, which exits with an error outside non-interactive mode with stream-json output, the variable is ignored there so that nested invocations keep working when it's set process-wide. Requires Claude Code v2.1.211 or later | | `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Set to `1` to send the [gateway hint headers](/docs/en/llm-gateway-protocol#gateway-hint-headers), such as `x-claude-code-request-class` and `x-claude-code-compaction`, on a custom proxy or a third-party provider such as Amazon Bedrock or Claude Platform on AWS. Set to `0` to stop sending them on every connection, including a direct connection to the Anthropic API, where Claude Code sends them by default. Requires Claude Code v2.1.273 or later | @@ -319,15 +315,14 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Override the context window size Claude Code assumes for the active model. As of v2.1.193, how it applies depends on how Claude Code resolves the model ID; see [Correct the window for a gateway or custom model ID](/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use this when routing to a model through `ANTHROPIC_BASE_URL` whose context window does not match the built-in size for its name | | `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Maximum length in characters of MCP tool descriptions and MCP server instructions that Claude Code sends to the model. The value you set replaces both [default limits](/docs/en/mcp#for-mcp-server-authors): 4096, and 16384 for the description of a tool that Claude loads through tool search. Accepts a positive whole number in plain digits. Anything else is ignored and the defaults apply. Requires Claude Code v2.1.280 or later | | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Set the maximum number of output tokens for most requests. Defaults and caps vary by model; see [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code lowers a value above a model's cap to the cap. For a model ID Claude Code can't resolve to a model it knows, the default is 32000 and the cap is 128000. Increasing this value reduces the effective context window available before [auto-compaction](/docs/en/costs#reduce-token-usage) triggers | -| `CLAUDE_CODE_MAX_RETRIES` | Override the number of times to retry failed API requests (default: 10). Capped at 15 as of v2.1.186; as of v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. For unattended sessions that need to wait through longer outages, set `CLAUDE_CODE_RETRY_WATCHDOG` instead | +| `CLAUDE_CODE_MAX_RETRIES` | Override the number of times to retry failed API requests (default: 10). Retrying can stop earlier on `529` overloaded errors. For example, with an API key on an Opus model, it stops at the third `529` and shows [Repeated 529 Overloaded errors](/docs/en/errors#api-error-repeated-529-overloaded-errors). If you set a [fallback model](/docs/en/settings-reference#fallbackmodel), Claude Code switches to that model rather than showing the error. Capped at 15 as of v2.1.186; as of v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. For unattended sessions that need to wait through longer outages, set `CLAUDE_CODE_RETRY_WATCHDOG` instead | | `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removed in v2.1.224 and now a no-op. Previously capped the total number of [subagents](/docs/en/sub-agents) Claude could spawn with the Agent tool in one session (default: 200); spawning past the cap failed with `Subagent spawn limit reached`. The [concurrent subagent limit](/docs/en/sub-agents#concurrent-subagent-limit) and the [depth limit](/docs/en/sub-agents#let-subagents-spawn-their-own-subagents) still apply | | `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Number of [subagent layers](/docs/en/sub-agents#let-subagents-spawn-their-own-subagents) allowed below the main conversation (default: 3). At the default, subagents can spawn their own subagents, and a subagent at the third layer can't spawn further; set `1` to turn nesting off. In v2.1.217 through v2.1.218, the default was 1, so a subagent couldn't spawn its own unless you raised the limit; v2.1.219 raised the default to 3. Accepts a positive whole number in plain digits; anything else is ignored, so the limit can be adjusted but not removed. Requires Claude Code v2.1.217 or later | -| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Maximum number of read-only tools and subagents that can execute in parallel (default: 10). Higher values increase parallelism but consume more resources | | `CLAUDE_CODE_MAX_TURNS` | Cap the number of agentic turns when no explicit limit is passed. Equivalent to passing [`--max-turns`](/docs/en/cli-reference#cli-flags), which takes precedence when both are set. A value that is not a positive integer is rejected at startup with an error rather than treated as no cap | | `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Cap on [WebSearch](/docs/en/tools-reference#session-search-limit) calls (default: 200). When Claude reaches the cap, further WebSearch calls return a notice telling it to continue with the information it already gathered and say so in its answer. Accepts a positive whole number with no upper bound. Anything else is ignored and the default applies, so the cap can be raised but not turned off. Requires Claude Code v2.1.212 or later | | `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Set to `1` to spawn stdio MCP servers with only a safe baseline environment plus the server's configured `env`, instead of inheriting your shell environment | | `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Elapsed time in milliseconds before a still-running MCP tool call [moves to a background task](/docs/en/mcp#automatic-backgrounding-of-long-tool-calls) (default: 120000, or 2 minutes). Set to `0` to turn automatic backgrounding off. Requires Claude Code v2.1.212 or later | -| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | How long in milliseconds the first turn of a [non-interactive](/docs/en/headless) session waits for MCP servers that are still connecting, in place of the default [first-turn wait](/docs/en/agent-sdk/mcp#connection-timing). When set, the wait covers every pending server; in a [self-hosted environment](/docs/en/self-hosted-environments-configuration#connection-timing), it changes only how long the wait lasts. Set to `0` to skip the wait. A [`--permission-prompt-tool`](/docs/en/cli-reference#cli-flags) server keeps its own `MCP_TIMEOUT` wait regardless of the value. Requires Claude Code v2.1.274 or later | +| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | How long in milliseconds the first turn of a [non-interactive](/docs/en/headless) session waits for MCP servers that are still connecting, in place of the default [first-turn wait](/docs/en/agent-sdk/mcp#connection-timing). In a [self-hosted environment](/docs/en/self-hosted-environments-configuration#connection-timing), it changes only how long the wait lasts. Some servers keep a wait of their own regardless of the value; [Connection timing](/docs/en/agent-sdk/mcp#connection-timing) lists them. Set to `0` to skip the wait for every other server. Requires Claude Code v2.1.274 or later | | `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Idle timeout in milliseconds for MCP tool calls. When a stdio, HTTP, SSE, WebSocket, or [claude.ai connector](/docs/en/mcp#use-mcp-servers-from-claude-ai) MCP server sends no response and no progress notification for this long, the tool call aborts with an error instead of waiting for the overall `MCP_TOOL_TIMEOUT`. Overrides the per-transport defaults of 300000 (5 minutes) for network servers and 1800000 (30 minutes) for stdio servers. Set to `0` to disable the idle check. Values below 1000 are raised to one second, and the value is capped at the effective `MCP_TOOL_TIMEOUT`. A per-server `timeout` in `.mcp.json` of at least 1000 raises that server's idle window to at least the `timeout` value. Doesn't apply to IDE servers or SDK in-process servers. Requires Claude Code v2.1.187 or later. Before v2.1.203, stdio servers were exempt from the idle timeout | | `CLAUDE_CODE_MESSAGING_SOCKET` | Set by Claude Code, not by you: in sessions that bind an [inbox socket](/docs/en/cross-session-messaging#the-sessions-inbox-socket), Claude Code exports that socket's path to hooks and Bash commands when it binds the socket. In a session that starts with messaging on, Claude Code binds the socket before any hook runs. Other sessions on the machine deliver messages to this path. Each session exports its own socket rather than one inherited from a parent, and messages arriving on it go through the session's [inbound controls](/docs/en/cross-session-messaging#control-inbound-messages). Settings `env` blocks can't set it. Requires Claude Code v2.1.224 or later | | `CLAUDE_CODE_MESSAGING_TOKEN` | Set by Claude Code, not by you: in sessions that bind an [inbox socket](/docs/en/cross-session-messaging#the-sessions-inbox-socket), Claude Code exports this per-session token to hooks and Bash commands alongside `CLAUDE_CODE_MESSAGING_SOCKET`. A script posting to the socket can send `{"type":"auth","token":""}` as its first line to prove it belongs to the session. On native Windows, Claude Code requires this line and closes any connection that doesn't open with a valid one. The [own-child rules](/docs/en/cross-session-messaging#the-sessions-inbox-socket) say when Claude Code consults the token. Each session exports its own token, never one inherited from a parent session. Settings `env` blocks can't set it. Requires Claude Code v2.1.228 or later | @@ -372,6 +367,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_RESUME_PROMPT` | Override the continuation message Claude Code sends to Claude when `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continues an interrupted turn instead of resending its prompt, or when you resume a [deferred tool call](/docs/en/hooks#defer-a-tool-call-for-later) with `-p`. Defaults to `Continue from where you left off.`. An empty string uses the default | | `CLAUDE_CODE_RETRY_WATCHDOG` | Set to `1` for unattended sessions such as eval harnesses, CI jobs, or remote workers. Retries `429` and `529` capacity errors indefinitely instead of failing after `CLAUDE_CODE_MAX_RETRIES` attempts. Claude Code fails at once when a standard-speed request gets a `429` that reports a spend limit or exhausted usage credits, even one from a [gateway spend cap](/docs/en/errors#spend-limit-reached) that resets on a schedule. Before v2.1.239, the watchdog retried these indefinitely. For fast mode requests, see [Handle rate limits](/docs/en/fast-mode#handle-rate-limits). The watchdog backs off up to 5 minutes between attempts, or until the limit resets when the response carries a rate-limit reset time, so a session that hits a usage limit waits out the remaining window. On v2.1.199 or later it also raises the default retry count for other transient errors, such as server errors, timeouts, and dropped connections, to 300, roughly three hours of backoff, and removes the cap of 15 on `CLAUDE_CODE_MAX_RETRIES` if you set that variable explicitly. Requires Claude Code v2.1.186 or later | | `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Maximum time in milliseconds that each API request spends waiting out `429` and `529` errors when `CLAUDE_CODE_RETRY_WATCHDOG` is set. Once that time is spent, the next such error ends the request. Give a positive whole number in plain digits, such as `1800000` for 30 minutes. When unset, the wait has no limit. Requires Claude Code v2.1.295 or later | +| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | Minimum interval in milliseconds between checks of whether a [usage limit](/docs/en/errors#youve-hit-your-session-limit) was already lifted, while a request waits for that limit to reset with `CLAUDE_CODE_RETRY_WATCHDOG` set. When a check finds the limit lifted, the request goes out at once. Give a whole number in plain digits from `60000`, one minute, to `10800000`, three hours. Checks are made only for a claude.ai subscription's session or weekly limit while usage credits aren't in use, and not while `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` is set. When this variable is unset or its value is outside that range, no checks are made. Requires Claude Code v2.1.305 or later | | `CLAUDE_CODE_SAFE_MODE` | Set to `1` to start in safe mode: CLAUDE.md, skills, plugins, hooks, MCP servers, custom commands and agents, output styles, workflows, custom themes, custom keybindings, status line and file-suggestion commands, LSP servers, and auto memory do not load, for troubleshooting a broken configuration. Managed settings policy still applies, including policy-configured hooks, status line, and file-suggestion commands; managed plugins, managed skills, managed CLAUDE.md, and policy-configured MCP servers do not. Equivalent to passing [`--safe-mode`](/docs/en/cli-reference#cli-flags). Directly spawned child processes inherit the variable | | `CLAUDE_CODE_SCRIPT_CAPS` | JSON object limiting how many times specific scripts may be invoked per session when `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` is set. Keys are substrings matched against the command text; values are integer call limits. For example, `{"deploy.sh": 2}` allows `deploy.sh` to be called at most twice. Matching is substring-based so shell-expansion tricks like `./scripts/deploy.sh $(evil)` still count against the cap. Runtime fan-out via `xargs` or `find -exec` is not detected; this is a defense-in-depth control | | `CLAUDE_CODE_SCROLL_SPEED` | Set the mouse wheel scroll multiplier in [fullscreen rendering](/docs/en/fullscreen#mouse-wheel-scrolling). Accepts any positive value up to 20, including fractional values below 1 such as `0.5` to slow accelerated trackpad and wheel scrolling in terminals that already amplify wheel events. Set to `3` to match `vim` if your terminal sends one wheel event per notch without amplification. Ignored in the JetBrains IDE terminal, where Claude Code uses its own scroll handling | @@ -405,7 +401,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout in milliseconds for the first query to wait for the initial skill list when `CLAUDE_CODE_SYNC_SKILLS` is set (default: 5000). When exceeded, the first query runs with whichever skills have arrived. The downloads finish in the background either way, and Claude waits for a skill's download when it invokes that skill | | `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Set to `false` to disable syntax highlighting in diff output. Useful when colors interfere with your terminal setup. To also disable highlighting in code blocks and file previews, use the [`syntaxHighlightingDisabled`](/docs/en/settings-reference#syntaxhighlightingdisabled) setting | | `CLAUDE_CODE_TASK_LIST_ID` | Share a task list across sessions. Set the same ID in multiple Claude Code instances to coordinate on a shared task list, in [sessions that have the Task tools](/docs/en/tools-reference#task-tool-availability). See [Task list](/docs/en/interactive-mode#task-list) | -| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Override, in milliseconds, how long a non-interactive session waits at exit for its [agent team](/docs/en/agent-teams) to finish tearing down. Accepts 1000 to 60000; an out-of-range value is ignored and the default of 10000 applies. Requires Claude Code v2.1.206 or later | | `CLAUDE_CODE_TMPDIR` | Override the temp directory used for internal temp files. Claude Code appends `/claude-{uid}/` to this path on Unix, or `/claude/` on Windows. Default: `/tmp` on macOS, `os.tmpdir()` on Linux and Windows. On macOS and Linux, [sandboxed](/docs/en/sandboxing) Bash subprocesses receive a short fallback `$TMPDIR` under the system default when your override is a long path, since some tools fail when temp paths get too long. Unsandboxed Bash commands inherit your shell's `$TMPDIR` when it is set. On native Windows, when your shell doesn't set `$TMPDIR`, a Bash command that references `$TMPDIR` receives your override, or `%TEMP%` when you haven't set one. Claude Code's own temp files always use your override. Set it in your shell, user settings, or managed settings. Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env) | | `CLAUDE_CODE_TMUX_TRUECOLOR` | Set to any non-empty value, such as `1`, to allow 24-bit truecolor output inside tmux. **Setting it to `0` or `false` still allows truecolor**, unlike most on/off variables; unset the variable to restore the 256-color clamp. By default, Claude Code clamps to 256 colors when `$TMUX` is set because tmux does not pass through truecolor escape sequences unless configured to. Set this after adding `set -ga terminal-overrides ',*:Tc'` to your `~/.tmux.conf`. See [Terminal configuration](/docs/en/terminal-config) for other tmux settings | | `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | On Linux and WSL, set to a comma-separated list of the kinds of processes Claude Code [excludes from the tool memory cap](/docs/en/tools-reference#memory-limit-on-linux-and-wsl), such as `mcp` or `lsp`. Set `none` to cap every kind, or `all-new` to cap only Bash, PowerShell, and Monitor tool commands. Claude Code keeps Bash, PowerShell, and Monitor tool commands under the cap whatever you list. Requires Claude Code v2.1.246 or later | @@ -416,7 +411,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_USE_BEDROCK` | Use [Amazon Bedrock](/docs/en/amazon-bedrock) | | `CLAUDE_CODE_USE_FOUNDRY` | Use [Microsoft Foundry](/docs/en/microsoft-foundry) | | `CLAUDE_CODE_USE_MANTLE` | Use the Amazon Bedrock [Mantle endpoint](/docs/en/amazon-bedrock#use-the-mantle-endpoint) | -| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Set to `1` to discover custom commands, subagents, and output styles using Node.js file APIs instead of ripgrep. Set this if the bundled ripgrep binary is unavailable or blocked in your environment. Does not affect the Grep or file search tools | | `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controls the PowerShell tool. On Windows without Git Bash, the tool is enabled automatically; set to `0` to disable it. On Windows with Git Bash installed, the tool is on by default for claude.ai and Console accounts; set to `1` to enable it in Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry sessions, or `0` to turn it off. On Linux, macOS, and WSL, set to `1` to enable it, which requires `pwsh` on your `PATH`. When enabled on Windows, Claude can run PowerShell commands natively instead of routing through Git Bash. See [PowerShell tool](/docs/en/tools-reference#powershell-tool) | | `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/en/google-vertex-ai) | | `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Set to the number of milliseconds [WebFetch](/docs/en/tools-reference#webfetch-tool-behavior) keeps each fetched URL's response cached. The default is `900000`, which is 15 minutes. Takes plain digits only; `0`, a decimal, or any other spelling keeps the default. Claude Code reads the value once per launch, so a change in a settings `env` block applies when you next launch `claude`. Requires Claude Code v2.1.233 or later | @@ -427,7 +421,6 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Upper bound in milliseconds on how long a [workflow](/docs/en/workflows) agent waits for a same-prefix sibling's first response to begin before sending its own first request. When a fan-out starts several agents that share a [prompt-cache prefix](/docs/en/workflows#prompt-caching-in-a-fan-out), Claude Code holds all but the first agent for up to this long so the rest read the cached prefix instead of each processing it uncached. Default `5000`. Set to `0` to disable the wait. When `DISABLE_PROMPT_CACHING` is set, agents never wait. Requires Claude Code v2.1.229 or later | | `CLAUDE_CODE_YOU_SHOULD_KNOW_DEBUG` | Set to `1` to show, above the prompt, a line for each of the last three checks the [You should know mod](/docs/en/interactive-mode#you-should-know-suggestions) made in this session. Use it to confirm the mod is checking when no notes appear. Requires Claude Code v2.1.287 or later | | `CLAUDE_CONFIG_DIR` | Override the configuration directory (default: `~/.claude`). All settings, session history, and plugins are stored under this path. For credentials, see [where Claude Code stores credentials](/docs/en/authentication#credential-management). Useful for running multiple accounts side by side: for example, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Set it in your shell, user settings, or managed settings. In a settings file, write the [absolute path](#in-settings-files). Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env) | -| `CLAUDE_DISABLE_ADOPT` | Set to `1` to stop in-flight background work instead of carrying it over when you background a session by pressing `←` or with [`/background`](/docs/en/agent-view#from-inside-a-session). Claude Code asks you to confirm before backgrounding, then stops the tasks that would otherwise carry over. Requires Claude Code v2.1.195 or later | | `CLAUDE_EFFORT` | Set automatically in Bash tool subprocesses and hook commands to the [effort level](/docs/en/model-config#adjust-effort-level) in effect when the subprocess starts: `low`, `medium`, `high`, `xhigh`, or `max`. Matches the `effort.level` field passed to [hooks](/docs/en/hooks). Only set when the current model supports the effort parameter | | `CLAUDE_ENABLE_BYTE_WATCHDOG` | Set to `1` to force-enable the byte-level streaming idle watchdog, or set to `0` to force-disable it. `0` also turns off the [first-byte deadline](/docs/en/network-config#streaming-idle-watchdogs) on the connections where that deadline runs. When unset, the watchdog is enabled by default for direct Anthropic API and [Claude Platform on AWS](/docs/en/claude-platform-on-aws) connections, and for streaming responses on [gateway](/docs/en/gateways) connections reached through `ANTHROPIC_BASE_URL` or `ANTHROPIC_AWS_BASE_URL`; before v2.1.222 it didn't run on those gateway connections, so the event-level watchdog could report a stall there even while keep-alive pings were arriving. For timeouts and how the timers interact, see [Streaming idle watchdogs](/docs/en/network-config#streaming-idle-watchdogs) | | `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Set to `1` to enable the byte-level streaming idle watchdog on Amazon Bedrock `vnd.amazon.eventstream` responses, which also enables the [first-byte deadline](/docs/en/network-config#streaming-idle-watchdogs) on Bedrock streaming requests. Off by default. Configure the timeout with `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | @@ -467,8 +460,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `ENABLE_CLAUDEAI_MCP_SERVERS` | Set to `false` to stop Claude Code from fetching [claude.ai MCP servers](/docs/en/mcp#use-mcp-servers-from-claude-ai). Enabled by default for logged-in users. To disable per-project or per-org, set [`disableClaudeAiConnectors`](/docs/en/settings-reference#disableclaudeaiconnectors) in settings instead | | `ENABLE_PROMPT_CACHING_1H` | Set to `1` to request a 1-hour [prompt cache TTL](/docs/en/prompt-caching#cache-lifetime) instead of the default 5 minutes. Intended for API key, [Amazon Bedrock](/docs/en/amazon-bedrock), [Google Cloud's Agent Platform](/docs/en/google-vertex-ai), [Microsoft Foundry](/docs/en/microsoft-foundry), and [Claude Platform on AWS](/docs/en/claude-platform-on-aws) users. For subscription users within included usage, Claude Code requests the 1-hour TTL automatically on the [main conversation](/docs/en/prompt-caching#which-ttl-each-request-gets). Subscription users drawing on [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) can set it to keep the 1-hour TTL. 1-hour cache writes are billed at a higher rate. To choose the TTL separately for the main conversation and for requests outside it, use `CLAUDE_CODE_PROMPT_CACHE_TTL` and `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, which take precedence over this variable | | `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` instead | -| `ENABLE_TOOL_SEARCH` | Controls [MCP tool search](/docs/en/mcp#scale-with-mcp-tool-search). Unset, Claude Code defers all MCP tools by default, and loads them upfront instead when `ANTHROPIC_BASE_URL` points to a non-first-party host. `true` keeps them deferred on such a host too. `auto` loads upfront when tool definitions fit within 10% of context. `auto:N` sets a custom threshold, such as `auto:5` for 5%. `false` loads all tools upfront. For the models and deployments that load every tool upfront whatever this value is, see [Configure tool search](/docs/en/mcp#configure-tool-search) | -| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Set to any non-empty value, such as `1`, to make Claude Code stop retrying on repeated overload errors for every model when no fallback model is configured. **Setting it to `0` or `false` still enables this**, unlike most on/off variables; unset the variable to restore the default retry behavior. Without it, Claude Code stops retrying this way on models it recognizes as Opus, Fable, or Mythos models when you authenticate with an API key or a [third-party provider](/docs/en/third-party-integrations) rather than a Claude subscription. On Claude Code v2.1.160 or later, Claude Code switches to your configured [fallback model chain](/docs/en/model-config#fallback-model-chains) on repeated overload errors for any primary model, so this variable doesn't affect switching to a fallback model | +| `ENABLE_TOOL_SEARCH` | Controls [MCP tool search](/docs/en/mcp#scale-with-mcp-tool-search). Unset or `true` defers MCP tools, except in the [cases that keep tool search off](/docs/en/mcp#configure-tool-search). `auto` loads upfront when tool definitions fit within 10% of context. `auto:N` sets a custom threshold, such as `auto:5` for 5%. `false` loads all tools upfront. If a gateway rejects tool search, see [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway) | | `FORCE_AUTOUPDATE_PLUGINS` | Set to `1` to force plugin auto-updates even when the main auto-updater is disabled via `DISABLE_AUTOUPDATER` | | `FORCE_HYPERLINK` | Set to `1` to enable clickable OSC 8 hyperlinks when your terminal supports them but isn't auto-detected, or `0` to disable them. When unset, Claude Code enables hyperlinks only when it detects terminal support. Claude Code parses this value as a number, not a Boolean, so a value such as `false`, `no`, or `off` enables hyperlinks rather than disabling them. The footer [PR or merge request badge](/docs/en/interactive-mode#pr-review-status) renders as a hyperlink even when Claude Code can't detect terminal support, such as over SSH. Set `0` to render the badge as plain text | | `FORCE_PROMPT_CACHING_5M` | Set to `1` to force the 5-minute prompt cache TTL even when 1-hour TTL would otherwise apply. Overrides `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, and the `promptCacheTtl` and `subagentPromptCacheTtl` settings | diff --git a/content/en/docs/claude-code/errors.md b/content/en/docs/claude-code/errors.md index 50de32df80..2f92f8e1ef 100644 --- a/content/en/docs/claude-code/errors.md +++ b/content/en/docs/claude-code/errors.md @@ -83,6 +83,8 @@ Match the message you see to a section below. | `Your account does not have access to Claude. Please login again or contact your administrator.` | [Authentication](#oauth-token-revoked-or-expired) | | `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) | | `Login expired · Please run /login` | [Authentication](#login-expired) | +| `The browser can't return the sign-in to Claude Code automatically` | [Authentication](#couldnt-start-the-local-sign-in-listener) | +| `Couldn't start the local listener that receives the browser sign-in. Try again.` | [Authentication](#couldnt-start-the-local-sign-in-listener) | | `Failed to start OAuth callback server` | [Authentication](#failed-to-start-oauth-callback-server) | | `Claude login not accepted · Run /login, then try again` | [Authentication](#claude-login-not-accepted) | | `Artifacts need a claude.ai login` | [Authentication](#artifacts-need-a-claude-ai-login) | @@ -293,6 +295,7 @@ Match the message you see to a section below. | `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](/docs/en/plugins/troubleshooting#the-packages-it-lists-are-not-installed) | | `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](/docs/en/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) | | `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) | +| `Plugin not loaded: its manifest was not read` | [Plugin errors](#plugin-not-loaded-its-manifest-was-not-read) | | `path could not be checked` | [Plugin errors](#path-could-not-be-checked) | | `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | | `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | @@ -316,6 +319,7 @@ Match the message you see to a section below. | `Failed to write to 's inbox — nothing was sent` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | | `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | | `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) | +| `Only a teammate can approve a shutdown request` | [Tool errors](#only-a-teammate-can-approve-a-shutdown-request) | | `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) | | `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) | | `Cross-session message was dropped at the recipient session's inbox` | [Tool errors](#cross-session-message-dropped-at-the-inbox) | @@ -331,6 +335,7 @@ Match the message you see to a section below. | `Your disk quota is full on the filesystem with Claude Code's temp directory (EDQUOT)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) | | `The filesystem with Claude Code's temp directory , or your disk quota on it, is full (ENOSPC)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) | | `Command output was lost: the temp filesystem at is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) | +| `The command was not started: this computer's disk is full (ENOSPC)` / `(EDQUOT)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) | | `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) | | `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | | `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | @@ -352,7 +357,7 @@ Match the message you see to a section below. | `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) | | `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) | | `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) | -| `Bypass permissions was requested at launch and ignored` | [Skip all checks with bypassPermissions mode](/docs/en/permission-modes#bypass-permissions-acceptance) | +| `Bypass permissions was requested at launch and ignored` | [Bypass permissions ignored in a background session](/docs/en/permission-modes#bypass-permissions-ignored-in-a-background-session) | | `kept — its worktree is still at ` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | | `kept — unpushed commits on ` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | | `kept — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | @@ -403,10 +408,16 @@ Match the message you see to a section below. | `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) | | `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) | | `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) | +| `matches no tool · check for typos` / `matches no known tool — check for typos` | [Configuration warnings](#matches-no-tool) | | `... is not matched by file permission checks` | [Configuration warnings](#is-not-matched-by-file-permission-checks) | +| `Write() never matches · use Edit()` / `Glob() never matches · use Read()` | [Configuration warnings](#is-not-matched-by-file-permission-checks) | | `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) | +| `allows any option at its * · use an exact value` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) | | `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) | | `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) | +| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="" reads as tokens, so Claude Code treats it as the 100k minimum` | [Values and warnings for `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/en/model-config#claude_code_auto_compact_window-values) | +| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="" is too large, so Claude Code treats it as the 1M maximum` | [Values and warnings for `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/en/model-config#claude_code_auto_compact_window-values) | +| `CLAUDE_CODE_AUTO_COMPACT_WINDOW="" isn't a usable size, so Claude Code ignores it` | [Values and warnings for `CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/en/model-config#claude_code_auto_compact_window-values) | | `Model "" isn't recognized · context assumed to be 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id) | | `Claude Code doesn't recognize the model "", so it assumes a context window of 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id) | | `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) | @@ -471,6 +482,7 @@ You can tune retry behavior with these environment variables: | [`CLAUDE_CODE_MAX_RETRIES`](/docs/en/env-vars) | 10 | Number of retry attempts. Capped at 15 as of v2.1.186; as of v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. Lower it to surface failures faster in scripts. | | [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/en/env-vars) | unset | Set to `1` in unattended sessions such as CI jobs to retry `429` and `529` capacity errors indefinitely instead of failing after `CLAUDE_CODE_MAX_RETRIES` attempts. Claude Code fails at once when a standard-speed request gets a `429` that reports a spend limit or exhausted usage credits, even one from a [gateway spend cap](#spend-limit-reached) that resets on a schedule. Before v2.1.239, the watchdog retried these indefinitely. For fast mode requests, see [Handle rate limits](/docs/en/fast-mode#handle-rate-limits). On v2.1.199 or later it also raises the default retry count for other transient errors, such as server errors, timeouts, and dropped connections, to 300, roughly three hours of backoff, and removes the cap of 15 on `CLAUDE_CODE_MAX_RETRIES` if you set that variable explicitly. | | [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/en/env-vars) | unset | Maximum time in milliseconds that each API request spends waiting out `429` and `529` errors when `CLAUDE_CODE_RETRY_WATCHDOG` is set. When unset, the wait has no limit. Requires Claude Code v2.1.295 or later. | +| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](/docs/en/env-vars) | unset | Minimum interval in milliseconds between checks of whether a [usage limit](#youve-hit-your-session-limit) was already lifted, while a request waits for that limit to reset with `CLAUDE_CODE_RETRY_WATCHDOG` set. When a check finds the limit lifted, the request goes out at once. Give plain digits from `60000` to `10800000`. When unset or outside that range, no checks are made. For when Claude Code skips these checks, see the [environment variables reference](/docs/en/env-vars). Requires Claude Code v2.1.305 or later. | | [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/en/env-vars) | 500 | Starting delay in milliseconds of the backoff between retries of a request that the API rejects with a `529` overloaded error. Raise it, up to 32000, to spread the retries over a longer window when the API is at capacity. Has no effect when `CLAUDE_CODE_RETRY_WATCHDOG` is set to `1`, or when the rejected request was sent in [fast mode](/docs/en/fast-mode#handle-rate-limits). Requires Claude Code v2.1.292 or later. | | [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/en/env-vars) | 32000 | Ceiling in milliseconds on the backoff between retries of a request that the API rejects with a `529` overloaded error. Raise it, up to 64000, so that later retries keep spreading apart when the API is at capacity. Has no effect when `CLAUDE_CODE_RETRY_WATCHDOG` is set to `1`, or when the rejected request was sent in [fast mode](/docs/en/fast-mode#handle-rate-limits). Requires Claude Code v2.1.296 or later. | | [`API_TIMEOUT_MS`](/docs/en/env-vars) | 600000 | Time in milliseconds that each request attempt has to receive its response headers. It doesn't limit how long a streaming response runs after that. Raise it for slow networks or proxies. For how it caps the first-byte deadline, see [No response from API](#no-response-from-api). | @@ -499,6 +511,7 @@ When a proxy, load balancer, or gateway answers with an HTML error page, the mes * Check [status.claude.com](https://status.claude.com), or the provider status page named in the message, for active incidents * Wait a minute, then send your message again. Your original message is still in the conversation, so for a long prompt you can type `try again` instead of pasting the whole thing. +* If [`ANTHROPIC_BASE_URL`](/docs/en/env-vars) points at an [LLM gateway](/docs/en/llm-gateway) and every request fails this way, check whether your gateway is rejecting the tool search fields Claude Code sends by default. To check, set `ENABLE_TOOL_SEARCH=false` as [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway) describes, then try again. Before v2.1.304, tool search was off behind a gateway unless you turned it on with `ENABLE_TOOL_SEARCH`. * If the error persists with no posted incident, run `/feedback` so Anthropic can investigate with your request details. See [Report an error](#report-an-error) if `/feedback` is unavailable in your environment. ### API Error: Repeated 529 Overloaded errors @@ -529,10 +542,11 @@ The API didn't respond before the connection deadline. Request timed out ``` -The default request timeout is 10 minutes. +The default request timeout is 10 minutes. If you set [`API_TIMEOUT_MS`](/docs/en/env-vars) to `0`, this request timeout is off. The [first-byte deadline](#no-response-from-api) and the body idle timeout don't turn off when you set `0`, so a streaming request still runs under [whichever of them apply to your connection](/docs/en/network-config#streaming-idle-watchdogs). A non-streaming attempt keeps its 300-second limit in a local session and can still end with this message. **What to do:** +* If every request fails with this message and you set `API_TIMEOUT_MS` to `0`, check `claude --version`. On a version before v2.1.305, update Claude Code or set a positive value. * Retry the request * If a slow network or proxy is the cause, raise `API_TIMEOUT_MS` as described in [Automatic retries](#automatic-retries) * If timeouts are frequent and your network is otherwise healthy, see [Network and connection errors](#network-and-connection-errors) below @@ -550,6 +564,8 @@ Claude Code sets the first attempt's wait for response headers and the retry's w * **First attempt**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/en/env-vars) when you set it to 1 or more, clamped to between 10 seconds and 30 minutes. Otherwise Claude Code uses the byte-level watchdog timeout listed in [Streaming idle watchdogs](/docs/en/network-config#streaming-idle-watchdogs), so the variables that change that timeout change this wait too. Either way, Claude Code adds one second for every 32KB of request body. * **Retry**: one second less than `API_TIMEOUT_MS`, just under 10 minutes by default, so that the retry can outlast a proxy or gateway that holds the response until generation completes. On Amazon Bedrock, the retry uses the same deadline as the first attempt, and the message shows one duration instead of two. + Except on Amazon Bedrock, if you set `API_TIMEOUT_MS` to `0`, the retry waits 10 minutes plus one second per 32KB, or as long as the first attempt if that's longer. + Neither wait exceeds one second less than a positive `API_TIMEOUT_MS`, and a positive `API_TIMEOUT_MS` under 11 seconds turns the deadline off. The byte-level watchdog starts only once the response headers arrive, so a response that stops sending bytes after that follows the [stalled-stream rules](#automatic-retries) instead of this deadline. **What to do:** @@ -854,7 +870,7 @@ When a proxy, load balancer, or gateway between Claude Code and the API answers * Run `/status` and confirm the active credential is the one you expect. A stray `ANTHROPIC_API_KEY` in your environment can route requests through a low-tier key instead of your subscription. * Check your provider console for the active limits and request a higher tier if needed * For Anthropic API keys, see the [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) for how tiers work and how to set per-workspace caps -* Reduce concurrency: lower [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/en/env-vars), avoid running many parallel subagents, or switch to a smaller model with `/model` for high-volume scripted runs +* Reduce concurrency: avoid running many parallel subagents, or switch to a smaller model with `/model` for high-volume scripted runs ### You've hit your monthly spend limit @@ -1276,6 +1292,7 @@ Please run /login · API Error: 401 Invalid authentication credentials * If `/status` shows only your login, run `/login` once. If the credential was revoked, a fresh login replaces it. * If the same message returns for the same login account, the account or organization is no longer active. Check the account and organization that `/status` reports, and ask your organization admin to restore access. * If [`ANTHROPIC_BASE_URL`](/docs/en/env-vars) points at an [LLM gateway](/docs/en/llm-gateway), the text after `401` is your gateway's message rather than Anthropic's, and `/login` doesn't change it. Fix the credential your gateway expects instead. +* If every request fails with a `401` once your gateway has the credential it expects, check whether the gateway is rejecting the tool search fields Claude Code sends by default. To check, set `ENABLE_TOOL_SEARCH=false` as [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway) describes, then try again. Before v2.1.304, tool search was off behind a gateway unless you turned it on with `ENABLE_TOOL_SEARCH`. ### Login expired @@ -1347,20 +1364,30 @@ The first form appears on macOS and the second everywhere else. A transient cred * On other platforms, run `/login` again * If the login still doesn't save, see [Not logged in or token expired](/docs/en/troubleshoot-install#not-logged-in-or-token-expired) for the keychain unlock command and other credential-storage recovery steps -### Failed to start OAuth callback server +### Couldn't start the local listener that receives the browser sign-in -When `/login`, `claude auth login`, or `claude setup-token` signs you in through the browser, Claude Code opens a listening port on `127.0.0.1` so your browser can return the sign-in result to it. This message means Claude Code couldn't open that port, and the sign-in stops before a browser window or login URL appears: +Each of these messages from `/login`, `claude auth login`, or `claude setup-token` means Claude Code couldn't open the port on `127.0.0.1` where your browser returns the sign-in result. -```text theme={null} -Failed to start OAuth callback server: Failed to start server. Is port 0 in use? +With the notice that begins `The browser can't return the sign-in to Claude Code automatically`, the sign-in continues without that port. No browser opens, and the notice appears above a URL where you sign in instead: + +```text wrap theme={null} +The browser can't return the sign-in to Claude Code automatically. After you sign in, paste the code shown. ``` -If your message ends with `Is port 0 in use?`, the attempt to listen on the IPv4 loopback address `127.0.0.1` failed outright. Because the failure happens before a login URL exists, the `Paste code here if prompted` flow isn't available as a workaround. +With the message that includes `Couldn't start the local listener`, the sign-in stopped. That happens, for example, when you pipe input into `claude auth login`: + +```text theme={null} +Couldn't start the local listener that receives the browser sign-in. Try again. +``` **What to do:** -* To sign in right away without the local listener: if you use a claude.ai subscription, run [`claude setup-token`](/docs/en/authentication#generate-a-long-lived-token) on a machine where sign-in works and set the token it prints as `CLAUDE_CODE_OAUTH_TOKEN` on this machine. Otherwise set `ANTHROPIC_API_KEY` to a key from the [Claude Console](https://platform.claude.com/settings/keys). [Authentication precedence](/docs/en/authentication#authentication-precedence) explains how Claude Code chooses between credentials. -* To use browser sign-in on this machine instead, Claude Code must be able to listen on `127.0.0.1`. If it runs inside a sandbox, check that the sandbox's policy allows listening on local ports, then run `/login` again. If it should be able to and still fails, run `/feedback` so the report includes your environment details. +* **`The browser can't return the sign-in to Claude Code automatically`**: you don't need to fix anything first. Open the URL shown under the notice in a browser and sign in. The browser then shows a code: paste it into Claude Code at the `Paste code here >` prompt, and the sign-in continues from there. +* **`Couldn't start the local listener that receives the browser sign-in`**: run the same command again. If it stops the same way, sign in with a token or API key instead of the browser. Or, if you piped input into `claude auth login`, run it in a terminal so it can take a pasted code. +* **To sign in with a token or API key instead of the browser**: if you use a claude.ai subscription, run [`claude setup-token`](/docs/en/authentication#generate-a-long-lived-token) on a machine where sign-in works. Then set the token it prints as the [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/en/env-vars) environment variable on this machine. Otherwise set the `ANTHROPIC_API_KEY` environment variable to a key from the [Claude Console](https://platform.claude.com/settings/keys). [Authentication precedence](/docs/en/authentication#authentication-precedence) explains how Claude Code chooses between credentials. +* **To get the automatic browser return back**: Claude Code must be able to listen on `127.0.0.1`. If it runs inside a sandbox, check that the sandbox's policy allows listening on local ports, then sign in again. If listening should work there and the notice still appears, run `/feedback` so the report includes your environment details. + +Before v2.1.305, the sign-in stopped as soon as the port couldn't be opened and showed no URL to sign in at. The message read, for example, `Failed to start OAuth callback server: Failed to start server. Is port 0 in use?`. On those versions, update Claude Code and sign in again, or sign in with a token or API key instead of the browser. ### Claude login not accepted @@ -1831,8 +1858,9 @@ Common causes include no internet access, a VPN that blocks `api.anthropic.com`, * Confirm you can reach the API host from the same shell by running `curl -I https://api.anthropic.com`. On Windows PowerShell use `curl.exe -I https://api.anthropic.com` so the built-in `Invoke-WebRequest` alias is not used. * If you are behind a corporate proxy, set `HTTPS_PROXY` before launching Claude Code and see [Network configuration](/docs/en/network-config) * If you route through an LLM gateway or relay, set [`ANTHROPIC_BASE_URL`](/docs/en/env-vars) to its address. See [Connect Claude Code to an LLM gateway](/docs/en/llm-gateway-connect) for setup. +* If `ANTHROPIC_BASE_URL` already points at your gateway and every request ends in `Connection dropped`, check whether your gateway is rejecting the tool search fields Claude Code sends by default. To check, set `ENABLE_TOOL_SEARCH=false` as [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway) describes, then try again. Before v2.1.304, tool search was off behind a gateway unless you turned it on with `ENABLE_TOOL_SEARCH`. * Ensure your firewall allows the hosts listed in [Network access requirements](/docs/en/network-config#network-access-requirements) -* Intermittent failures are [retried automatically](#automatic-retries); persistent failures point to a local network issue +* Intermittent failures are [retried automatically](#automatic-retries) If `curl` succeeds but Claude Code still fails, the cause is usually something between the runtime and the network rather than the network itself: @@ -2185,6 +2213,7 @@ Before v2.1.162, Claude Code attempted the compaction anyway and surfaced the ba * Trim large `CLAUDE.md` memory files, or move instructions into [path-scoped rules](/docs/en/memory#path-specific-rules) that load only when relevant * Auto-compact is on by default and normally prevents this error. If you turned it off in `/config` or with [`DISABLE_AUTO_COMPACT`](/docs/en/env-vars), turn it back on. If you keep it off, run `/compact` yourself before the window fills. * If the error appears near 200K tokens on a model that accepts more, one cause is a model ID that Claude Code doesn't recognize. Claude Code assumes a 200K window for such an ID, so to keep working past that point, [give it the model's real context window](/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id). +* If the error appeared right after you stopped Claude while it was compacting the conversation, your conversation is unchanged and still large enough to need compacting. Run `/compact` and send your message again. To keep the error from recurring, [update Claude Code](/docs/en/setup#update-claude-code) to v2.1.304 or later. Before v2.1.304, stopping at that moment could end the turn with this error. See [Explore the context window](/docs/en/context-window) for an interactive view of how context fills up. @@ -2317,17 +2346,21 @@ Page-range reads render pages with `pdftoppm`. Install poppler-utils with the co ### Extra inputs are not permitted -A proxy or LLM gateway between Claude Code and the API stripped the `anthropic-beta` request header, so the API rejected fields that depend on it. +The endpoint that received the request rejected one of the request's fields as an input it doesn't accept, and the endpoint's message names that field. ```text theme={null} -API Error: 400 ... Extra inputs are not permitted ... context_management +API Error: 400 ... context_management: Extra inputs are not permitted ``` -Claude Code sends beta-only fields such as `context_management` alongside an `anthropic-beta` header that enables them. When a gateway forwards the body but drops the header, the API sees fields it doesn't recognize. +Claude Code sends beta-only fields such as `context_management` and tool search's `defer_loading` alongside an `anthropic-beta` header that enables them. When a gateway forwards the body but drops the header, the API sees fields it doesn't recognize. When a gateway forwards an Anthropic-format body to an upstream with a different schema, that upstream rejects such fields. [Beta header and body field pairs](/docs/en/llm-gateway-protocol#beta-header-and-body-field-pairs) covers both cases. **What to do:** -* Configure your gateway to forward the `anthropic-beta` header. See [feature pass-through](/docs/en/llm-gateway-protocol#feature-pass-through) for what gateways must forward. +* If the message contains `context_management: Extra inputs are not permitted`, [update Claude Code](/docs/en/setup#update-claude-code) to v2.1.304 or later. After you update, Claude Code answers this rejection by sending the request once more without the field. Before v2.1.304, Claude Code didn't retry this rejection. +* If the message names `defer_loading` or `tool_reference`, update Claude Code or turn [tool search](/docs/en/mcp#tool-search-through-a-gateway) off: + * [Update Claude Code](/docs/en/setup#update-claude-code) to v2.1.305 or later. Claude Code then answers this rejection by sending the request once more without tool search fields. + * If you can't update, or the message still appears after you do, set `ENABLE_TOOL_SEARCH=false` in your shell or your [settings `env`](/docs/en/settings-reference#env). If a settings file already sets the variable, change it there, since that value [can override a shell export](/docs/en/settings-reference#how-env-values-interact-with-your-shell). Claude Code then loads MCP tools upfront. +* If your gateway drops the header, configure it to forward the `anthropic-beta` header. See [feature pass-through](/docs/en/llm-gateway-protocol#feature-pass-through) for what gateways must forward. * As a fallback, set [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/en/env-vars) before launching. [Disable pre-release capabilities](/docs/en/llm-gateway-protocol#disable-pre-release-capabilities) covers the exact scope. Before v2.1.302, this error could also name the field `diagnostics` with no gateway involved. It appeared when a session that had already used the Anthropic API moved to Amazon Bedrock or Google Cloud's Agent Platform without a restart. For example, a session you left open moves to Bedrock when you run [`/setup-bedrock`](/docs/en/commands) in another Claude Code window. On those versions, run `/clear` in that session or restart it. @@ -2405,6 +2438,7 @@ There's an issue with the selected model (claude-...). It may not exist or you m * Use an alias such as `sonnet` or `opus` instead of a full versioned ID. Aliases resolve to a maintained default so they don't go stale. See [Model configuration](/docs/en/model-config). * If the wrong model keeps coming back in the CLI, a stale ID is set somewhere. Check the places you can set a model in [priority order](/docs/en/model-config#setting-your-model) and remove the stale value. * Claude Code reports an expired claude.ai login as [Login expired](#login-expired), not as this error. Before v2.1.206, an expired login that could no longer be refreshed failed every model with this error; run `/login` if you see that on an older version. +* If [`ANTHROPIC_BASE_URL`](/docs/en/env-vars) points at an [LLM gateway](/docs/en/llm-gateway) and every model fails this way, check whether your gateway is rejecting the tool search fields Claude Code sends by default. To check, set `ENABLE_TOOL_SEARCH=false` as [Tool search through an LLM gateway](/docs/en/mcp#tool-search-through-a-gateway) describes, then try again. Before v2.1.304, tool search was off behind a gateway unless you turned it on with `ENABLE_TOOL_SEARCH`. * For Google Cloud's Agent Platform deployments, see [Google Cloud's Agent Platform troubleshooting](/docs/en/google-vertex-ai#troubleshooting). ### Model is not a recognized model id @@ -2611,7 +2645,7 @@ Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the Other messages report the same condition: * In an interactive session, a notification reads `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`. -* At launch with the `--advisor` flag, a warning reads `"" cannot advise "
" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.` and the session starts anyway. +* When you launch with the `--advisor` flag in [non-interactive mode](/docs/en/headless), and the run isn't a [background session](/docs/en/agent-view), a warning goes to stderr and the run starts anyway. It reads `"" cannot advise "
" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.` An interactive session writes that warning only to the [debug log](#configuration-warnings). **What to do:** @@ -4038,7 +4072,7 @@ Plugin archive integrity check failed for https://artifacts.example.com/claude-p ### Path escapes plugin directory -A plugin component path, declared in the plugin's `plugin.json` or in its [marketplace entry](/docs/en/plugins/marketplace-reference#plugin-entries), resolves outside the plugin's own directory. Claude Code drops that path and loads the rest of the plugin. The component name in the message, such as `commands` or `hooks`, names the field that declared the path. +One of the plugin's component paths leads outside the plugin directory or couldn't be confirmed inside it, so Claude Code drops that path and loads the rest of the plugin. For a path the plugin declares in `plugin.json` or its [marketplace entry](/docs/en/plugins/marketplace-reference#plugin-entries), the component name in the message, such as `commands` or `hooks`, names the field that declared the path. ```text theme={null} commands path escapes plugin directory: ./../shared.md @@ -4052,6 +4086,19 @@ Claude Code rejects both a path that points outside the plugin as written, such commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory ``` +A message that gives the full path of one of a marketplace plugin's own files, such as `hooks/hooks.json`, means Claude Code skipped that file. That happens when Claude Code can't confirm the file is inside the plugin or, for a plugin in a [local marketplace](/docs/en/plugins/loading#in-place-and-copied-plugins), inside that marketplace. The message reports each of these files under the component name shown: + +* `hooks/hooks.json`: `hooks` +* `monitors/monitors.json`: `monitors` +* `settings.json`: `settings` +* `SKILL.md` at the plugin root: `skills` + +For example, this message is for a `hooks/hooks.json` that resolves outside both the plugin and its local marketplace: + +```text theme={null} +hooks path escapes plugin directory: /home/user/my-marketplace/my-plugin/hooks/hooks.json — it resolves to /home/user/dotfiles/hooks.json, outside the plugin directory and its marketplace directory +``` + On macOS and Linux, Claude Code also rejects a component path that contains a backslash anywhere in it, even when the path stays inside the plugin. A plugin whose component paths use Windows-style separators loads on Windows and triggers this rejection on the other platforms: ```text theme={null} @@ -4060,15 +4107,33 @@ commands path escapes plugin directory: ./commands\deploy.md — its path contai Before v2.1.251, Claude Code loaded a `commands` path declared in a marketplace entry even when it pointed outside the plugin directory. -Before v2.1.257, the check looked only at the path's spelling, not at where a symlink leads. +Before v2.1.257, the check on paths the plugin declares looked only at the path's spelling, not at where a symlink leads. **What to do:** -* Move the referenced file inside the plugin directory and point the path at it with a `./` relative path -* If the path is a symlink to a file outside the plugin, replace the symlink with a copy of the file -* If the message says the path contains a backslash, write the path with forward slashes, for example `./commands/deploy.md` +* If you installed the plugin and don't maintain it, report the message to its author +* For a path the plugin declares, move the referenced file inside the plugin directory and point the path at it with a `./` relative path +* If the path, or a folder above it inside the plugin, is a symlink leading outside the plugin, replace the symlink with a copy of what it points to +* If the message says a path the plugin declares contains a backslash, write the path with forward slashes, for example `./commands/deploy.md` +* If the message ends with `EACCES`, restore your execute permission on every directory leading to the file or folder the path names. Check the directories above the path, then follow each symlink you reach and check the directories leading to where it points. For any other error code, look it up in the [causes and steps for a path that couldn't be checked](#path-could-not-be-checked). * To share files with other plugins in the same marketplace, link them with a symlink inside the plugin directory, following the [symlink rules](/docs/en/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks) +### Plugin not loaded: its manifest was not read + +Claude Code couldn't confirm that a marketplace plugin's [manifest](/docs/en/plugins/manifest-reference) at `.claude-plugin/plugin.json` is inside the plugin, so it loads nothing from that plugin. For a plugin in a [local marketplace](/docs/en/plugins/loading#in-place-and-copied-plugins), Claude Code also couldn't confirm that the manifest is inside that marketplace. The message appears in the `/plugin` **Errors** tab, and the reason at its end says what Claude Code found. + +For example, this message is for a plugin in a local marketplace whose `.claude-plugin` folder is a symlink leading outside the marketplace: + +```text theme={null} +Plugin not loaded: its manifest /home/user/my-marketplace/my-plugin/.claude-plugin/plugin.json was not read, because it resolves to /home/user/dotfiles/my-plugin/.claude-plugin/plugin.json, outside the plugin directory and its marketplace directory +``` + +**What to do:** + +* If the reason ends with `EACCES`, restore your execute permission on every directory leading to the manifest. Check the directories above the manifest, then follow each symlink you reach and check the directories leading to where it points. For any other error code, look it up in the [causes and steps for a path that couldn't be checked](#path-could-not-be-checked). +* If you maintain the plugin and the reason says where the manifest resolves, the `.claude-plugin` folder or `plugin.json` itself is a symlink that leads there. Replace that link with a copy of what it points to. +* If you installed the plugin and don't maintain it, report the message to its author + ### Path could not be checked Claude Code asked the operating system whether a plugin path exists and got an error other than "not found", so it doesn't load what the path names. How much of the plugin loads depends on which path failed: @@ -4373,6 +4438,20 @@ The check applies to a definition in the `.claude/agents/` directory of the proj * Run `claude` in the folder the [debug log](/docs/en/debug-your-config) names and accept the trust dialog. The definition is re-applied the next time Claude Code brings the teammate back; you don't need to restart the lead session * Or set the `hasTrustDialogAccepted` entry to `true` in `~/.claude.json`, using the exact `projects[""]` key the debug log prints +### Only a teammate can approve a shutdown request + +Claude Code refused an [agent team](/docs/en/agent-teams) shutdown approval because the session that sent it isn't running as a teammate. Nothing was sent and nothing shut down. The refusal appears in the sending session's tool result: + +```text wrap theme={null} +Only a teammate can approve a shutdown request, and this session is not running as one. Nothing was sent. To shut down a teammate, send that teammate a shutdown_request message. The teammate is the one that approves it. +``` + +**What to do:** + +* If the refusal appeared in your lead session, first check whether the teammate has since shut down. The refusal goes back to Claude with the instruction to send a `shutdown_request` instead, and the turn continues. In an interactive lead session, ` has shut down.` appears when the teammate approves a shutdown request. +* If the teammate is still running, ask the lead at its prompt to shut the teammate down, for example `Ask the researcher teammate to shut down`. See [Shut down teammates](/docs/en/agent-teams#shut-down-teammates). +* If a former teammate you resumed yourself with `claude --resume` got this refusal, nothing was sent. To end that session, run `/exit` at its prompt. + ### Message too large for cross-session delivery Claude's [cross-session message](/docs/en/cross-session-messaging) to another of your sessions on this machine was too long to send. Claude Code refused it, and the receiving session got nothing. The refusal appears in the sending session's tool result, not as a banner in your terminal. It names both sizes and how to make the message fit: @@ -4506,7 +4585,15 @@ Command killed: its output file was replaced or could no longer be verified ### Disk quota or temp filesystem is full -Claude Code saves each Bash and PowerShell command's output to a file under its temp directory. When a command exits with a nonzero code and no output at all, Claude Code checks whether the filesystem holding that file is out of space or inodes, or whether your disk quota on it is used up. If so, a diagnostic appears in the command's result in place of the empty output: +Claude Code saves each Bash and PowerShell command's output to a file under its temp directory. These messages in a command's result mean that the filesystem holding that directory, or your disk quota on it, is full. + +If Claude Code can't create that file because the filesystem or your quota on it is full, your command doesn't start, and the result reads: + +```text wrap theme={null} +The command was not started: this computer's disk is full (ENOSPC), so the file that captures command output could not be created. Nothing ran. If this is the user's own computer, tell them before deleting anything to make room. +``` + +When a command exits with a nonzero code and no output at all, Claude Code checks the filesystem holding the output file. If that filesystem is out of space or inodes, or your disk quota on it is used up, a diagnostic replaces the empty output in the command's result: ```text wrap theme={null} Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem. @@ -4517,12 +4604,15 @@ The message names what ran out: * `Your disk quota is full ... (EDQUOT)`: your own quota on that filesystem is used up. A quota can be full while the filesystem still shows free space * `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: the filesystem, or your quota on it, has no space left * `Command output was lost: the temp filesystem at ... is full` or `... is out of inodes`: the filesystem has almost no free space left, or is running out of inodes +* `The command was not started: this computer's disk is full (ENOSPC)` or `... (EDQUOT)`: the filesystem has no space left for the output file, or with `EDQUOT` your own quota on it is used up **What to do:** -* Delete files you no longer need on the filesystem that holds Claude Code's temp directory. For `EDQUOT`, delete files that count against your own quota. For `out of inodes`, delete many files rather than a few large ones, since each file takes one inode whatever its size +* Delete files you no longer need on the filesystem that holds Claude Code's temp directory. If your message doesn't name that directory, look up its default location in the [`CLAUDE_CODE_TMPDIR`](/docs/en/env-vars) reference. For `EDQUOT`, delete files that count against your own quota. For `out of inodes`, delete many files rather than a few large ones, since each file takes one inode whatever its size * Or restart Claude Code with [`CLAUDE_CODE_TMPDIR`](/docs/en/env-vars) set to a directory on a filesystem with room -* Then have Claude run the command again. The output it printed was lost, not truncated +* Then have Claude run the command again + +Before v2.1.305, a command that Claude Code couldn't start because the disk was full returned only the operating system's error text. That text read, for example, `ENOSPC: no space left on device, open .output`. ### File is not valid UTF-8 @@ -5189,7 +5279,14 @@ Inside tmux, Claude Code detects a marker that arrived through the tmux server's ## Configuration warnings -Claude Code writes most of these messages to stderr, not into the conversation, and writes most of them at startup. An entry says so when its message appears somewhere else, such as in the debug log or as a startup notice in the conversation view, or at another time, such as the [unrecognized-model diagnostic line](#unrecognized-model-id-on-a-request) at request time. +To find a warning that Claude Code gave at startup in an interactive session, look below the startup banner first, then in the debug log: + +* **Row below the startup banner**: some warnings about [permission rules](/docs/en/permissions), such as [`⚠ Deny rule Bsh matches no tool · check for typos`](#matches-no-tool) +* **Debug log**: Claude Code keeps this log only in debug mode. To read the warnings in it, start Claude Code from your shell with `claude --debug-file `, then open the file at that path. + +In [non-interactive mode](/docs/en/headless) with text output, outside a [background session](/docs/en/agent-view), look for startup warnings on stderr. + +Before v2.1.305, look on stderr in an interactive session as well, including for the permission-rule warnings that now show as rows below the banner. ### Claude Code exited after an unrecoverable interface error @@ -5309,12 +5406,16 @@ Ignoring 2 permissions.allow entries from .claude/settings.local.json: this work ### Working directory is a network path -Claude Code doesn't add network paths as working directories. Looking up a network path can contact the host it names, and on Windows that contact can send the host your credentials, so Claude Code refuses the path without looking it up. You see this message when you run `/add-dir` with such a path, or as a warning at startup. When it appears at startup, Claude Code starts without that directory. +Claude Code doesn't add network paths as working directories. Looking up a network path can contact the host it names, and on Windows that contact can send the host your credentials. Claude Code therefore refuses the path without looking it up. + +You see this message when you run `/add-dir` with a network path: ```text theme={null} \\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust). ``` +When you pass one at startup instead, with `--add-dir` or in `permissions.additionalDirectories`, Claude Code starts without that directory. In an interactive session you don't see the message at startup, because it goes to the debug log with the other [startup warnings](#configuration-warnings). + Paths that Claude Code refuses this way include: * UNC shares such as `\\server\share` @@ -5560,46 +5661,92 @@ Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Before v2.1.260, Claude Code reported a rule with unmatched parentheses as `Mismatched parentheses`. -### Is not matched by file permission checks +### Matches no tool · check for typos + +This row below the startup banner names a deny or ask [permission rule](/docs/en/permissions) whose tool name Claude Code doesn't recognize, so the rule doesn't apply to the tool you meant. A deny rule written as `Bsh` isn't applied to Bash, and neither is one that uses the label a tool shows in the transcript instead of its canonical name. The row repeats the rule as you wrote it: -Claude Code found a `Write`, `NotebookEdit`, `MultiEdit`, or `Glob` [permission rule](/docs/en/permissions#read-and-edit) with a path in one of your [settings files](/docs/en/settings#where-settings-live), in [managed settings](/docs/en/managed-settings), or in a `--allowedTools`, `--disallowedTools`, or `--settings` flag value. It checks file permissions against `Edit` and `Read` rules only, so it never consults a path rule that names one of the other file tools. It keeps the rule and changes nothing else; the warning names the rule, its source in parentheses, and the replacement to write: +```text theme={null} +⚠ Deny rule Bsh matches no tool · check for typos +``` + +In [non-interactive mode](/docs/en/headless) with text output, Claude Code prints the warning on stderr in its longer form instead: ```text theme={null} -Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools). +Permission deny rule "Bsh" matches no known tool — check for typos. ``` **What to do:** +* Correct the tool name in the rule, for example `Bash` in place of `Bsh`. Look up canonical names in the [tools reference](/docs/en/tools-reference). +* To find where the rule is defined, run `/permissions` in the session and select the rule. Its details say where it comes from, such as `From project local settings`, or `From CLI argument` for a `--disallowedTools` value. +* If the details read `From enterprise managed settings`, forward the row to whoever maintains your [managed settings](/docs/en/managed-settings), since you can't change that rule yourself. + +In a [background session](/docs/en/agent-view) or with `--output-format json` or `stream-json`, Claude Code writes the warning to the debug log instead of stderr. Run with `--debug` to capture it at `~/.claude/debug/.txt`. + +Before v2.1.305, an interactive session printed the longer form on stderr at startup instead of showing the row. + +### Is not matched by file permission checks + +Claude Code found a `Write`, `NotebookEdit`, `MultiEdit`, or `Glob` [permission rule](/docs/en/permissions#read-and-edit) with a path in one of your [settings files](/docs/en/settings#where-settings-live), in [managed settings](/docs/en/managed-settings), or in a `--allowedTools`, `--disallowedTools`, or `--settings` flag value. It checks file permissions against `Edit` and `Read` rules only, so it never consults a path rule that names one of the other file tools. It keeps the rule and changes nothing else. + +* **Interactive session**: the full warning goes to the [debug log](#configuration-warnings), and a deny or ask rule of this shape also shows as this row below the startup banner: + + ```text theme={null} + ⚠ Deny rule Write(docs/**) never matches · use Edit(docs/**) + ``` + + An allow rule of this shape gets no row. To find where the rule is defined, run `/permissions` in the session and select the rule. +* **[Non-interactive mode](/docs/en/headless) with text output**: the full warning on stderr names the rule, its source in parentheses, and the replacement to write: + + ```text theme={null} + Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools). + ``` +* **[Background session](/docs/en/agent-view), or `--output-format json` or `stream-json`**: the full warning goes to the debug log instead of stderr, so machine-read output stays clean. Run with `--debug` to capture it at `~/.claude/debug/.txt`. + +**What to do:** + * Replace `Write(path)`, `NotebookEdit(path)`, and legacy `MultiEdit(path)` rules with `Edit(path)`. `Edit` rules cover all file-editing tools. * Except in `--allowedTools`, where Claude Code accepts a `Glob` rule without warning, replace `Glob(path)` rules with `Read(path)`. -* Fix the rule at the source the warning names in parentheses: a settings file path, or the flag itself for `--allowed-tools` and `--disallowed-tools`. A `claude-settings-.json` path that doesn't exist on disk stands for an inline `--settings` value. Fix the JSON you pass to that flag. +* Fix the rule at its source, which the full warning names in parentheses: a settings file path, or the flag itself for `--allowed-tools` and `--disallowed-tools`. A `claude-settings-.json` path that doesn't exist on disk stands for an inline `--settings` value. Fix the JSON you pass to that flag. * Leave bare tool-name rules such as `Write` or `Glob` alone. Claude Code matches them at the [tool level](/docs/en/permissions#match-all-uses-of-a-tool) and doesn't warn about them. -* If the source reads `managed policy settings`, forward the warning to whoever maintains your managed settings, since you can't clear it yourself. +* For a rule from managed settings, the full warning's parentheses read `managed policy settings` and the rule's details in `/permissions` read `From enterprise managed settings`. Forward that warning to whoever maintains your managed settings, since you can't clear it yourself. -In a [background session](/docs/en/agent-view) or with `--output-format json` or `stream-json`, Claude Code writes the warning to the debug log instead of stderr, so machine-read output stays clean. Run with `--debug` to capture it at `~/.claude/debug/.txt`. Before v2.1.210, Claude Code accepted these rules without a warning. +Before v2.1.210, Claude Code accepted these rules without a warning. Before v2.1.305, an interactive session printed the full warning on stderr. ### Has a wildcard before the rest of the command Claude Code found a `Bash` allow rule whose `*` comes before a later word that determines which command it is, such as `Bash(git * main)` or `Bash(git -C * status *)`, in one of your [settings files](/docs/en/settings#where-settings-live), in [managed settings](/docs/en/managed-settings), or in an `--allowedTools` or `--settings` flag value. The `*` matches any text, including options inserted at that position: `Bash(git * main)` also approves `git -c core.fsmonitor=